Exemple #1
0
        public List <ro_Grupo_empleado_det_Info> Get_lista(int IdEmpresa)
        {
            try
            {
                List <ro_Grupo_empleado_det_Info> lista = new List <ro_Grupo_empleado_det_Info>();

                using (EntityRoles_FJ Context = new EntityRoles_FJ())
                {
                    var contact = from q in Context.vwro_Grupo_empleado_det
                                  where q.IdEmpresa == IdEmpresa &&
                                  q.Valor_bono > 0
                                  select q;

                    foreach (var info in contact)
                    {
                        ro_Grupo_empleado_det_Info add = new ro_Grupo_empleado_det_Info();
                        add.IdEmpresa              = info.IdEmpresa;
                        add.IdGrupo                = info.IdGrupo;
                        add.cod_Pago_Variable      = info.cod_Pago_Variable;
                        add.Porcentaje_calculo     = info.Porcentaje_calculo;
                        add.cod_Pago_Variable      = info.cod_Pago_Variable;
                        add.cod_Pago_Variable_enum = (ero_parametro_x_pago_variable_tipo)Enum.Parse(typeof(ero_parametro_x_pago_variable_tipo), info.cod_Pago_Variable);
                        add.Valor_bono             = info.Valor_bono;
                        add.IdRubro                = info.IdRubro;
                        add.IdTipoServicio         = info.IdTipoServicio;
                        lista.Add(add);
                    }
                }
                return(lista);
            }
            catch (Exception ex)
            {
                string array = 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(), "", array, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref MensajeError);
                MensajeError = ex.ToString() + " " + ex.Message;
                throw new Exception(ex.ToString());
            }
        }
Exemple #2
0
        public List <ro_Grupo_empleado_det_Info> Get_lista(int IdEmpresa, int IdGrupo)
        {
            try
            {
                List <ro_Grupo_empleado_det_Info> lista = new List <ro_Grupo_empleado_det_Info>();

                using (EntityRoles_FJ Context = new EntityRoles_FJ())
                {
                    var contact = from q in Context.ro_Grupo_empleado_det
                                  where q.IdEmpresa == IdEmpresa &&
                                  q.IdGrupo == IdGrupo
                                  select q;

                    foreach (var info in contact)
                    {
                        ro_Grupo_empleado_det_Info add = new ro_Grupo_empleado_det_Info();
                        add.IdEmpresa          = info.IdEmpresa;
                        add.IdGrupo            = info.IdGrupo;
                        add.cod_Pago_Variable  = info.cod_Pago_Variable;
                        add.Porcentaje_calculo = info.Porcentaje_calculo;
                        add.icono_eliminar     = true;
                        lista.Add(add);
                    }
                }
                return(lista);
            }
            catch (Exception ex)
            {
                string array = 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(), "", array, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref MensajeError);
                MensajeError = ex.ToString() + " " + ex.Message;
                throw new Exception(ex.ToString());
            }
        }
Exemple #3
0
        private List <ro_Empleado_Novedad_Info> Get_Novedades(List <ro_fectividad_Entrega_x_Periodo_Empleado_Det_Info> lista)
        {
            try
            {
                List <ro_Empleado_Novedad_Info>    listado_novedades  = new List <ro_Empleado_Novedad_Info>();
                ero_parametro_x_pago_variable_tipo tipo_variable      = new ero_parametro_x_pago_variable_tipo();
                ro_Grupo_empleado_det_Info         info_grupo_detalle = new ro_Grupo_empleado_det_Info();


                foreach (var item in lista)
                {
                    string IdRubro      = "";
                    double Valor_ganado = 0;

                    #region EFEC_ENTRE
                    if (item.Efectividad_Entrega_aplica > 0)
                    {
                        tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_ENTRE;
                        ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                        info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable).FirstOrDefault();

                        info_novedad.IdEmpresa          = item.IdEmpresa;
                        info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                        info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                        info_novedad.IdEmpleado         = item.IdEmpleado;
                        info_novedad.Fecha            = item.fecha_Pago;
                        info_novedad.TotalValor       = item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                        info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                        info_novedad.NumCoutas        = 1;
                        info_novedad.IdUsuario        = param.IdUsuario;
                        info_novedad.Fecha_Transac    = DateTime.Now;
                        info_novedad.Estado           = "A";
                        info_novedad.IdCalendario     = item.IdPeriodo.ToString();


                        // detalle de la novedad

                        ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                        info_detalle.IdEmpresa      = item.IdEmpresa;
                        info_detalle.IdEmpleado     = item.IdEmpleado;
                        info_detalle.Secuencia      = 1;
                        info_detalle.IdRol          = null;
                        info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                        info_detalle.FechaPago      = item.fecha_Pago;
                        info_detalle.Valor          = item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                        info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                        info_detalle.EstadoCobro    = "PEN";
                        info_detalle.Estado         = "A";
                        info_detalle.IdCalendario   = item.IdPeriodo.ToString();
                        info_novedad.InfoNovedadDet = info_detalle;
                        listado_novedades.Add(info_novedad);
                    }

                    #endregion



                    #region EFEC_ENTRE
                    if (item.Efectividad_Entrega_aplica > 0)
                    {
                        tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_ENTRE;
                        ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                        info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable).FirstOrDefault();

                        info_novedad.IdEmpresa          = item.IdEmpresa;
                        info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                        info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                        info_novedad.IdEmpleado         = item.IdEmpleado;
                        info_novedad.Fecha            = item.fecha_Pago;
                        info_novedad.TotalValor       = item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                        info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                        info_novedad.NumCoutas        = 1;
                        info_novedad.IdUsuario        = param.IdUsuario;
                        info_novedad.Fecha_Transac    = DateTime.Now;
                        info_novedad.Estado           = "A";
                        info_novedad.IdCalendario     = item.IdPeriodo.ToString();


                        // detalle de la novedad

                        ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                        info_detalle.IdEmpresa      = item.IdEmpresa;
                        info_detalle.IdEmpleado     = item.IdEmpleado;
                        info_detalle.Secuencia      = 1;
                        info_detalle.IdRol          = null;
                        info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                        info_detalle.FechaPago      = item.fecha_Pago;
                        info_detalle.Valor          = item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                        info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                        info_detalle.EstadoCobro    = "PEN";
                        info_detalle.Estado         = "A";
                        info_detalle.IdCalendario   = item.IdPeriodo.ToString();
                        info_novedad.InfoNovedadDet = info_detalle;
                        listado_novedades.Add(info_novedad);
                    }

                    #endregion



                    #region EFEC_VOL
                    if (item.Efectividad_Entrega_aplica > 0)
                    {
                        tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_VOL;
                        ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                        info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable).FirstOrDefault();

                        info_novedad.IdEmpresa          = item.IdEmpresa;
                        info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                        info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                        info_novedad.IdEmpleado         = item.IdEmpleado;
                        info_novedad.Fecha            = item.fecha_Pago;
                        info_novedad.TotalValor       = item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;;
                        info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                        info_novedad.NumCoutas        = 1;
                        info_novedad.IdUsuario        = param.IdUsuario;
                        info_novedad.Fecha_Transac    = DateTime.Now;
                        info_novedad.Estado           = "A";
                        info_novedad.IdCalendario     = item.IdPeriodo.ToString();


                        // detalle de la novedad

                        ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                        info_detalle.IdEmpresa      = item.IdEmpresa;
                        info_detalle.IdEmpleado     = item.IdEmpleado;
                        info_detalle.Secuencia      = 1;
                        info_detalle.IdRol          = null;
                        info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                        info_detalle.FechaPago      = item.fecha_Pago;
                        info_detalle.Valor          = item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                        info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                        info_detalle.EstadoCobro    = "PEN";
                        info_detalle.Estado         = "A";
                        info_detalle.IdCalendario   = item.IdPeriodo.ToString();
                        info_novedad.InfoNovedadDet = info_detalle;
                        listado_novedades.Add(info_novedad);
                    }

                    #endregion
                }

                return(listado_novedades);
            }
            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);
            }
        }
        private List <ro_Empleado_Novedad_Info> Get_Novedades(List <ro_fectividad_Entrega_x_Periodo_Empleado_Det_Info> lista, int TipoServicio)
        {
            try
            {
                ro_fectividad_Entrega_tipoServicio_Data odata_servicio = new ro_fectividad_Entrega_tipoServicio_Data();

                var info_servicio = odata_servicio.Get_Info(param.IdEmpresa, TipoServicio);

                List <ro_Empleado_Novedad_Info>    listado_novedades  = new List <ro_Empleado_Novedad_Info>();
                ero_parametro_x_pago_variable_tipo tipo_variable      = new ero_parametro_x_pago_variable_tipo();
                ro_Grupo_empleado_det_Info         info_grupo_detalle = new ro_Grupo_empleado_det_Info();


                foreach (var item in lista)
                {
                    #region SI LA VARIABLE ES VEVIDAS

                    if (info_servicio.ts_codigo == etipoServicio.BEBIDAS.ToString())
                    {
                        #region EFEC_ENTRE
                        if (item.Efectividad_Entrega_aplica > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_ENTRE;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha            = item.fecha_Pago;
                            info_novedad.TotalValor       = item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo + "VB";

                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa      = item.IdEmpresa;
                            info_detalle.IdEmpleado     = item.IdEmpleado;
                            info_detalle.Secuencia      = 1;
                            info_detalle.IdRol          = null;
                            info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago      = item.fecha_Pago;
                            info_detalle.Valor          = (item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo + "VB";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);
                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                        #region EFEC_ENTRE
                        if (item.Recuperacion_cartera_aplica > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.REC_CAR;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha            = item.fecha_Pago;
                            info_novedad.TotalValor       = item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo.ToString() + "VB";


                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa      = item.IdEmpresa;
                            info_detalle.IdEmpleado     = item.IdEmpleado;
                            info_detalle.Secuencia      = 1;
                            info_detalle.IdRol          = null;
                            info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago      = item.fecha_Pago;
                            info_detalle.Valor          = (item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo.ToString() + "VB";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);
                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                        #region EFEC_VOL
                        if (item.Efectividad_Volumen_aplica > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_VOL;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha            = item.fecha_Pago;
                            info_novedad.TotalValor       = item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;;
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo.ToString() + "VB";


                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa      = item.IdEmpresa;
                            info_detalle.IdEmpleado     = item.IdEmpleado;
                            info_detalle.Secuencia      = 1;
                            info_detalle.IdRol          = null;
                            info_detalle.IdRubro        = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago      = item.fecha_Pago;
                            info_detalle.Valor          = (item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo.ToString() + "VB";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);
                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                    }

                    #endregion


                    #region SI LA VARIABLE ES ALIMENTOS

                    if (info_servicio.ts_codigo == etipoServicio.ALIMENTOS.ToString())
                    {
                        #region EFEC_ENTRE
                        if (item.Efectividad_Entrega_aplica > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_ENTRE_ALIM;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha = item.fecha_Pago;
                            if (item.Efectividad_Entrega_aplica <= 1)
                            {
                                info_novedad.TotalValor = (item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            }
                            else
                            {
                                info_novedad.TotalValor = item.Efectividad_Entrega_aplica;
                            }
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo + "VA";

                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa  = item.IdEmpresa;
                            info_detalle.IdEmpleado = item.IdEmpleado;
                            info_detalle.Secuencia  = 1;
                            info_detalle.IdRol      = null;
                            info_detalle.IdRubro    = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago  = item.fecha_Pago;
                            if (item.Efectividad_Entrega_aplica <= 1)
                            {
                                info_detalle.Valor = (item.Efectividad_Entrega_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            }
                            else
                            {
                                info_detalle.Valor = item.Efectividad_Entrega_aplica;
                            }
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo + "VA";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);

                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                        #region EFEC_ENTRE
                        if (item.Recuperacion_cartera_aplica > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.REC_CAR_ALIM;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha = item.fecha_Pago;
                            if (item.Recuperacion_cartera_aplica <= 1)
                            {
                                info_novedad.TotalValor = item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo;
                            }
                            else
                            {
                                info_novedad.TotalValor = item.Recuperacion_cartera_aplica;
                            }
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo.ToString() + "VA";


                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa  = item.IdEmpresa;
                            info_detalle.IdEmpleado = item.IdEmpleado;
                            info_detalle.Secuencia  = 1;
                            info_detalle.IdRol      = null;
                            info_detalle.IdRubro    = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago  = item.fecha_Pago;
                            if (item.Recuperacion_cartera_aplica <= 1)
                            {
                                info_detalle.Valor = (item.Recuperacion_cartera_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            }
                            else
                            {
                                info_detalle.Valor = item.Recuperacion_cartera_aplica;
                            }
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo.ToString() + "VA";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);
                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                        #region EFEC_VOL
                        if (item.Efectividad_Volumen > 0)
                        {
                            tipo_variable = ero_parametro_x_pago_variable_tipo.EFEC_VOL_ALIM;
                            ro_Empleado_Novedad_Info info_novedad = new ro_Empleado_Novedad_Info();
                            info_grupo_detalle = lista_detalle_grupos.Where(v => v.cod_Pago_Variable_enum == tipo_variable && v.IdGrupo == item.IdGrupo).FirstOrDefault();

                            info_novedad.IdEmpresa          = item.IdEmpresa;
                            info_novedad.IdNomina_Tipo      = item.IdNomina_Tipo;
                            info_novedad.IdNomina_TipoLiqui = item.IdNomina_tipo_Liq;
                            info_novedad.IdEmpleado         = item.IdEmpleado;
                            info_novedad.Fecha = item.fecha_Pago;
                            if (item.Efectividad_Volumen_aplica <= 1)
                            {
                                info_novedad.TotalValor = (item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            }
                            else
                            {
                                info_novedad.TotalValor = item.Efectividad_Volumen_aplica;
                            }
                            info_novedad.Fecha_PrimerPago = item.fecha_Pago;
                            info_novedad.NumCoutas        = 1;
                            info_novedad.IdUsuario        = param.IdUsuario;
                            info_novedad.Fecha_Transac    = DateTime.Now;
                            info_novedad.Estado           = "A";
                            info_novedad.IdCalendario     = item.IdPeriodo.ToString() + "VA";


                            // detalle de la novedad

                            ro_Empleado_Novedad_Det_Info info_detalle = new ro_Empleado_Novedad_Det_Info();
                            info_detalle.IdEmpresa  = item.IdEmpresa;
                            info_detalle.IdEmpleado = item.IdEmpleado;
                            info_detalle.Secuencia  = 1;
                            info_detalle.IdRol      = null;
                            info_detalle.IdRubro    = info_grupo_detalle.IdRubro;
                            info_detalle.FechaPago  = item.fecha_Pago;
                            if (item.Efectividad_Volumen_aplica <= 1)
                            {
                                info_detalle.Valor = (item.Efectividad_Volumen_aplica * info_grupo_detalle.Valor_bono * info_grupo_detalle.Porcentaje_calculo) * info_servicio.Porcentaje;
                            }
                            else
                            {
                                info_detalle.Valor = item.Efectividad_Volumen_aplica;
                            }
                            info_detalle.Observacion    = "Novedad generada por procesos del sistema del periodo " + item.IdPeriodo;
                            info_detalle.EstadoCobro    = "PEN";
                            info_detalle.Estado         = "A";
                            info_detalle.IdCalendario   = item.IdPeriodo.ToString() + "VA";
                            info_novedad.InfoNovedadDet = info_detalle;
                            info_novedad.LstDetalle.Add(info_detalle);
                            listado_novedades.Add(info_novedad);
                        }

                        #endregion
                    }

                    #endregion
                }

                return(listado_novedades);
            }
            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);
            }
        }