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); } }