SugerirLoteUnico

Efetuar a sugestão do lote de forma única, ou seja, não pode haver sugestão de mais lotes para o produto a ser sugerido. Aceita a sugestão parcial do lote caso não haja quantidade para atender a demanda total com um único lote.

Sintaxe: Funcao SugerirLoteUnico(Numero pCodEmp,Alfa pCodPro,Alfa pCodDer,Alfa pCodDep,Alfa pCodLot,Numero pQtdSug);

Parâmetros:

Nome Tipo Descrição
pCodEmp Numero Variável com o código da empresa para a sugestão da quantidade do lote.
pCodPro Alfa Variável com o código do produtora para a sugestão da quantidade do lote.
pCodDer Alfa Variável com o código da derivação do produto para a sugestão da quantidade do lote.
pCodDep Alfa Variável com o código do depósito onde encontra-se o produto para a sugestão da quantidade do lote.
pCodLot Alfa Variável com o código do lote para sugestão.
pQtdSug Numero Variável com a quantidade a ser sugerida para o lote e produto na distribuição.

Exemplo: Regra do identificador VEN-135EUDLE02 para sugestão de lote único:

Definir Cursor Cur_E210DLS;
Definir numero VSCodEmp;
Definir alfa VSCodPro;
Definir alfa VSCodDer;
Definir alfa VSCodDep;
Definir numero VSQtdFat;
Definir numero VSNumPed;
Definir alfa aCodLot;
Definir alfa aMensagem;
Definir alfa aNumPed;
Definir numero VSSeqIpd;
Definir alfa aCurE120Ped;
Definir alfa aSeqIpd;
Definir alfa aCodProSig;
Definir numero aQtdRae;

Definir numero VSFilPed;

aCodLot = "";

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

Cur_E210DLS.AbrirCursor();

se(Cur_E210DLS.NaoAchou)
{
@Cur_E210DLS.FecharCursor();@
@aMensagem = "Lote: "+aCodLot+" não encontrado na tabela de lotes (E210DLS)!";@
@Mensagem(Erro,aMensagem);@

TotQtdEst = 0;

}
senao
{
TotQtdEst = 0;
}

Enquanto(Cur_E210DLS.Achou)
{
@ Soma a quantidade de estoque que encontrou@
TotQtdEst = TotQtdEst + Cur_E210DLS.QtdEst;
aQtdRae = Cur_E210DLS.QtdRae;
aCodLot = Cur_E210DLS.CodLot;
Cur_E210DLS.Proximo();
}
Cur_E210DLS.FecharCursor();

Se ((TotQtdEst-aQtdRae)<VSQtdFat)
{
xTotalADistribuir = TotQtdEst - aQtdRae;
}
senao
xTotalADistribuir = VSQtdFat;

Se (xTotalADistribuir>0)
{
SugerirLoteUnico(VSCodEmp,VSCodPro,VSCodDer,VSCodDep,aCodLot,xTotalADistribuir);
}

Este artigo ajudou você?