RES: [firebase-br] TRIGGER ALTERANDO O CODIGO DO PRODUTO NAUM AQUANTIDADE

Ton hevertonc em hotmail.com
Seg Nov 7 17:42:01 -03 2005


   Só complementando...

   Até onde entendi, no update vc deve somar o que já foi baixado antes e
baixar o novo... Certo?

   Intaum faz assim...

  IF (UPDATING) THEN BEGIN
     UPDATE PRODUTOS
     SET ESTOQUE = ESTOQUE + OLD.quantidade - NEW.quantidade
     WHERE COD_PRODUTO = NEW.cod_produto;
   END

   Isso se a alteração for na quantidade, agora se for no produto do pedido,
o Insert e o Delete já resolvem...

   Abraços...

   PS: Eu também costumava fazer o controle de estoque dessa maneira, e
acabei tendo muitos problemas, inclusive com procedures de atualização de
estoque e tal e quando o cliente queria, por algum motivo, saber qual era o
estoque até tal dia de tal mês, por exemplo... 

   Resolvi esse problema e muitos outros, e facilitei muito o esquema de
estoque, o mesmo que vc tem, trabalhando com Kardex... (Fica aki a dica)

        Ton
Analista de Sistemas
 DotCom Informática

"A informação não é um produto,
mas sim a matéria prima." (Ton)

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Cesar
Enviada em: segunda-feira, 7 de novembro de 2005 16:56
Para: FireBase
Assunto: [firebase-br] TRIGGER ALTERANDO O CODIGO DO PRODUTO NAUM
AQUANTIDADE

Tenho uma trigger que serve para atualizar o estoque..
ela esta funcionando certinho na hora que estou incluindo ...e quando salvo 
blz.
mais quando eu vou mandar alterar..ela esta alterando o codigo do produto e 
naum a quantidade.
alguem pode me ajudar??
a mina trigger esta assim
no before da tabela PEDIDO
AS
begin
  IF (INSERTING) THEN
     UPDATE produtos
     SET ESTOQUE = ESTOQUE - NEW.quantidade
     WHERE COD_PRODUTO = NEW.cod_produto;
  ELSE
  IF (DELETING) THEN
     UPDATE PRODUTOS
     SET ESTOQUE = ESTOQUE + quantidade
     WHERE COD_PRODUTO = OLD.cod_produto;
  ELSE
  IF (UPDATING) THEN BEGIN
     UPDATE PRODUTOS
     SET COD_PRODUTO = ESTOQUE - OLD.quantidade
     WHERE cod_produto = OLD.cod_produto;

     UPDATE PRODUTOS
     SET ESTOQUE = ESTOQUE + NEW.quantidade
     WHERE COD_PRODUTO = NEW.cod_produto;
   END
end 


	

	
		
_______________________________________________________ 
Yahoo! Acesso Grátis: Internet rápida e grátis. 
Instale o discador agora!
http://br.acesso.yahoo.com/



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa




Mais detalhes sobre a lista de discussão lista