Trigger Não Atualiza Dados
Tenho duas tabelas, uma de Nota Fiscal, outra de Itens da Nota Fiscal. Na tabela de Itens da Nota Fiscal criei uma trigger para atualizar os totais da tabela de Nota Fiscal. O problema é que dois campos (VALORICMS, BASCALICMS) estão sendo zerados, não importando o valor que possuíam antes, quando o Item da Nota possui o campo ICMS com valor zero. Eis a trigger:
Será que eu esqueci de alguma coisa?
SET TERM ^ ; CREATE TRIGGER TGCALCNOTA FOR ITNOTAFISCAL ACTIVE AFTER INSERT POSITION 0 AS DECLARE VARIABLE BASECALC DOUBLE PRECISION; DECLARE VARIABLE VRICMS DOUBLE PRECISION; BEGIN /*SE O PRODUTO POSSUIR ALÍQUOTA DE ICMS, ATUALIZA BASECALC*/ /*E O VALOR DE ICMS*/ IF (NEW.ICMS > 0) THEN BEGIN BASECALC=NEW.VALORTOTAL; VRICMS=UDF_ROUNDDEC((NEW.VALORTOTAL*NEW.ICMS)/100,2); END IF (VRICMS IS NULL) THEN VRICMS=0; IF (BASECALC IS NULL)THEN BASECALC=0; /*VALORTOTAL=VALORTOTAL+NEW.VALORTOTAL; VALORICMS=VALORICMS+VRICMS; BASCALICMS=BASCALICMS+BASECALC;*/ /*ATUALIZA O VALOR TOTAL, O VALOR DO ICMS E A BASECALICMS*/ UPDATE NOTAFISCAL N SET N.VALORTOTAL=UDF_ROUNDDEC(N.VALORTOTAL+NEW.VALORTOTAL,2), N.VALORICMS=UDF_ROUNDDEC (N.VALORICMS+:VRICMS,2), N.BASCALICMS=UDF_ROUNDDEC(N.BASCALICMS+:BASECALC,2) WHERE N.NUMERONOTA=NEW.NUMERONOTA; END ^ SET TERM ; ^
Será que eu esqueci de alguma coisa?
Mordred
Curtidas 0
Respostas
Mordred
20/09/2005
Correção: os registros estavam não estavam entrando com valor=0 na tabela master. Estavam entrando com valor NULO. Por isso não atualizava o resultado corretamente.
GOSTEI 0