Identificador de Regra
CRE-310RCPEEPX
Módulo: CRE - Contas a Receber.
Finalidade: Será acionado sempre que o ERP XT receber os dados PIX oriundos do ERP Banking. Será acionado por título, permitindo a programação de processos auxiliares, como envio de e-mail personalizado, dentre outros.
Transação: Não se aplica.
Regra:
Possui as variáveis de entradas preenchidas, conforme exemplos de regra abaixo. Não possui variáveis de retorno/saída.
Exemplo 1:
@ Variáveis de entrada da regra @ @ A variável E301TCR.XXXXXX vem carregada com os dados da tabela E301TCR@ Definir Alfa CreAPixCopiaECola; Definir Alfa CreNPixQRCode; @ Não existem variáveis de saída/retorno na regra. @ @ ***************************** Exemplo Regra *********************************@ Definir Alfa aDados; Definir Alfa aAuxiliar; IntParaAlfa(E301TCR.CodEmp, aDados); IntParaAlfa(E301TCR.CodFil, aAuxiliar); aDados = "Titulo: " + aDados + "-" + aAuxiliar + "-" + E301TCR.NumTit + "-" + E301TCR.CodTpt; aDados = aDados + "; PIX copia e cola: " + CreAPixCopiaECola; aDados = aDados + "; PIX qr code: " + CreNPixQRCode; |
Exemplo 2:
@ Finalidade da regra: envio de email para boleto / Pix com informações do pedido @
@ A variável E301TCR.XXXXXX vem carregada com os dados da tabela E301TCR@
Definir Cursor Cur_E070FIL;
Definir Cursor Cur_E120IPD;
Definir Numero nCodEmp;
Definir Numero nCodFil;
Definir Numero nCodCli;
Definir Numero nQtdPed;
Definir Numero nPreUni;
Definir Numero nVlrBsi;
Definir Numero nVlrIcs;
Definir Numero nVstFcp;
Definir Numero nVlrLiq;
Definir Numero nSomaVlrTotal;
Definir Numero nNumPed;
Definir Alfa aNumPed;
Definir Alfa aNumTit;
Definir Alfa aCodTpt;
Definir Alfa aCidFil;
Definir Alfa aSigUfs;
Definir Alfa aNomFil;
Definir Alfa aCodCli;
Definir Alfa aNomCli;
Definir Alfa aApeCli;
Definir Alfa aCodPro;
Definir Alfa aDesPro;
Definir Alfa aQtdPed;
Definir Alfa aPreUni;
Definir Alfa aVlrBsi;
Definir Alfa aVlrIcs;
Definir Alfa aVstFcp;
Definir Alfa aVlrLiq;
Definir Alfa aCorpoEmail;
Definir Alfa aEmailRemetente;
Definir Alfa aEmailDestinatario;
Definir Alfa aDataExtensa;
Definir Alfa aSomaVlrTotal;
Definir Alfa aErroEmail;
Definir Alfa aAssuntoEmail;
Definir Alfa aNomeRelatorioPIX;
Definir Alfa aLocalRelatorio;
Definir Alfa aCodEmp;
Definir Alfa aCodFil;
Definir Alfa aNomePDFPix;
DataExtenso(DatSis, aDataExtensa);
/* E-mail remetente precisa ser configurado no senior config center: "XXXXXX.XXXXXXX@XXXXXX.com.br". */
aEmailRemetente = "XXXXXX.XXXXXXX@XXXXXX.com.br";
aAssuntoEmail = "Seu pedido foi confirmado, aguardando pagamento";
nSomaVlrTotal = 0;
aCorpoEmail = "";
aErroEmail = "";
@ Obtendo os valores do título através da tag E301TCR @
nCodEmp = 1 @E301TCR.CodEmp@;
nCodFil = 1 @E301TCR.CodFil@;
nCodCli = 8890892 @E301TCR.CodCli@;
aNumTit = "315102P.01" @E301TCR.NumTit@;
aCodTpt = "PED" @E301TCR.CodTpt@;
IntParaAlfa(nCodEmp, aCodEmp);
IntParaAlfa(nCodFil, aCodFil);
IntParaAlfa(nCodCli, aCodCli);
aNomePDFPix = aCodEmp + aCodFil + aNumTit + aCodTpt + aCodCli + ".pdf";
aNomeRelatorioPIX = "FRES005.GER";
aLocalRelatorio = "\\XXXX\\XXXXX\\XXXXXXX\\XXXX\\" + aNomePDFPix; @ Definir com cliente diretório válido para salvamento do pdf @
aLocalRelatorio = "\\" + aLocalRelatorio; @ Inclusão de mais barra caso pasta definida esteja na rede @
SetaNumeroTelaEntrada("ECodEmp", nCodEmp);
SetaNumeroTelaEntrada("ECodFil", nCodFil);
SetaAlfaTelaEntrada("ENumTit", aNumTit);
SetaAlfaTelaEntrada("ECodTpt", aCodTpt);
ExecutaRelatorioArquivo(aNomeRelatorioPIX, "N", "", "ARQUIVO", aLocalRelatorio, "PDF");
@ Lista os dados do cliente (comprador) e da filial vendedora @
Cur_E070FIL.SQL "SELECT E070FIL.CIDFIL, E070FIL.SIGUFS, E070FIL.NOMFIL, \
E085CLI.CODCLI, E085CLI.NOMCLI, E085CLI.APECLI, E085CLI.INTNET, E301TCR.NUMPED \
FROM E070FIL, E085CLI, E301TCR, E301TPX \
WHERE E070FIL.CODEMP = :nCodEmp \
AND E070FIL.CODFIL = :nCodFil \
AND E085CLI.CODCLI = E301TCR.CODCLI \
AND E301TCR.CODEMP = E301TPX.CODEMP \
AND E301TCR.CODFIL = E301TPX.CODFIL \
AND E301TCR.NUMTIT = E301TPX.NUMTIT \
AND E301TCR.CODTPT = E301TPX.CODTPT \
AND E301TCR.CODEMP = E070FIL.CODEMP \
AND E301TCR.CODFIL = E070FIL.CODFIL \
AND E301TCR.NUMTIT = :aNumTit \
AND E301TCR.CODTPT = :aCodTpt";
Cur_E070FIL.AbrirCursor();
Se (Cur_E070FIL.Achou)
Inicio
aCidFil = Cur_E070FIL.CIDFIL;
aSigUfs = Cur_E070FIL.SIGUFS;
aNomFil = Cur_E070FIL.NOMFIL;
nCodCli = Cur_E070FIL.CODCLI;
aNomCli = Cur_E070FIL.NOMCLI;
aApeCli = Cur_E070FIL.APECLI;
nNumPed = Cur_E070FIL.NUMPED;
aEmailDestinatario = Cur_E070FIL.INTNET;
IntParaAlfa(nNumPed, aNumPed);
IntParaAlfa(nCodCli, aCodCli);
Fim;
Cur_E070FIL.FecharCursor();
@ Geração do conteúdo do e-mail @
aCorpoEmail = "<p>Favor não responder esse e-mail</p> \
<br> \
<p>" + aCidFil + ", " + aDataExtensa + "</p> \
<p>Prezado Cliente,</p> \
<p> " @+ " ( "@ + aCodCli @+ " ) "@ + " - " + aNomCli + " - " + aApeCli + " </p> \
<p>Segue abaixo resumo do seu pedido número "+ aNumPed +" e em anexo segue PIX Cobrança (QR Code) para pagamento antecipado do pedido.</p> \
<p>O PIX Cobrança (QR Code) está liberado para pagamento apenas na data de emissão do pedido. </p> \
<p>A liberação do pedido será processada após o pagamento do Pix.</p> \
<p>Em caso de inconsistências, favor entrar em contato com o seu vendedor</p> \
<p><strong>Resumo do pedido:</strong></p> \
<table border='1' cellpadding='0' cellspacing='0'> \
<tbody> \
<tr> \
<td style='width:350px;'> \
<p align='Center'><strong>Descrição Produto</strong></p> \
</td> \
<td style='width:80px;'> \
<p align='Center'><strong>Quantidade</strong></p> \
</td> \
<td style='width:100px;'> \
<p align='Center'><strong>Valor Unitário</strong></p> \
</td> \
<td style='width:100px;'> \
<p align='Center'><strong>ICMS ST</strong></p> \
</td> \
<td style='width:100px;'> \
<p align='Center'><strong>FCP ST</strong></p> \
</td> \
<td style='width:100px;'> \
<p align='Center'><strong>Valor Total</strong></p> \
</td> \
</tr>";
@ Lista os itens do pedido @
Cur_E120IPD.SQL "SELECT E075PRO.CODPRO, E075PRO.DESPRO, E120IPD.QTDPED, \
E120IPD.PREUNI, E120IPD.VLRICS, E120IPD.VSTFCP, E120IPD.VLRLIQ \
FROM E120IPD, E075PRO \
WHERE E120IPD.CODEMP = :nCodEmp \
AND E120IPD.CODFIL = :nCodFil \
AND E120IPD.NUMPED = :nNumPed \
AND E120IPD.CODEMP = E075PRO.CODEMP \
AND E120IPD.CODPRO = E075PRO.CODPRO";
Cur_E120IPD.AbrirCursor();
Enquanto (Cur_E120IPD.Achou)
Inicio
aCodPro = Cur_E120IPD.CODPRO;
aDesPro = Cur_E120IPD.DESPRO;
nQtdPed = Cur_E120IPD.QTDPED;
nPreUni = Cur_E120IPD.PREUNI;
nVlrIcs = Cur_E120IPD.VLRICS;
nVstFcp = Cur_E120IPD.VSTFCP;
nVlrLiq = Cur_E120IPD.VLRLIQ;
nSomaVlrTotal = nSomaVlrTotal + nVlrLiq;
IntParaAlfa(nQtdPed, aQtdPed);
IntParaStr(nPreUni, aPreUni);
IntParaStr(nQtdPed, aQtdPed);
IntParaStr(nVlrIcs, aVlrIcs);
IntParaStr(nVstFcp, aVstFcp);
IntParaStr(nVlrLiq, aVlrLiq);
IntParaStr(nSomaVlrTotal, aSomaVlrTotal);
@ Loop que monta os itens do pedido @
aCorpoEmail = aCorpoEmail + "<tr> \
<td style='width:350px;'> \
<p>" + aCodPro + " - " + aDesPro + "</p> \
</td> \
<td style='width:80px;'> \
<p align='center'>" + aQtdPed + "</p> \
</td> \
<td style='width:100px;'> \
<p align='center'>R$ " + aPreUni + "</p> \
</td> \
<td style='width:100px;'> \
<p align='center'>R$ " + aVlrIcs + "</p> \
</td> \
<td style='width:100px;'> \
<p align='center'>R$ " + aVstFcp + "</p> \
</td> \
<td style='width:100px;'> \
<p align='center'>R$ " + aVlrLiq + "</p> \
</td> \
</tr>";
Cur_E120IPD.Proximo();
Fim;
Cur_E120IPD.FecharCursor();
aCorpoEmail = aCorpoEmail + "<tr> \
<td colspan='5' style='width:430px;'> \
<p align='center'><strong>Total</strong></p> \
</td> \
<td style='width:100px;'> \
<p align='center'><strong>R$ " + aSomaVlrTotal + "</strong></p> \
</td> \
</tr>";
EnviarEmailEx(aEmailRemetente, aAssuntoEmail, aEmailDestinatario, "", "", aCorpoEmail, aLocalRelatorio, "H", aErroEmail);
@ Se o e-mail não for enviado irá ocorrer erro no processo @
se (aErroEmail <> "OK")
Mensagem(Retorna, aErroEmail);
|
Atenção
Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.
Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.
English
Español
English
Español


