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