Fórum Trigger Não Atualiza Dados #52883
20/09/2005
0
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
Curtir tópico
+ 0
Responder
Posts
27/09/2005
Mordred
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)