/** * Funcion que genera el Credito Reconvenido * @param float $monto_reconvenido Monto del capital por el Cual se reconviene el credito * @param float $interes_reconvenido Monto del interes por el Cual se reconviene el credito * * @return boolean false/true segun el resultado de la funcion */ function setReconvenido($monto_reconvenido, $interes_reconvenido, $tasa_reconvenida, $periocidad_reconvenida, $pagos_reconvenidos, $observaciones = "", $fecha = false, $recibo = false, $FormaDePago = false, $producto = false, $conservarPlan = false) { $sucess = false; $fecha = $fecha == false ? fechasys() : $fecha; $producto = $producto == false ? $this->getClaveDeProducto() : $producto; $plan_de_pagos = $this->getNumeroDePlanDePagos(); if ($this->mCreditoInicializado == true) { $dias = $periocidad_reconvenida * $pagos_reconvenidos; $vence = sumardias($fecha, $dias); $credito = $this->getNumeroDeCredito(); //$interes_normal = ($saldo_historico * $dias_normales * ($tasa_interes * $factor_interes)) / EACP_DIAS_INTERES; $interes_normal = 0; $FInteres = new cFormula("interes_normal"); $saldo_historico = $this->getMontoAutorizado(); // $monto_reconvenido; $saldo_actual = $this->getSaldoActual(); //$monto_reconvenido; $dias_normales = $dias; $tasa_interes = $tasa_reconvenida; $factor_interes = 1; if ($this->mIVAIncluido == "1") { $factor_interes = 1 / (1 + $this->getTasaIVA()); } //eval( $FInteres->getFormula() ); //Agregar el SQL $xRC = new cCreditos_reconvenio(); $idconvenio = $xRC->query()->getLastID(); $xRC->idcreditos_reconvenio($idconvenio); $xClon = $this->setClonar($saldo_actual, $saldo_historico); $xRC->numero_solicitud($xClon); $xRC->codigo($this->getClaveDePersona()); $xRC->credito_origen($this->getNumeroDeCredito()); $xRC->dias($dias); $xRC->eacp(EACP_CLAVE); $xRC->fecha_reconvenio($fecha); $xRC->idusuario(getUsuarioActual()); $xRC->interes_diario_re($interes_normal); $xRC->interes_pendiente($interes_reconvenido); $xRC->monto_reconvenido($monto_reconvenido); $xRC->pagos_reconvenidos($pagos_reconvenidos); $xRC->periocidad_reconvenida($periocidad_reconvenida); $xRC->sucursal(getSucursal()); $xRC->tasa_reconvenida($tasa_reconvenida); $xRC->vence($vence); $x = $xRC->query()->insert()->save(); if ($x != false) { //Modificar movimientos $observaciones = $observaciones == "" ? "" : "RNV {$idconvenio}. {$credito}|{$xClon}"; //Agregare el Movimiento $cRecReest = new cReciboDeOperacion(RECIBOS_TIPO_ESTADISTICO, true, $recibo); if ($recibo == false) { $cRecReest->setNuevoRecibo($this->mNumeroSocio, $xClon, $fecha, 1, RECIBOS_TIPO_ESTADISTICO, $observaciones, DEFAULT_CHEQUE, TESORERIA_COBRO_NINGUNO, DEFAULT_RECIBO_FISCAL, $this->mGrupoAsociado); } /* * No generar poliza, ya que no ha cumplido el pago sostenido */ //agregar Movimiento por el Monto Reconvenido $cRecReest->setNuevoMvto($fecha, $monto_reconvenido, OPERACION_CLAVE_REESTRUCTURA, 1, $observaciones, 1); $this->mMessages .= $cRecReest->getMessages(); //agregar el Movimiento por Intereses no pagados $xCredClon = new cCredito($xClon); $xCredClon->init(); //Actualizar el saldo y demas $cEsUp = array($this->obj()->tipo_autorizacion()->get() => CREDITO_AUTORIZACION_REESTRUCTURADO, $this->obj()->saldo_vencido()->get() => 0); $xCredClon->setUpdate($cEsUp); $this->setUpdate($cEsUp); $xCredClon->setAbonoCapital($this->getSaldoActual(), $this->mParcialidadActual, DEFAULT_CHEQUE, TESORERIA_COBRO_NINGUNO, DEFAULT_RECIBO_FISCAL, $observaciones); $this->mMessages .= $xCredClon->getMessages(); $sucess = true; $this->mMessages .= $this->setChangeNumeroDeSolicitud($xClon, true); //Cambiar Producto $this->mMessages .= $this->setCambioProducto($producto, $tasa_reconvenida); //cambiar fecha de ministracion $this->mMessages .= $this->setCambiarFechaMinistracion($fecha); //Cambiar Monto Ministrado // $this->mMessages .= $this->setCambiarMontoAutorizado($monto_reconvenido, true); //Ministrar $this->setForceMinistracion(); $this->setMinistrar(DEFAULT_RECIBO_FISCAL, DEFAULT_CHEQUE, $monto_reconvenido, DEFAULT_CUENTA_BANCARIA, 0, 0, "REESTRUCTURA DE CREDITO {$xClon} ", $fecha, false, TESORERIA_PAGO_NINGUNO); if ($this->getTasaDeInteres() != $tasa_reconvenida) { $this->mMessages .= $this->setCambiarTasaNormal($tasa_reconvenida); } $this->mMessages .= $this->setCambiarPeriocidad($periocidad_reconvenida, $pagos_reconvenidos, $FormaDePago); $this->mMessages .= $this->setCambiarMontoMinistrado($monto_reconvenido, true); if ($conservarPlan == true) { if ($plan_de_pagos != false) { //$xRec = new cReciboDeOperacion(RECIBOS_TIPO_PLAN_DE_PAGO, true, $plan_de_pagos); //$xRec->init(); //$xRec->setDocumento($this->getNumeroDeCredito()); $xPlan = new cPlanDePagos($plan_de_pagos); //$xPlan->init(); $xPlan->setCambiarRelacionados($credito); $this->mMessages .= $xPlan->getMessages(OUT_TXT); } } } //END IF //$this->setReestructurarIntereses(); } //END Credito Inicializado return $sucess; }
if (strtotime($rw["fecha_operacion"]) < strtotime($fecha_inicial) or strtotime($rw["fecha_operacion"]) > strtotime($fecha_final)) { $mtd = ""; } $mes = $xF->mes(); $trs .= $mtd; $i++; //Imprime en pantalla el Aviso de NO COINCIDENCIA } //$sdo1 = if (round($sdo, 2) != round($sdoTemp, 2)) { if (FORCE_CUADRE_EN_OPERACIONES == true) { if ($cFC->getEstadoActual() == CREDITO_ESTADO_AUTORIZADO or $cFC->getEstadoActual() == CREDITO_ESTADO_SOLICITADO) { $sdo = 0; } $arrUp = array("saldo_actual" => $sdo); $cFC->setUpdate($arrUp); } if ($cFC->getEstadoActual() != CREDITO_ESTADO_AUTORIZADO and $cFC->getEstadoActual() != CREDITO_ESTADO_SOLICITADO) { if ($output != OUT_EXCEL) { //echo "<style> body { background-image: url(\"../images/error_saldos.png\"); background-repeat: repeat; } </style>"; } } } $tSdos += $sdo; @mysql_free_result($rs); //Imprime la Tabla de Mvtos if ($PieInts != SYS_NINGUNO) { $IntAct = $cFC->getInteresDevengado(); $IntDevNorm = $cFC->getInteresNormalDevengado(); $IntDevMor = $cFC->getInteresMoratorioDev(); $IntPerNom = $IntAct[SYS_INTERES_NORMAL];
function Common_c5fe0408555dbf392918c6f77a4d01b2($params) { $stdDiv = STD_LITERAL_DIVISOR; $DPar = explode($stdDiv, $params, 10); //mensajes //grupo $xTip = new cTipos(); // $socio = $xTip->cInt($DPar[0]); $credito = $xTip->cInt($DPar[1]); $letra = $xTip->cInt($DPar[2]); $capital = $xTip->cFloat($DPar[3]); $interes = $xTip->cFloat($DPar[4]); $iva = $xTip->cFloat($DPar[5]); $ahorro = $xTip->cFloat($DPar[6]); $nota = $xTip->cChar($DPar[7]); $numero = $xTip->cInt($DPar[8]); $limit = $xTip->cInt($DPar[9]); $msg = "====================== MOVIMIENTO {$numero} DE {$limit} ====================\r\n"; //Datos del Credito $Cred = new cCredito($credito, $socio); $Cred->initCredito(); $DCred = $Cred->getDatosDeCredito(); $saldo = $DCred["saldo_actual"] - $capital; $contrato_captacion = $DCred["contrato_corriente_relacionado"]; $grupo = $DCred["grupo_asociado"]; $msg .= $Cred->getMessages(); if (isset($_SESSION["recibo_en_proceso"])) { $recibo = $_SESSION["recibo_en_proceso"]; $fecha = fechasys(); $_SESSION["total_recibo_en_proceso"] += $capital + $interes + $ahorro; $xRec = new cReciboDeOperacion(200, false, $recibo); $xRec->setNumeroDeRecibo($recibo, true); $xRec->setNumeroDeRecibo($recibo, true); $DRec = $xRec->getDatosInArray(); $cheque = $DRec["cheque_afectador"]; $tipopago = $DRec["tipo_pago"]; $recibofiscal = $DRec["recibo_fiscal"]; $xRec->setGenerarPoliza(); $msg .= "{$socio}\t{$credito}\tCREDITO\tMovimiento {$i} del Credito {$credito} del Socio {$socio} con Saldo {$saldo}\r\n "; $msg .= "{$socio}\t{$credito}\tMONTOS\tCapital: {$capital} || Interes: {$interes} || Ahorro: {$ahorro} \r\n"; //Agregando Capital if ($capital > 0) { $xRec->setNuevoMvto($fecha, $capital, 120, $letra, $nota . ";SDO:" . $saldo, 1, TM_ABONO, $socio, $credito); $arrCred = array("saldo_actual" => $saldo); $Cred->setUpdate($arrCred); } //Agregando Interes if ($interes > 0) { $xRec->setNuevoMvto($fecha, $interes, 140, $letra, $nota, 1, TM_ABONO, $socio, $credito); } //agregando el IVA if ($interes > 0) { $xRec->setNuevoMvto($fecha, $iva, 151, $letra, $nota, 1, TM_ABONO, $socio, $credito); } //Agregando Ahorro if ($ahorro > 0) { $xC = new cCuentaALaVista($contrato_captacion); if (!isset($contrato_captacion) or $contrato_captacion == CTA_GLOBAL_CORRIENTE or $contrato_captacion == 0) { $contrato_captacion = $xC->setNuevaCuenta(2, 1, $socio, "CUENTA_AUTOMATICA", $credito); $msg .= "{$socio}\t{$credito}\tNuevaCta\tse dio de alta a la cuenta {$contrato_captacion}\r\n"; //2011-nov-30 se agrego la actualizacion del contrato relacionado $arrCred = array("contrato_corriente_relacionado" => $contrato_captacion); $Cred->setUpdate($arrCred); } $xC = new cCuentaALaVista($contrato_captacion); $xC->setSocioTitular($socio); $xC->setReciboDeOperacion($recibo); $xC->setDeposito($ahorro, $cheque, $tipopago, $recibofiscal, $nota, $grupo, $fecha, $recibo); $msg .= $xC->getMessages("txt"); $msg .= "{$socio}\t{$credito}\tAhorro\t El Saldo Quedo en " . $xC->getNuevoSaldo() . "\r\n"; } $msg .= "{$socio}\t{$credito}\tObservacion\t {$nota}\r\n"; $msg .= $xRec->getMessages("txt"); } else { $msg .= "NO_SE_HA_DEFINIDO_UN_RECIBO"; } $xLog = new cFileLog("log_de_recibo_" . $recibo); $xLog->setWrite($msg); $xLog->setClose(); $MsgEnd = ""; if ($numero == $limit) { $xRec->setForceUpdateSaldos(); $xRec->setFinalizarRecibo(true); //$MsgEnd .= "**** proceso terminado ****"; } //retorna el id del control de origen para neutralizar return "-{$numero}"; }
$dias_normales = $dias_netos; $interes_diario = $total_de_intereses / $dias_netos; //=================================================================================================================================== $OProd = $xCred->getOProductoDeCredito(); $OPer = $xCred->getOPeriocidad(); $fecha_de_mora = $xF->setSumarDias($OProd->getDiasTolerados() + 1, $fecha_de_vencimiento); $vencimiento_dinamico = $xF->setSumarDias($OPer->getDiasToleradosEnVencer(), $fecha_de_mora); $arrUpdate = array("plazo_en_dias" => $dias_netos, "dias_autorizados" => $dias_netos, "fecha_vencimiento" => $fecha_de_vencimiento, "monto_parcialidad" => $primera_parcialidad, "contrato_corriente_relacionado" => $cuenta_captacion, "tipo_de_pago" => $FormaDePago, "fecha_ministracion" => $fecha_ministracion, "interes_diario" => $interes_diario, "fecha_mora" => $fecha_de_mora, "fecha_vencimiento_dinamico" => $vencimiento_dinamico, "fecha_de_primer_pago" => $fecha_primer_abono); if ($xCred->getSaldoActual() == $xCred->getMontoAutorizado() or $xCred->getEsAfectable() == false) { $arrUpdate["ultimo_periodo_afectado"] = SYS_CERO; } //Pagos de solo interes if ($xCred->getPagosSinCapital() == true) { $arrUpdate["ultimo_periodo_afectado"] = $ultima_parcialidad; } $xCred->setUpdate($arrUpdate); // -------------------------------------------- Actualiza el Saldo del Recibo $xCred->init(); $xFRM->addHTML($xCred->getFicha(true, "", false, true)); $xFRM->addHTML($xPlan->getFicha()); $sqlparc = "SELECT periodo_socio AS 'parcialidad', MAX(fecha_afectacion) AS 'fecha_de_pago', SUM((afectacion_real * valor_afectacion)) AS 'total_parcialidad',\n\t\t\t\t\t MAX(saldo_anterior) AS 'saldo_anterior_', MIN(saldo_actual) AS 'saldo_actual_' FROM operaciones_mvtos\n\t\t\t\tWHERE recibo_afectado={$idrecibo} GROUP BY periodo_socio ORDER BY periodo_socio"; $cTMvtos = new cTabla($sqlparc); $cTMvtos->setWidth(); $xFRM->addHTML($cTMvtos->Show()); $urctr = $xCred->getPathDelContrato(); $urlsend = $DProducto->getPathPagare($solicitud); $xFRM->addAviso("Dias Totales: {$dias_netos} -- Vence: {$fecha_de_vencimiento}"); $xFRM->addToolbar($xBtn->getBasic($xFRM->lang("imprimir", "plan de pagos"), "jsImprimirPlanPagos({$idrecibo})", "lista", "cm1", false)); $xFRM->addToolbar($xBtn->getBasic($xFRM->lang("imprimir", "orden de desembolso"), "jsImprimirOrdenDesembolso()", "lista", "cm2", false)); $xFRM->addToolbar($xBtn->getBasic($xFRM->lang(array("imprimir", "CONTRATO de", "credito")), "jsImprimirContrato()", "lista", "cm3", false)); $xFRM->addToolbar($xBtn->getBasic($xFRM->lang("imprimir", "recibo"), "jsImprimirReciboDePrestamo()", "lista", "cm4", false));
if ($xCred->getPagosAutorizados() <= $nueva_parcialidad) { if ($nuevo_saldo > TOLERANCIA_SALDOS) { $msg .= "WARN\tLa parcialidad no se Actualiza, el saldo queda a {$nuevo_saldo} de la Parcialidad {$nueva_parcialidad}\r\n"; $actualizar_parcialidad = false; } } if ($nueva_parcialidad < $xCred->getPeriodoActual()) { $msg .= "WARN\tLa Parcialidad {$nueva_parcialidad} no se mueve por ser menor al actual " . $xCred->getSaldoActual() . "\r\n"; $actualizar_parcialidad = false; } if ($actualizar_parcialidad == true) { $arrUCredito["ultimo_periodo_afectado"] = $nueva_parcialidad; } $arrUCredito["interes_normal_pagado"] = $xCred->getInteresNormalPagado() + $baseM140; $arrUCredito["interes_moratorio_pagado"] = $xCred->getInteresMoratorioPagado() + $baseM141; $xCred->setUpdate($arrUCredito); //---------------------------- Agrega Movimientos extras --------------------------------- if ($interesanticipado != 0) { $tds .= "<tr>\n <th></th>\n <td>Compensacion Intereses Cobrado por Ant</td>\n <td class='mny'>" . getFMoney($interesanticipado) . "</td>\n </tr>"; $SQL_ICA = "UPDATE operaciones_mvtos SET estatus_mvto=60, docto_neutralizador={$recibo_pago} WHERE tipo_operacion=351 AND socio_afectado={$socio} AND estatus_mvto=30"; my_query($SQL_ICA); //setPolizaProforma($recibo_pago, 352, $interesanticipado, $socio, $solicitud, TM_CARGO); } //FIXME: Verificar validez if ($interescorriente != 0) { $tds .= "<tr><th></th>\n <td>Recalculo de Interes Corriente</td>\n <td class='mny'>" . getFMoney($interescorriente) . "</td></tr>"; //setPolizaProforma($recibo_pago, 436, $interescorriente, $socio, $solicitud, TM_ABONO); } if ($interesmoroso != 0) { $tds .= "<tr><th></th>\n <td>Recalculo de Interes Moroso</td>\n <td class='mny'>" . getFMoney($interesmoroso) . "</td></tr>"; //setPolizaProforma($recibo_pago, 436, $interesmoroso, $socio, $solicitud, TM_ABONO);