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