function jsaAmortizarLetras($persona, $credito, $letra, $amortizable) { $NLetra = $letra + 1; $xCred = new cCredito($credito); $xCred->init(); if ($xCred->isAFinalDePlazo() == false) { $xPlan = new cPlanDePagos(); $xPlan->initByCredito($credito); $msg = ""; $DPlan = $xPlan->getLetrasInArray(OPERACION_CLAVE_PLAN_CAPITAL, $NLetra); $amortizable = setNoMenorQueCero($amortizable); for ($ixletra = $NLetra; $ixletra <= $xCred->getPagosAutorizados(); $ixletra++) { if (isset($DPlan[$ixletra])) { $monto = setNoMenorQueCero($DPlan[$ixletra]); if ($amortizable > 0) { if ($amortizable >= $monto) { //cancelar $xPlan->setNeutralizarParcialidad($ixletra); } else { $xPlan->setActualizarParcialidad($ixletra, $monto - $amortizable, false, false); } } $msg .= "WARN\t {$ixletra} --- {$amortizable} {$monto};\r\n"; $amortizable -= $monto; } } $msg .= $xPlan->getMessages(); if (MODO_DEBUG == true) { setLog($msg); } } }
function setAbonoCapital($monto, $parcialidad = SYS_UNO, $cheque = DEFAULT_CHEQUE, $tipo_de_pago = DEFAULT_TIPO_PAGO, $recibo_fiscal = DEFAULT_RECIBO_FISCAL, $observaciones = "", $grupo = DEFAULT_GRUPO, $fecha = false, $recibo = false) { if ($monto != 0) { $this->mMessages .= "WARN\tRECIBO >>>> {$recibo}\r\n"; $grupo = setNoMenorQueCero($grupo); if ($grupo == DEFAULT_GRUPO) { $grupo = $this->mGrupoAsociado; } if (setNoMenorQueCero($this->mNumeroSocio) <= DEFAULT_SOCIO) { $this->init(); } if ($fecha == false) { $fecha = $this->mFechaOperacion; } $socio = $this->mNumeroSocio; $CRecibo = new cReciboDeOperacion(RECIBOS_TIPO_PAGO_CREDITO, true, $recibo); //Set a Mvto Contable $CRecibo->setGenerarPoliza(); $CRecibo->setGenerarTesoreria(); $CRecibo->setGenerarBancos(); if (setNoMenorQueCero($recibo) <= 0) { if (setNoMenorQueCero($this->mReciboDeOperacion) > 0) { $CRecibo->setNumeroDeRecibo($this->mReciboDeOperacion, true); $recibo = $this->mReciboDeOperacion; } } else { $this->mReciboDeOperacion = $recibo; } //Agregar recibo si no hay if (setNoMenorQueCero($recibo) <= 0) { $recibo = $CRecibo->setNuevoRecibo($socio, $this->mNumeroCredito, $this->mFechaOperacion, $parcialidad, RECIBOS_TIPO_PAGO_CREDITO, $observaciones, $cheque, $tipo_de_pago, $recibo_fiscal, $grupo); //Checar si se agrego el recibo if (setNoMenorQueCero($recibo) > 0) { $this->mMessages .= "OK\tSe Agrego Exitosamente el Recibo {$recibo} de la Cuenta " . $this->mNumeroCredito . " \r\n"; $this->mReciboDeOperacion = $recibo; $this->mSucess = true; } else { $this->mMessages .= "ERROR\tSe Fallo al Agregar el Recibo {$recibo} de la Cuenta " . $this->mNumeroCredito . " \r\n"; $this->mSucess = false; } } $this->mReciboDeOperacion = $recibo; if (setNoMenorQueCero($recibo) > 0) { //Agregar el Movimiento $CRecibo->setNuevoMvto($fecha, $monto, OPERACION_CLAVE_PAGO_CAPITAL, $parcialidad, $observaciones, 1, TM_ABONO, $socio, $this->mNumeroCredito); $this->mNuevoSaldo = $this->mSdoCapitalInsoluto - $monto; $this->mMessages .= $CRecibo->getMessages(); $this->mSucess = true; //Actualizar la Cuenta $arrAct = array("saldo_actual" => $this->mNuevoSaldo); $this->mMessages .= "WARN\tSALDO\tSe Actualiza el Saldo de " . $this->mSdoCapitalInsoluto . " a " . $this->mNuevoSaldo . " \r\n"; $this->setUpdate($arrAct); } else { $this->mMessages .= "ERROR\tNo Existe Recibo con el cual trabajar ({$recibo}) \r\n"; } //afectar el capital if ($this->mSucess == true) { $numero_plan = $this->getNumeroDePlanDePagos(); if (setNoMenorQueCero($numero_plan) > 0) { $xPlan = new cPlanDePagos($numero_plan); //no se necesita inicializar el plan de pagos $xPlan->setActualizarParcialidad($parcialidad, "(afectacion_real - {$monto})"); } } $this->mObjRec = $CRecibo; $this->mMessages .= $CRecibo->getMessages(); //Agrega el Devengado de Interes } return $recibo; }
if ($saldo_actual <= $saldo_inicial and $saldo_final > 0 and ($estatus != CREDITO_ESTADO_AUTORIZADO and $estatus != CREDITO_ESTADO_SOLICITADO) and $MontoCubierto > 0) { $LetraActualizada = $monto_capital_de_la_parcialidad <= $MontoCubierto ? 0 : $monto_capital_de_la_parcialidad - $MontoCubierto; $mod = 0; //274 - 275 = -1 if ($MontoCubierto - $monto_capital_de_la_parcialidad < TOLERANCIA_SALDOS * -1) { if ($LetraActualizada > TOLERANCIA_SALDOS) { $mod = false; } } $LetraActualizada = $LetraActualizada < 0 ? 0 : $LetraActualizada; $InteresActual = $mod; $AhorroActual = $mod; $ExtraActual = $mod; //obtener el monto del capital $xPlan->init(); $xPlan->setActualizarParcialidad($letra, $LetraActualizada, $InteresActual, $AhorroActual, $tipo_monto_extra, $ExtraActual); $msgC .= "{$socio}\t{$solicitud}\tL-{$letra}\tLetra Neutralizada " . getFMoney($LetraActualizada) . ", Interes a " . getFMoney($InteresActual) . ", Ahorro a {$AhorroActual}, SI {$saldo_inicial}, SF " . getFMoney($saldo_final) . ", Amort " . getFMoney($MontoCubierto) . " \r\n"; $MontoCubierto -= $monto_capital_de_la_parcialidad; } } else { //Actualizar pago de letra a saldo de capital si existe. if ($credito_abonado == true) { $xPlan->init(); $saldo_letra = $xCred->getSaldoActual(); $xPlan->setActualizarParcialidad($letra, $saldo_letra); } } } //2015-01-05 Agregar Bonificaciones if ($bonificaciones != 0) { $xPlan->addBonificacion($bonificaciones, $fecha_de_pago, $letra, $tipo_monto_extra);