function analizarOperacion($persona, $monto_operado, $moneda, $tipo_de_pago, $fecha = false, $recibo = false, $perfil = false)
 {
     $moneda = strtoupper($moneda);
     $sql = "SELECT * FROM `aml_risk_catalog` \n\t\t\t\t\tWHERE (`aml_risk_catalog`.`tipo_de_riesgo` = 912)\n\t\t\t\t\tAND (`aml_risk_catalog`.`clave_de_control` != " . AML_CLAVE_RIESGO_OPS_INDIVIDUALES . ")\n\t\t\t\t\tORDER BY \n\t\t\t\t\t`aml_risk_catalog`.`unidad_de_medida`,\t`aml_risk_catalog`.`unidades_ponderadas` DESC ";
     $ql = new MQL();
     $risk = new cAml_risk_catalog();
     $raised = false;
     $xAML = new cAML();
     $rs = $ql->getDataRecord($sql);
     //Datos de Operaciones Mensuales
     $xAMLP = new cAMLPersonas($persona);
     $xAMLP->init();
     $OMens = $xAMLP->getOAcumuladoDeOperaciones($fecha, $fecha, $moneda, $tipo_de_pago);
     $monto_original = $OMens->getMonto() + $monto_operado;
     $this->mMessages .= "WARN\tOperaciones acumuladas por " . $OMens->getMonto() . "\r\n";
     if ($perfil == false) {
         $this->mMessages .= "ERROR\tNo existe el perfil tipo de pago {$tipo_de_pago} en Moneda {$moneda} \r\n";
         //agregar perfil a cero
     } else {
         $perfil = setNoMenorQueCero($perfil);
         $sql = "SELECT * FROM `personas_perfil_transaccional_tipos` WHERE `idpersonas_perfil_transaccional_tipos` = {$perfil} LIMIT 0,1";
         $d = $ql->getDataRow($sql);
         if (isset($d["tipo_de_exhibicion"])) {
             $tipo_de_pago = strtolower($d["tipo_de_exhibicion"]);
         }
         $this->mMessages .= "OK\tCarga del perfil {$perfil}  con tipo de pago {$tipo_de_pago}\r\n";
     }
     //verificar operaciones con reglas
     foreach ($rs as $rows) {
         $risk->setData($rows);
         $reporteMoneda = strtoupper($risk->unidad_de_medida()->v());
         if ($reporteMoneda == $moneda) {
             if ($raised == false) {
                 $reporteMoneda = strtoupper($risk->unidad_de_medida()->v());
                 $xMon = new cMonedas($reporteMoneda);
                 $valor_local = $xMon->getValor();
                 $clave = $risk->clave_de_control()->v();
                 if ($xAML->isTransaccionVigilada($tipo_de_pago) != false) {
                     $unidadesReportadas = $risk->unidades_ponderadas()->v();
                     $unidadesOperadas = 0;
                     if ($reporteMoneda == AML_CLAVE_MONEDA_LOCAL) {
                         $unidadesOperadas = $monto_original;
                     } else {
                         $this->mMessages .= "WARN\tUnidades reportadas {$unidadesOperadas} en Moneda {$moneda} con valor local de {$valor_local}\r\n";
                         $unidadesReportadas = $valor_local * $unidadesReportadas / VALOR_ACTUAL_DOLAR;
                         $unidadesOperadas = $monto_original * $valor_local / VALOR_ACTUAL_DOLAR;
                     }
                     if ($unidadesOperadas >= $unidadesReportadas) {
                         $this->mMsgAlert = "ERROR\tUnidades excedidas de {$unidadesReportadas} operados {$unidadesOperadas} en la Moneda {$reporteMoneda}\r\n";
                         $this->mMessages .= $this->mMsgAlert;
                         $raised = true;
                         $this->mTipoDeAlerta = $clave;
                         $this->mTipoDeReporte = $risk->forma_de_reportar()->v();
                     } else {
                         $this->mMessages .= "OK\tOperacion Normal de {$unidadesOperadas} no sobrepasan {$unidadesReportadas}\r\n";
                     }
                     //Validar sivienen de paises con alto riesgo
                     $xP = new cDomiciliosPaises();
                     $xP->getPaisPorMoneda($reporteMoneda);
                     $nombrepais = $xP->getNombre();
                     if ($xP->getRiesgoAMLAsociado() >= SYS_RIESGO_MEDIO) {
                         //Agregar alerta por operaciones en paises de  alto y medio riesgo
                         $this->mMsgAlert .= "ERROR\tFondos provenientes de paises con Riesgo Elevado {$nombrepais}\r\n";
                         $this->mMessages .= "ERROR\tFondos provenientes de paises con Riesgo Elevado {$nombrepais}\r\n";
                     }
                 } else {
                     $this->mMessages .= "OK\tOperacion Omitida por ser tipo de pago {$tipo_de_pago} ({$reporteMoneda} )\r\n";
                 }
             }
         } else {
             $this->mMessages .= "OK\tOperacion Omitida por ser Moneda {$moneda} de {$reporteMoneda}\r\n";
         }
     }
     //setLog($this->mMessages);
     if (MODO_DEBUG == true) {
         setLog($this->getMessages());
     }
     return $raised;
 }
    if ($action == MQL_MOD) {
        //Modificar
        //iniciar
        $clave = parametro($xTabla->getKey(), null, MQL_INT);
        if ($clave != null) {
            $xTabla->setData($xTabla->query()->initByID($clave));
            $xTabla->setData($_REQUEST);
            $xTabla->query()->update()->save($clave);
            $xFRM->addAvisoRegistroOK();
        }
    }
}
$xSel1 = $xSel->getListaDeTipoDeRiesgoEnAML("tipo_de_riesgo");
$xSel1->setOptionSelect($xTabla->tipo_de_riesgo()->v());
$xSel2 = $xSel->getListaDeUnidadMedidaAML("unidad_de_medida");
$xSel2->setOptionSelect($xTabla->unidad_de_medida()->v(OUT_TXT));
$xSel3 = $xSel->getListaDeFormaReportaRiesgo("forma_de_reportar");
$xSel3->setOptionSelect($xTabla->forma_de_reportar()->v(OUT_TXT));
$xSel4 = $xSel->getListaDeFrecuenciaChequeoRiesgo("frecuencia_de_chequeo");
$xSel4->setOptionSelect($xTabla->frecuencia_de_chequeo()->v(OUT_TXT));
$xFRM->OMoneda("clave_de_control", $xTabla->clave_de_control()->v(), "TR.clave de control");
$xFRM->OText("descripcion", $xTabla->descripcion()->v(), "TR.descripcion");
$xFRM->addHElem($xSel1->get(true));
$xFRM->OMoneda("valor_ponderado", $xTabla->valor_ponderado()->v(), "TR.valor ponderado");
$xFRM->OMoneda("unidades_ponderadas", $xTabla->unidades_ponderadas()->v(), "TR.unidades ponderadas");
$xFRM->addHElem($xSel2->get(true));
$xFRM->addHElem($xSel3->get(true));
$xFRM->addHElem($xSel4->get(true));
$xFRM->OTextArea("fundamento_legal", $xTabla->fundamento_legal()->v(), "TR.fundamento legal");
echo $xFRM->get();
//$jxc ->drawJavaScript(false, true);