Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        /// <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;
            }
        }