Fórum Trigger atualizar estoque #507915

20/01/2015

0

Boa noite pessoal.

Preciso de uma grande ajuda de vocês.

Estou a migrar o BD de uma aplicaçãoque usava base em ACCESS para Firebird.

Estou tentando elaborar uma trigger que volte ao estoque quando a venda for cancelada da tabela VENDA_ATUAL.
Ou seja quando eu fizer um procedimento para apagar todos os dados da tabela VENDA_ATUAL, a qtde dos produtos volte para a Tabela ESTOQUE

Fiz essa Trigger mas não funciona.

delimiter $$
CREATE TRIGGER `Atualiza_Estoque_Devolucao` BEFORE DELETE ON `VENDA_ATUAL`
FOR EACH ROW
begin
update produtos
set estoque = estoque + old.quantidade
where codprod = old.codprod;
end $$
delimiter ;

Já busquei aqui no Forum e vi que tem outra pessoa com a mesma dúvida, mas parece que não conseguiu resolver

Podem me ajudar ?

Obrigado
Vagner Brentan

Vagner Brentan

Responder

Posts

22/01/2015

Francisco Costa

eu uso uma procedure para cancelamentos.

CREATE OR ALTER PROCEDURE ESTORNAR_ESTOQUE (
numerovenda integer)
as
declare variable pro_codigo varchar(14);
declare variable tipo varchar(1);
declare variable qtde numeric(15,2);
begin
for
select
ivd.pro_codigo,
ivd.ivd_operacao,
ivd.ivd_qtde
from
itensven ivd
where
ivd.ven_numero=:numerovenda
into
:pro_codigo,
:tipo,
:qtde
do
begin
update
estoque est
set
est.est_atual =
(case
when (:tipo in ('V','P')) then
coalesce(est.est_atual + :qtde,0)
when ((:tipo='T') or
(:tipo='D')) then
coalesce(est.est_atual - :qtde,0)
else
0
end)
where
est.pro_codigo=:pro_codigo ;
end
suspend;
end
Responder

Gostei + 0

22/01/2015

Vagner Brentan

Obrigado Francisco Nilson.

Vou tentar implementar aqui e depois posto o resultado.

Grato pela sua ajuda, abraços.
Responder

Gostei + 0

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

Aceitar