SET TERM ^ ;

CREATE OR ALTER trigger ttbpdv_cfe_item_b04i for tbpdv_cfe_item
active before insert position 1
AS
BEGIN
    /*ATUALIZA OS CAMPOS DO TIPO FISCAL DO CUPOM*/
    IF(NEW.ID > 0)THEN
    BEGIN
      NEW.FISCAL_CFOP_CODIGO             =  NEW.CFOP_CODIGO;
      NEW.FISCAL_TRIBUTACAO_ORIGEM       =  NEW.TRIBUTACAO_ORIGEM;
      NEW.FISCAL_TRIBUTACAO_ICMS         =  NEW.TRIBUTACAO_ICMS;
      NEW.FISCAL_TRIBUTACAO_PIS          =  NEW.TRIBUTACAO_PIS;
      NEW.FISCAL_TRIBUTACAO_COFINS       =  NEW.TRIBUTACAO_COFINS;

      NEW.FISCAL_PERC_BASECALCULO_ICMS   =  NEW.PERCENTUAL_BASECALCULO_ICMS;
      NEW.FISCAL_BASECALCULO_ICMS        =  NEW.BASECALCULO_ICMS;
      NEW.FISCAL_ALIQUOTA_ICMS           =  NEW.ALIQUOTA_ICMS;
      NEW.FISCAL_VALOR_ICMS              =  NEW.VALOR_ICMS;

      NEW.FISCAL_BASECALCULO_PIS         =  NEW.BASECALCULO_PIS;
      NEW.FISCAL_ALIQUOTA_PIS            =  NEW.ALIQUOTA_PIS;
      NEW.FISCAL_VALOR_PIS               =  NEW.VALOR_PIS;

      NEW.FISCAL_BASECALCULO_COFINS      =  NEW.BASECALCULO_COFINS;
      NEW.FISCAL_ALIQUOTA_COFINS         =  NEW.ALIQUOTA_COFINS;
      NEW.FISCAL_VALOR_COFINS            =  NEW.VALOR_COFINS;

      NEW.FISCAL_OUTRAS_ICMS             = COALESCE(NEW.VALOR_CONTABIL, 0) - COALESCE(NEW.FISCAL_BASECALCULO_ICMS, 0);
      NEW.FISCAL_OUTRAS_IPI              = COALESCE(NEW.VALOR_CONTABIL, 0) - COALESCE(NEW.FISCAL_BASECALCULO_IPI, 0) - COALESCE(NEW.VALOR_IPI, 0);

      IF(NEW.FISCAL_OUTRAS_ICMS < 0) THEN
      BEGIN
        NEW.FISCAL_OUTRAS_ICMS = 0;
      END

      IF(NEW.FISCAL_OUTRAS_IPI < 0) THEN
      BEGIN
        NEW.FISCAL_OUTRAS_IPI = 0;
      END
    END

END^

SET TERM ; ^

