Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcos3001

Controle de estoque

Recommended Posts

Estou com um probleminha.

 

insert into NFRECPRO ("EMPRESA","CONTROLE","PRODUTO","TRANSACAO","QUANTIDADE","DEPSEC")

values ('LJ1',1500,4,'VENDA',5,'S');

 

 

Após inserir registro dá o erro.

 

Erro at line 1 - multiple rows in singleton select

 

 

SET TERM ^ ;

Está executando a trigger abaixo

 

/* Triggers only will work for SQL triggers */

 

CREATE TRIGGER "TRIG_NFRECPROESTQINC" FOR "NFRECPRO"

ACTIVE AFTER INSERT POSITION 0

AS

declare variable mconta integer;

declare variable mbaixa char(1);

declare variable WCODMATPRIMA INTEGER;

declare variable WQUANTMATPRIMA DOUBLE PRECISION;

declare variable wbaixa char(1);

 

begin

Select count(*) from matprod where codprod=new.produto into :mconta;

Select baixa from matprod where codprod=new.produto into :mbaixa;

 

if ((:mconta=0) or (:mconta<>0) and (:mbaixa='A')) then

begin

if (new.depsec='S') then

update produto set quantidade=quantidade-new.quantidade

where produto.codigo=new.produto;

if (new.depsec='D') then

update produto set quant_dep=quant_dep-new.quantidade

where produto.codigo=new.produto;

end

if (:mconta<>0) then

begin

FOR SELECT CODMATPRIMA,QUANTIDADE,BAIXA FROM MATPROD

WHERE CODPROD = new.produto

INTO :WCODMATPRIMA, :WQUANTMATPRIMA, :WBAIXA

DO

BEGIN

if (new.depsec='S') then

update produto set quantidade=quantidade-( new.quantidade * :wquantmatprima)

where codigo= :wcodmatprima;

if (new.depsec='D') then

update produto set quant_dep=quant_dep-( new.quantidade * :wquantmatprima)

where codigo= :wcodmatprima;

END

end

end

^

 

COMMIT WORK ^

SET TERM ;^

 

Montei anteriormente um SP e não consegui executar o store procedure dentro da trigger.

alguma sugestão como posso resolver,

 

sem mais,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.