/**
  * Funcion que establece un estatus segun los criterios sobre politicas de creditos
  *
  * @param integer $recibo		//Numero numero de recibo al que se agregan los movimientos
  * @param date $fecha			//Fecha de Operacion
  * @param date $AppSucursal		//si Aplica para todas las sucursales
  * @return string $msg			//Mensages del LOG
  */
 function setEstatusDeCreditos($recibo, $fecha = false, $AppSucursal = true, $force_updates = false, $credito = false)
 {
     $fecha = $fecha == false ? fechasys() : $fecha;
     $cierre_sucursal = "";
     $credito = setNoMenorQueCero($credito);
     $ql = new MQL();
     $xLi = new cSQLListas();
     $xLog = new cCoreLog();
     if ($AppSucursal == true) {
         //$cierre_sucursal = "AND (`creditos_solicitud`.`sucursal`='" . getSucursal() . "')";
     }
     $xLog->add("==\t\t\tMODIFICACION_DE_ESTATUS_EN_CREDITOS\r\n", $xLog->DEVELOPER);
     if ($force_updates == true) {
         $xLog->add("==\tSe Actualizaran ESTADOS\r\n", $xLog->DEVELOPER);
     }
     $xRec = new cReciboDeOperacion(10);
     $tolerancia_en_pesos = TOLERANCIA_SALDOS;
     $ByCredito = $xLi->OFiltro()->CreditoPorClave($credito);
     $sqlH = "SELECT\n\t\t\t\t`historial_de_pagos`.* FROM\n\t\t\t`historial_de_pagos` `historial_de_pagos` INNER JOIN `creditos_solicitud` `creditos_solicitud` \n\t\t\t\tON `historial_de_pagos`.`credito` = `creditos_solicitud`.\n\t\t\t\t`numero_solicitud` WHERE (`creditos_solicitud`.`estatus_actual`!=50) {$cierre_sucursal} {$ByCredito} AND (`creditos_solicitud`.`saldo_actual`>{$tolerancia_en_pesos}) ORDER BY `creditos_solicitud`.`fecha_vencimiento` ";
     $rsPagos = $ql->getDataRecord($sqlH);
     $DPagos = array();
     foreach ($rsPagos as $rwpagos) {
         $id = $rwpagos["credito"];
         $DPagos[$id][] = $rwpagos;
     }
     $rsPagos = null;
     //setLog($sqlH);
     /*INICIALIZA EL RECIBO*/
     /** @since 2010-12-27 */
     $sql = $xLi->getInicialDeCreditos() . " WHERE (`creditos_solicitud`.`estatus_actual`!=50) {$cierre_sucursal} {$ByCredito} AND (`creditos_solicitud`.`saldo_actual`>{$tolerancia_en_pesos}) ORDER BY `creditos_solicitud`.`fecha_vencimiento` ";
     $rs = $ql->getDataRecord($sql);
     $xDD = new cCreditos_solicitud();
     foreach ($rs as $rw) {
         $xDD->setData($rw);
         $idcredito = $xDD->numero_solicitud()->v();
         $xCred = new cCredito($idcredito);
         $xCred->init($rw);
         $DPago = isset($DPagos[$idcredito]) ? $DPagos[$idcredito] : false;
         $xCred->setDetermineDatosDeEstatus($fecha, false, $force_updates, $DPago);
         $xLog->add($xCred->getMessages(), $xLog->DEVELOPER);
     }
     $DPagos = null;
     $this->mMessages .= $xLog->getMessages();
     return $xLog->getMessages();
 }
     $c2Tbl = new cTabla($mSQL->getListadoDeNotas(false, $idsolicitud), 0);
     $c2Tbl->setWidth();
     $xHTabs->addTab("TR.NOTAS", $c2Tbl->Show());
     $c4Tbl = new cTabla($mSQL->getListadoDeCompromisos($idsolicitud), 5);
     $c4Tbl->setWidth();
     $xHTabs->addTab("TR.COMPROMISOS", $c4Tbl->Show());
     $cTbl = new cTabla($setSql, 0);
     $cTbl->addTool(SYS_DOS);
     $cTbl->setKeyField("idseguimiento_llamadas");
     $oFrm->addHTML($cTbl->getJSActions(true));
     $xHTabs->addTab("TR.LLAMADAS", $cTbl->Show());
     $c3Tbl = new cTabla($setSql3, 3);
     $c3Tbl->setWidth();
     $xHTabs->addTab("TR.NOTIFICACIONES", $c3Tbl->Show());
     //Imprime un Explain de porque el credito tiene este estatus
     $xHTabs->addTab("TR.ESTATUS", $xCred->setDetermineDatosDeEstatus(fechasys(), true, true));
     $xHTabs->addTab("TR.VALIDACION", "<p class='aviso'>" . $xCred->setVerificarValidez(1, "html") . "</p>");
     //avales
     $sqlavales = $mSQL->getListadoDeAvales($idsolicitud, $idsocio);
     $xTblAv = new cTabla($sqlavales);
     $xTblAv->addTool(SYS_DOS);
     $xTblAv->addTool(SYS_UNO);
     $xHTabs->addTab("TR.AVALES", $xTblAv->Show("TR.Relacion de Avales"));
 }
 //==================================================== Otros Datos
 $xTbOD = new cTabla($mSQL->getListadoDeCreditosOtrosDatos($idsolicitud));
 $xHTabs->addTab("TR.Otros Datos", $xTbOD->Show());
 if ($xCred->getPeriocidadDePago() != CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) {
     $oFrm->addToolbar($xBtn->getBasic("TR.GENERAR PLAN_DE_PAGOS", "regenerarPlanDePagos()", "reporte", "generar-plan", false));
     $xHTabs->addTab("TR.Plan_De_pagos", $xCred->getPlanDePago(OUT_HTML, false, true));
 }