function setReestructurarIntereses($FechaInicial = false, $FechaFinal = false, $ForceMoratorios = false)
 {
     $xT = new cTipos();
     $msg = "";
     $socio = $this->getClaveDePersona();
     $solicitud = $this->getNumeroDeCredito();
     $xCUtils = new cUtileriasParaCreditos();
     $FechaFinal = $FechaFinal == false ? fechasys() : $FechaFinal;
     $FechaInicial = $FechaInicial == false ? "1998-01-01" : $FechaInicial;
     if ($this->getEsAfectable() == true) {
         if ($this->getTipoDePago() == CREDITO_TIPO_PAGO_UNICO or $this->getPeriocidadDePago() == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) {
             my_query("DELETE FROM operaciones_recibos WHERE numero_socio={$socio} AND docto_afectado={$solicitud} AND tipo_docto=11");
             my_query("DELETE FROM operaciones_mvtos WHERE socio_afectado={$socio} AND docto_afectado={$solicitud}\n\t\t\t\tAND (tipo_operacion=410 OR tipo_operacion=411 OR tipo_operacion=412 OR tipo_operacion=413 \n\t\t\t\tOR tipo_operacion=1005 OR tipo_operacion=601)");
         }
         if (CREDITO_PURGAR_ESTADOS == true) {
             my_query("DELETE FROM operaciones_mvtos WHERE socio_afectado={$socio} AND docto_afectado={$solicitud}\tAND ( tipo_operacion=111 OR tipo_operacion=113 OR tipo_operacion=114 OR tipo_operacion=115)");
         }
         //Reestructurar Estatus
         $msg .= $xCUtils->setEstatusDeCreditos(DEFAULT_RECIBO, $FechaFinal, false, true, $solicitud);
         //Reestructurar Intereses
         if ($this->getEstadoActual() != CREDITO_ESTADO_VIGENTE) {
             //$this->
             //$msg			.= $cUCredit->setRegenerarCreditosAVencidos( $fecha );
             //$msg			.= $cUCredit->setRegenerarCreditosAMora( $fecha );
             $DEstado = $this->setDetermineDatosDeEstatus($FechaFinal);
             $EstadoCalculado = $DEstado[SYS_ESTADO];
             $msg .= "WARN\tRE_ESTATUS\tRecalcular Estatus de " . $this->getEstadoActual() . " A {$EstadoCalculado}\n";
             switch ($EstadoCalculado) {
                 case CREDITO_ESTADO_VIGENTE:
                     $this->setEnviarVigente($FechaFinal, $this->getPeriodoActual(), DEFAULT_RECIBO);
                     break;
                 case CREDITO_ESTADO_MOROSO:
                     $this->setEnviarMoroso($this->mFechaMora, $this->getPeriodoActual(), DEFAULT_RECIBO);
                     break;
                 case CREDITO_ESTADO_VENCIDO:
                     $this->setEnviarVencido($this->mFechaVencimientoLegal, $this->getPeriodoActual(), DEFAULT_RECIBO);
                     break;
             }
         } else {
             $msg .= "ESTATUS\tSin Cambios de Estado : " . $this->getEstadoActual() . "\n";
         }
         $msg .= $xCUtils->setGenerarMvtoFinDeMes($FechaInicial, $FechaFinal, $solicitud, true);
         if ($this->getPeriocidadDePago() == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) {
             $msg .= $xCUtils->setReestructurarSDPM(false, $solicitud);
         } else {
             $msg .= $xCUtils->setReestructurarSDPM_Planes(false, $solicitud);
         }
         $msg .= $xCUtils->setRegenerarInteresDevengado($solicitud, $FechaInicial, $FechaFinal, $ForceMoratorios);
         $msg .= $xCUtils->setAcumularIntereses(false, $solicitud);
     } else {
         $msg .= "NO_PROCESADO\tCredito No Afectable\n";
     }
     $this->mMessages .= $msg;
     $this->init();
     return $msg;
 }
$idrecibo = $xRec->setNuevoRecibo(DEFAULT_SOCIO, DEFAULT_CREDITO, $fechaop, 1, 12, "CIERRE_DE_COLOCACION_{$fechaop}", DEFAULT_CHEQUE, DEFAULT_TIPO_PAGO, DEFAULT_RECIBO_FISCAL, DEFAULT_GRUPO);
$xRec->setNumeroDeRecibo($idrecibo);
$messages .= "=======================================================================================\r\n";
$messages .= "=========================\t\t" . EACP_NAME . " \r\n";
$messages .= "=========================\t\t" . getSucursal() . " \r\n";
$messages .= "=======================================================================================\r\n";
$messages .= "=========================\t\tINICIANDO EL CIERRE DE COLOCACION ====================\r\n";
$messages .= "=========================\t\tRECIBO: {$idrecibo}\t\t\t\t   ====================\r\n";
//reconstruir db de pagos
$ql->setRawQuery("CALL `proc_historial_de_pagos` ");
$xCUtils = new cUtileriasParaCreditos();
$messages .= $xCUtils->setEstatusDeCreditos($idrecibo, $fechaop, false, true);
if (date("Y-m-t", strtotime($fechaop)) == date("Y-m-d", strtotime($fechaop))) {
    $messages .= $xCUtils->setGenerarMvtoFinDeMes($xF->getDiaInicial(), $xF->getDiaFinal());
}
if (CREDITO_CIERRE_FORZAR_DEVENGADOS == true) {
    $messages .= $xCUtils->setReestructurarSDPM_Planes(true, false, false, false, $xF->getDiaInicial(), false);
    $messages .= $xCUtils->setReestructurarSDPM(true, false, false, false, false, $xF->getDiaInicial(), false);
    $messages .= $xCUtils->setRegenerarInteresDevengado(false, $xF->get(), $xF->get());
}
$messages .= $xCUtils->setAcumularIntereses();
$xRec->setFinalizarRecibo(true);
$xLog->setWrite($messages);
$xLog->setClose();
if (ENVIAR_MAIL_LOGS == true) {
    $xLog->setSendToMail("TR.Eventos del Cierre del colocacion");
}
if ($parser != false) {
    header("Location: ./cierre_de_captacion.frm.php?s=true&k=" . $key . "&f={$fechaop}");
}
//}
     $msg .= $xop->setPurgarMovimientos();
     break;
 case 888:
     //Generar los Movimientos del Fin de Mes
     $fecha_inicial = $id;
     $fecha_final = $id2;
     $NumeroDeCredito = $id3 == "NUMERO_DE_CREDITO" ? false : $id3;
     $ForzarCorreccion = strtoupper($de) == "SI" ? true : false;
     $xCUtils = new cUtileriasParaCreditos();
     $msg .= "============ GENERANDO MOVIMIENTOS DEL FIN DE MES V1.04\r\n";
     $msg .= $xCUtils->setGenerarMvtoFinDeMes($fecha_inicial, $fecha_final, $NumeroDeCredito, $ForzarCorreccion);
     break;
 case 889:
     $xCUtils = new cUtileriasParaCreditos();
     $msg .= "============ GENERANDO SALDOS SPM DE CREDITOS HISTORICOS \r\n";
     $msg .= $xCUtils->setReestructurarSDPM_Planes();
     $msg .= $xCUtils->setReestructurarSDPM(false, false, false, false, false, false);
     break;
 case 900:
     $NumeroDeCredito = $id == "NUMERO_DE_CREDITO" ? false : $id;
     $FechaInicial = $id2 == "FECHA_INICIAL" ? false : $id2;
     $FechaFinal = $id3 == "FECHA_FINAL" ? false : $id3;
     $xCUtils = new cUtileriasParaCreditos();
     $msg .= "============ GENERANDO INTERESES SOBRE SDPM HISTORICOS \r\n";
     $msg .= $xCUtils->setRegenerarInteresDevengado($NumeroDeCredito, $FechaInicial, $FechaFinal);
     break;
 case 1101:
     //Contabilidad.- generar Saldos del Ejercicio
     $ejercicio = $id;
     $xUCont = new cUtileriasParaContabilidad();
     $msg .= $xUCont->setGenerarSaldosDelEjercicio($ejercicio);