/**
  * 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;
 }