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.