function setAnalizarTransaccionalidadPorNucleo($recibo = false, $fecha = false, $usuario = false, $alertar = false) { $xF = new cFecha(); $xQ = new MQL(); $usuario = setNoMenorQueCero($usuario); $fecha = $xF->getFechaISO($fecha); if ($this->mOSocio == null) { $this->getOPersona(); } $idnucleo = $this->mOSocio->getIDNucleoDeRiesgo(); $persona_relacionada = $this->mOSocio->getCodigo(); $sql1 = "SELECT * FROM personas_operaciones_recursivas WHERE persona ={$idnucleo} AND usuario={$usuario} LIMIT 0,1"; $DNormal = $xQ->getDataRow($sql1); $operaciones = 1; $monto = null; $aviso = false; if (isset($DNormal["operaciones"])) { $operaciones = $DNormal["operaciones"]; $monto = $DNormal["monto"]; $sql2 = "SELECT\n\t\t\t\t\t`personas_relaciones_recursivas`.`persona` AS `persona`,\n\t\t\t\t\t`operaciones_recibos`.`idusuario` AS `usuario`, \n\t\t\t\t\t\t\n\t\t\t\t\tCOUNT(`operaciones_recibos`.`idoperaciones_recibos`) AS `operaciones`,\n\t\t\t\t\tSUM(`operaciones_recibos`.`total_operacion`) AS `monto`\n\t\t\t\tFROM\n\t\t\t\t\t`operaciones_recibos` `operaciones_recibos` \n\t\t\t\t\t\tINNER JOIN `personas_relaciones_recursivas` \n\t\t\t\t\t\t`personas_relaciones_recursivas` \n\t\t\t\t\t\tON `operaciones_recibos`.`numero_socio` = \n\t\t\t\t\t\t`personas_relaciones_recursivas`.`persona`\n\t\t\t\tWHERE\n\t\t\t\t\t(`operaciones_recibos`.`origen_aml` >0)\n\t\t\t\t\tAND (`operaciones_recibos`.`idusuario`={$usuario})\n\t\t\t\t\tAND (`operaciones_recibos`.`fecha_operacion` = '{$fecha}') \n\t\t\t\t\tAND (`personas_relaciones_recursivas`.`clave_interna` = {$idnucleo})\n\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t`personas_relaciones_recursivas`.`persona`,\n\t\t\t\t\t\t`operaciones_recibos`.`idusuario` "; $DEfectuado = $xQ->getDataRow($sql2); if (isset($DEfectuado["operaciones"])) { //evalua lo operado if ($DEfectuado["operaciones"] > $operaciones) { //se pasa en numero $dif = $DEfectuado["operaciones"] - $operaciones; $this->mMessages .= "ERROR\tNUCLEOS\tNumero de Operaciones Excedidas en {$dif} del usuario {$usuario} con el Nucleo {$idnucleo} \r\n"; $aviso = true; } if ($DEfectuado["monto"] > $monto) { //se pasa en numero $dif = $DEfectuado["monto"] - $monto; $this->mMessages .= "ERROR\tNUCLEOS\tMonto de Operaciones Excedidas en {$dif} del usuario {$usuario} con el Nucleo {$idnucleo}\r\n"; $aviso = true; } if ($aviso == true and $alertar == true) { $xAml = new cAML(); $xAml->setForceAlerts(true); $xAml->setReportarUsuario($usuario, AML_ID_OPERACIONES_ATOMICAS, $this->mMessages, $recibo, $fecha, $persona_relacionada, iDE_RECIBO); $this->mMessages .= $xAml->getMessages(); } } else { $this->mMessages .= "WARN\tNUCLEOS\tNo hay Monto para Evaluar al usuario {$usuario} con el Nucleo {$idnucleo}\r\n"; } } else { $this->mMessages .= "WARN\tNUCLEOS\tNo hay parametros para Evaluar al usuario {$usuario} con el Nucleo {$idnucleo}\r\n"; } setLog($this->mMessages); }
function setActualizarNivelDeRiesgo($nivel = SYS_RIESGO_BAJO, $mensaje = "", $fecha = false) { $xNot = new cNotificaciones(); $xF = new cFecha(); $fecha = $xF->getFechaISO($fecha); $mensaje = $xNot->cleanString($mensaje); //AML.- Agregar aviso de cambio if ($nivel >= SYS_RIESGO_ALTO and MODULO_AML_ACTIVADO == true) { $xAml = new cAML(); $xAml->setForceAlerts(); $xAml->sendAlerts($this->mCodigo, AML_OFICIAL_DE_CUMPLIMIENTO, AML_RISK_INTERNAL_OPERATION, $mensaje, false, $fecha); //TODO: Exportar a asociada, falta relaciones exportar relaciones $this->getExportarAsociada(TPERSONAS_GENERALES, SVC_REMOTE_HOST); $this->getExportarAsociada(TPERSONAS_DIRECCIONES, SVC_REMOTE_HOST); $this->getExportarAsociada(TPERSONAS_ACTIVIDAD_ECONOMICA, SVC_REMOTE_HOST); $this->mMessages .= $xAml->getMessages(); } //Omitir AML en la actualizacion $this->setOmitirAML(true); $this->setUpdate(array("nivel_de_riesgo_aml" => $nivel)); //agregar una Noticiacion a la Persona de Nota $this->addMemo(MEMOS_TIPO_HISTORIAL, $mensaje, false, $fecha); }