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);