public Boolean GrabarDB(ro_Empleado_Novedad_Info info, ref decimal IdNovedad) { try { string msg = ""; int secu = 0; if (oData.GrabarDB(info, ref IdNovedad)) { if (info.LstDetalle.Count() == 0) { info.InfoNovedadDet.IdNovedad = IdNovedad; info.InfoNovedadDet.IdEmpresa = info.IdEmpresa; info.InfoNovedadDet.IdNomina = info.IdNomina_Tipo; info.InfoNovedadDet.IdNominaLiqui = info.IdNomina_TipoLiqui; novedad_detalle_bus.GrabarDB(info.InfoNovedadDet, ref msg); } if (info.LstDetalle.Count() > 0) { foreach (var item in info.LstDetalle) { secu++; item.IdNovedad = IdNovedad; item.Secuencia = secu; novedad_detalle_bus.GrabarDB(item, ref msg); } } } return(true); } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "GrabarDB", ex.Message), ex) { EntityType = typeof(ro_Empleado_Novedad_Bus) }; } }
public Boolean pu_AgregarNovedadPorEmpleado(int idEmpresa, decimal idEmpleado, int idNominaTipo, int idNominaTipoLiqui, int idPeriodo, DateTime fechaInicial, DateTime fechaFinal, Boolean acreditaRol) { try { string idRubroHoraNocturnaExtra25 = "7"; string idRubroHoraExtra50 = "8"; string idRubroHoraExtra100 = "9"; double valorSueldo = 0; double valorHoraMes = 0; //OBTENER EL VALOR DEL SUELDO valorSueldo = oHistoricoSueldoBus.Get_List_HistoricoSueldo(idEmpresa, idEmpleado).FirstOrDefault().SueldoActual; //OBTENER EL VALOR DE LA HORA DE TRABAJO DIURNO valorHoraMes = Convert.ToDouble(valorSueldo / 240); //CORRESPONDE A UNA JORNADA DE 8 HORAS X 30 DIAS ro_Nomina_X_Horas_Extras_Info info = new ro_Nomina_X_Horas_Extras_Info(); ro_Empleado_Novedad_Det_Info tmp = new ro_Empleado_Novedad_Det_Info(); //OBTIENE LAS HORAS EXTRAS DEL EMPLEADO GENERADAS EN EL PROCESO DE CALCULO info = Get_Info_Nomina_X_Horas_Extras(idEmpresa, idEmpleado, idNominaTipo, idNominaTipoLiqui, idPeriodo, ref mensaje); if (info.hora_extra25 > 0) { ro_Empleado_Novedad_Info oRo_Empleado_Novedad_Cab_Info = new ro_Empleado_Novedad_Info(); ro_Empleado_Novedad_Det_Info oRo_Empleado_Novedad_Det_Info = new ro_Empleado_Novedad_Det_Info(); decimal idNovedad = 0; oRo_Empleado_Novedad_Cab_Info.IdEmpresa = info.IdEmpresa; oRo_Empleado_Novedad_Cab_Info.IdEmpleado = info.IdEmpleado; oRo_Empleado_Novedad_Cab_Info.IdNomina_Tipo = idNominaTipo; oRo_Empleado_Novedad_Cab_Info.IdNomina_TipoLiqui = idNominaTipoLiqui; oRo_Empleado_Novedad_Cab_Info.Fecha = fechaFinal; oRo_Empleado_Novedad_Cab_Info.TotalValor = info.hora_extra25 * valorHoraMes * 1.25; oRo_Empleado_Novedad_Cab_Info.IdUsuario = param.IdUsuario; oRo_Empleado_Novedad_Cab_Info.Fecha_Transac = param.Fecha_Transac; oRo_Empleado_Novedad_Cab_Info.Estado = "A"; //BORRAR VALORES PREVIOS DE NOVEDADES tmp = oRo_Empleado_Novedad_Det_Bus.Get_Info_Novedad_det(idEmpresa, idEmpleado, idRubroHoraNocturnaExtra25, fechaFinal, ref mensaje); oRo_Empleado_Novedad_Det_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdEmpleado, tmp.IdNovedad, tmp.Secuencia, ref mensaje); //BORRA EL DETALLE oRo_Empleado_Novedad_Cab_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdNovedad, tmp.IdEmpleado, idNominaTipo, idNominaTipoLiqui, ref mensaje); //BORRA LA CABECERA //GUARDA LA CABECERA if (acreditaRol) { if (oRo_Empleado_Novedad_Cab_Bus.GrabarDB(oRo_Empleado_Novedad_Cab_Info, ref idNovedad, ref mensaje)) { oRo_Empleado_Novedad_Det_Info.IdEmpresa = info.IdEmpresa; oRo_Empleado_Novedad_Det_Info.IdNovedad = idNovedad; oRo_Empleado_Novedad_Det_Info.IdEmpleado = info.IdEmpleado; oRo_Empleado_Novedad_Det_Info.Secuencia = 1; oRo_Empleado_Novedad_Det_Info.IdRubro = idRubroHoraNocturnaExtra25; oRo_Empleado_Novedad_Det_Info.FechaPago = fechaFinal.Date; oRo_Empleado_Novedad_Det_Info.Valor = info.hora_extra25 * valorHoraMes * 1.25; oRo_Empleado_Novedad_Det_Info.EstadoCobro = "PEN"; oRo_Empleado_Novedad_Det_Info.Observacion = "Generado Automáticamente por el Cálculo de Horas Extras"; oRo_Empleado_Novedad_Det_Info.Estado = "A"; oRo_Empleado_Novedad_Det_Info.NumHoras = info.hora_extra25; //GUARDA EL DETALLE oRo_Empleado_Novedad_Det_Bus.GrabarDB(oRo_Empleado_Novedad_Det_Info, ref mensaje); } } } if (info.hora_extra50 > 0) { ro_Empleado_Novedad_Info oRo_Empleado_Novedad_Cab_Info = new ro_Empleado_Novedad_Info(); ro_Empleado_Novedad_Det_Info oRo_Empleado_Novedad_Det_Info = new ro_Empleado_Novedad_Det_Info(); decimal idNovedad = 0; oRo_Empleado_Novedad_Cab_Info.IdEmpresa = info.IdEmpresa; oRo_Empleado_Novedad_Cab_Info.IdEmpleado = info.IdEmpleado; oRo_Empleado_Novedad_Cab_Info.IdNomina_Tipo = idNominaTipo; oRo_Empleado_Novedad_Cab_Info.IdNomina_TipoLiqui = idNominaTipoLiqui; oRo_Empleado_Novedad_Cab_Info.Fecha = fechaFinal; oRo_Empleado_Novedad_Cab_Info.TotalValor = Math.Round(info.hora_extra50 * valorHoraMes * 1.5, 2); oRo_Empleado_Novedad_Cab_Info.IdUsuario = param.IdUsuario; oRo_Empleado_Novedad_Cab_Info.Fecha_Transac = param.Fecha_Transac; oRo_Empleado_Novedad_Cab_Info.Estado = "A"; //BORRAR VALORES PREVIOS DE NOVEDADES tmp = oRo_Empleado_Novedad_Det_Bus.Get_Info_Novedad_det(idEmpresa, idEmpleado, idRubroHoraExtra50, fechaFinal, ref mensaje); oRo_Empleado_Novedad_Det_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdEmpleado, tmp.IdNovedad, tmp.Secuencia, ref mensaje); oRo_Empleado_Novedad_Cab_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdNovedad, tmp.IdEmpleado, idNominaTipo, idNominaTipoLiqui, ref mensaje); //BORRA LA CABECERA //GUARDA LA CABECERA if (acreditaRol) { if (oRo_Empleado_Novedad_Cab_Bus.GrabarDB(oRo_Empleado_Novedad_Cab_Info, ref idNovedad, ref mensaje)) { oRo_Empleado_Novedad_Det_Info.IdEmpresa = info.IdEmpresa; oRo_Empleado_Novedad_Det_Info.IdNovedad = idNovedad; oRo_Empleado_Novedad_Det_Info.IdEmpleado = info.IdEmpleado; oRo_Empleado_Novedad_Det_Info.Secuencia = 1; oRo_Empleado_Novedad_Det_Info.IdRubro = idRubroHoraExtra50; oRo_Empleado_Novedad_Det_Info.FechaPago = fechaFinal.Date; oRo_Empleado_Novedad_Det_Info.Valor = Math.Round(info.hora_extra50 * valorHoraMes * 1.5, 2); oRo_Empleado_Novedad_Det_Info.EstadoCobro = "PEN"; oRo_Empleado_Novedad_Det_Info.Observacion = "Generado Automáticamente por el Cálculo de Horas Extras"; oRo_Empleado_Novedad_Det_Info.Estado = "A"; oRo_Empleado_Novedad_Det_Info.NumHoras = info.hora_extra50; //GUARDA EL DETALLE oRo_Empleado_Novedad_Det_Bus.GrabarDB(oRo_Empleado_Novedad_Det_Info, ref mensaje); } } } if (info.hora_extra100 > 0) { ro_Empleado_Novedad_Info oRo_Empleado_Novedad_Cab_Info = new ro_Empleado_Novedad_Info(); ro_Empleado_Novedad_Det_Info oRo_Empleado_Novedad_Det_Info = new ro_Empleado_Novedad_Det_Info(); decimal idNovedad = 0; oRo_Empleado_Novedad_Cab_Info.IdEmpresa = info.IdEmpresa; oRo_Empleado_Novedad_Cab_Info.IdEmpleado = info.IdEmpleado; oRo_Empleado_Novedad_Cab_Info.IdNomina_Tipo = idNominaTipo; oRo_Empleado_Novedad_Cab_Info.IdNomina_TipoLiqui = idNominaTipoLiqui; oRo_Empleado_Novedad_Cab_Info.Fecha = fechaFinal; oRo_Empleado_Novedad_Cab_Info.TotalValor = info.hora_extra100 * valorHoraMes * 2; oRo_Empleado_Novedad_Cab_Info.IdUsuario = param.IdUsuario; oRo_Empleado_Novedad_Cab_Info.Fecha_Transac = param.Fecha_Transac; oRo_Empleado_Novedad_Cab_Info.Estado = "A"; //BORRAR VALORES PREVIOS DE NOVEDADES tmp = oRo_Empleado_Novedad_Det_Bus.Get_Info_Novedad_det(idEmpresa, idEmpleado, idRubroHoraExtra100, fechaFinal, ref mensaje); oRo_Empleado_Novedad_Det_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdEmpleado, tmp.IdNovedad, tmp.Secuencia, ref mensaje); oRo_Empleado_Novedad_Cab_Bus.EliminarDB(tmp.IdEmpresa, tmp.IdNovedad, tmp.IdEmpleado, idNominaTipo, idNominaTipoLiqui, ref mensaje); //BORRA LA CABECERA //GUARDA LA CABECERA if (acreditaRol) { if (oRo_Empleado_Novedad_Cab_Bus.GrabarDB(oRo_Empleado_Novedad_Cab_Info, ref idNovedad, ref mensaje)) { oRo_Empleado_Novedad_Det_Info.IdEmpresa = info.IdEmpresa; oRo_Empleado_Novedad_Det_Info.IdNovedad = idNovedad; oRo_Empleado_Novedad_Det_Info.IdEmpleado = info.IdEmpleado; oRo_Empleado_Novedad_Det_Info.Secuencia = 1; oRo_Empleado_Novedad_Det_Info.IdRubro = idRubroHoraExtra100; oRo_Empleado_Novedad_Det_Info.FechaPago = fechaFinal.Date; oRo_Empleado_Novedad_Det_Info.Valor = info.hora_extra100 * valorHoraMes * 2; oRo_Empleado_Novedad_Det_Info.EstadoCobro = "PEN"; oRo_Empleado_Novedad_Det_Info.Observacion = "Generado Automáticamente por el Cálculo de Horas Extras"; oRo_Empleado_Novedad_Det_Info.Estado = "A"; oRo_Empleado_Novedad_Det_Info.NumHoras = info.hora_extra100; //GUARDA EL DETALLE oRo_Empleado_Novedad_Det_Bus.GrabarDB(oRo_Empleado_Novedad_Det_Info, ref mensaje); } } } return(true); } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "pu_AgregarNovedadPorEmpleado", ex.Message), ex) { EntityType = typeof(ro_Nomina_X_Horas_Extras_Bus) }; } }