function setVerificarPerfilTransaccional($fecha = false, $generar_avisos = false)
 {
     $xQL = new cSQLListas();
     $mq = new MQL();
     $xPerf = new cAMLPersonas_PerfilTransaccional($this->mClaveDePersona);
     $xF = new cFecha();
     $fecha = $fecha == false ? fechasys() : $fecha;
     $fechaI6M = $xF->setRestarMeses(6, $fecha);
     //6 Meses
     $periodoI6M = date("Ym", $xF->getInt($fechaI6M));
     //6 Meses
     $periodo_inicial = date("Ym", $xF->getInt($fecha));
     $periodo_final = date("Ym", $xF->getInt($fecha));
     $persona = $this->getCodigoDePersona();
     $sql = $xQL->getAMLAcumuladoDeEgresos($periodo_inicial, $periodo_final, $persona);
     $datos = $mq->getDataRecord($sql);
     //checar datos si no existen en la consulta acumulada
     if (!isset($datos[SYS_MONTO]) or setNoMenorQueCero($datos[SYS_MONTO]) <= 0) {
         $sql = $xQL->getAMLAcumuladoDeEgresos_RT($periodo_inicial, $periodo_final, $persona);
         $datos = $mq->getDataRecord($sql);
     }
     $suma_efectivo = 0;
     $mes_activo = 0;
     $excedido = false;
     //setLog($sql);
     foreach ($datos as $row) {
         $tipo = strtolower($row[SYS_TIPO]);
         $moneda = strtoupper($row["moneda"]);
         $monto = $row[SYS_MONTO];
         $numero = $row[SYS_NUMERO];
         $mes = $row["periodo"];
         $recibo = $row["recibo"];
         $xDPerfil = $xPerf->concepto($tipo);
         $xMonto = new cCantidad($monto);
         $monto = $xMonto->v();
         $pmonto = $xDPerfil->v();
         //Monto permitido
         $montoDiff = $xMonto->diff($pmonto);
         $pnumero = $xDPerfil->getNumero();
         if ($moneda != $xDPerfil->getClaveDeMoneda()) {
             $this->mMessages .= "ERROR\t{$tipo}|{$moneda}\tNo tiene Perfil para operar con la Moneda {$moneda} \r\n";
             $excedido = true;
         }
         if ($monto > $pmonto) {
             $this->mMessages .= "ERROR\t{$tipo}|{$moneda}\tMonto excedido ({$montoDiff}) por de {$pmonto} tuvo operaciones por {$monto}\r\n";
             $excedido = true;
         } else {
             $this->mMessages .= "OK\t{$tipo}|{$moneda}\tMonto Normal de {$pmonto} hizo operaciones por {$monto}\r\n";
         }
         if ($numero > $pnumero) {
             $this->mMessages .= "ERROR\t{$tipo}|{$moneda}\tNumero excedido de {$pnumero} tuvo operaciones por {$numero}\r\n";
             $excedido = true;
         } else {
             $this->mMessages .= "OK\t{$tipo}|{$moneda}\tNumero normal de {$pnumero} hizo operaciones por {$numero}\r\n";
         }
         $mes_activo = $mes;
         if ($tipo == TESORERIA_COBRO_EFECTIVO) {
             $suma_efectivo = $monto;
         }
     }
     if (MODO_DEBUG == true) {
         $this->mMessages .= $xPerf->getMessages(OUT_TXT);
     }
     //$this->mMessages			.= "OK\t \r\n";
     //$efectivo		= TESORERIA_COBRO_EFECTIVO . "-" . AML_CLAVE_MONEDA_LOCAL; //efectivo nacional
     //verificar pagos mayores a 500 USD
     //verificar pagos
     if ($excedido == true) {
         if ($this->mForceAvisos == true or $generar_avisos == true) {
             $xAml = new cAML();
             $xAml->setForceAlerts();
             $res = $xAml->sendAlerts($persona, AML_OFICIAL_DE_CUMPLIMIENTO, AML_DEBITOS_MAYORES_AL_PERFIL, $this->mMessages, $recibo, $fecha, false, 0, iDE_RECIBO);
             if ($res == false) {
                 $this->mMessages .= "ERROR\tError al enviar alertas\r\n";
             }
             $this->mMessages .= $xAml->getMessages();
         } else {
             $this->mMessages .= "WARN\tNo se enviaron alertas\r\n";
         }
     }
     return $excedido;
 }
$xT = new cTabla($sql, 2);
$xT->setTipoSalida($out);
$xT->setFootSum(array(4 => "monto", 9 => "unidades", 10 => "equivalencia"));
$body = $xRPT->getEncabezado($xHP->getTitle(), $FechaInicial, $FechaFinal);
$xRPT->setBodyMail($body);
$xRPT->addContent($body);
$xRPT->addContent($xSoc->getFicha(true));
//$xT->setEventKey("jsGoPanel");
//$xT->setKeyField("creditos_solicitud");
$xRPT->addContent($xT->Show($xHP->getTitle()));
$xT = new cTabla($xL->getListadoDePerfil($persona));
$xRPT->addContent($xT->Show());
if (MODO_DEBUG == true) {
    $periodo_inicial = date("Ym", $xF->getInt($FechaInicial));
    $periodo_final = date("Ym", $xF->getInt($FechaFinal));
    $xT2 = new cTabla($xL->getAMLAcumuladoDeEgresos($periodo_inicial, $periodo_final, $persona));
    $xRPT->addContent($xT2->Show());
}
$xRPT->addContent("<h3>" . $xHP->lang("Mensaje") . "</h3>");
//============ Agregar HTML
//$xRPT->addContent( $xHP->init($jsEvent) );
//$xRPT->addContent( $xHP->end() );
$xAml = new cAMLPersonas($persona);
$xAml->init();
$validar = false;
//(MODO_DEBUG == true) ? true : false;
$xAml->setVerificarPerfilTransaccional(false, $validar);
$xAml->setVerificarOperacionesSemestrales();
$xRPT->addContent($xAml->getMessages(OUT_HTML));
$xRPT->setResponse();
$xRPT->setSenders($senders);