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; }
//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); $xHP->fin();