Exemple #1
0
 public void listar_aguinaldos_review(Aguinaldo_General general)
 {
     aguinaldo_lista_calcular      = new Aguinaldo_Lista_Temporal(this, general);
     aguinaldo_lista_calcular.Dock = DockStyle.Fill;
     pn_master.Controls.Clear();
     pn_master.Controls.Add(aguinaldo_lista_calcular);
 }
        public Aguinaldo_Lista_Temporal(Aguinaldo_Control parent_control, Aguinaldo_General general)
        {
            InitializeComponent();
            this.parent = parent_control;

            bt_calcular.Visible = false;
            editar            = true;
            aguinaldo_general = general;
            colaboradores     = new Colaborador().obtener_lista_activos();
            horarios          = new Horario().obtener_lista_activos();
            aguinaldos        = new Aguinaldo().obtener_lista_id_general(general.Id);
            salvar_base();
            llenar_tabla();
        }
        public Aguinaldo_General obtener()
        {
            Aguinaldo_General aguinaldo = new Aguinaldo_General();
            Int32             id        = Int32.Parse(dgv_Aguinaldo.CurrentRow.Cells["Encabezado"].Value.ToString());

            foreach (Aguinaldo_General x in lista)
            {
                if (x.Id == id)
                {
                    aguinaldo = x;
                }
            }

            return(aguinaldo);
        }
        public void gestion()
        {
            Int32    avance = 0;
            Int32    flag   = 0;
            DateTime fecha  = DateTime.Now.Date;

            aguinaldos = new List <Aguinaldo>();
            Int32   id_general      = Convert.ToInt32(fecha.Day + "" + fecha.Month + "" + fecha.Year);
            Decimal total_aguinaldo = 0;

            foreach (Colaborador c in colaboradores)
            {
                Horario horario         = set_horario(c.Id_horario);
                Decimal salario_diario  = c.Precio * (horario.Horas - 1);
                Decimal salario_mensual = salario_diario * 30;

                Decimal horas  = 0;
                Decimal extras = 0;
                Int32   mes    = 0;

                foreach (Pago p in pagos)
                {
                    if (p.Id_colaborador == c.Id)
                    {
                        if (mes == 0)
                        {
                            mes = p.FechaPago.Month;
                        }
                        horas  += p.HorasLaboradas;
                        extras += p.HorasExtra;
                    }
                }

                if (horas != 0)
                {
                    Decimal salario_anual = salario_mensual * 12;
                    BusinessLogic.Configuracion config = new BusinessLogic.Configuracion().obtener_Configuracion();
                    Decimal salario_extras             = (c.Precio * config.Porcentaje_Hora_Extra) * extras;
                    Decimal salario_final = (salario_anual / 12) + salario_extras;
                    total_aguinaldo += salario_final;
                    aguinaldos.Add(new Aguinaldo(c.Id, c.Id, fecha, salario_final, "No disponible", true, id_general));
                }
                avance = ((++flag) * 100) / colaboradores.Count;
                bg_calcular_aguinaldo.ReportProgress(avance);
                Thread.Sleep(500);
            }
            aguinaldo_general = new Aguinaldo_General(id_general, fecha, total_aguinaldo, true);
        }
        private void dgv_Aguinaldo_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            Aguinaldo_General general = obtener();

            parent.listar_aguinaldos_review(general);
        }