//<=====	FIN_H
//=====================================================================================================
$xP = new cHPage("Pruebas de Fechas", HP_FORM);
$xP->setIncludes();
echo $xP->getHeader();
echo $xP->setBodyinit();
//Crear formularios
$xHFrm = new cHForm("frmTest", "./test.php");
$xHTxt = new cHText("");
//$txt 	= $xHTxt->getDeMoneda("id", "Moneda de Prueba",  100);
$miFecha = parametro("fecha", fechasys());
$xF = new cFecha(0, $miFecha);
//$xHFrm->addHElem( $txt );
$xHFrm->addHElem($xF->show(true));
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, Inicio se semana==" . $xF->getFechaDeInicioDeSemana() . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, Inicio se nombre semana==" . $xF->getDayName($xF->getFechaDeInicioDeSemana()) . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, Dias del Mes==" . $xF->getDiasDelMes() . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, En Fecha Corta==" . $xF->getFechaCorta() . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, Fecha Larga==" . $xF->getFechaLarga() . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, En Fecha Mediana==" . $xF->getFechaMediana() . "</p>");
//$xHFrm->addHElem(  );
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, Fecha Operativa Maxima==" . $xF->getFechaMaximaOperativa() . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, El Mes Anterior==" . $xF->getFechaMesAnterior() . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, dos meses atras==" . $xF->getFechaMesAnterior(false, 2) . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}  - 30 Dias==" . $xF->setRestarDias(30) . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}  + 30 Dias==" . $xF->setSumarDias(30) . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}  + 2 meses==" . $xF->setSumarMeses(2) . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}  - 2 meses==" . $xF->setRestarMeses(2) . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, Nombre del Dia==" . $xF->getDayName() . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, Dia Inicial del mes==" . $xF->getDiaInicial() . "</p>");
$xHFrm->addHElem("<p class='aviso'>La {$miFecha}, Obtener Dia Habil==" . $xF->getDiaHabil() . "</p>");
function getNombre_FechaDeMinistracion($dia, $mes, $anno)
{
    $d = date("Y-m-d", strtotime($anno . "-" . $mes . "-" . $dia));
    $xFec = new cFecha(0, $d);
    return $xFec->getDayName();
}
 function getFicha($mark = true, $extraTool = "", $extendido = false, $ConPersona = false)
 {
     if ($this->mCreditoInicializado == false) {
         $this->initCredito();
     }
     $lafila = $this->getDatosDeCredito();
     $xL = new cLang();
     $solicitud = $this->getNumeroDeCredito();
     $convenio = $lafila["descripcion_tipoconvenio"];
     $fministracion = $lafila["fecha_ministracion"];
     $fvencimiento = $lafila["fecha_vencimiento"];
     $periocidad_pago = $lafila["descripcion_periocidadpagos"];
     $autorizado = getFMoney($lafila["monto_autorizado"]);
     $saldo = getFMoney($lafila["saldo_actual"]);
     $estatus = $lafila["descripcion_estatus"];
     $tool = $extraTool;
     $tasa = getFMoney($lafila["tasa_interes"] * 100);
     $mora = $lafila["tasa_moratorio"] * 100;
     $pagos = $lafila["pagos_autorizados"];
     $ultimopago = $lafila["ultimo_periodo_afectado"];
     $cls = "";
     $xD = new cFecha(0);
     $TasaIVA = $this->getTasaIVA();
     $TasaMora = $this->getTasaDeMora();
     $trInicial = "";
     $cls = "credito-estado-" . $this->getEstadoActual();
     $montoParc = getFMoney($this->mMontoFijoParcialidad);
     $activo = true;
     if ($ConPersona == true) {
         $xSoc = $this->getOPersona();
         // new cSocio($this->getClaveDePersona(), true);
         $trInicial = "<tr><th>" . $xL->getT("TR.Persona") . "</th><td>" . $xSoc->getCodigo() . "</td><td colspan='2'>" . $xSoc->getNombreCompleto() . "</td></tr>";
     }
     if ($this->getTipoEnSistema() == CREDITO_PRODUCTO_NOMINA) {
         if ($this->getClaveDeEmpresa() != DEFAULT_EMPRESA) {
             $xEmp = new cEmpresas($this->getClaveDeEmpresa());
             $xEmp->init();
             $convenio = "{$convenio} - " . $xEmp->getNombreCorto();
         } else {
             $convenio = "{$convenio} - ND";
         }
     }
     $tdSaldo = "<th class='izq'>" . $xL->getT("TR.Saldo Principal") . "</th><td class='mny'>{$saldo}</td>";
     $tdMonto = "<th class='izq'>" . $xL->getT("TR.Monto Original") . "</th><td class='mny'>{$autorizado}</td>";
     $tdFecha = "<th class='izq'>" . $xL->getT("TR.fecha de desembolso") . "</th><td>" . $xD->getFechaCorta($fministracion) . "</td>";
     $tdPagos = $this->getPeriocidadDePago() != CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO ? "<td class='mny'>{$ultimopago} de {$pagos} POR \$ {$montoParc}</td>" : "<td class='izq'>UNICO</td>";
     $tdVencimiento = "<th class='izq'>" . $xL->getT("TR.Fecha de Vencimiento") . "</th><td>" . $xD->getDayName($fvencimiento) . "; " . $xD->getFechaCorta($fvencimiento) . "</td>";
     //Si el Estatus es AUTORIZADO
     if ($this->getEstadoActual() == CREDITO_ESTADO_AUTORIZADO) {
         $tdSaldo = "";
         $tdFecha = "<th class='izq'>" . $xL->getT("TR.Fecha de Autorizacion") . "</th><td>" . $xD->getFechaCorta($this->getFechaDeAutorizacion()) . "</td>";
         $activo = false;
         $tdPagos = "<td class='mny'>{$pagos}</td>";
     } elseif ($this->getEstadoActual() == CREDITO_ESTADO_SOLICITADO) {
         $tdSaldo = "";
         $tdMonto = "<th class='izq'>" . $xL->getT("TR.Monto Solicitado") . "</th><td class='mny'>" . getFMoney($this->getMontoSolicitado()) . "</td>";
         $tdFecha = "<th class='izq'>" . $xL->getT("TR.Fecha de Solicitud") . "</th><td>" . $xD->getFechaCorta($this->getFechaDeMinistracion()) . "</td>";
         $activo = false;
         $tdPagos = "<td class='mny'>{$pagos}</td>";
     }
     if ($this->getPeriocidadDePago() != CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) {
         $fvencimiento = $this->getFechaDeMora();
         $tdVencimiento = "<th class='izq'>" . $xL->getT("TR.Fecha de Vencimiento") . "</th><td>" . $xD->getDayName($fvencimiento) . "; " . $xD->getFechaCorta($fvencimiento) . "</td>";
     }
     if ($extendido == true) {
         $xPP = new cCreditos_destinos();
         $xPP->setData($xPP->query()->initByID($this->getClaveDeDestino()));
         $tdExigible = $activo == false ? "" : "<th class='izq'>" . $xL->getT("TR.Saldo exigible") . "</th><td class='mny'>" . getFMoney($this->getSaldoIntegrado(false, true)) . "</td>";
         $oficial = $this->getOOficial()->getNombreCompleto();
         $codigo_de_oficial = $this->getClaveDeOficialDeCredito();
         $tool = "<tr>\n\t\t\t\t\t\t\t\t<th class='izq'>" . $xL->getT("TR.Tasa Anualizada de Moratorio") . "</th><td class='mny'>" . getFMoney($TasaMora * 100) . "%</td>\n\t\t\t\t\t\t\t\t{$tdExigible}</tr>\n\t\t\t\t\t<tr><th class='izq'>" . $xL->getT("TR.Destino del Credito") . "</th><td colspan='3'>" . $xPP->descripcion_destinos()->v() . ": " . $this->mDescripcionDestino . "</td></tr>\n\t\t\t\t\t<tr><th class='izq'>Oficial a Cargo</td><td class='notice' colspan='3'>{$oficial}</td></tr>" . $tool;
         if ($activo == true) {
             if ($this->getPeriocidadDePago() != CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) {
                 $letra = $this->getPeriodoActual() + 1;
                 $IntAct = $this->getInteresDevengado(fechasys(), $letra, false, true);
             } else {
                 $IntAct = $this->getInteresDevengado();
             }
             $IntDevNorm = $this->getInteresNormalDevengado();
             $IntDevMor = $this->getInteresMoratorioDev();
             $IntPerNor = $IntAct[SYS_INTERES_NORMAL];
             $IntPerMor = $IntAct[SYS_INTERES_MORATORIO];
             $IntPagMor = $this->getInteresMoratorioPagado();
             $IntPagNor = $this->getInteresNormalPagado();
             $TIntNorm = $IntDevNorm + $IntPerNor - $IntPagNor;
             $TIntMor = $IntDevMor + $IntPerMor - $IntPagMor;
             $BaseIVA = $TIntNorm > 0 ? $TIntNorm : 0;
             $BaseIVA += $TIntMor > 0 ? $TIntMor : 0;
             $IntIVA = setNoMenorQueCero(($TIntNorm + $TIntMor) * $TasaIVA);
             $cargos = $this->getCargosDeCobranza();
             $cargosIVA = setNoMenorQueCero($cargos * TASA_IVA);
             $trCargos = "";
             if ($cargos > 0) {
                 $trCargos = "<tr>\n\t\t\t\t\t\t<td /><td />\n\t\t\t\t\t\t<th>" . $xL->getT("TR.Cargos por Cobranza") . "</th><td class='mny'>" . getFMoney($cargos) . "</td>\n\t\t\t\t\t</tr><tr>\n\t\t\t\t\t\t<td /><td />\n\t\t\t\t\t\t<th>" . $xL->getT("TR.IVA de Otros cargos") . "</th><td class='mny'>" . getFMoney($cargosIVA) . "</td>\n\t\t\t\t\t</tr>\t";
             }
             $tool .= "<tr>\n\t\t\t\t\t\t<th>" . $xL->getT("TR.Interes Normal Generado") . "</th><td class='mny'>" . getFMoney($IntDevNorm) . "</td>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<th>" . $xL->getT("TR.Interes Moratorio Generado") . "</th><td class='mny'>" . getFMoney($IntDevMor) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>" . $xL->getT("TR.Interes Normal del Mes") . "</th><td class='mny'>" . getFMoney($IntPerNor) . "</td>\n\t\t\t\t\t\t<th>" . $xL->getT("TR.Interes Moratorio del mes") . "</th><td class='mny'>" . getFMoney($IntPerMor) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>" . $xL->getT("TR.Interes Normal Pagado") . "</th><td class='mny'>(" . getFMoney($IntPagNor) . ")</td>\n\t\t\t\t\t\t<th>" . $xL->getT("TR.Interes Moratorio Pagado") . "</th><td class='mny'>(" . getFMoney($IntPagMor) . ")</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>" . $xL->getT("TR.TOTAL INTERES NORMAL") . "</th><th class='mny'>" . getFMoney($TIntNorm) . "</th>\n\t\t\t\t\t\t<th>" . $xL->getT("TR.TOTAL INTERES MORATORIO") . "</th><th class='mny'>" . getFMoney($TIntMor) . "</th>\n\t\t\t\t\t</tr>\n\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td /><td />\n\t\t\t\t\t\t<th>" . $xL->getT("TR.SALDO DE CAPITAL") . "</th><td class='total, mny'>" . getFMoney($this->getSaldoActual()) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td /><td />\n\t\t\t\t\t\t<th>" . $xL->getT("TR.TOTAL INTERESES") . "</th><td class='mny'>" . getFMoney($TIntNorm + $TIntMor) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td /><td />\n\t\t\t\t\t\t<th>" . $xL->getT("TR.IVA POR INTERESES") . "</th><td class='mny'>" . getFMoney($IntIVA) . "</td>\n\t\t\t\t\t</tr>\t\t\t\t\t\n\t\t\t\t\t\t\t\t{$trCargos}\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td /><td />\n\t\t\t\t\t\t<th>" . $xL->getT("TR.TOTAL POR PAGAR") . "</th><td class='total, mny'>" . getFMoney($TIntNorm + $TIntMor + $IntIVA + $this->getSaldoActual() + ($cargos + $cargosIVA)) . "</td>\n\t\t\t\t\t</tr>";
         }
         $tool = "<tfoot>{$tool}</tfoot>";
     }
     $exoFicha = "\n\t\t<table id='fichadecredito'>\n\t\t\t<tbody>\n\t\t\t\t{$trInicial}\n\t\t\t\t<tr>\n\t\t\t\t\t<th class='izq'>" . $xL->getT("TR.Numero de Credito") . "</th><td>{$solicitud}</td>\n\t\t\t\t\t<th class='izq'>" . $xL->getT("TR.Producto") . "</th><td>{$convenio}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th class='izq'>" . $xL->getT("TR.Periocidad de Pago") . "</th><td>{$periocidad_pago}</td>\n\t\t\t\t\t<th class='izq'>" . $xL->getT("TR.Numero de Pagos") . "</th>{$tdPagos}\n\t\t\t\t<tr>\n\t\t\t\t<tr>\n\t\t\t\t\t\n\t\t\t\t\t<th class='izq'>" . $xL->getT("TR.Tasa Anualizada de interes") . "</th><td class='mny'>" . getFMoney($tasa) . "%</td>\n\t\t\t\t\t<th class='izq'>" . $xL->getT("TR.Estado_actual") . "</th><td  class='{$cls}'>{$estatus}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th class='izq'>" . $xL->getT("TR.Tasa de IVA") . "</th><td class='mny'>" . getFMoney($TasaIVA * 100) . "%</td>\n\t\t\t\t\t<th class='izq'>CAT</th><td class='mny'>" . $this->getCAT() . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>{$tdFecha} {$tdVencimiento}</tr>\n\t\t\t\t<tr>{$tdMonto} {$tdSaldo}</tr>\n\t\t\t</tbody>\n\t\t\t{$tool}\n\t\t</table>";
     if ($mark == true) {
         $exoFicha = "<fieldset><legend>|&nbsp;&nbsp;" . $xL->getT("TR.Informacion de Credito") . "&nbsp;&nbsp;|</legend>{$exoFicha}</fieldset>";
     }
     return $exoFicha;
 }
$tfIVA = "<th class='mny'>" . getFMoney($SUMIva) . "</th>";
if ($SUMAh == 0) {
    $thAhorro = "";
    $tfAhorro = "";
}
if ($SUMOtros == 0) {
    $thOtros = "";
    $tfOtros = "";
}
if ($SUMIva == 0) {
    $thIVA = "";
    $tfIVA = 0;
}
foreach ($arrLetras as $parcial => $dat) {
    $txt = "<tr><th>" . $parcial . "</th>";
    $txt .= isset($dat[SYS_FECHA]) ? "<td>" . $xF->getDayName($dat[SYS_FECHA]) . "|" . $xF->getFechaCorta($dat[SYS_FECHA]) . "</td>" : "<td />";
    $txt .= isset($dat[SYS_CAPITAL]) ? "<td class='mny'>" . getFMoney($dat[SYS_CAPITAL]) . "</td>" : "<td />";
    $txt .= isset($dat[SYS_INTERES_NORMAL]) ? "<td class='mny'>" . getFMoney($dat[SYS_INTERES_NORMAL]) . "</td>" : "<td />";
    $txt .= isset($dat[SYS_GASTOS_DE_COBRANZA]) ? "<td class='mny'>" . getFMoney($dat[SYS_GASTOS_DE_COBRANZA]) . "</td>" : "";
    $txt .= isset($dat[SYS_IMPUESTOS]) ? "<td class='mny'>" . getFMoney($dat[SYS_IMPUESTOS]) . "</td>" : "";
    $txt .= isset($dat[SYS_AHORRO]) ? "<td class='mny'>" . getFMoney($dat[SYS_AHORRO]) . "</td>" : "";
    $txt .= "<td class='mny'>" . getFMoney($dat[SYS_TOTAL]) . "</td>";
    $netoNivel -= $dat[SYS_TOTAL];
    $txt .= "<th class='mny'>" . getFMoney($netoNivel) . "</th>";
    $txt .= "<tr>";
    $tmpcap = isset($dat[SYS_CAPITAL]) ? $dat[SYS_CAPITAL] : 0;
    if (setNoMenorQueCero($tmpcap) > 0 or $pagoactual == 0 or $xCred->getPagosSinCapital() == true) {
        $trs .= $txt;
    }
}
//<th>" . $xHP->lang("dia") . "</th>
function getDiaDeLaSemana($date)
{
    $xF = new cFecha(0, $date);
    $xF->init();
    return $xF->getDayName($date);
}
 function setProcesarProgramacion($id, $arrVars = false, $data = false, $fecha = false)
 {
     $xF = new cFecha();
     $xT = new cTipos();
     $xLog = new cCoreLog();
     $arrVars = $arrVars == false ? $this->mArrVars : $arrVars;
     //idprograma, nombre_del_aviso, forma_de_creacion, programacion, destinatarios, microformato, tipo_de_medios, intent_check, intent_command
     $sql = "SELECT *\tFROM sistema_programacion_de_avisos WHERE idprograma={$id} LIMIT 0,1";
     $d = $data == false ? obten_filas($sql) : $data;
     $mOb = new cSistema_programacion_de_avisos();
     $mOb->setData($d);
     $emails = array();
     $tels = array();
     $enviar = false;
     $fecha = $fecha == false ? fechasys() : $fecha;
     $nombredia = $xF->getDayName();
     $diadelmes = date("j", $xF->getInt());
     $EnviarNota = true;
     $EnviarMail = true;
     $EnviarSMS = false;
     $xLoc = new cLocal();
     //procesar cuerpo del contenido
     $arrVars["fecha"] = !isset($arrVars["fecha"]) ? $fecha : $arrVars["fecha"];
     $arrVars["fecha_dia_siguiente"] = $xF->setSumarDias(1, $fecha);
     $arrVars["fecha_inicio_de_semana"] = $xF->getFechaDeInicioDeSemana($fecha);
     $arrVars["fecha_inicio_de_mes"] = $xF->getDiaInicial($fecha);
     //Dia de la semana inicial
     $arrVars["hora"] = date("H");
     $arrVars["usuario"] = $xLoc->getNombreUsuario();
     $arrVars["clave_de_usuario"] = !isset($arrVars["clave_de_usuario"]) ? getUsuarioActual() : $arrVars["clave_de_usuario"];
     //interpretar DIA
     if (strtoupper($mOb->forma_de_creacion()->v()) == SYS_ALERTA_POR_EVENTO) {
         $enviar = true;
     } else {
         //if($mOb->programacion())
         $programacion = strtoupper($mOb->programacion()->v());
         $periodo = explode(":", $programacion);
         //INTERPRETAR DIA
         if ($periodo[0] == "PROGRAMACION_SEMANAL") {
             if (strpos($nombredia, $programacion) !== false) {
                 $enviar = true;
             }
         } else {
             if ($periodo[0] == "PROGRAMACION_DIARIA") {
                 $enviar = true;
             } else {
                 if (isset($periodo[1])) {
                     $dias = explode(",", $periodo[1]);
                     foreach ($dias as $dias => $iddia) {
                         $mes = $xF->mes();
                         $anno = $xF->anno();
                         if (date("Y-m-d", strtotime("{$anno}-{$mes}-{$iddia}")) == $fecha) {
                             $enviar = true;
                         }
                     }
                 }
             }
         }
     }
     //1.- extraer emails
     $destinatarios = explode("|", $mOb->destinatarios()->v());
     foreach ($destinatarios as $key => $cnt) {
         if (trim($cnt) != "") {
             //1.1 Desfragmentar destinos
             $DS = explode(":", $cnt);
             $mdestino = isset($DS[0]) ? strtoupper($DS[0]) : "";
             switch ($mdestino) {
                 case "OFICIALES":
                     if (isset($DS[1])) {
                         $oficiales = explode(",", $DS[1]);
                         foreach ($oficiales as $ofc => $ofkey) {
                             $xOf = new cOficial($ofkey);
                             $xOf->init();
                             $mail = $xOf->getEmail();
                             $emails[] = $mail;
                             $xLog->add("OK\tOFICIAL\tAgregar mail {$mail}  \r\n", $xLog->DEVELOPER);
                         }
                     }
                     break;
                 case "EMPRESAS":
                     if (isset($DS[1])) {
                         $empresas = explode(",", $DS[1]);
                         foreach ($empresas as $emp => $empkey) {
                             $xEmp = new cEmpresas($empkey);
                             $xEmp->init();
                             //$mail		= $xEmp->getEmailsDeEnvio();
                             //$emails[]	= $mail;
                             $emails = array_merge($emails, $xEmp->getEmailsDeEnvio());
                             $xLog->add("OK\tEMPRESAS\tAgregar mail de la empresa {$empkey}  \r\n", $xLog->DEVELOPER);
                         }
                     }
                     break;
                 case "PERSONAS":
                     if (isset($DS[1])) {
                         $personas = explode(",", $DS[1]);
                         foreach ($personas as $ofc => $ofkey) {
                             $xSoc = new cSocio($ofkey);
                             $xSoc->init();
                             $mail = $xSoc->getCorreoElectronico();
                             $emails[] = $mail;
                             $xLog->add("OK\tPERSONA\tAgregar mail {$mail}  \r\n", $xLog->DEVELOPER);
                             if ($xT->cNumeroTelefonico($xSoc->getTelefonoPrincipal()) != false) {
                                 $EnviarSMS = true;
                                 $tels[] = $xT->cNumeroTelefonico($xSoc->getTelefonoPrincipal());
                             }
                         }
                     }
                     break;
                 case "CORREO":
                     if (isset($DS[1])) {
                         $personas = explode(",", $DS[1]);
                         foreach ($personas as $ofc => $ofkey) {
                             if (filter_var($ofkey, FILTER_VALIDATE_EMAIL)) {
                                 $emails[] = $ofkey;
                             }
                             $xLog->add("OK\tCORREO\tAgregar mail {$ofkey}  \r\n", $xLog->DEVELOPER);
                         }
                     }
                     break;
             }
             //1.1.1 Validar oficiales, empresas, personas
             //if(strpos("OFICIALES:", $needle))
         }
     }
     $this->mMessages .= $xLog->getMessages();
     $texto = $mOb->microformato()->v();
     foreach ($arrVars as $variable => $valor) {
         $texto = str_replace("{" . $variable . "}", $valor, $texto);
     }
     if ($enviar == true) {
         $url = $mOb->intent_command()->v(OUT_TXT);
         //2 procesado del comando
         if (trim($url) == "") {
             $titulo = strtoupper($mOb->nombre_del_aviso()->v());
             $xNot = new cNotificaciones();
             //enviar mail normal
             if ($EnviarSMS == true) {
                 foreach ($tels as $pitm => $ptel) {
                     $xNot->sendSMS($ptel, $texto);
                 }
             }
             if ($EnviarMail == true) {
                 foreach ($emails as $itm => $pmail) {
                     $xNot->sendMail($titulo, $texto, $pmail);
                 }
             }
         } else {
             //execute command
             //rpttesoreria/corte_de_caja.rpt.php?on=2014-5-3&off=2014-5-3&cajero=todas&dependencia=todas
             $smail = "";
             $xHO = new cHObject();
             foreach ($arrVars as $variable => $valor) {
                 $url = str_replace("{" . $variable . "}", $valor, $url);
             }
             foreach ($emails as $id => $rmail) {
                 //$smail	.= ($smail == "") ? "email$id=$rmail" : "&email$id=$rmail";
                 $smail .= "&email{$id}={$rmail}";
             }
             //Iniciar session en contexto &on=$fecha&off=$fecha
             $xSysUser = new cSystemUser();
             $xSysUser->init();
             $url = $url . $smail . "&ctx=" . $xSysUser->getCTX();
             if (MODO_DEBUG == true) {
                 setLog($url);
             }
             $xHO->navigate($url);
         }
     } else {
         $this->mMessages .= "OK\tNo e envia el reporte\r\n";
     }
     setLog($this->mMessages);
     $this->mObProgAv = $mOb;
     //return $this->mObProgAv;
 }