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.