Identificador de Regra
CPR-000CONRE01
Módulo: CPR - Compras.
Finalidade: permite criar consistências personalizadas no processamento do recebimento eletrônico. As consistências são apresentadas no LOG da tela assim como já ocorre para as outras consistências.
Características: a execução desse identificador também contempla o processo agendado do recebimento eletrônico, rotina 67.
O usuário tem acesso aos valores dos dados gerais e dos itens da nota fiscal que estão em memória, através das seguintes tabelas: E440NFC, E440IPC, E440PCD e E440ISC.
Quando houver ligação com a Ordem de Compra, serão também disponibilizados os valores das tabelas da ordem de compra que está vinculada ao item, através das tabelas: E420OCP, E420IPO e E420ISO.
Dica de uso: para separar as mensagens dentro da variável de retorno CPRAMSGCON, utilize o caractere ponto e vírgula ' ; '.
Tela: F000INE.
Transação: Não se aplica.
Regra:
definir alfa CprAMsgCon;
definir alfa CprAProSer;
definir alfa xVlrNF;
definir alfa xVlrOC;
definir alfa xVlrDF;
CprAMsgCon = ""; @ Incializa vazio, para caso não encontrar nenhuma divergência @
Se (CprAProSer = "PRODUTO")
Inicio
Se ((E440IPC.NUMOCP <> 0) E (E440IPC.SEQIPO <> 0)) @ Verifica se há ligação com Ordem de Compra para aplicar consistência de comparação Nota X Ordem @
Inicio
Se (E440IPC.QTDREC <> E420IPO.QTDPED) @ Consistir Quantidade @
Inicio
IntParaAlfa(E440IPC.QTDREC - E420IPO.QTDPED,xVlrDF);
IntParaAlfa(E440IPC.QTDREC,xVlrNF);
IntParaAlfa(E420IPO.QTDPED,xVlrOC);
CprAMsgCon = CprAMsgCon + "A quantidade do item na Nota diverge da Ordem de Compra. Quantidade na Nota: " + xVlrNF + ", quantidade na OC: " + xVlrOC + ". Diferença dos valores: " + xVlrDF + ";";
Fim;
Se (E440IPC.VLRFRE <> E420IPO.VLRFRE) @ Consistir Valor do Frete @
Inicio
IntParaAlfa(E440IPC.VLRFRE - E420IPO.VLRFRE,xVlrDF);
IntParaAlfa(E440IPC.VLRFRE,xVlrNF);
IntParaAlfa(E420IPO.VLRFRE,xVlrOC);
CprAMsgCon = CprAMsgCon + "O valor do frete do item da Nota diverge da Ordem de Compra. Valor na Nota: " + xVlrNF + ", valor na OC: " + xVlrOC + ". Diferença dos valores: " + xVlrDF + ";";
Fim;
Fim;
Senao
Inicio
CprAMsgCon = "Nota de Produto não pode ser recebida.";
Fim
Fim;
Se (CprAProSer = "SERVIÇO")
Inicio
Se ((E440ISC.NUMOCP > 0) E (E440ISC.SEQISO > 0)) @ Verifica se há ligação com Ordem de Compra para aplicar consistência de comparação Nota X Ordem @
Inicio
Se (E440ISC.PREUNI <> E420ISO.PREUNI) @ Consistir Preço Unitário @
Inicio
IntParaAlfa(E440ISC.PREUNI - E420ISO.PREUNI,xVlrDF);
IntParaAlfa(E440ISC.PREUNI,xVlrNF);
IntParaAlfa(E420ISO.PREUNI,xVlrOC);
CprAMsgCon = CprAMsgCon + "O preço do item na Nota diverge da Ordem de Compra. Valor na Nota: " + xVlrNF + ", valor na OC: " + xVlrOC + ". Diferença dos valores: " + xVlrDF + ";";
Fim;
Se (E440ISC.VLRISS <> E420ISO.VLRISS) @ Consistir Valor do ISS @
Inicio
IntParaAlfa(E440ISC.VLRISS - E420ISO.VLRISS,xVlrDF);
IntParaAlfa(E440ISC.VLRISS,xVlrNF);
IntParaAlfa(E420ISO.VLRISS,xVlrOC);
CprAMsgCon = CprAMsgCon + "O valor de ISS do item na Nota diverge da Ordem de Compra. Valor na Nota: " + xVlrNF + ", valor na OC: " + xVlrOC + ". Diferença dos valores: " + xVlrDF + ";";
Fim;
Fim;
Fim;
Variáveis disponibilizadas:
Nome | Tipo | Observações | Retorna Valor |
---|---|---|---|
CprNCgcFil | NÚMERO | CNPJ/CPF da Filial | N |
CprNCgcFor | NÚMERO | CNPJ/CPF do Fornecedor | N |
CprAChvNel | ALFA | Chave Eletrônica da Nota Fiscal | N |
CprAProSer | ALFA | Indicativo a chamada é de um item de "PRODUTO" ou "SERVIÇO". | N |
CprAMsgCon | ALFA | Mensagens de consistência para o item da nota fiscal | S |
E440NFC | TABELA | Tabela E440NFC disponibilizada para consulta. | N |
E440IPC | TABELA | Tabela E440IPC disponibilizada para consulta. | N |
E440PCD | TABELA | Tabela E440PCD disponibilizada para consulta. | N |
E440ISC | TABELA | Tabela E440ISC disponibilizada para consulta. | N |
E420OCP | TABELA | Tabela E420OCP disponibilizada para consulta. | N |
E420IPO | TABELA | Tabela E420IPO disponibilizada para consulta. | N |
E420ISO | TABELA | Tabela E420ISO disponibilizada para consulta. | N |