Identificador de Regra
VEN-140ALPES01
Módulo: VEN - Vendas.
Finalidade: alterar os pesos dos itens de produto de notas fiscais de venda durante o cálculo do item na nota fiscal. Todas os campos da tabela de item de nota fiscal, preenchidos com os dados já inseridos, podem ser consultados no formato "." Exemplo: E140IPV.CODEMP. Porém, somente os campos PESBRU e PESLIQ estão liberados para alteração via regra.
Características: os pesos bruto e líquido dos itens serão totalizados normalmente nos dados gerais da nota fiscal.
- quando a chamada for por meio da tela F115NFT (VenATela = F115NFT) ou por meio da tela F115COS (VenATela = F115COS), será possível fazer a consulta do PesSai e PesEni utilizando o formato ".". Exemplo: E115Ces.PesSai.
- quando a chamada for por meio da tela F115CAR (VenATela = F115CAR), o usuário deve fazer um cursor utilizando os campos E115Ces.DatEnt e E115Ces.SeqEnt para a composição da chave.
Observação
No recálculo da nota fiscal de venda o sistema precisa zerar os pesos do cabeçalho para inserir a soma dos pesos dos itens.
Tela: inclusão de itens na nota fiscal.
Transação: não se aplica.
Regra:
Esse exemplo permite devolver os campos de peso da nota fiscal de saída de forma simplificada.
e140ipv.PesLiq = 1;
e140ipv.pesbru = 5;
Esse exemplo permite buscar as informações da tabela E115CES e preenchê-las nos campos de peso do item da nota fiscal de saída.
@ Tela onde o identificador de regras está sendo chamado. @
@ Utilizada nas telas F115CAR, F115NPF e F115COS. @
Definir Alfa VenATela;@ Código da Empresa @
Definir Numero VSCodEmp;@ Código da Filial @
Definir Numero VSCodFil;Definir Numero VSSeqIte;
@ Tipo da nota fiscal @
Definir Numero VSTipNfs;@ Número Nota Fiscal @
Definir Numero VSNumero;@ Código da Série @
Definir Alfa VSCodSnf;@ Transação de produto @
Definir Alfa VSTnsPro;@ Codigo do Produto @
Definir Alfa VSCodPro;@ Codigo da Derivação @
Definir Alfa VSCodDer;@ Numero do Lote @
Definir Alfa VSCodLot;@ Natureza da Operação @
Definir Alfa VSNopPro;Definir Alfa xCursor_Carga;
Definir Alfa xCursor_Ces;
Definir Alfa xComando;
Definir Numero xCodEmp;
Definir Numero xCodFil;
Definir Numero xNumAne;
Definir Numero xNumPfa;Definir Numero xPesSac;
Definir Numero xPesEnc;VSCodEmp = E140IPV.CodEmp;
VSCodFil = E140IPV.CodFil;
VSCodPro = E140IPV.CodPro;
VSCodDer = E140IPV.CodDer;
VSCodLot = E140IPV.CodLot;
VSNopPro = E140IPV.NopPro;
VSNumNfv = E140IPV.NumNfv;
VSCodSnf = E140IPV.CodSnf;
VSCodFor = E140IPV.CodFor;
VSSeqIpv = E140IPV.SeqIpv;
VSQtdFat = E140IPV.QtdFat;
VSPesLiq = E140IPV.PesLiq;
VSPesBru = E140IPV.PesBru;Se (VenATela = "F115CAR")
inicioSe ( (VSCodEmp = 0) ou
(VSCodFil = 0) ou
(VSCodSnf = " ") ou
(VSCodSnf = "") ou
(VSNumNfv = 0)
)inicio
/*
Se ainda não tem a chaves da nota vai embora,
pois não é possível chegar até a Pré fatura e controle de embarque.
*/Cancel(1);
fim;SQL_Criar(xCursor_Carga);
@ Busca a pré fatura que a nota está faturando @
xComando = "SELECT CODEMP, CODFIL, NUMANE, NUMPFA, FILNFV, SNFNFV, NUMNFV FROM E135PFA \
WHERE CODEMP=:PCODEMP \
AND FILNFV=:PFILNFV \
AND SNFNFV=:PSNFNFV \
AND NUMNFV=:PNUMNFV ";SQL_DefinirComando(xCursor_Carga, xComando);
Sql_DefinirInteiro(xCursor_Carga,"pCodEmp",VSCodEmp);
Sql_DefinirInteiro(xCursor_Carga,"pFilNfv",VSCodFil);
Sql_DefinirAlfa(xCursor_Carga,"pSnfNfv",VSCodSnf);
Sql_DefinirInteiro(xCursor_Carga,"pNumNfv",VSNumNfv);SQL_AbrirCursor(xCursor_Carga);
@ Verifica se encontrou carga com o número da nota fiscal gerada @
Se (SQL_EOF(xCursor_Carga) = 0)
inicioSQL_RetornarInteiro(xCursor_Carga, "CodEmp", xCodEmp);
SQL_RetornarInteiro(xCursor_Carga, "CodFil", xCodFil);
SQL_RetornarInteiro(xCursor_Carga, "NumAne", xNumAne);
SQL_RetornarInteiro(xCursor_Carga, "NumPfa", xNumPfa);SQL_FecharCursor(xCursor_Carga);
SQL_Destruir(xCursor_Carga);SQL_Criar(xCursor_Ces);
@ Faz select para buscar dados da E115CES com a analise e pré fatura @
xComando = "SELECT * FROM E115CES, E115PRO \
WHERE E115PRO.CODEMP = E115CES.CODEMP \
AND E115PRO.CODFIL = E115CES.CODFIL \
AND E115PRO.DATENT = E115CES.DATENT \
AND E115PRO.SEQENT = E115CES.SEQENT \
AND E115PRO.CODEMP =:PCODEMP \
AND E115PRO.FILANE =:PFILANE \
AND E115PRO.NUMANE =:PNUMANE \
AND E115PRO.NUMPFA =:PNUMPFA ";SQL_DefinirComando(xCursor_Ces, xComando);
Sql_DefinirInteiro(xCursor_Ces,"pCodEmp",xCodEmp);
Sql_DefinirInteiro(xCursor_Ces,"pFilAne",xCodFil);
Sql_DefinirInteiro(xCursor_Ces,"pNumAne",xNumAne);
Sql_DefinirInteiro(xCursor_Ces,"pNumPfa",xNumPfa);SQL_AbrirCursor(xCursor_Ces);
@ Verifica se encontrou dados na E115CES com a analise e pré fatura @
Se (SQL_EOF(xCursor_Ces) = 0)
inicio
SQL_RetornarFlutuante(xCursor_Ces, "PesSac", xPesSac);
SQL_RetornarFlutuante(xCursor_Ces, "PesEnc", xPesEnc);SQL_FecharCursor(xCursor_Ces);
SQL_Destruir(xCursor_Ces);/*
Utilizar qualquer campo do cursor da tabela E115CES:
PesEnc: Peso registrado na entrada
PesEni: Peso informado na entrada
PesSac: Peso registrado na saída
PesSai: Peso informado na saída
*/@ Retornar o peso desejado para o item da nota fiscal @
E140IPV.PesLiq = 10;
E140IPV.Pesbru = 20;
fim;
fim;
fim;
Variáveis disponibilizadas:
| Nome | Tipo | Observações | Retorna Valor |
|---|---|---|---|
| VenATela | ALFA | Tela onde o identificador de regras está sendo chamado. Utilizada nas telas F115CAR, F115NPF e F115COS. | N |
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.
English
Español
English
Español


