Identificador de Regra

VEN-140CFILE01

Módulo: VEN - Vendas.

Finalidade: Sugerir lotes e suas respectivas quantidades, quando o web service com.senior.g5.co.int.varejo.cupomfiscal@Gravar não receber uma distribuição de lote.

Características: O identificador de regras não possuir variáveis de retorno para o sistema, é necessário utilizar as funções de programador "MontaListaLotesSugeridos", "LimpaListaLotesSugeridos" ou "SugerirLoteCriterio".

O identificador de regras tem prioridade de execução sobre os identificadores "GER-140EUDLE01" e "VEN-140EUDLE02", ou seja, algum destes identificadores estejam ativos junto com o identificador "VEN-140CFILE01", o identificador "VEN-140CFILE01" é que será executado no processo de importação de cupom fiscal.

Tela: Importação de Cupom Fiscal

Transação: Não se aplica.

Regra:

@Finalidade: Sugerir lotes e suas respectivas quantidades

Definir Cursor Cur_E210DLS;
Definir numero VSCodEmp;
Definir alfa VSCodPro;
Definir alfa VSCodDer;
Definir alfa VSCodDep;
Definir numero VSQtdFat;

Cur_E210DLS.SQL"Select CodEmp, CodPro, CodDer, CodDep, CodLot, QtdEst
From E210DLS
Where CodEmp = :vsCodEmp
and codpro = :vsCodPro
and CodDer = :vsCodDer
and CodDep = :vsCodDep
and QtdEst > 0
and QtdRes = 0 Order by CodLot Desc";

Cur_E210DLS.AbrirCursor();
Enquanto(Cur_E210DLS.Achou)
inicio
@ Soma a quantidade de estoque que encontrou@
TotQtdEst = TotQtdEst + Cur_E210DLS.QtdEst;
Cur_E210DLS.Proximo();
fim;
Cur_E210DLS.FecharCursor();

@Verifica se o total dos lotes encontrados atende a quantidade a faturar@
Se (TotQtdEst < VSQtdFat)
Mensagem(Erro,"Não existem lotes disponíveis para atender a quantidade do item.");

Cur_E210DLS.AbrirCursor();
xTotalADistribuir = VSQtdFat;

@Distribui a quantidade encontrada nos lotes até atender a quantidade a faturar@
Enquanto (xTotalADistribuir > 0)
Inicio
xQtdDistribuir = Cur_E210DLS.QtdEst;
Se (xQtdDistribuir > xTotalADistribuir)
xQtdDistribuir = xTotalADistribuir;

MontaListaLotesSugeridos(VSCodEmp,VSCodPro,VSCodDer,VSCodDep,Cur_E210DLS.CodLot,xQtdDistribuir);

xTotalADistribuir = xTotalADistribuir - xQtdDistribuir;
Cur_E210DLS.Proximo();
Fim;

Cur_E210DLS.FecharCursor();

Variáveis Disponibilizadas:

Nome Tipo Observações Retorna Valor
VSCodEmp NÚMERO Código da empresa N
VSCodFil NÚMERO Código da filial N
VSCodSnf ALFA Código da série da nota fiscal N
VSNumNfv NÚMERO Número da nota fiscal N
VSSeqIpv NÚMERO Sequência do item da nota fiscal N
VSNumPed NÚMERO Número do pedido N
VSSeqIpd NÚMERO Sequência do item de pedido N
VSCodPro ALFA Código do produto N
VSCodDer ALFA Código da derivação N
VSCodDep ALFA Código do depósito N
VSQtdFat NÚMERO Quantidade faturada 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.

Este artigo ajudou você?