Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tentando fazer um cancelamento de uma venda e consequentemente a reposição do estoque... criei este código, mas não funciona, gostaria de saber o porquê e qual seria uma possível solução!!! Alguém saberia??? Obrigado!!!
procedure TfrmVenda.BitBtn1Click(Sender: TObject). var prod: array[1..100] of Integer. int: integer. begin dmData.qryDetVenda.Close. dmData.qryDetVenda.SQL.Text:= 'Select * From TBL_DET_VENDA, TBL_VENDAS Where TBL_VENDAS.id_venda = TBL_DET_VENDA.id_venda'. dmData.qryDetVenda.Open. While not dmData.qryDetVenda.Eof do begin prod[int]:= dmData.qryDetVenda.FieldByName('id_produto').AsInteger. int:= int + 1. dmData.qryDetVenda.Next. end. int:= 0. While not int = 100 do begin dmData.qryEstoque.Close. dmData.qryEstoque.SQL.Text:= 'Select * From TBL_ESTOQUE Where id_produto =:prod'. dmData.qryEstoque.Parameters[0].Value:= prod[int]. dmData.qryEstoque.Open. dmData.qryEstoque.FieldByName('qtd_atual').AsInteger:= dmData.qryEstoque.FieldByName('qtd_atual').AsInteger + 1. int:= int + 1. end. dmData.qryDetVenda.Delete. dmData.qryVenda.Delete. end. Não é isso cara... este cancelamento ele faz uma reposição no estoque e não verifica o status da venda!!! Por exemplo, você esta adicionando produtos para venda e necessita de cancelar esta venda em operação... espero ter esclarecido!Valeu!!! :natalwink: Wellington
Num sei pra que tanto while.
Na verdade so bastava ter um campo na sua tabela STATUS ou senao SITUAÇÃO, o que deixasse claro que seria um campo de estado, do tipo VarChar.
Então voce alteraria seu Status para 'CANCELADO' ou caso contrario 'NO ESTOQUE', e assim voce teria um historico e saberia os produtos que foram cancelados ou nao.
Abraço. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif