Example #1
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);
            }
        }