function getFechaDePago($fecha_de_referencia, $numeral) { $periocidad_pago = $this->mPeriocidadDePago; $tipo_de_plan = $this->mTipoDePlanDePago; $dia_1_ab = $this->mDiaDeAbono1; $dia_2_ab = $this->mDiaDeAbono2; $dia_3_ab = $this->mDiaDeAbono3; $xF = new cFecha(0, $fecha_de_referencia); $xF1 = new cFecha(1); if ($tipo_de_plan == CREDITO_TIPO_DIAS_DE_PAGO_NATURAL) { $fecha_de_pago = $numeral == 1 ? $fecha_de_referencia : $xF->setSumarDias($periocidad_pago, $fecha_de_referencia); } else { //$fecha_de_referencia = $xF->get(); if ($periocidad_pago == CREDITO_TIPO_PERIOCIDAD_DIARIO) { //obtener si no es festivo //if(!isset($fecha_de_pago)){$fecha_de_pago = $fecha_de_referencia;} $fecha_de_pago = $numeral == 1 ? $fecha_de_referencia : $xF->setSumarDias(1, $fecha_de_referencia); $fecha_de_pago = $xF->getDiaHabil($fecha_de_pago); } elseif ($periocidad_pago == CREDITO_TIPO_PERIOCIDAD_SEMANAL) { //Obtiene el Dia de Ref + dias del periodo if ($numeral == 1) { //Si es primer pago, es el dia de abono $fecha_de_pago = $fecha_de_referencia; } else { $fecha_de_pago = $xF->setSumarDias($periocidad_pago); if ($this->mDiaDeAbono1 != false) { $fecha_de_pago = $xF->getDiaAbonoSemanal($this->mDiaDeAbono1, $fecha_de_pago); } } } elseif ($periocidad_pago == CREDITO_TIPO_PERIOCIDAD_DECENAL) { $desviacion = intval($periocidad_pago * 0.4); if ($numeral == 1) { //Si es primer pago, es el dia de abono $fecha_de_pago = $fecha_de_referencia; } else { $fecha_de_pago = $xF->setSumarDias($periocidad_pago); $fecha_calculada = $xF->getDiaAbonoDecenal($this->mDiaDeAbono1, $this->mDiaDeAbono2, $this->mDiaDeAbono3, $fecha_de_pago); $fecha_de_pago = $tipo_de_plan != FALLBACK_CREDITOS_DIAS_DE_PAGO ? $fecha_calculada : $fecha_de_pago; } } elseif ($periocidad_pago == CREDITO_TIPO_PERIOCIDAD_CATORCENAL) { //Obtiene el Dia de Ref + dias del periodo if ($numeral == 1) { //Si es primer pago, es el dia de abono $fecha_de_pago = $fecha_de_referencia; } else { $fecha_de_pago = $xF->setSumarDias($periocidad_pago); } } elseif ($periocidad_pago >= CREDITO_TIPO_PERIOCIDAD_QUINCENAL && $periocidad_pago < CREDITO_TIPO_PERIOCIDAD_MENSUAL) { //Obtiene el Dia de Ref + dias del periodo if ($numeral == 1) { //Si es primer pago, es el dia de abono $fecha_de_pago = $fecha_de_referencia; } else { $fecha_de_pago = $xF->setSumarDias($periocidad_pago); if ($tipo_de_plan != FALLBACK_CREDITOS_DIAS_DE_PAGO) { $fecha_de_pago = $xF->getDiaAbonoQuincenal($dia_1_ab, $dia_2_ab, $fecha_de_pago); } } // Tratamiento Mensual o mas, si es menor a la 1era Quincena, baja al dia dos, si no sube un mes al dia dos... } elseif ($periocidad_pago >= CREDITO_TIPO_PERIOCIDAD_MENSUAL && $periocidad_pago < CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) { //Obtiene el Dia de Ref + dias del periodo $fecha_de_pago = $numeral == 1 ? $fecha_de_referencia : $xF->setSumarDias($periocidad_pago); if ($tipo_de_plan != FALLBACK_CREDITOS_DIAS_DE_PAGO) { $fecha_de_pago = $xF->getDiaDeAbonoMensual($dia_1_ab, $fecha_de_pago); } } else { // Tratamiento 360 o Semanal $fecha_de_pago = $xF->setSumarDias($periocidad_pago); } } if ($this->mTipoCreditoSis != CREDITO_PRODUCTO_NOMINA) { $fecha_de_pago = $xF->getDiaHabil($fecha_de_pago); $fecha_de_pago = $xF->getDiaHabil($fecha_de_pago); $fecha_de_pago = $xF->getDiaHabil($fecha_de_pago); $fecha_de_pago = $xF->getDiaHabil($fecha_de_pago); } //if(MODO_DEBUG == true){ $this->mMessages .= $xF->getMessages(); } return $fecha_de_pago; }