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

Este artigo ajudou você?