Calculos de Pendentes...

Delphi

02/11/2005

Olá amigos...

Tenho uma tabela de movimentação que contém campos como QTDE_ENT (qtde entrada), QTDE_SAI (qtde saida), QTDE_PEND (qtde pendentes) e outra de ESTOQUE que contém por exemplo campo EST_ATUAL (estoque atual).

Se é dada uma entrada de N qtde de um item, a saida tem que ser a mesma da entrada. Porém, qdo é digitada uma saida, faz-se as seguintes verificações no estoque:

1 - Se EST_ATUAL = 0 - mensagem ´estoque zerado´, e não é feita a saida, ficando o item pendente

2 - SE EST_ATUAL < SAIDA (no caso o dbedtQtdeSaida.text), aparece a mensagem pedindo para digitar um valor inferior ao estoque.

3 - SE EST_ATUAL > SAIDA, faz a baixa no estoque

Até aqui está funcionando perfeitamente.

Porém, além da baixa, o sistema precisa verificar qtas unidades ficaram pendentes. Então, para isso, deveria fazer o seguinte:

PENDENTES = ENTRADA - SAIDA, e o status tem que ficar como P (PENDENTE)

Infelizmente, este calculo nao esta sendo feito, o campo QTDE_PEND fica 0

Segue o codigo que eu usei;
...

if FieldByName(´EST_ATUAL´).AsInteger < strtoint(dbedtQtdeSai.Text) then
begin
dbedtQtdeSai.SetFocus;
MessageDlg
(´No estoque contém apenas ´ +
inttostr(dmEstoque.cdsEstoque.FieldByName(´EST_ATUAL´).AsInteger) + ´ unidade(s)´, mtWarning, [mbOK], 0);
exit;
end
else
if FieldByName(´EST_ATUAL´).AsInteger = strtoint(dbedtQtdeSai.Text) then
begin
with dmEstoque.cdsBaixaEstoque do
begin
close;
Params.ParamByName(´EST´).AsInteger := strtoint(dbedtQtdeSai.Text);
Params.ParamByName(´CODCART´).AsInteger := strtoint(dbedtCodCart.Text);
open;
end;

Entrada := strtoint(dbedtqtdeEnt.Text);
Saida := strtoint(dbedtqtdeSai.Text);
Pendencia := Entrada - Saida;

commandText := ´update MOVIMENTACAO set QTDE_PEND = ´ + IntToStr(Pendencia) + ´ where COD_CART = ´ + dbedtCodCart.Text;
dmMovimentacao.cdsMovimentacao.Refresh;

if Pendencia = 0 then

FieldByName(´STATUS´).AsString := ´R´
else
begin
FieldByName(´STATUS´).AsString := ´P´;
showmessage(´pendentes´);
end
....

showmessage(´Saida efetuada com sucesso!!!´);

fim...

Estou utilizando delphi2005, dbxpress, interbase

Gostaria de saber onde está o erro, sendo que a unica coisa que o sistema não esta fazendo é o calculo de pendentes, o resto está ok, eu até verifiquei no banco para fazer as constataçoes....

Por hora, obrigado, e fico no aguardo...

Um abraço a todos,

Rogerio


Roger1976

Roger1976

Curtidas 0
POSTAR