Beispiel #1
0
 public void Get()
 {
     try
     {
         info           = new ro_Parametro_calculo_Horas_Extras_Info();
         info.IdEmpresa = param.IdEmpresa;
         info.Se_calcula_horas_Extras_al100 = check_se_paga_horasal100.Checked;
         info.Se_calcula_horas_Extras_al25  = check_se_paga_horasal25.Checked;
         info.Se_calcula_horas_Extras_al50  = check_se_paga_horasal50.Checked;
         info.Corte_Horas_extras            = Convert.ToInt32(txt_diasCorte.EditValue);
         info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo = check_reverso.Checked;
         if (check_reverso.Checked == true)
         {
             info.IdRubro_rev_Horas = cmb_rubros.EditValue.ToString();
         }
         if (cmb_Desahucio.EditValue != null)
         {
             info.IdRubro_Rebaja_Desahucio = cmb_Desahucio.EditValue.ToString();
         }
         if (txtMinutoLoch.EditValue != null)
         {
             info.MinutosLunch = Convert.ToInt32(txtMinutoLoch.EditValue);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
         Log_Error_bus.Log_Error(ex.ToString());
     }
 }
Beispiel #2
0
        public void Cargar_configuracion()
        {
            try
            {
                info = bus_parametros.Get_info(param.IdEmpresa);
                if (info != null)
                {
                    check_se_paga_horasal100.Checked = info.Se_calcula_horas_Extras_al100;
                    check_se_paga_horasal25.Checked  = info.Se_calcula_horas_Extras_al25;
                    check_se_paga_horasal50.Checked  = info.Se_calcula_horas_Extras_al50;
                    txt_diasCorte.EditValue          = info.Corte_Horas_extras;
                    check_reverso.Checked            = info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo;

                    if (info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo)
                    {
                        cmb_rubros.EditValue = info.IdRubro_rev_Horas;
                    }
                    txtMinutoLoch.EditValue = info.MinutosLunch;
                    cmb_Desahucio.EditValue = info.IdRubro_Rebaja_Desahucio;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }
Beispiel #3
0
        private void frmRo_Procesar_Rol_Mant_Load(object sender, EventArgs e)
        {
            try
            {
                listadoNomina = oRo_Nomina_Tipo_Bus.Get_List_Nomina_Tipo(param.IdEmpresa);
                cmbnomina.Properties.DataSource = listadoNomina;
                pu_Limpiar();


                switch (param.IdCliente_Ven_x_Default)
                {
                case Cl_Enumeradores.eCliente_Vzen.FJ:

                    info_parametro_fj = bus_parametro_fj.Get_info(param.IdEmpresa);

                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString());
            }
        }
 public bool ModificarDB(ro_Parametro_calculo_Horas_Extras_Info info)
 {
     try
     {
         using (EntityRoles_FJ db = new EntityRoles_FJ())
         {
             var modific = db.ro_Parametro_calculo_Horas_Extras.FirstOrDefault(v => v.IdEmpresa == info.IdEmpresa);
             modific.Se_calcula_horas_Extras_al100 = info.Se_calcula_horas_Extras_al100;
             modific.Se_calcula_horas_Extras_al50  = info.Se_calcula_horas_Extras_al50;
             modific.Se_calcula_horas_Extras_al25  = info.Se_calcula_horas_Extras_al25;
             modific.Corte_Horas_extras            = info.Corte_Horas_extras;
             modific.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo = info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo;
             modific.IdRubro_rev_Horas                   = info.IdRubro_rev_Horas;
             modific.IdRubro_Rebaja_Desahucio            = info.IdRubro_Rebaja_Desahucio;
             modific.considera_fecha_corte_dias_efectivo = info.considera_fecha_corte_dias_efectivo;
             modific.solo_graba_dias_efectivos           = info.solo_graba_dias_efectivos;
             modific.dias_integrales = info.dias_integrales;
             modific.MinutosLunch    = info.MinutosLunch;
             db.SaveChanges();
             return(true);
         }
     }
     catch (Exception ex)
     {
         string arreglo = ToString();
         tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
         tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
         oDataLog.Guardar_Log_Error(Log_Error_sis, ref MensajeError);
         MensajeError = ex.ToString();
         throw new Exception(ex.ToString());
     }
 }
Beispiel #5
0
 public bool Guardar_DB(ro_Parametro_calculo_Horas_Extras_Info info)
 {
     try
     {
         return(data.GuardarDB(info));
     }
     catch (Exception ex)
     {
         mensaje = ex.ToString();
         tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
         tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
         oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
         throw new Exception(mensaje);
     }
 }
        public bool GuardarDB(ro_Parametro_calculo_Horas_Extras_Info info)
        {
            try
            {
                using (EntityRoles_FJ db = new EntityRoles_FJ())
                {
                    var query = from q in db.ro_Parametro_calculo_Horas_Extras
                                where
                                q.IdEmpresa == info.IdEmpresa

                                select q;
                    if (query.Count() == 0)
                    {
                        ro_Parametro_calculo_Horas_Extras add = new ro_Parametro_calculo_Horas_Extras();
                        add.IdEmpresa = info.IdEmpresa;
                        add.Se_calcula_horas_Extras_al100 = info.Se_calcula_horas_Extras_al100;
                        add.Se_calcula_horas_Extras_al50  = info.Se_calcula_horas_Extras_al50;
                        add.Se_calcula_horas_Extras_al25  = info.Se_calcula_horas_Extras_al25;
                        add.Corte_Horas_extras            = info.Corte_Horas_extras;
                        add.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo = info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo;
                        add.IdRubro_rev_Horas                   = info.IdRubro_rev_Horas;
                        add.IdRubro_Rebaja_Desahucio            = info.IdRubro_Rebaja_Desahucio;
                        add.MinutosLunch                        = info.MinutosLunch;
                        add.considera_fecha_corte_dias_efectivo = info.considera_fecha_corte_dias_efectivo;
                        add.solo_graba_dias_efectivos           = info.solo_graba_dias_efectivos;
                        add.dias_integrales                     = info.dias_integrales;
                        db.ro_Parametro_calculo_Horas_Extras.Add(add);
                        db.SaveChanges();
                    }
                    else
                    {
                        ModificarDB(info);
                    }
                    return(true);
                }
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref MensajeError);
                MensajeError = ex.ToString();
                throw new Exception(ex.ToString());
            }
        }
        public ro_Parametro_calculo_Horas_Extras_Info Get_info(int IdEmpresa)
        {
            try
            {
                ro_Parametro_calculo_Horas_Extras_Info info = new ro_Parametro_calculo_Horas_Extras_Info();
                using (EntityRoles_FJ db = new EntityRoles_FJ())
                {
                    var query = from q in db.ro_Parametro_calculo_Horas_Extras
                                where
                                q.IdEmpresa == IdEmpresa

                                select q;


                    foreach (var item in query)
                    {
                        info.IdEmpresa = item.IdEmpresa;
                        info.Se_calcula_horas_Extras_al100 = item.Se_calcula_horas_Extras_al100;
                        info.Se_calcula_horas_Extras_al25  = item.Se_calcula_horas_Extras_al25;
                        info.Se_calcula_horas_Extras_al50  = item.Se_calcula_horas_Extras_al50;
                        info.Corte_Horas_extras            = item.Corte_Horas_extras;
                        info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo = item.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo;
                        info.IdRubro_rev_Horas                   = item.IdRubro_rev_Horas;
                        info.IdRubro_Rebaja_Desahucio            = item.IdRubro_Rebaja_Desahucio;
                        info.MinutosLunch                        = item.MinutosLunch;
                        info.considera_fecha_corte_dias_efectivo = item.considera_fecha_corte_dias_efectivo;
                        info.solo_graba_dias_efectivos           = item.solo_graba_dias_efectivos;
                        info.dias_integrales                     = item.dias_integrales;
                    }

                    return(info);
                }
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref MensajeError);
                MensajeError = ex.ToString();
                throw new Exception(ex.ToString());
            }
        }
        public bool Considera_fecha_corte_dias_efectivos(int IdEmpresa)
        {
            try
            {
                bool valo = false;
                ro_Parametro_calculo_Horas_Extras_Info info = new ro_Parametro_calculo_Horas_Extras_Info();
                using (EntityRoles_FJ db = new EntityRoles_FJ())
                {
                    var query = from q in db.ro_Parametro_calculo_Horas_Extras
                                where
                                q.IdEmpresa == IdEmpresa
                                select q;


                    foreach (var item in query)
                    {
                        if (item.considera_fecha_corte_dias_efectivo == true)
                        {
                            valo = true;
                        }
                        else
                        {
                            valo = false;
                        }
                    }

                    return(valo);
                }
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref MensajeError);
                MensajeError = ex.ToString();
                throw new Exception(ex.ToString());
            }
        }
Beispiel #9
0
        public void Cargar_configuracion()
        {
            try
            {
                info = bus_parametros.Get_info(param.IdEmpresa);
                if (info != null)
                {
                    check_se_paga_horasal100.Checked = info.Se_calcula_horas_Extras_al100;
                    check_se_paga_horasal25.Checked  = info.Se_calcula_horas_Extras_al25;
                    check_se_paga_horasal50.Checked  = info.Se_calcula_horas_Extras_al50;
                    txt_diasCorte.EditValue          = info.Corte_Horas_extras;
                    check_reverso.Checked            = info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo;
                    txt_diaa_integrales.EditValue    = info.dias_integrales;
                    if (info.Se_Crea_reverso_h_extras_si_Emp_tiene_remplazo)
                    {
                        cmb_rubros.EditValue = info.IdRubro_rev_Horas;
                    }
                    txtMinutoLoch.EditValue = info.MinutosLunch;
                    cmb_Desahucio.EditValue = info.IdRubro_Rebaja_Desahucio;

                    if (info.considera_fecha_corte_dias_efectivo != null)
                    {
                        chek_considera_fecha_corte.Checked = Convert.ToBoolean(info.considera_fecha_corte_dias_efectivo);
                    }
                    if (info.solo_graba_dias_efectivos != null)
                    {
                        che_soloGraba_dias_efectivos.Checked = Convert.ToBoolean(info.solo_graba_dias_efectivos);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }
        public List <ro_marcaciones_x_Jornada_Info> Get_list_Horas_Extras(List <ro_marcaciones_x_Jornada_Info> lista, double Suel_Actual)
        {
            try
            {
                info_parametro = bus_parametros_calculo_horas_extras.Get_info(param.IdEmpresa);
                List <ro_marcaciones_x_Jornada_Info> lista_horas_extras_25_50_100 = new List <ro_marcaciones_x_Jornada_Info>();

                // recorro las marcaciones y sumo las horas extras del 25%, 50%, 100%
                foreach (var item in lista)
                {
                    Horas_25   = 0; Horas_50 = 0; Horas_100 = 0; horas = 0; minutos = 0; Horas_tmp = 0;
                    es_hora    = new TimeSpan();
                    IdEmpleado = item.IdEmpleado;
                    fecha_pago = Convert.ToDateTime(item.es_fechaRegistro);
                    Nombre     = item.pe_NombreCompleto;
                    Cedula     = item.pe_cedula;
                    int dia_Semana = (int)Convert.ToDateTime(item.es_fechaRegistro).DayOfWeek;
                    if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0)// si tiene una sola jornada le resto la hora de almuerzo
                    {
                        if (dia_Semana == 6 || dia_Semana == 0 || item.EsFeriado == "S")
                        {
                            if (item.es_tot_horasTrabajadas >= 1)
                            {
                                if (item.es_tot_horasTrabajadas >= 9)
                                {
                                    item.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas - 1;
                                }
                                else
                                {
                                    item.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas;
                                }
                            }
                        }
                        else
                        {
                            item.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas - 1;
                            horas   = ((TimeSpan)item.es_Hora_ingreso_jornada1).Hours;
                            minutos = ((TimeSpan)item.es_Hora_ingreso_jornada1).Minutes;
                            item.es_Hora_ingreso_jornada1 = new TimeSpan(horas, minutos, 0);
                        }
                    }
                    if (dia_Semana == 6 || dia_Semana == 0 || item.EsFeriado == "S")// sumo las horas trabajadas al 100% correspondiente al sabado y domingo
                    {
                        Horas_100 = item.es_tot_horasTrabajadas;
                    }
                    else
                    {
                        if (item.es_tot_horasTrabajadas >= 0)// si trabajo mas de ocho horas
                        {
                            #region Horas al 100% de 00:00 a 06:00
                            if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0)//si trabajo una sola jornada y tiene horas al 100% de 00:00 a 06:00
                            {
                                if (
                                    (item.es_Hora_ingreso_jornada1 > inicioHora100 && item.es_Hora_ingreso_jornada1 < finalHora100) ||
                                    (item.es_Hora_salida_jornada1 > inicioHora100 && item.es_Hora_salida_jornada1 < finalHora100) ||
                                    (item.es_Hora_ingreso_jornada1 > inicioHora100 && item.es_Hora_ingreso_jornada1 > finalHora100 &&
                                     ((TimeSpan)item.es_Hora_ingreso_jornada1).Hours > 12)



                                    )
                                {
                                    if (item.es_tot_horasTrabajadas > 8)
                                    {
                                        Horas_100 = Get_Horas_100_x_dia(item);// calculo de horas al 100%
                                    }
                                }

                                else
                                {
                                }
                            }
                            else//si trabajo dos jornada y tiene horas al 100% de 00:00 a 06:00
                            {
                                if (
                                    ((TimeSpan)item.es_Hora_salida_jornada2).TotalHours >= inicioHora100.TotalHours &&
                                    ((TimeSpan)item.es_Hora_ingreso_jornada2).TotalHours >= inicioHora100.TotalHours)
                                {
                                    Horas_100 = Get_Horas_100_x_dia_con_dos_jornadas(item);// calculo de horas al 100%
                                }
                            }



                            #endregion
                            #region Horas al 50% de 18:00 a 24:00

                            if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0)// tiene horas al 50% de 06:00h a 24:00h en una sola jornada
                            {
                                if ((item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 < finalHora50) ||
                                    (item.es_Hora_salida_jornada1 > inicioHora50 && item.es_Hora_salida_jornada1 < finalHora50) ||
                                    (item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 > finalHora50)
                                    )
                                {
                                    if (item.es_tot_horasTrabajadas > 8)
                                    {
                                        Horas_50 = Get_Horas_50_x_dia(item);// calculo de horas al 50%
                                    }
                                }
                            }
                            else// si tiene horas al 50% y trabajo dos jornadas
                            {
                                if (((item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 < finalHora50) ||
                                     (item.es_Hora_salida_jornada1 > inicioHora50 && item.es_Hora_salida_jornada1 < finalHora50) ||
                                     (item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 > finalHora50))
                                    ||
                                    ((item.es_Hora_ingreso_jornada2 > inicioHora50 && item.es_Hora_ingreso_jornada2 < finalHora50) ||
                                     (item.es_Hora_salida_jornada2 > inicioHora50 && item.es_Hora_salida_jornada2 < finalHora50) ||
                                     (item.es_Hora_ingreso_jornada2 > inicioHora50 && item.es_Hora_ingreso_jornada2 > finalHora50))
                                    )
                                {
                                    if (item.es_tot_horasTrabajadas > 8)
                                    {
                                        Horas_50 = Get_Horas_50_x_dia_con_dos_jornadas(item);// calculo de horas al 50% con doble jornada
                                    }
                                }
                            }
                            #endregion
                            #region Horas al 25% de 19:00 a 06:00
                            if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0) // tiene horas al 25% de 19:00h a 06:00h en una sola jornada
                            {                                                         // tiene horas al 25% de 19:00h a 06:00h en la jornada 1
                                if ((item.es_Hora_ingreso_jornada1 >= inicioHora25 && item.es_Hora_ingreso_jornada1 <= finalHora25) ||
                                    (item.es_Hora_salida_jornada1 >= inicioHora25 && item.es_Hora_salida_jornada1 <= finalHora25) ||
                                    (item.es_Hora_ingreso_jornada1 >= inicioHora25 && item.es_Hora_ingreso_jornada1 >= finalHora25) ||
                                    (item.es_Hora_ingreso_jornada1 <= inicioHora25 && item.es_Hora_ingreso_jornada1 >= finalHora25 && ((TimeSpan)item.es_Hora_ingreso_jornada1).Hours > 12)

                                    )
                                {
                                    if (((TimeSpan)item.es_Hora_ingreso_jornada1).Hours > 0)
                                    {
                                        if (item.pe_cedula == "0803134915")
                                        {
                                        }
                                        if (dia_Semana != 6 && dia_Semana != 7)
                                        {
                                            Horas_25 = Get_Horas_25_x_dia(item); // calculo de horas al 25%
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if ((item.es_Hora_ingreso_jornada2 >= inicioHora25 && item.es_Hora_ingreso_jornada2 <= finalHora25) ||
                                    (item.es_Hora_salida_jornada2 >= inicioHora25 && item.es_Hora_salida_jornada2 <= finalHora25) ||
                                    (item.es_Hora_ingreso_jornada2 >= inicioHora25 && item.es_Hora_ingreso_jornada2 >= finalHora25) ||
                                    (item.es_Hora_ingreso_jornada2 <= inicioHora25 && item.es_Hora_ingreso_jornada2 >= finalHora25 && ((TimeSpan)item.es_Hora_ingreso_jornada2).Hours > 12)

                                    )
                                {
                                    if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours > 0)
                                    {
                                        if (dia_Semana != 6 && dia_Semana != 7)
                                        {
                                            Horas_25 = Get_Horas_25_x_dia(item); // calculo de horas al 25%
                                        }
                                    }
                                }
                            }
                            #endregion
                        }
                    }

                    if (Horas_50 < 0)
                    {
                        Horas_50 = Horas_50 * -1;
                    }


                    // creo las novedades
                    if (info_parametro.Se_calcula_horas_Extras_al100 == true || info_parametro.Se_calcula_horas_Extras_al50 == true || info_parametro.Se_calcula_horas_Extras_al25 == true)
                    {
                        if (Horas_100 > 0 || Horas_25 > 0 || Horas_50 > 0)// si es que tiene horas al 100%
                        {
                            ro_marcaciones_x_Jornada_Info info_horas_extras = new ro_marcaciones_x_Jornada_Info();
                            info_horas_extras.IdEmpresa                  = param.IdEmpresa;
                            info_horas_extras.IdEmpleado                 = IdEmpleado;
                            info_horas_extras.pe_NombreCompleto          = Nombre;
                            info_horas_extras.em_cedula                  = Cedula;
                            info_horas_extras.secuencia                  = 1;
                            info_horas_extras.IdRubro                    = "9";
                            info_horas_extras.FechaPago                  = fecha_pago;
                            info_horas_extras.Sueldo_Actual              = Suel_Actual;
                            info_horas_extras.Calculo_Horas_extras_Sobre = item.grupo.Calculo_Horas_extras_Sobre;

                            // HORAS SOBRETIEMPO 100
                            if (Horas_100 > 0)
                            {
                                if (item.grupo.Calculo_Horas_extras_Sobre > 0)
                                {
                                    info_horas_extras.Valor_100 = Math.Round(Horas_100 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 2), 2);
                                }
                                else
                                {
                                    info_horas_extras.Valor_100 = Math.Round(Horas_100 * ((Suel_Actual / 160) * 2), 2);
                                }
                            }

                            // HORAS SOBRETIEMPO 50
                            if (Horas_50 > 0)
                            {
                                if (item.grupo.Calculo_Horas_extras_Sobre > 0)
                                {
                                    info_horas_extras.Valor_50 = Math.Round(Horas_50 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 1.5), 2);
                                }
                                else
                                {
                                    info_horas_extras.Valor_50 = Math.Round(Horas_50 * ((Suel_Actual / 160) * 0.5), 2);
                                }
                            }
                            if (Horas_25 > 0)
                            {
                                // HORAS SOBRETIEMPO 25
                                if (item.grupo.Calculo_Horas_extras_Sobre > 0)
                                {
                                    info_horas_extras.Valor_25 = Math.Round(Horas_25 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 0.25), 2);
                                }
                                else
                                {
                                    info_horas_extras.Valor_25 = Math.Round(Horas_25 * ((Suel_Actual / 160) * 0.25), 2);
                                }
                            }
                            if (item.es_tot_horasTrabajadas > 0)
                            {
                                info_horas_extras.Horas_100 = Horas_100;
                                info_horas_extras.Horas_50  = Horas_50;
                                info_horas_extras.Horas_25  = Horas_25;
                            }
                            else
                            {
                                if (dia_Semana == 6 || dia_Semana == 0 || item.EsFeriado == "S")
                                {
                                    info_horas_extras.Horas_100 = Horas_100;
                                    info_horas_extras.Horas_50  = Horas_50;
                                    info_horas_extras.Horas_25  = Horas_25;
                                }
                                else
                                {
                                    info_horas_extras.Horas_100 = 0;
                                    info_horas_extras.Horas_50  = 0;
                                    info_horas_extras.Horas_25  = 0;
                                }
                            }
                            info_horas_extras.Observacion = "Horas extras correspondiente al " + fecha_pago.Month.ToString().PadLeft(2, '0') + "/" + fecha_pago.Year;
                            info_horas_extras.es_Hora_ingreso_jornada1 = item.es_Hora_ingreso_jornada1;
                            info_horas_extras.es_Hora_ingreso_jornada2 = item.es_Hora_ingreso_jornada2;
                            info_horas_extras.es_Hora_salida_jornada1  = item.es_Hora_salida_jornada1;
                            info_horas_extras.es_Hora_salida_jornada2  = item.es_Hora_salida_jornada2;
                            if (item.es_Fech_remplazo != null)
                            {
                                info_horas_extras.es_Fech_remplazo = Convert.ToDateTime(item.es_Fech_remplazo);
                            }
                            info_horas_extras.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas;
                            info_horas_extras.cargo        = item.cargo;
                            info_horas_extras.departamento = item.departamento;
                            lista_horas_extras_25_50_100.Add(info_horas_extras);
                        }
                    }
                }



                return(lista_horas_extras_25_50_100);
            }
            catch (Exception)
            {
                return(new List <ro_marcaciones_x_Jornada_Info>());
            }
        }
Beispiel #11
0
        public bool GuardarNovedad(List <ro_empleado_Novedad_x_horasExtras_Pendiente_Aprobar_Info> lista)
        {
            try
            {
                decimal id_nov = 0;

                ro_Empleado_Novedad_Bus BUS_NOVEDAD = new ro_Empleado_Novedad_Bus();
                info_parametro = bus_parametros.Get_info(param.IdEmpresa);
                foreach (var item in lista)
                {
                    if (item.Max_num_horas_sab_dom > 1 && item.Calculo_Horas_extras_Sobre >= 160)
                    {
                        // creo la cabecera de la novedad
                        ro_Empleado_Novedad_Info     info         = new ro_Empleado_Novedad_Info();
                        ro_Empleado_Novedad_Det_Info info_Detalle = new ro_Empleado_Novedad_Det_Info();

                        info.IdEmpresa          = item.IdEmpresa;
                        info.IdEmpleado         = item.IdEmpleado;
                        info.IdNomina_Tipo      = item.IdTipoNomina;
                        info.IdNomina_TipoLiqui = item.IdNomina_tipo;
                        info.TotalValor         = (Convert.ToDouble(item.SueldoActual / item.Calculo_Horas_extras_Sobre) * 2) * item.Max_num_horas_sab_dom;
                        if (Convert.ToDateTime(item.es_fecha_registro).Day > info_parametro.Corte_Horas_extras)
                        {
                            info.Fecha_PrimerPago = item.FechaPago.AddMonths(1);
                            info.Fecha            = item.FechaPago;
                        }
                        else
                        {
                            info.Fecha_PrimerPago = item.FechaPago;
                            info.Fecha            = item.es_fecha_registro;
                        }
                        info.NumCoutas     = 1;
                        info.Num_Horas     = item.Max_num_horas_sab_dom;
                        info.Fecha_Transac = DateTime.Now;
                        info.IdUsuario     = param.IdUsuario;
                        info.IdCalendario  = item.es_fecha_registro.Year.ToString() + item.es_fecha_registro.Month.ToString().PadLeft(2, '0') + item.es_fecha_registro.Day.ToString().PadLeft(2, '0');
                        info.IdPeriodo     = item.IdPeriodo;
                        // creo el detalle
                        info_Detalle.IdEmpleado = param.IdEmpresa;
                        info_Detalle.IdEmpleado = item.IdEmpleado;
                        info_Detalle.Secuencia  = 1;
                        info_Detalle.IdRubro    = "9";
                        if (Convert.ToDateTime(item.es_fecha_registro).Day >= info_parametro.Corte_Horas_extras)
                        {
                            info_Detalle.FechaPago = item.es_fecha_registro.AddMonths(1);
                        }
                        else
                        {
                            info_Detalle.FechaPago = item.FechaPago;
                        }
                        info_Detalle.Valor        = (Convert.ToDouble(item.SueldoActual / item.Calculo_Horas_extras_Sobre) * 2) * item.Max_num_horas_sab_dom;
                        info_Detalle.EstadoCobro  = "PEN";
                        info_Detalle.Observacion  = "Horas extras al 100% correspondiente al" + item.es_fecha_registro.ToString().Substring(0, 10);
                        info_Detalle.NumHoras     = item.Max_num_horas_sab_dom;
                        info_Detalle.Estado       = "A";
                        info_Detalle.IdCalendario = item.es_fecha_registro.Year.ToString() + item.es_fecha_registro.Month.ToString().PadLeft(2, '0') + item.es_fecha_registro.Day.ToString().PadLeft(2, '0');
                        info_Detalle.IdPeriodos   = item.IdPeriodo;
                        info.InfoNovedadDet       = info_Detalle;
                        BUS_NOVEDAD.GrabarDB(info, ref id_nov);
                    }
                }

                data.ModificarDB(lista);// modifico el valor de estado aprobado
                return(true);
            }
            catch (Exception ex)
            {
                mensaje = ex.ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", mensaje, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(mensaje);
            }
        }
Beispiel #12
0
        public List <ro_Empleado_Novedad_Det_Info> Get_list_Horas_Extras(List <ro_marcaciones_x_Jornada_Info> lista, double Suel_Actual)
        {
            try
            {
                info_parametro = bus_parametros_calculo_horas_extras.Get_info(param.IdEmpresa);
                List <ro_Empleado_Novedad_Det_Info> lista_novedad_detalle = new List <ro_Empleado_Novedad_Det_Info>();

                // recorro las marcaciones y sumo las horas extras del 25%, 50%, 100%
                foreach (var item in lista)
                {
                    if (item.IdEmpleado == 28)
                    {
                    }

                    Horas_25   = 0; Horas_50 = 0; Horas_100 = 0; horas = 0; minutos = 0; Horas_tmp = 0;
                    es_hora    = new TimeSpan();
                    IdEmpleado = item.IdEmpleado;
                    fecha_pago = Convert.ToDateTime(item.es_fechaRegistro);
                    Nombre     = item.pe_NombreCompleto;
                    Cedula     = item.pe_cedula;
                    int dia_Semana = (int)Convert.ToDateTime(item.es_fechaRegistro).DayOfWeek;
                    if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0)// si tiene una sola jornada le resto la hora de almuerzo
                    {
                        if (dia_Semana == 6 || dia_Semana == 0 || item.EsFeriado == "S")
                        {
                            if (item.es_tot_horasTrabajadas >= 1)
                            {
                                if (item.es_tot_horasTrabajadas > 9)
                                {
                                    item.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas - 1;
                                }
                                else
                                {
                                    item.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas;
                                }
                            }
                        }
                        else
                        {
                            item.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas - 1;
                            horas   = ((TimeSpan)item.es_Hora_ingreso_jornada1).Hours;
                            minutos = ((TimeSpan)item.es_Hora_ingreso_jornada1).Minutes;
                            item.es_Hora_ingreso_jornada1 = new TimeSpan(horas, minutos, 0);
                        }
                    }
                    if (dia_Semana == 6 || dia_Semana == 0 || item.EsFeriado == "S")// sumo las horas trabajadas al 100% correspondiente al sabado y domingo
                    {
                        Horas_100 = item.es_tot_horasTrabajadas;
                    }
                    else
                    {
                        if (item.es_tot_horasTrabajadas > 0)// si trabajo mas de ocho horas
                        {
                            #region Horas al 100% de 00:00 a 06:00
                            if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0)//si trabajo una sola jornada y tiene horas al 100% de 00:00 a 06:00
                            {
                                if (
                                    (item.es_Hora_ingreso_jornada1 > inicioHora100 && item.es_Hora_ingreso_jornada1 < finalHora100) ||
                                    (item.es_Hora_salida_jornada1 > inicioHora100 && item.es_Hora_salida_jornada1 < finalHora100) ||
                                    (item.es_Hora_ingreso_jornada1 > inicioHora100 && item.es_Hora_ingreso_jornada1 > finalHora100 && ((TimeSpan)item.es_Hora_ingreso_jornada1).Hours > 12)



                                    )
                                {
                                    Horas_100 = Get_Horas_100_x_dia(item);// calculo de horas al 100%
                                }
                            }
                            else// si tiene doble jornada
                            {
                            }



                            #endregion
                            #region Horas al 50% de 18:00 a 24:00

                            if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0)// tiene horas al 50% de 06:00h a 24:00h en una sola jornada
                            {
                                if ((item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 < finalHora50) ||
                                    (item.es_Hora_salida_jornada1 > inicioHora50 && item.es_Hora_salida_jornada1 < finalHora50) ||
                                    (item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 > finalHora50)
                                    )
                                {
                                    Horas_50 = Get_Horas_50_x_dia(item);// calculo de horas al 50%
                                }
                            }
                            else// si tiene horas al 50% y trabajo dos jornadas
                            {
                                if (((item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 < finalHora50) ||
                                     (item.es_Hora_salida_jornada1 > inicioHora50 && item.es_Hora_salida_jornada1 < finalHora50) ||
                                     (item.es_Hora_ingreso_jornada1 > inicioHora50 && item.es_Hora_ingreso_jornada1 > finalHora50))
                                    ||
                                    ((item.es_Hora_ingreso_jornada2 > inicioHora50 && item.es_Hora_ingreso_jornada2 < finalHora50) ||
                                     (item.es_Hora_salida_jornada2 > inicioHora50 && item.es_Hora_salida_jornada2 < finalHora50) ||
                                     (item.es_Hora_ingreso_jornada2 > inicioHora50 && item.es_Hora_ingreso_jornada2 > finalHora50))
                                    )
                                {
                                    Horas_50 = Get_Horas_50_x_dia_con_dos_jornadas(item);// calculo de horas al 50% con doble jornada
                                }
                            }
                            #endregion
                            #region Horas al 25% de 19:00 a 06:00
                            if (((TimeSpan)item.es_Hora_ingreso_jornada2).Hours == 0) // tiene horas al 25% de 19:00h a 06:00h en una sola jornada
                            {                                                         // tiene horas al 25% de 19:00h a 06:00h en la jornada 1
                                if ((item.es_Hora_ingreso_jornada1 >= inicioHora25 && item.es_Hora_ingreso_jornada1 <= finalHora25) ||
                                    (item.es_Hora_salida_jornada1 >= inicioHora25 && item.es_Hora_salida_jornada1 <= finalHora25) ||
                                    (item.es_Hora_ingreso_jornada1 >= inicioHora25 && item.es_Hora_ingreso_jornada1 >= finalHora25) ||
                                    (item.es_Hora_ingreso_jornada1 <= inicioHora25 && item.es_Hora_ingreso_jornada1 >= finalHora25 && ((TimeSpan)item.es_Hora_ingreso_jornada1).Hours > 12)

                                    )
                                {
                                    if (((TimeSpan)item.es_Hora_ingreso_jornada1).Hours > 0)
                                    {
                                        if (dia_Semana != 6 && dia_Semana != 7)
                                        {
                                            Horas_25 = Get_Horas_25_x_dia(item); // calculo de horas al 25%
                                        }
                                    }
                                }
                            }
                            else
                            {
                            }
                            #endregion
                        }
                    }



                    // creo las novedades
                    if (info_parametro.Se_calcula_horas_Extras_al100)
                    {
                        if (Horas_100 > 0)// si es que tiene horas al 100%
                        {
                            ro_Empleado_Novedad_Det_Info info_novedad_100 = new ro_Empleado_Novedad_Det_Info();
                            info_novedad_100.IdEmpresa     = param.IdEmpresa;
                            info_novedad_100.IdEmpleado    = IdEmpleado;
                            info_novedad_100.Nombre        = Nombre;
                            info_novedad_100.em_cedula     = Cedula;
                            info_novedad_100.IdNovedad     = 0;
                            info_novedad_100.Secuencia     = 1;
                            info_novedad_100.IdRubro       = "9";
                            info_novedad_100.FechaPago     = fecha_pago;
                            info_novedad_100.Sueldo_Actual = Suel_Actual;
                            info_novedad_100.Calculo_Horas_extras_Sobre = item.grupo.Calculo_Horas_extras_Sobre;

                            if (item.grupo.Calculo_Horas_extras_Sobre > 0)
                            {
                                info_novedad_100.Valor = Math.Round(Horas_100 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 2), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            else
                            {
                                info_novedad_100.Valor = Math.Round(Horas_100 * ((Suel_Actual / 160) * 2), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            info_novedad_100.NumHoras    = Horas_100;
                            info_novedad_100.Observacion = "Horas extras al 100% correspondiente al " + fecha_pago.Month.ToString().PadLeft(2, '0') + "/" + fecha_pago.Year;
                            info_novedad_100.es_Hora_ingreso_jornada1 = item.es_Hora_ingreso_jornada1;
                            info_novedad_100.es_Hora_ingreso_jornada2 = item.es_Hora_ingreso_jornada2;
                            info_novedad_100.es_Hora_salida_jornada1  = item.es_Hora_salida_jornada1;
                            info_novedad_100.es_Hora_salida_jornada2  = item.es_Hora_salida_jornada2;
                            if (item.es_Fech_remplazo != null)
                            {
                                info_novedad_100.es_Fech_remplazo = Convert.ToDateTime(item.es_Fech_remplazo);
                            }
                            info_novedad_100.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas;
                            info_novedad_100.cargo        = item.cargo;
                            info_novedad_100.departamento = item.departamento;
                            lista_novedad_detalle.Add(info_novedad_100);
                        }
                    }
                    if (info_parametro.Se_calcula_horas_Extras_al50)
                    {
                        if (Horas_50 > 0)// si es que tiene horas al 50%
                        {
                            ro_Empleado_Novedad_Det_Info info_novedad_50 = new ro_Empleado_Novedad_Det_Info();

                            info_novedad_50.IdEmpresa     = param.IdEmpresa;
                            info_novedad_50.IdEmpleado    = IdEmpleado;
                            info_novedad_50.Nombre        = Nombre;
                            info_novedad_50.em_cedula     = Cedula;
                            info_novedad_50.IdNovedad     = 0;
                            info_novedad_50.Secuencia     = 1;
                            info_novedad_50.IdRubro       = "8";
                            info_novedad_50.FechaPago     = fecha_pago;
                            info_novedad_50.Sueldo_Actual = Suel_Actual;
                            info_novedad_50.Calculo_Horas_extras_Sobre = item.grupo.Calculo_Horas_extras_Sobre;

                            if (item.grupo.Calculo_Horas_extras_Sobre > 0)
                            {
                                info_novedad_50.Valor = Math.Round(Horas_50 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 1.5), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            else
                            {
                                info_novedad_50.Valor = Math.Round(Horas_50 * ((Suel_Actual / 160) * 1.5), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            info_novedad_50.NumHoras    = Horas_50;
                            info_novedad_50.Observacion = "Horas extras al 50% correspondiente al " + fecha_pago.Month.ToString().PadLeft(2, '0') + "/" + fecha_pago.Year;
                            info_novedad_50.es_Hora_ingreso_jornada1 = item.es_Hora_ingreso_jornada1;
                            info_novedad_50.es_Hora_ingreso_jornada2 = item.es_Hora_ingreso_jornada2;
                            info_novedad_50.es_Hora_salida_jornada1  = item.es_Hora_salida_jornada1;
                            info_novedad_50.es_Hora_salida_jornada2  = item.es_Hora_salida_jornada2;
                            if (item.es_Fech_remplazo != null)
                            {
                                info_novedad_50.es_Fech_remplazo = Convert.ToDateTime(item.es_Fech_remplazo);
                            }
                            info_novedad_50.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas;
                            info_novedad_50.cargo        = item.cargo;
                            info_novedad_50.departamento = item.departamento;
                            lista_novedad_detalle.Add(info_novedad_50);
                        }
                    }

                    if (info_parametro.Se_calcula_horas_Extras_al25)
                    {
                        if (Horas_25 > 0)// si es que tiene horas al 25%
                        {
                            ro_Empleado_Novedad_Det_Info info_novedad_25 = new ro_Empleado_Novedad_Det_Info();
                            info_novedad_25.IdEmpresa     = param.IdEmpresa;
                            info_novedad_25.IdEmpleado    = IdEmpleado;
                            info_novedad_25.Nombre        = Nombre;
                            info_novedad_25.em_cedula     = Cedula;
                            info_novedad_25.IdNovedad     = 0;
                            info_novedad_25.Secuencia     = 1;
                            info_novedad_25.IdRubro       = "7";
                            info_novedad_25.FechaPago     = fecha_pago;
                            info_novedad_25.Sueldo_Actual = Suel_Actual;
                            info_novedad_25.Calculo_Horas_extras_Sobre = item.grupo.Calculo_Horas_extras_Sobre;
                            if (item.grupo.Calculo_Horas_extras_Sobre > 0)
                            {
                                info_novedad_25.Valor = Math.Round(Horas_25 * ((Suel_Actual / item.grupo.Calculo_Horas_extras_Sobre) * 0.25), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            else
                            {
                                info_novedad_25.Valor = Math.Round(Horas_25 * ((Suel_Actual / 160) * 0.25), 2);// aqui cambiar segun el parametro del empleado se calcula sobre 160 o 240
                            }
                            info_novedad_25.NumHoras    = Horas_25;
                            info_novedad_25.Observacion = "Horas extras al 25% correspondiente al " + fecha_pago.Month.ToString().PadLeft(2, '0') + "/" + fecha_pago.Year;
                            info_novedad_25.es_Hora_ingreso_jornada1 = item.es_Hora_ingreso_jornada1;
                            info_novedad_25.es_Hora_ingreso_jornada2 = item.es_Hora_ingreso_jornada2;
                            info_novedad_25.es_Hora_salida_jornada1  = item.es_Hora_salida_jornada1;
                            info_novedad_25.es_Hora_salida_jornada2  = item.es_Hora_salida_jornada2;

                            if (item.es_Fech_remplazo != null)
                            {
                                info_novedad_25.es_Fech_remplazo = Convert.ToDateTime(item.es_Fech_remplazo);
                            }
                            info_novedad_25.es_tot_horasTrabajadas = item.es_tot_horasTrabajadas;
                            info_novedad_25.cargo        = item.cargo;
                            info_novedad_25.departamento = item.departamento;
                            lista_novedad_detalle.Add(info_novedad_25);
                        }
                    }



                    // ro nomina por horas extras para la liquidacion
                    ro_Nomina_X_Horas_Extras_Info Info_ro_Nomina_X_Horas_Extras = new Info.Roles.ro_Nomina_X_Horas_Extras_Info();
                    Info_ro_Nomina_X_Horas_Extras.IdEmpresa         = item.IdEmpresa;
                    Info_ro_Nomina_X_Horas_Extras.IdEmpleado        = item.IdEmpleado;
                    Info_ro_Nomina_X_Horas_Extras.IdNominaTipo      = item.Id_nomina_Tipo;
                    Info_ro_Nomina_X_Horas_Extras.IdNominaTipoLiqui = 1;
                    Info_ro_Nomina_X_Horas_Extras.IdPeriodo         = 2016;
                    Info_ro_Nomina_X_Horas_Extras.IdCalendario      = 20145;
                    Info_ro_Nomina_X_Horas_Extras.IdTurno           = 1;
                    Info_ro_Nomina_X_Horas_Extras.IdHorario         = 1;
                    Info_ro_Nomina_X_Horas_Extras.FechaRegistro     = Convert.ToDateTime(item.es_fechaRegistro);

                    Info_ro_Nomina_X_Horas_Extras.time_entrada1 = item.es_Hora_ingreso_jornada1;
                    Info_ro_Nomina_X_Horas_Extras.time_entrada2 = item.es_Hora_ingreso_jornada2;
                    Info_ro_Nomina_X_Horas_Extras.time_salida1  = item.es_Hora_salida_jornada1;
                    Info_ro_Nomina_X_Horas_Extras.time_salida2  = item.es_Hora_salida_jornada2;
                    if (Horas_25 < 0)
                    {
                        Horas_25 = 0;
                    }

                    if (Horas_50 < 0)
                    {
                        Horas_50 = 0;
                    }

                    if (Horas_100 < 0)
                    {
                        Horas_100 = 0;
                    }

                    Info_ro_Nomina_X_Horas_Extras.hora_extra25  = Horas_25;
                    Info_ro_Nomina_X_Horas_Extras.hora_extra50  = Horas_50;
                    Info_ro_Nomina_X_Horas_Extras.hora_extra100 = Horas_100;

                    Info_ro_Nomina_X_Horas_Extras.hora_atraso    = 0;
                    Info_ro_Nomina_X_Horas_Extras.hora_temprano  = 0;
                    Info_ro_Nomina_X_Horas_Extras.hora_trabajada = item.es_tot_horasTrabajadas;
                    Info_ro_Nomina_X_Horas_Extras.UsuarioIngresa = param.IdUsuario;
                    lista_nomina_x_horas_Hextras.Add(Info_ro_Nomina_X_Horas_Extras);
                }



                return(lista_novedad_detalle);
            }
            catch (Exception)
            {
                return(new List <ro_Empleado_Novedad_Det_Info>());
            }
        }