Baixar estoque via trigger Interbase

Firebird

11/10/2004

Pessoal preciso de ajuda !

Estou desenvolvendo uma trigger q baixa o estoque assim q a venda for autorizada pelo gerente , ao confirmar a venda o aplicativo coloca em um campo na tabela vendas confirmado para ´S´ após atualizar entra a trigger com a seguinte função abaixo : ( depois de atualizar )

AS
declare variable CODIGO VARCHAR(11);
declare variable QT INTEGER;
BEGIN

if (rvendas.confirmado=´S´) then
BEGIN

FOR SELECT SVENDAS.CODPROD,SVENDAS.qtven
FROM SVENDAS
WHERE SVENDAS.AUTOVENDA=OLD.autovenda INTO :CODIGO,:QT

DO

BEGIN

UPDATE ESTOQUE SET ESTOQUE.´qtd_atual´ = ESTOQUE.´qtd_atual´-:QT
WHERE ESTOQUE.codigo = :CODIGO ;

UPDATE SVENDAS SET SVENDAS.sok=´S´ WHERE SVENDAS.AUTOVENDA=OLD.AUTOVENDA;
END

UPDATE RVENDAS SET RVENDAS.CONFIRMADO=´B´ WHERE ******
RVENDAS.AUTOVENDA=OLD.autovenda;*******

END
END

O problema é o seguinte : Quando o gerente autorizar a venda ele informa o numero inicial e final , até aí beleza . ( O Código está abaixo )

UPDATE RVENDAS SET RVENDAS.CONFIRMAR=´S´ WHERE RVENDAS.AUTOVENDA BETWEEN :INI AND :FIN´

Só q neste intervalo ele já pode ter autorizado uma venda e será dado
baixa 2 vezes no estoque . O problema é q o comando q está com asterisco acima não consegue ser efetuado não sei porque .

Eduardo


Cedu

Cedu

Curtidas 0
POSTAR