示例#1
0
        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)
                      };
            }
        }
示例#2
0
        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)
                      };
            }
        }