Example #1
0
        private Boolean pu_ObtenerFondoReserva()
        {
            try
            {
                //198
                double totalRubroAcumulado = 0;
                double diasTrabajados      = 0;
                int    cont = 0;

                if (_Info != null)
                {
                    ro_rol_detalle_x_rubro_acumulado_Bus oRo_rol_detalle_x_rubro_acumulado_Bus = new ro_rol_detalle_x_rubro_acumulado_Bus();

                    //OBTENER DIAS TRABAJADOS DEL EMPLEADO
                    diasTrabajados = CalcularDiasDeDiferencia(_Info.FechaIngreso, _Info.FechaSalida);

                    //AQUI VERIFICAR SI EL EMPLEADO ACUMULA EL FONDO DE RESERVA
                    ro_empleado_x_rubro_acumulado_Bus oRo_empleado_x_rubro_acumulado_Bus = new ro_empleado_x_rubro_acumulado_Bus();

                    cont = (from a in oRo_empleado_x_rubro_acumulado_Bus.Get_List_empleado_x_rubro_acumulado(_Info.IdEmpresa, _Info.IdEmpleado)
                            where a.IdRubro == "296"
                            select a.IdRubro).Count();

                    //Calcular Fondo de Reserva
                    if (diasTrabajados >= 360)
                    {
                        totalRubroAcumulado = totalRubroAcumulado + (_sueldoProporcional * 0.0833);
                    }

                    //EN CASO QUE EL EMPLEADO MENSUALICE EL FONDO DE RESERVA
                    if (totalRubroAcumulado > 0 && cont == 0)
                    {
                        ro_Acta_Finiquito_Detalle_Info item = new ro_Acta_Finiquito_Detalle_Info();

                        item.IdEmpresa       = _Info.IdEmpresa;
                        item.IdEmpleado      = _Info.IdEmpleado;
                        item.IdActaFiniquito = _Info.IdActaFiniquito;
                        item.Signo           = "+";
                        item.Observacion     = "Fondo de Reserva";
                        item.Valor           = totalRubroAcumulado;

                        //GRABA EL REGISTRO
                        oRo_Acta_Finiquito_Detalle_Bus.GrabarBD(item, 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_ObtenerFondoReserva", ex.Message), ex)
                      {
                          EntityType = typeof(ro_Acta_Finiquito_Bus)
                      };
            }
        }
        private Boolean pu_ObtenerVacacionesPendiente()
        {
            try
            {
                double valor_x_anio = 0;


                if (_Info != null)
                {
                    ro_rol_detalle_x_rubro_acumulado_Bus oRo_rol_detalle_x_rubro_acumulado_Bus = new ro_rol_detalle_x_rubro_acumulado_Bus();
                    //ACUMULAR LAS VACACIONES PROVISIONADAS
                    List <ro_rol_detalle_x_rubro_acumulado_Info> lista = new List <ro_rol_detalle_x_rubro_acumulado_Info>();
                    lista = oRo_rol_detalle_x_rubro_acumulado_Bus.GetListConsultaPorEmpleado(_Info.IdEmpresa, _Info.IdNomina_Tipo, _Info.IdEmpleado);


                    if (lista.Count() > 0)
                    {
                        foreach (var item in lista)
                        {
                            ro_Acta_Finiquito_Detalle_Info info_va = new ro_Acta_Finiquito_Detalle_Info();
                            info_va.IdEmpresa       = item.IdEmpresa;
                            info_va.IdEmpleado      = item.IdEmpleado;
                            info_va.IdActaFiniquito = _Info.IdActaFiniquito;
                            info_va.Observacion     = "Vacaciones no gozadas del último período " + item.pe_anio;
                            if (item.Valor >= valor_x_anio)
                            {
                                info_va.Valor = item.Valor - valor_x_anio;
                            }
                            else
                            {
                                info_va.Valor = item.Valor;
                            }
                            item.IdRubro = info_parametro.IdRubro_acta_finiquito;
                            lst_acta_finiquito_detalle.Add(info_va);
                        }
                    }
                }
                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_ObtenerVacacionesPendiente", ex.Message), ex)
                      {
                          EntityType = typeof(ro_Acta_Finiquito_Bus)
                      };
            }
        }
Example #3
0
        private Boolean pu_ObtenerVacacionesPendiente()
        {
            try
            {
                int    Total_anio           = 0;
                double valor_x_anio         = 0;
                double valor_vac_min_x_anio = 0;
                double Rebaja_vacaciones    = bus_novedad.Get_valor_rebaja_Desahucio(_Info.IdEmpresa, _Info.IdEmpleado, info_parametro.IdRubro_Rebaja_Desahucio);


                if (_Info != null)
                {
                    ro_rol_detalle_x_rubro_acumulado_Bus oRo_rol_detalle_x_rubro_acumulado_Bus = new ro_rol_detalle_x_rubro_acumulado_Bus();
                    //ACUMULAR LAS VACACIONES PROVISIONADAS
                    List <ro_rol_detalle_x_rubro_acumulado_Info> lista = new List <ro_rol_detalle_x_rubro_acumulado_Info>();
                    lista = oRo_rol_detalle_x_rubro_acumulado_Bus.GetListConsultaPorEmpleado(_Info.IdEmpresa, _Info.IdNomina_Tipo, _Info.IdEmpleado);


                    if (lista.Count() > 0)
                    {
                        Total_anio           = lista.Count();
                        valor_vac_min_x_anio = lista.Min(v => v.Valor);
                        valor_x_anio         = Rebaja_vacaciones / Total_anio;

                        if (valor_x_anio > valor_vac_min_x_anio)
                        {
                            valor_x_anio = Rebaja_vacaciones / (Total_anio - 1);
                        }
                        else
                        {
                            valor_x_anio = Rebaja_vacaciones / Total_anio;
                        }

                        //ACUMULAR LAS VACACIONES PROPORCIONAL
                        foreach (var item in lista)
                        {
                            ro_Acta_Finiquito_Detalle_Info info_va = new ro_Acta_Finiquito_Detalle_Info();
                            info_va.IdEmpresa       = item.IdEmpresa;
                            info_va.IdEmpleado      = item.IdEmpleado;
                            info_va.IdActaFiniquito = _Info.IdActaFiniquito;
                            info_va.Signo           = "+";
                            info_va.Observacion     = "Vacaciones no gozadas del último período " + item.pe_anio;
                            if (item.Valor >= valor_x_anio)
                            {
                                info_va.Valor = item.Valor - valor_x_anio;
                            }
                            else
                            {
                                info_va.Valor = item.Valor;
                            }
                            oRo_Acta_Finiquito_Detalle_Bus.GrabarBD(info_va, 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_ObtenerVacacionesPendiente", ex.Message), ex)
                      {
                          EntityType = typeof(ro_Acta_Finiquito_Bus)
                      };
            }
        }