Identificador de Regra
CPR-440PRMED02
Módulo: CPR - Compras
Finalidade: Este identificador tem por objetivo permitir que seja utilizado o preço médio do produto, informado via regra em vez do valor líquido do item na valorização dos produtos na tela Valorização do Produto (F440VPR). Para isso, serão disponibilizados na regra a chave do item da nota de entrada que está sendo valorizado, junto com a chave do item da nota fiscal de saída ligada a este item, quando existir.
Observação
O identificador de regra CPR-440PRMED02 irá sobrepor o identificador CPR-440PRMED01, caso os dois estiverem ativos no sistema ao mesmo tempo.
Características: A regra retornará um preço médio que será disponibilizado visualmente na grade inferior da tela F440VPR, que por consequência irão agregar valor aos itens da grade superior, quando relacionados a eles.
O identificador de regra será chamado para todos os componentes da nota fiscal, independente se estes tiverem nota de saída vinculada. O identificador é executado na abertura da tela de valorização (F440VPR) que é o momento em que o sistema carrega os componentes para valorização.
Tela: Valorização de Produtos da Nota Fiscal de Entrada (F440VPR)
Transação: Pode estar ligado à transação do item de produto da nota fiscal de entrada.
Regra:
@ - Variáveis disponíveis na regra - @
definir numero CprNCodEmp;
definir numero CprNCodFil;
definir numero CprNCodFor;
definir alfa CprACodSnf;
definir numero CprNNumNfc;
definir numero CprNSeqIpc;
definir numero CprNEmpNfv;
definir numero CprNFilNfv;
definir alfa CprASnfNfv;
definir numero CprNNumNfv;
definir numero CprNSeqIpv;
definir numero CprNPreMed;
@ - Variáveis utilizadas pelo exemplo - @
definir cursor xSql;
definir numero xTipNfe;
xTipNfe = 0;
xSql.SQL "SELECT TIPNFE FROM E440NFC
WHERE E440NFC.CODEMP=:CprNCodEmp AND
E440NFC.CODFIL=:CprNCodFil AND
E440NFC.CODFOR=:CprNCodFor AND
E440NFC.CODSNF=:CprACodSnf AND
E440NFC.NUMNFC=:CprNNumNfc";
xSql.AbrirCursor();
Se (xSql.Achou)
xTipNfe = xSql.TIPNFE;
xSql.FecharCursor();
@ - Busca e Cálculo Fictício - @
@ ---------------------------- @
Se ((CprNNumNfv > 0) e (xTipNfe = 4)) {
xSql.SQL "SELECT E140IPV.VLRLIQ,E140IPV.QTDFAT, E140IPV.PERICM
FROM E140IPV
WHERE E140IPV.CODEMP=:CprNEmpNfv AND
E140IPV.CODFIL=:CprNFilNfv AND
E140IPV.NUMNFV=:CprNNumNfv AND
E140IPV.CODSNF=:CprASnfNfv AND \
E140IPV.SEQIPV=:CprNSeqIpv";
xSql.AbrirCursor();
Se (xSql.Achou)
CprNPreMed = (xSql.VLRLIQ/xSql.QTDFAT)* (1+(xSql.PERICM/100));
xSql.FecharCursor();
}
@ ---------------------------- @
Variáveis Disponibilizadas:
Nome | Tipo | Observações | Retorna Valor |
---|---|---|---|
CprNCodEmp | NÚMERO | Código da empresa da nota fiscal de entrada | N |
CprNCodFil | NÚMERO | Código da filial da nota fiscal de entrada | N |
CprNCodFor | NÚMERO | Código do fornecedor da nota fiscal de entrada | N |
CprACodSnf | ALFA | Código da série da nota fiscal de entrada | N |
CprNNumNfc | NÚMERO | Número da nota fiscal de entrada | N |
CprNSeqIpc | NÚMERO | Sequência do item na nota fiscal de entrada | N |
CprNEmpNfv | NÚMERO | Código da empresa da nota fiscal de saída | N |
CprNFilNfv | NÚMERO | Código da filial da nota fiscal de saída | N |
CprASnfNfv | ALFA | Série da nota fiscal de saída | N |
CprNNumNfv | NÚMERO | Número da nota fiscal de saída | N |
CprNSeqIpv | NÚMERO | Sequência do item da nota fiscal de saída | N |
CprNPreMed | NÚMERO | Preço médio do componente da valorização | S |
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.