Componente TZUpdateSQL
03/04/2018
0
Estou trabalhando com esse componente para fazer update dos items de venda do caixa do meu sistema.
Ele funciona que é uma beleza porém, estou fazendo um modulo de comandas e estou tentando utilizar este componente porém, quando tento adicionar os items na comanda 2 ele simplesmente adiciona na comanda 1...
tentei de diversas maneiras resolver esse problema porém me esgotaram as ideias por isso peço ajuda a vocês.
tables:
zqrComandaItem
updComandaItem:
Modify:
Insert
delete:
Como estou adicionando o item na comanda:
dsvendaitem = dmCantina.zqrComandaItem;
Estou passando por parâmetro para saber qual comanda está:
dmCantina.zqrComandaItem.Params[0].Value := dsvenda.DataSet.FieldByName('v_id').Value;
os dbgrids funcionam muito bem, porém na hora de adicionar o produto sempre vai para a comanda 1 que seria a v_id 1
Ele funciona que é uma beleza porém, estou fazendo um modulo de comandas e estou tentando utilizar este componente porém, quando tento adicionar os items na comanda 2 ele simplesmente adiciona na comanda 1...
tentei de diversas maneiras resolver esse problema porém me esgotaram as ideias por isso peço ajuda a vocês.
tables:
zqrComandaItem
SELECT vi.*, v.*, p.p_nome, p.p_preco, p.p_quantidade, p.p_peso, p.p_atividade FROM vi_comanda_item vi, p_produto p, v_comandas v WHERE vi.vi_produto = p.p_id AND vi.vi_comanda = :comanda AND p.p_atividade = 'S'
updComandaItem:
Modify:
UPDATE vi_comanda_item SET vi_produto = :vi_produto, vi_cliente = :vi_cliente, vi_comanda = :vi_comanda, vi_valor = :vi_valor, vi_quantidade = :vi_quantidade, vi_peso = :vi_peso, vi_total = :vi_total WHERE vi_comanda_item.vi_id = :OLD_vi_id AND vi_comanda_item.vi_produto = :OLD_vi_produto AND vi_comanda_item.vi_cliente = :OLD_vi_cliente AND vi_comanda_item.vi_comanda = :OLD_vi_comanda
Insert
INSERT INTO vi_comanda_item (vi_produto, vi_cliente, vi_comanda, vi_valor, vi_quantidade, vi_peso, vi_total) VALUES (:vi_produto, :vi_cliente, :vi_comanda, :vi_valor, :vi_quantidade, :vi_peso, :vi_total)
delete:
DELETE FROM vi_comanda_item WHERE vi_comanda_item.vi_id = :OLD_vi_id AND vi_comanda_item.vi_produto = :OLD_vi_produto AND vi_comanda_item.vi_cliente = :OLD_vi_cliente AND vi_comanda_item.vi_comanda = :OLD_vi_comanda
Como estou adicionando o item na comanda:
dsvendaitem = dmCantina.zqrComandaItem;
with dsvendaitem.dataset do begin Append; if (peso >= 1) then begin pesooo := strtofloat(Inputbox('Digite o peso','Qual é o peso da venda?','')); if (pesooo = 0) or (pesooo > dmcantina.ztrProdutosp_peso.AsFloat) then begin showmessage('Quantidade Invalida!'); end else begin fieldbyname('vi_produto').Value := dmcantina.ztrProdutosp_id.Value; fieldbyname('vi_cliente').Value := frmopencommand.idcliente; fieldbyname('vi_valor').Value := dsprodutos.DataSet.FieldByName('p_preco').Value; FieldByName('vi_peso').Value := pesooo; fieldbyname('vi_total').Value := fieldbyname('vi_peso').value * fieldbyname('vi_valor').Value; Post; dmcantina.ztrProdutos.Active; dmcantina.ztrProdutos.Edit; dmcantina.ztrProdutosp_peso.Value := dmcantina.ztrProdutosp_peso.Value - dsvendaitem.dataset.fieldbyname('vi_peso').Value; dmcantina.ztrProdutos.Post; peso := peso-FieldByName('vi_peso').Value; end end else if (qtd >= 1) then begin fieldbyname('vi_produto').Value := dsprodutos.DataSet.FieldByName('p_id').Value; fieldbyname('vi_cliente').Value := frmopencommand.idcliente; fieldbyname('vi_valor').Value := dsprodutos.DataSet.FieldByName('p_preco').Value; fieldbyname('vi_quantidade').Value := 1; fieldbyname('vi_total').Value := fieldbyname('vi_quantidade').Value * fieldbyname('vi_valor').Value; Post; dmcantina.ztrProdutos.Active; dmcantina.ztrProdutos.Edit; dmcantina.ztrProdutosp_quantidade.Value := dmcantina.ztrProdutosp_quantidade.Value - dsvendaitem.dataset.fieldbyname('vi_quantidade').Value; dmcantina.ztrProdutos.Post; qtd := qtd-1; end else if (dsprodutos.DataSet.FieldByName('p_peso').Value = 0) then begin showmessage('Produto Não Disponivel em Estoque!'); end else if (dsprodutos.DataSet.FieldByName('p_quantidade').Value = 0) then begin showmessage('Produto Não Disponivel em Estoque'); end; end;
Estou passando por parâmetro para saber qual comanda está:
dmCantina.zqrComandaItem.Params[0].Value := dsvenda.DataSet.FieldByName('v_id').Value;
os dbgrids funcionam muito bem, porém na hora de adicionar o produto sempre vai para a comanda 1 que seria a v_id 1
Michel
Curtir tópico
+ 0
Responder
Posts
03/04/2018
Michel
Na verdade agora até consegui adicionar o item na comanda certa porém está dando esse erro após adicionar items em uma das comandas:
https://ibb.co/iXwLsH
https://ibb.co/iXwLsH
Responder
03/04/2018
Michel
está dando erro por causa dessa tabela:
SELECT v.*, c_nome, f_nome FROM v_comandas v INNER JOIN c_cliente ON v.v_cliente = c_cliente.c_id INNER JOIN f_funcionario ON v.v_caixa = f_funcionario.f_id WHERE v.v_status = 'ABERTA'
Responder
Clique aqui para fazer login e interagir na Comunidade :)