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.

Este artigo ajudou você?