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);
}