Fórum Divida ao implementar stored procedure em controle de estoque #394804

31/01/2011

0

Colegas,
criei a stored procedure abaixo, na opção inserting eu sei que esta certo, mas na opção updating
eu tenho minhas duvidas, esta correto se eu implementar assim no meu controle de estoque?
Obrigado pela ajuda!!

SET TERM ^ ;
CREATE TRIGGER TR_TESTE_ESTOQUE FOR NF_ENTRADA
ACTIVE AFTER INSERT OR UPDATE POSITION 0
AS
BEGIN
IF (INSERTING) THEN
BEGIN
UPDATE PRODUTO SET QTDE_ESTOQUE = (QTDE_ESTOQUE + NEW.QTDE_ENTRADA) WHERE ID_PRODUTO = NEW.ID_PRODUTO;
END

IF (updating) THEN
BEGIN
UPDATE PRODUTO
SET QTDE_ESTOQUE = (QTDE_ESTOQUE - NEW.QTDE_ENTRADA)
WHERE ID_PRODUTO = NEW.ID_PRODUTO;
END

END^
SET TERM ; ^
Nilo Souza

Nilo Souza

Responder

Posts

01/02/2011

Emerson Nascimento

atualização de nota de entrada? confesso que nunca vi....

de qualquer forma você precisa eliminar o valor anterior e somar o novo valor.

IF (updating) THEN
BEGIN
UPDATE PRODUTO
SET QTDE_ESTOQUE = (QTDE_ESTOQUE - OLD.QTDE_ENTRADA + NEW.QTDE_ENTRADA)
WHERE ID_PRODUTO = NEW.ID_PRODUTO;
END
Responder

Gostei + 0

01/02/2011

Nilo Souza

Não é isso, dou entrada na nota fiscal (nota de entrada) e ela atualiza o meu estoque, se eu atualizar o valor ai acontece o que vc corrigiu. Bem sou iniciante, mas se tiver alguma instrução será muito bem aceita.
Um grande abraço
Responder

Gostei + 0

01/02/2011

Nilo Souza

atualização de nota de entrada? confesso que nunca vi....

de qualquer forma você precisa eliminar o valor anterior e somar o novo valor.

IF (updating) THEN
BEGIN
UPDATE PRODUTO
SET QTDE_ESTOQUE = (QTDE_ESTOQUE - OLD.QTDE_ENTRADA + NEW.QTDE_ENTRADA)
WHERE ID_PRODUTO = NEW.ID_PRODUTO;
END


É new.ID_PRODUTO mesmo? Pq o produto ja esta na tabela, apenas irei alterar o campo quantidade. Fiquei em duvida.
Responder

Gostei + 0

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

Aceitar