function sendAlerts($PersonaDeOrigen, $PersonaDeDestino, $TipoDeAlerta, $mensaje = "", $documento = false, $fecha = false, $hora = false, $valorDeterminado = 0, $tipo_de_docto = false, $tercero_relacionado = DEFAULT_SOCIO)
 {
     $hora = setNoMenorQueCero($hora) <= 0 ? date("Hi") : $hora;
     $fecha = $fecha == false ? fechasys() : $fecha;
     $documento = $documento == false ? DEFAULT_RECIBO : $documento;
     $tipo_de_docto = $tipo_de_docto == false ? $this->mTipoDeDocto : $tipo_de_docto;
     $this->mTipoDeDocto = $tipo_de_docto;
     $resultado = true;
     $xRsk = new cAml_risk_catalog();
     $xSuc = new cSucursal();
     $xSuc->init();
     $idnumerico = $xSuc->getClaveNumerica();
     $xRsk->setData($xRsk->query()->initByID($TipoDeAlerta));
     $riesgo = $xRsk->valor_ponderado()->v();
     $nombreRies = $xRsk->descripcion()->v();
     $claseRies = $xRsk->tipo_de_riesgo()->v();
     $valorDeterminado = $valorDeterminado == 0 ? $xRsk->valor_ponderado()->v() : $valorDeterminado;
     $xF = new cFecha();
     $fecha = $xF->getInt($fecha);
     $xAl = new cAml_alerts();
     $xAl->estado_en_sistema(SYS_UNO);
     $xAl->fecha_de_checking(SYS_CERO);
     $xAl->fecha_de_origen($fecha);
     $xAl->fecha_de_registro($xF->getInt(fechasys()));
     $xAl->hora_de_proceso($hora);
     $xAl->documento_relacionado($documento);
     $xAl->medio_de_envio(AML_ALERT_MAIL);
     $xAl->mensaje($mensaje);
     $xAl->riesgo_calificado($valorDeterminado);
     $xAl->tipo_de_aviso($TipoDeAlerta);
     $xAl->sucursal($idnumerico);
     //Verificar
     $xAl->entidad(EACP_CLAVE_CASFIN);
     //Actualizar
     $xAl->usuario(getUsuarioActual());
     $xAl->persona_de_destino($PersonaDeDestino);
     $xAl->persona_de_origen($PersonaDeOrigen);
     $xAl->tipo_de_documento($tipo_de_docto);
     $xAl->tercero_relacionado($tercero_relacionado);
     $id_de_alerta = $xAl->query()->getLastID();
     $xAl->clave_de_control($id_de_alerta);
     $ql = $xAl->query()->insert();
     $res = $ql->save();
     if (setNoMenorQueCero($res) <= 0) {
         $this->mMessages .= "ERROR\tAl guardar registro ({$idnumerico})\r\n";
         if (MODO_DEBUG == true) {
             $this->mMessages .= $ql->getMessages(OUT_TXT);
         }
         $resultado = false;
     }
     //$xCatRiesgo				= new cAml_risk_catalog();
     //$xCatRiesgo->setData( $xCatRiesgo->query()->initByID($TipoDeAlerta) );
     //
     $xCatRiesgos = new cAml_risk_catalog();
     $xCatRiesgos->setData($xCatRiesgos->query()->initByID($TipoDeAlerta));
     $nombre_riesgo = $xCatRiesgos->descripcion()->v();
     //Enviar SMS
     $xMail = new cNotificaciones();
     //obtener los datos del usuario
     $xVUser = new cVistaUsuarios();
     $xD = $xVUser->query()->initByID($PersonaDeDestino);
     $xVUser->setData($xD);
     $userP = $xVUser->codigo_de_persona()->v();
     $mailD = false;
     $telD = false;
     $xSoc = new cSocio($userP);
     if ($xSoc->existe($userP) == true) {
         $xSoc->init();
         $mailD = $xSoc->getCorreoElectronico();
         $telD = $xSoc->getTelefonoPrincipal();
     } else {
         $this->mMessages .= "ERROR\tNo existe la persona de envio {$userP}\r\n";
     }
     //Array de valores
     $arrV = array();
     $fechacorta = $xF->getFechaCorta($xF->getFechaByInt($fecha));
     $arrV["variable_documento_codigo"] = $documento;
     $arrV["variable_docto_fecha"] = $fechacorta;
     $arrV["variable_docto_hora"] = $hora;
     $arrV["variable_nivel_de_riesgo"] = $riesgo;
     $arrV["variable_tipo_de_riesgo"] = $nombreRies;
     $arrV["variable_clasificacion_de_riesgo"] = $claseRies;
     $arrV["variable_codigo_de_alerta"] = $id_de_alerta;
     $arrV["variable_mensaje_de_alerta"] = $mensaje;
     $arrV["variable_url_del_sistema"] = SAFE_HOST_URL;
     //Enviar Mail
     $xFmt = new cFormato(800);
     $xFmt->setUsuario($PersonaDeDestino);
     $xFmt->setPersona($PersonaDeOrigen);
     $xFmt->setProcesarVars($arrV);
     $txtMail = $xFmt->get();
     if ($valorDeterminado > 51 or $this->mForceAvisos == true) {
         $xMail->setTitulo(AML_TITULO_DE_ALERTA);
         $this->mMessages .= $xMail->send($txtMail, $mailD, $telD, $PersonaDeDestino, "{$fechacorta}-{$claseRies}-{$mensaje}", "aml.{$mailD}");
         if ($this->mForceRegRiesgo == true) {
             //Agregar el riesgo
             $xAlert = new cAMLAlertas($id_de_alerta);
             $regFecha = $xF->getFechaByInt($fecha);
             $xAlert->setConfirmaAlerta($mensaje, $regFecha);
             $this->mMessages .= $xAlert->getMessages();
             //$xPAML		= new cAMLPersonas($PersonaDeOrigen);
             //$xPAML->setAgregarPerfilDeRiesgo($TipoDeAlerta, $fecha, $valorDeterminado, $documento, $tipo_de_docto, $PersonaDeDestino, $hora, $tercero_relacionado, $mensaje );
             //$this->mMessages	.= $xPAML->getMessages();
         }
     }
     return $resultado;
 }
$persona = parametro("idsocio", $persona, MQL_INT);
$credito = parametro("credito", DEFAULT_CREDITO, MQL_INT);
$credito = parametro("idsolicitud", $credito, MQL_INT);
$credito = parametro("solicitud", $credito, MQL_INT);
$cuenta = parametro("cuenta", DEFAULT_CUENTA_CORRIENTE, MQL_INT);
$cuenta = parametro("idcuenta", $cuenta, MQL_INT);
$jscallback = parametro("callback");
$tiny = parametro("tiny");
$form = parametro("form");
$action = parametro("action", SYS_NINGUNO);
$xHP->init();
/* -----------------  -----------------------*/
$clave = parametro("clave_de_control", null, MQL_INT);
$xTabla = new cAml_risk_catalog();
if ($clave != null) {
    $xTabla->setData($xTabla->query()->initByID($clave));
}
$xTabla->setData($_REQUEST);
$clave = parametro("id", null, MQL_INT);
$xSel = new cHSelect();
if ($clave == null) {
    $step = MQL_ADD;
    $clave = $xTabla->query()->getLastID() + 1;
} else {
    $step = MQL_MOD;
    if ($clave != null) {
        $xTabla->setData($xTabla->query()->initByID($clave));
    }
}
$xFRM = new cHForm("frmaml_risk_catalog", "catalogo.riesgos.editar.frm.php?action={$step}");
$xFRM->addSubmit();
 /**
  * Efectua operaciones de finalizacion del recibo
  * @param boolean $UpdateSaldo Marca si Actualiza el Saldo del Credito
  */
 function setFinalizarRecibo($UpdateSaldo = false, $tesoreria_cargada = false)
 {
     //generar Poliza a demanda
     $finalizado = true;
     //tranferencia.egresos cheque
     if (MODULO_CAJA_ACTIVADO == false) {
         $tesoreria_cargada = true;
         /* Forzar AML si Tesoreria esta Desactivado */
     }
     /**
      * Modificacion de la condicion de socio por afectar al recibo en SI?
      */
     if ($UpdateSaldo == true) {
         if ($this->mSumaDeRecibo == 0 or $this->mForceUpdateSaldos == true or !isset($this->mSumaDeRecibo) or $this->mSumaDeRecibo == false or $this->mSumaDeRecibo == '') {
             $sqlSUM = "SELECT\n\t\t\t\t\t\t\t\tSUM(`operaciones_mvtos`.`afectacion_real` *  `operaciones_mvtos`.`valor_afectacion`) \tAS 'monto',\n\t\t\t\t\t\t\t\tCOUNT(`operaciones_mvtos`.`idoperaciones_mvtos`)\t\t\t\t\t\t\t\t\t\tAS 'numero',\n\t\t\t\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado`,\n\t\t\t\t\t\t\t\t`operaciones_mvtos`.`socio_afectado`\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos`\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t(`operaciones_mvtos`.`recibo_afectado` =" . $this->mCodigoDeRecibo . ")\n\n\t\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado` ";
             $TDRec = obten_filas($sqlSUM);
             $this->mSumaDeRecibo = $TDRec["monto"];
             $this->mNumeroDeMvtos = $TDRec["numero"];
             $this->mMessages .= "SUCESSACT\tMonto Actualizado a " . $this->mSumaDeRecibo . " y # Operaciones " . $this->mNumeroDeMvtos . "\r\n";
         }
         if (!isset($this->mSumaDeRecibo)) {
             $this->mSumaDeRecibo = 0;
         }
         $sql = "UPDATE operaciones_recibos SET total_operacion=" . $this->mSumaDeRecibo . "\n    \t\t\t\tWHERE\tidoperaciones_recibos= " . $this->mCodigoDeRecibo . "\t";
         $xRs = my_query($sql);
     }
     if ($this->mSetGenerarPoliza == true) {
         //PolizaPorRecibo($this->mCodigoDeRecibo, GENERAR_POLIZAS_AL_CIERRE);
     }
     $this->mTotalRecibo = $this->mSumaDeRecibo;
     //-- AML
     if (MODULO_AML_ACTIVADO == true and $this->isPagable() == true and $tesoreria_cargada == true) {
         $xAml = new cAMLPersonas($this->mSocio);
         $xAml->init();
         $xAml->setForceAlerts();
         $xAmlO = new cAMLOperaciones();
         $this->init();
         if ($xAml->getEsPersonaVigilada() == true) {
             $tipo_de_pago_aml = $this->mTipoDePago;
             if (setNoMenorQueCero($this->mTipoOrigenAML) > 0) {
                 $xRisK = new cPersonas_perfil_transaccional_tipos();
                 $xRisK->query()->initByID($this->mTipoOrigenAML);
                 $tipo_de_pago_aml = strtolower($xRisK->tipo_de_exhibicion()->v(OUT_TXT));
                 $this->mMessages .= "WARN\tCambiar el perfil de pago de " . $this->mTipoDePago . " a {$tipo_de_pago_aml} \r\n";
             }
             $res = $xAmlO->analizarOperacion($this->mSocio, 0, $this->mMoneda, $tipo_de_pago_aml, $this->getFechaDeRecibo(), $this->getCodigoDeRecibo(), $this->mTipoOrigenAML);
             if ($res == false) {
                 $this->mMessages .= "OK\tAML Normal \r\n";
                 if (MODO_DEBUG == true) {
                     $this->mMessages .= $xAmlO->getMessages(OUT_TXT);
                 }
             } else {
                 //REPORTAR
                 $xAv = new cAML();
                 if ($xAmlO->getTipoDeReporte() == AML_REPORTE_INMEDIATO) {
                     $xAv->setForceRegistroRiesgo();
                     $this->mMessages .= "WARN\tAML de Aviso Inmediato\r\n";
                 }
                 $xAv->sendAlerts($this->mSocio, AML_OFICIAL_DE_CUMPLIMIENTO, $xAmlO->getTipoDeAlerta(), $xAmlO->getMessageAlert(), $this->mCodigoDeRecibo, $this->mFechaDeOperacion);
             }
             $this->mMessages .= $xAmlO->getMessages(OUT_TXT);
             //validar perfil transaccional
             $xAml->setVerificarPerfilTransaccional();
         }
         //Validar si es person riesgosa
         $xSoc = $xAml->getOPersona();
         if ($xSoc->getEsPersonaSDN() == true) {
             //REPORTAR operaciones con alto riesgo
             $idriesgo = AML_ID_OPERACIONES_PERSONAS_ALTO_RIESGO;
             //operaciones con criminales
             $xRiesgo = new cAml_risk_catalog();
             $xRiesgo->setData($xRiesgo->query()->initByID($idriesgo));
             $xAv = new cAML();
             $xAv->setForceRegistroRiesgo();
             $xAv->sendAlerts($this->mSocio, AML_OFICIAL_DE_CUMPLIMIENTO, $idriesgo, "ERROR\tOperaciones con persona ALTAMENTE RIESGOSA Recibo " . $this->mCodigoDeRecibo, $this->mCodigoDeRecibo, $this->getFechaDeRecibo());
             $this->mMessages .= $xAv->getMessages(OUT_TXT);
         }
         if ($xSoc->getEsPersonaPoliticamenteExpuesta() == true) {
             //REPORTAR operaciones con PEPs
             $idriesgo = AML_ID_OPERACIONES_PERSONAS_PEP;
             //operaciones con criminales
             $xRiesgo = new cAml_risk_catalog();
             $xRiesgo->setData($xRiesgo->query()->initByID($idriesgo));
             $xAv = new cAML();
             $xAv->sendAlerts($this->mSocio, AML_OFICIAL_DE_CUMPLIMIENTO, $idriesgo, "ERROR\tOperaciones con PEPS Recibo " . $this->mCodigoDeRecibo, $this->mCodigoDeRecibo, $this->getFechaDeRecibo());
             $this->mMessages .= $xAv->getMessages(OUT_TXT);
         }
         if ($xSoc->getEsPersonaRiesgosa() == true) {
             //REPORTAR operaciones con PEPs
             $idriesgo = 101005;
             //operaciones con criminales
             $xRiesgo = new cAml_risk_catalog();
             $xRiesgo->setData($xRiesgo->query()->initByID($idriesgo));
             $xAv = new cAML();
             $xAv->sendAlerts($this->mSocio, AML_OFICIAL_DE_CUMPLIMIENTO, $idriesgo, "ERROR\tOperaciones con Personas de Alto Riesgo.- Recibo " . $this->mCodigoDeRecibo, $this->mCodigoDeRecibo, $this->getFechaDeRecibo());
             $this->mMessages .= $xAv->getMessages(OUT_TXT);
         }
         //Operaciones de una exhibicion 500 y USD
         if ($this->mMoneda != AML_CLAVE_MONEDA_LOCAL) {
             $idriesgo = AML_CLAVE_RIESGO_OPS_INDIVIDUALES;
             $xRiesgo = new cAml_risk_catalog();
             $xMon = new cMonedas($this->mMoneda);
             $xRiesgo->setData($xRiesgo->query()->initByID($idriesgo));
             $unidades = $xMon->getEnDolares($this->getUnidadesOriginales());
             if ($unidades >= $xRiesgo->unidades_ponderadas()->v()) {
                 $xAv = new cAML();
                 $xAv->setForceRegistroRiesgo();
                 $xAv->sendAlerts($this->mSocio, AML_OFICIAL_DE_CUMPLIMIENTO, $idriesgo, "Operaciones({$unidades}) excedidas de 500 USD en el recibo " . $this->mCodigoDeRecibo . " Moneda " . $this->mMoneda, $this->mCodigoDeRecibo, $this->getFechaDeRecibo());
                 $this->mMessages .= $xAv->getMessages(OUT_TXT);
             } else {
                 $this->mMessages .= "OK\tNo hay modificacion para la Moneda " . $this->mMoneda . " por {$unidades} \r\n";
             }
         }
         // Agregar Relevantes por 10000USD
         if ($this->isEfectivo() == true) {
             $idriesgo = AML_CLAVE_RIESGO_OPS_RELEVANTES;
             $xRiesgo = new cAml_risk_catalog();
             $xMon = new cMonedas($this->mMoneda);
             $mmonto = $this->mMoneda == AML_CLAVE_MONEDA_LOCAL ? $this->getTotal() : $this->getUnidadesOriginales();
             $xRiesgo->setData($xRiesgo->query()->initByID($idriesgo));
             $unidades = $xMon->getEnDolares($mmonto);
             if ($unidades >= $xRiesgo->unidades_ponderadas()->v()) {
                 $xAv = new cAML();
                 $xAv->setForceRegistroRiesgo();
                 $xAv->sendAlerts($this->mSocio, AML_OFICIAL_DE_CUMPLIMIENTO, $idriesgo, "Operaciones Relevantes por {$unidades} USD en el recibo " . $this->mCodigoDeRecibo . " Moneda " . $this->mMoneda, $this->mCodigoDeRecibo, $this->getFechaDeRecibo());
                 $this->mMessages .= $xAv->getMessages(OUT_TXT);
             } else {
                 $this->mMessages .= "OK\tNo hay modificacion para la Moneda " . $this->mMoneda . " por {$unidades} \r\n";
             }
         }
         if ($xAml->getEsPersonaVigilada() == true) {
             //Operaciones Internas Preocupantes por Usuario
             $xAml->setAnalizarTransaccionalidadPorNucleo($this->mCodigoDeRecibo, $this->mFechaDeOperacion, $this->mUsuario, true);
         }
         $this->mMessages .= $xAml->getMessages(OUT_TXT);
     }
     return $finalizado;
 }
$filtro2 = "";
$xHP->setNoDefaultCSS();
echo $xHP->getHeader(true);
//HTML Object END
echo '<body onmouseup="SetMouseDown(false);" ><div id="onGrid">';
//Define your grid
$_SESSION["grid"]->SetDatabaseConnection(MY_DB_IN, USR_DB, PWD_DB);
//Propiedades del GRID
$mGridTitulo = $xHP->getTitle();
$mGridKeyField = $xTabla->getKey();
//Nombre del Campo Unico
$mGridKeyEdit = true;
//Es editable el Campo
$mGridTable = $xTabla->get();
//Nombre de la tabla
$mGridSQL = $xTabla->query()->getListaDeCampos();
//  "*"; //$xTabla->query()->getCampos();
$mGridWhere = "";
$mGridProp = array("clave_de_control" => "Clave,true,11", "descripcion" => "descripcion,true,150", "tipo_de_riesgo" => "tipo,true,11", "valor_ponderado" => "valor,true,37", "unidades_ponderadas" => "unidades,true,37", "unidad_de_medida" => "medida,true,10", "forma_de_reportar" => "Reporte,false,4", "frecuencia_de_chequeo" => "chequeo,false,4");
$mGridSQL = "clave_de_control,descripcion,tipo_de_riesgo,valor_ponderado,unidades_ponderadas,unidad_de_medida,forma_de_reportar,frecuencia_de_chequeo";
//===========================================================================================================
$_SESSION["grid"]->SetSqlSelect($mGridSQL, $mGridTable, $mGridWhere);
$_SESSION["grid"]->SetUniqueDatabaseColumn($mGridKeyField, $mGridKeyEdit);
$_SESSION["grid"]->SetTitleName($mGridTitulo);
$_SESSION["grid"]->SetEditModeAdd(false);
//$_SESSION["grid"]->SetEditModeDelete(false);
$_SESSION["grid"]->SetPlugin("tipo_de_riesgo", "select", array("sql" => "SELECT * FROM aml_risk_types"));
//===========================================================================================================
foreach ($mGridProp as $key => $value) {
    $mVals = explode(",", $value, 10);
    if (isset($mVals[0])) {