[firebase-br] Firebird IBO ou Programador com erro
MAURICIO COSTA
maximmumsistemas em gmail.com
Qua Jun 2 19:35:47 -03 2010
É melhor você fazer isso direto no banco de dados. Em uma triggers junto com
uma procedure. Caso você queira posso te ajudar. Bata vc enviar a ddl das
tabelas dependentes.
Fica mais seguro do que vc fazer isso via delphi. Uma outra coisa, vc
deveria nos enviar como esta o SQL dentro do componte que atualiza a tabela.
2010/5/26 Marcio Alves de Almeida <net.marcio em gmail.com>
> Tenho um sistema vendas rodado depois de fazer o pedido um cliente
> vai ateh um caixa pagar e nesse momento
> eh dado a baixa no estoque acontece essa semana em uma venda na hora
> da baixa do estoque aconteceu algo estranho tenho uma tabela aparte
> que guarda as movimentacoes dos produto tipo UltimoEstroque a
> quantidade de saida e Saldo depois da venda
> tipo Assim
> Cod UltimoEstoque Saida EstoqueAtual Hora cod_venda
> 1 500 10 490 07:10:10
> 255551
> 1 490 10 480 07:10:15
> 255555
> 1 480 20 460 07:10:22
> 255569
>
>
> acontece que em um determinada venda 1 produto foi dar baixa ao
> mesmo tempo e aconteceu isso
> 1 401 1 400 09:10:01
> 255571
>
> 1 400 1 399 09:10:22
> 255902
> 1 400 1 399 09:10:22
> 255940
>
> ele deveria ficar assim
>
> 1 399 1 398 09:10:22
> 255940
>
> Delphi 7 IBO 4.7.16 Firebird 2.0
> alguem tem uma luz sobre isso o que eu poderia fazer para nao
> acontecer isso
> uma vez que no tabela produtos nao deu baixa no estoque isso nao pode
> acontecer.
>
> If Q_Produto.RecordCount > 0 Then
> Begin
> Modulo.Q_MovSaida.Append;
> Modulo.Q_MovSaidaCod_Venda.Value :=
> Modulo.Q_VendaCod_Venda.Value;
> //*******************************************
> Modulo.Q_MovSaidaVen_NumNota.Value :=
> Modulo.Q_VendaVen_NumNota.Value;
> Modulo.Q_MovSaidaCod_Marca.Value :=
> Q_ItemVendaCod_Marca.Value;
> //*******************************************
> Modulo.Q_MovSaidaCod_ItemVenda.Value :=
> Q_ItemVendaCod_ItemVenda.Value;
> Modulo.Q_MovSaidaCod_Produto.Value :=
> Q_ItemVendaCod_Produto.Value;
> Modulo.Q_MovSaidaCod_Grupo.Value :=
> Q_ItemVendaItem_Cod_Grupo.Value;
> Modulo.Q_MovSaidaCod_vendedor.Value :=
> Modulo.Q_VendaCod_Funcionario.Value;
> Modulo.Q_MovSaidaCod_Caixa.Value :=
> Modulo.Q_VendaCod_Caixa_Funcionario.Value;
> Modulo.Q_MovSaidaNumeroNota.Value :=
> Modulo.Q_VendaVen_NumNota.Value;
> Modulo.Q_MovSaidaSaida_Estorno.Value := 'Venda';
> Modulo.Q_MovSaidaData.Value :=
> Modulo.MemoriaDataServer.Value;
> Modulo.Q_MovSaidaPrecoUnit.Value :=
> Q_ItemVendaItem_VlrVenda.Value;
> Modulo.Q_MovSaidaQuantidade.Value :=
> Q_ItemVendaItem_QtddVenda.Value;
> Modulo.Q_MovSaidaHora.Value := Now;
> Modulo.Q_MovSaidaValorTotal.Value :=
> Q_ItemVendaItem_Total.Value;
> Modulo.Q_MovSaidaCod_Fecha_Nota.Value :=
> Modulo.Q_Fecha_NotaCod_Fecha_Nota.Value;
> Modulo.Q_MovSaidaEstoqueAnterior.Value :=
> Q_ProdutoPro_Quantidade.Value;
> Modulo.Q_MovSaidaEstoqueAtual.Value :=
> Q_ProdutoPro_Quantidade.Value - Q_ItemVendaItem_QtddVenda.Value;
> Modulo.Q_MovSaida.Post;
>
> Q_Produto.Edit;
> Q_ProdutoPro_Quantidade.Value :=
> Q_ProdutoPro_Quantidade.Value - Q_ItemVendaItem_QtddVenda.Value;
> Q_ProdutoPro_DtUltimaVenda.Value :=
> Modulo.MemoriaDataServer.Value;
> Q_Produto.Post;
> end;
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista