Identificador de Regra
VEN-140MDFE007
Módulo: VEN - Vendas.
Finalidade: este identificador de regras será executado ao fechar o documento através das telas de emissão de MDF-e. Através dele, o cliente poderá automatizar a geração da informação de Tipo de Carga e Produto/Derivação do Produto Predominante, ou seja, quando este identificador estiver cadastrado, o sistema não obrigará a digitação dos campos Tipo de Carga e Produto/Derivação do Produto Predominante nas telas do MDF-e.
Telas: F145EBQ, F145GSM e F440MDF.
Variáveis Disponibilizadas:
Nome | Tipo | Observações | Retorna Valor |
---|---|---|---|
VenNCodEmp |
NÚMERO | Código da empresa | N |
VenNCodFil |
NÚMERO | Código da filial | N |
VenACodSnf |
ALFA | Código da série fiscal | N |
VenNNumEbq |
NÚMERO | Número do embarque | N |
VenNNumMan |
NÚMERO | Número do manifesto | N |
VenNTipCga |
NÚMERO | Tipo da Carga | S |
VenACodPro |
ALFA | Código do Produto Predominante | S |
VenACodDer |
ALFA | Código da Derivação do Produto Predominante | S |
definir numero VenNCodEmp; @Código da Empresa@
definir numero VenNCodFil; @Código da Filial@
definir numero VenNNumEbq; @Número Embarque (usado para MDF-e Saída)@
definir alfa VenACodSnf; @Série da MDF-e (usado para MDF-e Entrada)@
definir numero VenNNumMan; @Número Manifesto (usado para MDF-e Entrada)@
definir numero VenNTipCga; /*Tipo de Carga Conforme Resolução ANTT nº.5.849/2019.
01-Granel sólido; 02-Granel líquido; 03-Frigorificada; 04-Conteinerizada; 05-Carga Geral;
06-Neogranel; 07-Perigosa (granel sólido); 08-Perigosa (granel líquido);
09-Perigosa (carga frigorificada); 10-Perigosa (conteinerizada); 11-Perigosa (carga geral). */
definir alfa VenACodPro; @Cód. Produto Predominante@
definir alfa VenACodDer; @Cód. Derivação Produto Predominante@
Definir Cursor Cur_Produto;
inicio
/* Exemplo de regra encontrando o primeiro produto de maior valor das NF-es relacionadas */
se (VenNNumEbq > 0) @Se número de embarque maior que zero, é MDF-e Saída@
Cur_Produto.SQL "select E140IPV.CODPRO, E140IPV.CODDER, E075PRO.CODFAM, E140IPV.VLRLIQ \
from E145CLD, E140IPV, E075PRO \
where E145CLD.CODEMP = E140IPV.CODEMP \
and E145CLD.CODFIL = E140IPV.CODFIL \
and E145CLD.SNFNFV = E140IPV.CODSNF \
and E145CLD.NUMNFV = E140IPV.NUMNFV \
and E075PRO.CODPRO = E140IPV.CODPRO \
and E145CLD.CODEMP = :VenNCodEmp \
and E145CLD.CODFIL = :VenNCodFil \
and E145CLD.NUMEBQ = :VenNNumEbq \
order by E140IPV.VLRLIQ desc "
senao
Cur_Produto.SQL "select E440IPC.CODPRO, E440IPC.CODDER, E075PRO.CODFAM, E440IPC.VLRLIQ \
from E440IMD, E440IPC, E075PRO \
where E440IMD.CODEMP = E440IPC.CODEMP \
and E440IMD.CODFIL = E440IPC.CODFIL \
and E440IMD.CODFOR = E440IPC.CODFOR \
and E440IMD.CODSNF = E440IPC.CODSNF \
and E440IMD.NUMNFC = E440IPC.NUMNFC \
and E440IMD.CODEMP = :VenNCodEmp \
and E440IMD.CODFIL = :VenNCodFil \
and E440IMD.CODSMA = :VenACodSnf \
and E440IMD.NUMMAN = :VenNNumMan \
order by E440IPC.VLRLIQ desc "
Cur_Produto.AbrirCursor();
Se (Cur_Produto.Achou)
inicio
VenACodPro = Cur_Produto.CodPro;
VenACodDer = Cur_Produto.CodDer;
se (Cur_Produto.CodFam = "CBT") @Exemplo: Se for da família de Combustíveis@
VenNTipCga = 8; @ 08-Perigosa (granel líquido) @
senao
VenNTipCga = 1; @ 01-Granel sólido @
fim;
Cur_Produto.FecharCursor();
fim;
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.
.