private void btnGuardar_Click(object sender, EventArgs e) { try { if (Util.ConfirmationMessage("¿Desea guardar los cambios realizados?") == false) { return; } //Util.ConfirmationMessage("Cant. Creados : " + this.lstCreados.Count); //Util.ConfirmationMessage("Cant. Modificados : " + this.lstModificados.Count); //Util.ConfirmationMessage("Cant. Eliminados : " + this.lstEliminados.Count); bool rpta = false; var lnBono = new LN.Bono(); for (int i = 0; i < this.lstCreados.Count; i++) { var uiBonoCreada = this.lstCreados[i]; rpta = lnBono.Insertar(ref uiBonoCreada); } this.lstCreados.Clear(); for (int i = 0; i < this.lstModificados.Count; i++) { var uiBonoModificado = this.lstModificados[i]; rpta = lnBono.Actualizar(uiBonoModificado); } this.lstModificados.Clear(); for (int i = 0; i < this.lstEliminados.Count; i++) { int idBono = this.lstEliminados[i].Id; rpta = lnBono.Eliminar(idBono); } this.lstEliminados.Clear(); this.CargarListadoBonos(); Util.InformationMessage("Se guardaron todos los cambios realizados"); } catch (Exception ex) { Util.ErrorMessage(ex.Message); } }
private void CargarTiposBonos() { try { var lstTipos = new LN.Bono().Listar(); lstTipos = lstTipos.Where(x => x.Calculado == true).ToList(); lstTipos.Insert(0, new BE.UI.Bono() { Id = 0, Nombre = "Seleccione" }); this.cboBono.DataSource = lstTipos; this.cboBono.DisplayMember = "Nombre"; this.cboBono.ValueMember = "Id"; } 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; } }