Identificador de Regra

VEN-143MOTOC01

Módulo: VEN - Vendas.

Finalidade: O grande objetivo deste identificador é informar ao sistema o que deve ser feito com a respectiva nota fiscal que retornou da entrega do dia. Para isso, o usuário poderá informar três possibilidades ao sistema:
a) retornou ok, através da variável VSSelNOk;
b) retornou parcialmente, ou seja, houve devoluções, através da variável VSSelDev;
c) retornou inteira e será reabilitada, através da variável VSSelRea.

Baseando-se nestas informações, o sistema tomará todas as providências para que determinados campos fiquem ou não habilitados, gerem ou não pendências e o mais importante execute o processamente da forma que o usuário deseja.

Adicionado parâmetro (VSMotIte) para permitir que o usuário altere o código do motivo que o item irá receber, independente do código do motivo da nota fiscal informado na tela. Este novo parâmetro irá retornar ao sistema para que os itens sejam alterados, mas somente quando a chamada da regra for proveniente da alteração do da grade da nota fiscal (VSTipCha = 'NFV').

Adicionado parâmetro VSCodMotOK obrigatório e que terá por finalidade retornar para o sistema o motivo padrão "OK" para os itens da nota fiscal na tela de acerto por quantidades (F143ACQ). Este parâmetro servirá para sugerir o código do motivo para os itens quando o código do motivo informado na nota fiscal for "retornou ok" ou "retornou parcialmente".

Características: O parâmetro VSGeraPedido indicará se o motivo do item deverá ou não gerar pedido.

Tela: F143ACQ

Transação: Não se aplica.

Regra:

Definir numero VSCodEmp;
Definir numero VSCodFil;
Definir numero VSCodCli;
Definir alfa VSCodSnf;
Definir numero VSNumNfv;
Definir numero VSNumAne;
Definir numero VSNumRom;
Definir alfa VSNumVei;
Definir alfa VSTipCha; @ NFV = cabeçalho / IPV = itens @
Definir numero VSCodMot;
Definir numero VSMotIte;
Definir numero VSGerPed; @ Indicativo se deverá ou não gerar pedido quando da devolução (0=Não, 1=Sim) @
Definir Cursor cur_e021mot;
Definir alfa VSGeraPedido;


@ ************** RETORNOS ************** @

Definir numero VSSelRea;
Definir numero VSSelDev;
Definir numero VSSelNOk;
Definir numero VSCodMotOK;

VSCodMotOK = 100;

VSSelRea = 0; @ 0 = NÃO /// 1 = SIM @
VSSelDev = 0; @ 0 = NÃO /// 1 = SIM @
VSSelNOk = 0; @ 0 = NÃO /// 1 = SIM @
VSGerPed = 0; @ 0 = NÃO /// 1 = SIM @

se (VSTipCha = "NFV")
inicio
VSMotIte = 100;
se (VSCodMot = 100)
VSSelNOk = 1;
senao se (VSCodMot = 105)
Inicio
VSSelRea = 1;
VSMotIte = VSCodMot;
Fim
senao se (VSCodMot = 110)
Inicio
VSSelDev = 1; @ retornou inteira e será reabilitada @
Fim
senao VSSelDev = 1; @ retornou inteira e será reabilitada @
fim
senao @itens de notas@
inicio
se (VSCodMot = 100)
VSSelNOk = 1;
senao se (VSCodMot = 105)
VSSelRea = 1;
senao se (VSCodMot = 110)
Inicio
VSSelDev = 1; @ retornou inteira e será reabilitada @
VSGerPed = 1; @ gerar pedido @
Fim
senao VSSelDev = 1; @ retornou inteira e será reabilitada @

@ Verificar se o motivo gera ou não pedido através do campo de usuário USU_GERA_VALE @
cur_e021mot.sql "SELECT USU_GERA_VALE FROM E021MOT
WHERE CODMOT=:VSCodMot";
cur_e021mot.abrircursor();
Se (cur_e021mot.achou)
Inicio
VSGeraPedido = cur_e021mot.usu_gera_vale;
ConverteParaMaiusculo (VSGeraPedido);
se (VSGeraPedido = "S")
VSGerPed = 1;
senao
VSGerPed = 0;
fim
cur_e021mot.fecharcursor();

VSMotIte = VSCodMot;
fim;

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
VSCODEMP NÚMERO EMPRESA N
VSCODFIL NÚMERO FILIAL N
VSCODCLI NÚMERO CLIENTE N
VSCODSNF ALFA SERIE DA NOTA N
VSNUMNFV NÚMERO NOTA FISCAL DE SAIDA N
VSNUMANE NÚMERO CARGA N
VSNUMROM NÚMERO ROMANEIO N
VSNUMVEI ALFA VEICULO N
VSTIPCHA ALFA TIPO DA CHAMADA (NFV) ou (IPV) N
VSCODMOT NÚMERO MOTIVO INFORMADO NA TELA N
VSSELREA NÚMERO REABILITAR A NOTA? S
VSSELDEV NÚMERO HOUVE DEVOLUÇÕES? S
VSSELNOK NÚMERO NOTA VOLTOU OK? S
VSMOTITE NÚMERO MOTIVO PARA O ITEM DA NOTA FISCAL S
VSCodMotOK NÚMERO MOTIVO PADRÃO PARA O ITEM DA NOTA FISCAL S
VSGeraPedido ALFA MOTIVO DO ITEM GERA PEDIDO? 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.

Este artigo ajudou você?