Fórum duvida com trigger #404603
08/07/2011
0
CREATE TRIGGER SALDO_PRODMADDETLCSAI_EDIT FOR ROMEXPSERRSAIDET ACTIVE AFTER UPDATE POSITION 0 AS declare variable vSaldoProdutosDet decimal(15,3); BEGIN for Select produtosmaddet.volume From produtosmaddet where produtosmaddet.idprodutomad = new.idproduto AND produtosmaddet.larg = new.larg2 AND produtosmaddet.comp = NEW.comp AND produtosmaddet.exp = NEW.esp into vSaldoProdutosDet do update produtosmaddet set produtosmaddet.volume =((produtosmaddet.volume + old.tot2) - NEW.tot2) where (produtosmaddet.idprodutomad = NEW.idproduto AND produtosmaddet.larg = NEW.larg2 AND produtosmaddet.comp = NEW.comp AND produtosmaddet.exp = NEW.esp); update produtosmaddet set produtosmaddet.quantidade =((produtosmaddet.quantidade + old.q2) - NEW.q2) where (produtosmaddet.idprodutomad = NEW.idproduto AND produtosmaddet.larg = NEW.larg2 AND produtosmaddet.comp = NEW.comp AND produtosmaddet.exp = NEW.esp);
Marcus Braga
Curtir tópico
+ 0Posts
08/07/2011
Rafael Mattos
Gostei + 0
08/07/2011
Marcus Braga
Gostei + 0
08/07/2011
Emerson Nascimento
quando você tira do estoque, use OLD, quando inclui, use NEW, visto que você está fazendo uma alteração.
CREATE TRIGGER SALDO_PRODMADDETLCSAI_EDIT FOR ROMEXPSERRSAIDET
ACTIVE AFTER UPDATE POSITION 0
AS
declare variable vSaldoProdutosDet decimal(15,3);
BEGIN
-- volta o volume e a quantidade ao valor anterior
update produtosmaddet set
produtosmaddet.volume = (produtosmaddet.volume - OLD.tot2),
produtosmaddet.quantidade = (produtosmaddet.quantidade - OLD.q2)
where produtosmaddet.idprodutomad = OLD.idproduto
AND produtosmaddet.larg = OLD.larg2
AND produtosmaddet.comp = OLD.comp
AND produtosmaddet.exp = OLD.esp;
-- incrementa o volume e a quantidade no produto
update produtosmaddet set
produtosmaddet.volume = (produtosmaddet.volume + NEW.tot2),
produtosmaddet.quantidade = (produtosmaddet.quantidade + NEW.q2)
where produtosmaddet.idprodutomad = NEW.idproduto
AND produtosmaddet.larg = NEW.larg2
AND produtosmaddet.comp = NEW.comp
AND produtosmaddet.exp = NEW.esp;
Gostei + 0
08/07/2011
Marcus Braga
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)