Só para vcs verificarem comigo...

24/07/2003

0

O PROCEDIMENTO ABAIXO ATUALIZA O MEU ESTOQUE ATRAVÉS DE PEDIDOS CONFIRMADOS
COM O DBEdit3(Data de Recebimento); ACRESCENTEI O 1º IF(If (DBEdit4.Text) <> ´´ Then
Application.MessageBox(´Para Este Pedido o Estoque já foi Atualizado´,´Atenção´,MB_OK)
PARA QUE ALÉM DE CHECAR SE A DATA DE RECEBIMENTO ESTÁ PREENCHIDA, ELE TAMBÉM VERIFIQUE
SE O VALOR DE DBEdit4(Valor do Pedido) também está preenchido!
FIZ ISSO PORQUE SEM ESSES IF´s, TODA VEZ QUE EU CLICAVA NO BOTÃO ATUALIZAR, ELE ACRESCENTAVA
(PARA UM MESMO Nº DE PEDIDO) A MESMA QUANTIDADE NO ESTOQUE!

A QUESTÃO É QUE, APESAR DE ESTAR, ATÉ O MOMENTO FUNCIONANDO BEM, EU ACHEI ESSA SOLUÇÃO TÃO
SIMPLÓRIA QUE TENHO MEDO DE QUE ELE ESTEJA FUNCIONANDO BEM ´SÓ PRA ME ENGANAR´...

GOSTARIA DE UMA OUTRA SUGESTÃO SOBRE COMO POSSO EVITAR ISSO (QUE ELE ATUALIZE MAIS DE UMA VEZ,
O MESMO Nº DE PEDIDO)

VALEU !

Alexandre Tavares
Campina Grande - PB


procedure TFrmPedidos.SpeedButton1Click(Sender: TObject);
var
SomaT: Real;
NPed: Integer;
Begin
SomaT:= 0;
NPed:= datamodule2.AdotabPedidoCodPedido.AsInteger;
If (DBEdit4.Text) <> ´´ Then
Application.MessageBox(´Para Este Pedido o Estoque já foi Atualizado´,´Atenção´,MB_OK)
Else
If Trim (DBEdit3.Text) = ´´ Then
Application.MessageBox(´faltando a Data de Recebimento´,´Atenção´,MB_OK)
Else
Begin
With DataModule2 Do
Begin
ADOQrEstoque.Active:= False;
ADOQrEstoque.SQL.Clear;
ADOQrEstoque.SQL.Add(´Select Distinct(CodProd),Qde, PrecoUnit´);
ADOQrEstoque.Sql.Add(´ From TabItems Where CodPedido = ´);
ADOQrEstoque.SQL.Add (IntToStr(NPed));
ADOQrEstoque.Active:= True;
ADOQrEstoque.First;
While Not ADOQrEstoque.Eof Do
Begin
SomaT:= SomaT + ADOQrEstoque.FieldByName(´Qde´).Value * ADOQrEstoque.FieldByName(´PrecoUnit´).Value;
DataModule2.ADOTabPedido.Edit;
DBEdit4.Text:= FloatToStrF(SomaT, Fffixed, 9,2);
DataModule2.ADOTabPedido.Post;
ADOQrAtualizaEstoque.Active:= False;
ADOQrAtualizaEstoque.Parameters.ParamByName(´Codigo´).Value:= ADOQrEstoque.FieldByName(´CodProd´).AsInteger;
ADOQrAtualizaEstoque.Parameters.ParamByName(´Quant´).Value:= ADOQrEstoque.FieldByName(´Qde´).AsInteger;
ADOQrAtualizaEstoque.ExecSQL;
DataModule2.ADOTabProduto.Refresh;
ADOQrEstoque.Next;
End;
End;
End
end;


Alexandretavares

Alexandretavares

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar