$ql = new MQL();
$xRec = new cReciboDeOperacion(12);
$xRec->setGenerarPoliza();
$xRec->setForceUpdateSaldos();
$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");
}
$fecha = parametro("fecha", fechasys());
/*
Fecha_Cierre_Credito,Forma_Pago_Mop ( Que solo puede salir viendo cuantos dias transcurridos  del credito han pasado) y Monto_Ultimo_Pago creo que con eso ya sale para hoy
 * */
$credito_de_pruebas = parametro("credito", 209999801, MQL_INT);
//Crear formularios
$xFRM = new cHForm("frmTest", "./test.php");
$xHTxt = new cHText("");
//====================================================================================================
$xFRM->addHElem("<p class='aviso'>Pruebas de la Clase Creditos</p>");
$xCred = new cCredito($credito_de_pruebas);
$xCred->init();
$xFRM->addHElem($xCred->getFicha(true, "", true, true));
$xFRM->addCreditoComandos($credito_de_pruebas);
//$xFRM->addHElem($xCred->setDetermineDatosDeEstatus(fechasys(), true));
$xUtils->setEstatusDeCreditos(false, fechasys(), false, true, false);
//$xFRM->addAviso($xCred->getMessages(), "id2", false, "warning");
//$xFRM->addAviso(, "id2", false, "warning");
$xFRM->addLog($xUtils->getMessages());
/*$xFRM->addHElem( "<p class='aviso'>Vencimiento : " . $xCred->setDetermineDatosDeEstatus(false, true) . "</p>" );

$xFRM->addHElem( "<p class='aviso'>fecha de ultimo pago de CAPITAL : " . $xCred->getFechaUltimoMvtoCapital() . "</p>" );

$xFRM->addHElem( "<p class='aviso'>Monto de Parcialidad : " . $xCred->getMontoDeParcialidad() . "</p>" );

$xFRM->addHElem( "<p class='aviso'>Saldo Actual Normal : " . $xCred->getSaldoActual() . "</p>" );

$xFRM->addHElem( "<p class='aviso'>Saldo Actual FORZADO: " . $xCred->getSaldoActual($fecha) . "</p>" );
$xFRM->addHElem( "<p class='aviso'>Monto de Ultimo Pago : " . $xCred->getMontoUltimoPago() . "</p>" );
$xFRM->addHElem( "<p class='aviso'>fecha de Ultimo Pago S: " . $xCred->getFechaUltimoDePago() . "</p>" );
$xFRM->addHElem( "<p class='aviso'>Saldo Insoluto Integrado : " . $xCred->getSaldoIntegrado($fecha) . "</p>" );
 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;
 }
     $msg .= setPurgeFromDuplicatedRecibos();
     setFoliosAlMaximo();
     break;
     /**
      * Actualiza el Estatus de los Creditos sin distinguir sucursal
      */
 /**
  * Actualiza el Estatus de los Creditos sin distinguir sucursal
  */
 case 853:
     $fecha_inicial = setFechaValida($id);
     $xRec = new cReciboDeOperacion();
     $recibo = $xRec->setNuevoRecibo(DEFAULT_SOCIO, DEFAULT_CREDITO, $fecha_inicial, 1, RECIBOS_TIPO_ESTADISTICO, "AJUSTE_DE_ESTATUS_DE_CREDITOS");
     //$recibo 		= setNuevoRecibo(1, 1, fechasys(), 0, 10, "AJUSTE_DE_ESTATUS_DE_CREDITOS", "NA", "ninguno", "NA", 99, 0);
     $cUtils = new cUtileriasParaCreditos();
     $msg .= $cUtils->setEstatusDeCreditos($recibo, $fecha_inicial, false, true);
     break;
     //Valida Recibos
 //Valida Recibos
 case 856:
     $afectar = strtolower($id);
     $sqlMvtos = " SELECT\n\t\t\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado`            AS `recibo`,\n\t\t\t\t\t\t\tCOUNT(`operaciones_mvtos`.`idoperaciones_mvtos`) AS `operaciones`\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos`\n\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado`";
     $arrCM = array();
     $arrO = array();
     $rsM = mysql_query($sqlMvtos, cnnGeneral());
     while ($rw = mysql_fetch_array($rsM)) {
         $arrCM[$rw["recibo"]] = $rw["operaciones"];
     }
     $sqlRecs = "SELECT * FROM operaciones_recibos ";
     $msg .= "=================\tVALIDANDO RECIBOS\t=================\r\n";
     $msg .= "#OP.ID\tRECIBO\tMENSAJE\r\n";