Baixar estoque via trigger Interbase
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
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
Curtidas 0