Identificador de Regra
VEN-135CCACC02
Módulo: VEN - Vendas.
Finalidade: Permite executar uma regra ao concluir a conferência de quantidades de uma pré-fatura. O sistema repassa à regra as informações dos itens conferidos com suas respectivas quantidades, de forma que possam ser gerados relatórios, envio de e-mails, etc.
Características: A lista dos itens conferidos e suas respectivas quantidades são acessadas exclusivamente através da função de programador "LeListaConferenciaPreFatura".
Documentação dos parâmetros da função:
1º parâmetro: Define a posição da lista que deseja-se efetuar a leitura. É importante ressaltar que a lista inicia na posição 0 (zero).
2º parâmetro: Retorna 0 (zero) se encontrou algum registro na posição indicada ou 1 (um) caso não tenha encontrado um registro na posição indicada. Permite identificar o fim da lista.
3º parâmetro: Retorna o código da empresa da pré-fatura.
4º parâmetro: Retorna o código da filial da pré-fatura.
5º parâmetro: Retorna o código da análise de embarque (carga) da pré-fatura.
6º parâmetro: Retorna o código da pré-fatura.
7º parâmetro: Retorna a sequência do item da pré-fatura.
8º parâmetro: Retorna o código de produto do item da pré-fatura.
9º parâmetro: Retorna o código da derivação do produto do item da pré-fatura.
10º parâmetro: Retorna a quantidade pedida do item da pré-fatura.
11º parâmetro: Retorna a quantidade conferida do item da pré-fatura.
Tela: F135CCA_RDCG - Mercado / Gestão de Distribuição / Cargas / Conferência de Cargas (Quantidades)
Transação: Não se aplica.
Regra:
@ É preciso definir as variáveis antes de utilizar a regra. @
xAMensagemEmail = "";
xNPos = 0;
CaracterParaAlfa(10, vNL); @ Nova linha @
LeListaConferenciaPreFatura(xNPos, xNFimLista, xNCodEmp, xNCodFil, xNNumAne, xNNumPfa,
xNSeqPes, xACodPro, xACodDer, xNQtdPed, xNQtdCnf);
Enquanto (xNFimLista = 0) {
Se (xNQtdPed <> xNQtdCnf) {
IntParaAlfa(xNCodEmp,xACodEmp);
IntParaAlfa(xNCodFil,xACodFil);
IntParaAlfa(xNNumAne,xANumAne);
IntParaAlfa(xNNumPfa,xANumPfa);
IntParaAlfa(xNSeqPes,xASeqPes);
IntParaAlfa(xNQtdPed,xAQtdPed);
IntParaAlfa(xNQtdCnf,xAQtdCnf);
EstaNulo(xACodDer,xDerivacaoNula);
Se (xAMensagemEmail = "") {
xAMensagemEmail = "-----------------------------------------------" + vNL +
"| Empresa: " + xACodEmp + vNL +
"| Filial: " + xACodFil + vNL +
"| Análise Embarque: " + xANumAne + vNL +
"| Pré-Fatura: " + xANumPfa + vNL +
"-----------------------------------------------" + vNL;
}
xAMensagemEmail = xAMensagemEmail + "| Item: " + xASeqPes + vNL +
"| Produto: " + xACodPro + vNL;
Se (xDerivacaoNula = 0) {
xAMensagemEmail = xAMensagemEmail + "| Derivação : " + xACodDer + vNL;
}
xAMensagemEmail = xAMensagemEmail + "| Quantidade Pedida: " + xAQtdPed + vNL +
"| Quantidade Conferida: " + xAQtdCnf + vNL +
"| " + vNL;
SQL_Criar(xCursorProduto);
xComandoProduto = "SELECT E075PRO.QTDVOL
FROM E075PRO
WHERE E075PRO.CODEMP = :CODEMP
AND E075PRO.CODPRO = :CODPRO";
SQL_DefinirComando(xCursorProduto,xComandoProduto);
SQL_DefinirInteiro(xCursorProduto,"CODEMP",xNCodEmp);
SQL_DefinirAlfa(xCursorProduto,"CODPRO",xACodPro);
SQL_AbrirCursor(xCursorProduto);
Se (SQL_EOF(xCursorProduto) = 0) {
xNPosVolumes = 0;
LeListaVolumesPreFatura(xNPosVolumes, xNFimListaVolumes, xACodPro, xACodDer, xACodBar, xNQtdVol);
Enquanto (xNFimListaVolumes = 0) {
xNQtdFlt = xNQtdPed - xNQtdVol;
IntParaAlfa(xNQtdVol,xAQtdVol);
IntParaAlfa(xNQtdFlt,xAQtdFlt);
Se (xNPosVolumes = 0) {
xAMensagemEmail = xAMensagemEmail + "| Volumes:" + vNL;
}
xAMensagemEmail = xAMensagemEmail + "| Código de barras: " + xACodBar + vNL +
"| Quantidade lida: " + xAQtdVol + vNL +
"| Quantidade faltante: " + xAQtdFlt + vNL +
"| " + vNL;
xNPosVolumes = xNPosVolumes + 1;
LeListaVolumesPreFatura(xNPosVolumes, xNFimListaVolumes, xACodPro, xACodDer, xACodBar, xNQtdVol);
}
}
SQL_FecharCursor(xCursorProduto);
SQL_Destruir(xCursorProduto);
}
xNPos = xNPos + 1;
LeListaConferenciaPreFatura(xNPos, xNFimLista, xNCodEmp, xNCodFil, xNNumAne, xNNumPfa,
xNSeqPes, xACodPro, xACodDer, xNQtdPed, xNQtdCnf);
}
Se (xAMensagemEmail <> "") {
xAMensagemEmail = xAMensagemEmail + "-----------------------------------------------";
EnviarEmail("diego.teixeira@senior.com.br" @Remetente@,
"Conferência de carga - Quantidades divergentes", @Assunto@
"diego.teixeira@senior.com.br" @Destinatário@,
"diego.teixeira@senior.com.br" @Cópia para@,
"diego.teixeira@senior.com.br" @Cópia oculta@,
xAMensagemEmail @Corpo da mensagem@,
"" @Anexo@,
"" @FormatoMensagem@);
}
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.