private void btnEliminar_Click(object sender, EventArgs e) { try { if (this.dgvObservaciones.CurrentRow != null) { if (Util.ConfirmationMessage("¿Desea eliminar la observación seleccionada?") == false) { return; } var uiObservacionEmpleado = (BE.UI.ObservacionEmpleado) this.dgvObservaciones.CurrentRow.DataBoundItem; int idObservacion = uiObservacionEmpleado.ID; bool rpta = new LN.ObservacionEmpleado().Eliminar(idObservacion); if (rpta == true) { Util.InformationMessage("Se eliminó la observación seleccionada"); this.CargarListadoObservaciones(); } } } catch (Exception ex) { Util.ErrorMessage(ex.Message); } }
/// <summary> /// Bono que se da si cumple 3 condiciones : /// 1. Tener maximo de 3 tardanzas por mes /// 2. Tener máximo de 1 falta por mes /// 3. Tener máximo de 5 observaciones por mes /// </summary> /// <param name="codigoEmpleado">Codigo de Empleado o Candidato</param> private double BonoDisciplina(string codigoEmpleado) { try { bool cumpleDisciplina = false; double bonoDisciplina = 150.0; int maxTardanzas = 3; int maxFaltas = 1; int maxObservaciones = 5; var uiAsistenciaResumen = new LN.Planilla(this.Anho, this.Mes).ObtenerResumenAsistenciaEmpleado(codigoEmpleado); if (uiAsistenciaResumen != null) { // 1. Tener maximo de 3 tardanzas por mes if (uiAsistenciaResumen.CantidadTardanzas <= maxTardanzas) { cumpleDisciplina = true; } // 2. Tener máximo de 1 falta por mes if (uiAsistenciaResumen.CantidadInasistencias <= maxFaltas) { cumpleDisciplina = true; } } uiAsistenciaResumen = null; // 3. Tener máximo de 5 observaciones por mes int cntObservaciones = new LN.ObservacionEmpleado().CantidadObservacionesEmpleado(this.Anho, this.Mes, codigoEmpleado); if (cntObservaciones <= maxObservaciones) { cumpleDisciplina = true; } if (cumpleDisciplina == false) { bonoDisciplina = 0.0; } return(bonoDisciplina); } catch (Exception ex) { throw ex; } }
public void CargarListadoObservaciones() { try { int anho = int.Parse(this.cboAnho.SelectedValue.ToString()); int mes = int.Parse(this.cboMes.SelectedValue.ToString()); var lstUiObservaciones = new LN.ObservacionEmpleado().Listar(anho, mes); var sorted = new SortableBindingList <BE.UI.ObservacionEmpleado>(lstUiObservaciones); this.dgvObservaciones.DataSource = sorted; } catch (Exception ex) { throw ex; } }
/// <summary> /// Bono que se da si cumple con las siguientes condiciones /// 1. Grupal : /// 1.1. Alcanzar la meta de la sala. /// 1.2. Tener un máximo de 30% de tardanzas por sala /// 1.3. Tener un máximo de 30% de faltas por sala /// 1.4. Tener un máximo de 30% de observaciones. /// </summary> /// <param name="idSala">ID de la Sala</param> /// <returns></returns> private double BonoMetaGrupal(int idSala) { try { double bonoMeta = 0.0; #region Obtener Monto de Bono Grupal var beBono = new LN.Bono().Obtener(2); if (beBono != null) { bonoMeta = beBono.Monto; } beBono = null; #endregion #region Meta Grupal bool cumpleMetaGrupal = false; int cantidadTrabajadoresSala = 0; // Alcanzar la meta de la sala bool cumpleMetaSala = false; var beMetaSala = new LN.MetaSala().Obtener(idSala, this.Anho, this.Mes); if (beMetaSala != null) { cumpleMetaSala = beMetaSala.Cumplido; bonoMeta = beMetaSala.MontoPersonal; cantidadTrabajadoresSala = beMetaSala.CantidadPersonal; } else { throw new Exception("No existe una meta definida para esta sala y periodo"); } beMetaSala = null; //Tener un máximo de 30% de tardanzas por sala bool cumpleMetaTardanzas = false; double maxPorcentajeTardanzas = 30.0; double porcentajeTardanzas = 0; if (porcentajeTardanzas <= maxPorcentajeTardanzas) { cumpleMetaTardanzas = true; } //FALTA //Tener un máximo de 30% de faltas por sala bool cumpleMetaFaltas = false; double maxPorcentajeFaltas = 30.0; double porcentajeFaltas = 0.0; if (porcentajeFaltas <= maxPorcentajeFaltas) { cumpleMetaFaltas = true; } //FALTA //Tener un máximo de 30% de observaciones bool cumpleMetaObservaciones = false; double maxPorcentajeObservaciones = 30.0; int cntObservacionesSala = new LN.ObservacionEmpleado().CantidadObservacionesSala(this.Anho, this.Mes, idSala); double porcentajeObservaciones = (cntObservacionesSala / cantidadTrabajadoresSala) * 100; if (porcentajeObservaciones <= maxPorcentajeObservaciones) { cumpleMetaObservaciones = true; } if (cumpleMetaSala == true && cumpleMetaFaltas == true && cumpleMetaTardanzas == true && cumpleMetaObservaciones == true) { cumpleMetaGrupal = true; } #endregion if (cumpleMetaGrupal == false) { bonoMeta = 0.0; } return(bonoMeta); } catch (Exception ex) { throw ex; } }
private void btnGuardar_Click(object sender, EventArgs e) { try { #region Validaciones if (this.cboEmpleado.SelectedIndex == 0) { this.cboEmpleado.Focus(); throw new Exception("Seleccione un Empleado"); } if (this.cboSala.SelectedIndex == 0) { this.cboSala.Focus(); throw new Exception("Seleccione una Sala"); } if (this.cboObservacion.SelectedIndex == 0) { this.cboObservacion.Focus(); throw new Exception("Seleccione un Tipo de Observación"); } if (this.txtDescripcion.Text.Trim().Length == 0) { this.txtDescripcion.Focus(); throw new Exception("Ingrese la Observación"); } #endregion #region Guardar this.uiObservacionEmpleado.Fecha = this.dtpFecha.Value; this.uiObservacionEmpleado.EmpleadoCodigo = ((BE.Record) this.cboEmpleado.SelectedItem).Codigo; this.uiObservacionEmpleado.EmpleadoNombreCompleto = ((BE.Record) this.cboEmpleado.SelectedItem).Nombre; this.uiObservacionEmpleado.SalaID = ((BE.Sala) this.cboSala.SelectedItem).IdSala; this.uiObservacionEmpleado.SalaNombre = ((BE.Sala) this.cboSala.SelectedItem).Nombre; this.uiObservacionEmpleado.ObservacionID = ((BE.UI.Observacion) this.cboObservacion.SelectedItem).Id; this.uiObservacionEmpleado.ObservacionNombre = ((BE.UI.Observacion) this.cboObservacion.SelectedItem).Nombre; this.uiObservacionEmpleado.ObservacionDescripcion = this.txtDescripcion.Text.Trim(); bool rpta = false; string msg = ""; var lnObservacionEmpleado = new LN.ObservacionEmpleado(); if (this.uiObservacionEmpleado.ID == 0) //Nuevo { rpta = lnObservacionEmpleado.Insertar(ref this.uiObservacionEmpleado); if (true) { msg = "Se registro la nueva observación"; } } else //Actualizar { rpta = lnObservacionEmpleado.Actualizar(this.uiObservacionEmpleado); if (true) { msg = "Se actualizo la observación"; } } if (rpta == true) { Util.InformationMessage(msg); this.frmList.CargarListadoObservaciones(); this.Close(); } #endregion } catch (Exception ex) { Util.ErrorMessage(ex.Message); } }