CREATE TRIGGER TBNFS_ITEM_B06IU FOR TBNFS_ITEM
ACTIVE BEFORE INSERT OR UPDATE POSITION 6
AS
BEGIN

  IF(NEW.QUANTIDADE < 0)                THEN EXCEPTION "..." 'QUANTIDADE DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_UNITARIO < 0)            THEN EXCEPTION "..." 'VALOR UNITARIO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_TOTAL < 0)               THEN EXCEPTION "..." 'VALOR TOTAL DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.BASECALCULO_ICMS < 0)          THEN EXCEPTION "..." '% BASE CALC. ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.PERCENTUAL_ICMS < 0)           THEN EXCEPTION "..." '% ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.ALIQUOTA_ICMS_ST < 0)           THEN EXCEPTION "..." '% ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PERCENTUAL_IPI < 0)            THEN EXCEPTION "..." '% IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_IPI < 0)                 THEN EXCEPTION "..." 'VALOR IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PERCENTUAL_PIS < 0)            THEN EXCEPTION "..." '% PIS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PERCENTUAL_COFINS < 0)         THEN EXCEPTION "..." '% COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_COFINS < 0)              THEN EXCEPTION "..." 'VALOR COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_CUSTO < 0)               THEN EXCEPTION "..." 'VALOR CUSTO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_ICMS < 0)                THEN EXCEPTION "..." 'VALOR ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.BASECALCULO_IPI < 0)           THEN EXCEPTION "..." 'BASE CALC. IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.BASECALCULO_PIS < 0)           THEN EXCEPTION "..." 'BASE CALC. PIS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.BASECALCULO_COFINS < 0)        THEN EXCEPTION "..." 'BASE CALC. COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_ACRESCIMO < 0)           THEN EXCEPTION "..." 'VALOR ACRESCIMO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_DESCONTO < 0)            THEN EXCEPTION "..." 'VALOR DESCONTO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_CONTABIL < 0)            THEN EXCEPTION "..." 'VALOR CONTABIL DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_BASECALCULO_ICMS < 0)    THEN EXCEPTION "..." 'VALOR BASE CALC. ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.MARGEM_ICMS_ST < 0)            THEN EXCEPTION "..." 'MARGEM ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.REDUCAO_ICMS_ST < 0)           THEN EXCEPTION "..." 'REDUCAO ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.BASECALCULO_ICMS_ST < 0)       THEN EXCEPTION "..." 'BASE CALC. ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_ICMS_ST < 0)             THEN EXCEPTION "..." 'VALOR ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_FRETE < 0)               THEN EXCEPTION "..." 'VALOR FRETE DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_SEGURO < 0)              THEN EXCEPTION "..." 'VALOR SEGURO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PESO_LIQUIDO < 0)              THEN EXCEPTION "..." 'PESO LIQUIDO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PESO_BRUTO < 0)                THEN EXCEPTION "..." 'PESO BRUTO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VOLUMES < 0)                   THEN EXCEPTION "..." 'VOLUMES DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.CUBAGEM < 0)                   THEN EXCEPTION "..." 'CUBABEM DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_FRETE_RATEADO < 0)       THEN EXCEPTION "..." 'VALOR FRETE RATEADO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VBCUFDEST < 0)                 THEN EXCEPTION "..." 'VALOR BASE CALC. UF DEST. DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PFCPUFDEST < 0)                THEN EXCEPTION "..." '% FCP UF DEST. DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PICMSUFDEST < 0)               THEN EXCEPTION "..." '% ICMS UF DEST. DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PICMSINTER < 0)                THEN EXCEPTION "..." '% ICMS INTERNO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VFCPUFDEST < 0)                THEN EXCEPTION "..." 'VALOR FCP UF DEST. DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VICMSUFDEST < 0)               THEN EXCEPTION "..." 'VALOR ICMS UF DEST. DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VICMSUFREMET < 0)              THEN EXCEPTION "..." 'VALOR ICMS UF REMET. DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PICMSINTERPART < 0)            THEN EXCEPTION "..." '% ICMS INTER. PART. DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.QUANTIDADE_ALTERNATIVA < 0)    THEN EXCEPTION "..." 'QUANTIDADE ALTERNATIVA DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_ALTERNATIVO < 0)         THEN EXCEPTION "..." 'VALOR ALTERNATIVO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.CUSTO_FRETE_RATEADO < 0)       THEN EXCEPTION "..." 'CUSTO FRETE RATEADO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';

  -- CAMPOS FISCAIS

  IF(NEW.FISCAL_BASECALCULO_ICMS < 0)           THEN EXCEPTION "..." 'FISCAL % BASE CALC. ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_PERCENTUAL_ICMS < 0)            THEN EXCEPTION "..." 'FISCAL % ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_ALIQUOTA_ICMS_ST < 0)           THEN EXCEPTION "..." 'FISCAL % ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_PERCENTUAL_IPI < 0)             THEN EXCEPTION "..." 'FISCAL % IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_VALOR_IPI < 0)                  THEN EXCEPTION "..." 'FISCAL VALOR IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_PERCENTUAL_PIS < 0)             THEN EXCEPTION "..." 'FISCAL % PIS ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_PERCENTUAL_COFINS < 0)          THEN EXCEPTION "..." 'FISCAL % COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_VALOR_COFINS < 0)               THEN EXCEPTION "..." 'FISCAL VALOR COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_VALOR_ICMS < 0)                 THEN EXCEPTION "..." 'FISCAL VALOR ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_BASECALCULO_IPI < 0)            THEN EXCEPTION "..." 'FISCAL BASE CALC. IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_BASECALCULO_PIS < 0)            THEN EXCEPTION "..." 'FISCAL BASE CALC. PIS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_BASECALCULO_COFINS < 0)         THEN EXCEPTION "..." 'FISCAL BASE CALC. COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_REDUCAO_ICMS_ST < 0)            THEN EXCEPTION "..." 'FISCAL REDUCAO ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_BASECALCULO_ICMS_ST < 0)        THEN EXCEPTION "..." 'FISCAL BASE CALC. ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_VALOR_ICMS_ST < 0)              THEN EXCEPTION "..." 'FISCAL VALOR ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_ISENTAS_IPI < 0)                THEN EXCEPTION "..." 'FISCAL ISENTAS IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_OUTRAS_IPI < 0)                 THEN EXCEPTION "..." 'FISCAL OUTRAS IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_OUTRAS_ICMS < 0)                THEN EXCEPTION "..." 'FISCAL OUTRAS ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';


END;

COMMENT ON TRIGGER TBNFS_ITEM_B06IU IS 'VALIDAÇÃO PARA CAMPOS MONETARIOS NEGATIVOS';

CREATE OR ALTER TRIGGER TBNFE_ITEM_B07IU FOR TBNFE_ITEM
ACTIVE BEFORE INSERT OR UPDATE POSITION 7
AS
BEGIN

  IF(NEW.QUANTIDADE < 0)                THEN EXCEPTION "..." 'QUANTIDADE DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_UNITARIO < 0)            THEN EXCEPTION "..." 'VALOR UNITARIO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_TOTAL < 0)               THEN EXCEPTION "..." 'VALOR TOTAL DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.BASECALCULO_ICMS < 0)          THEN EXCEPTION "..." '% BASE CALC. ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.PERCENTUAL_ICMS < 0)           THEN EXCEPTION "..." '% ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.ALIQUOTA_ICMS_ST < 0)          THEN EXCEPTION "..." '% ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PERCENTUAL_IPI < 0)            THEN EXCEPTION "..." '% IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_IPI < 0)                 THEN EXCEPTION "..." 'VALOR IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PERCENTUAL_PIS < 0)            THEN EXCEPTION "..." '% PIS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.PERCENTUAL_COFINS < 0)         THEN EXCEPTION "..." '% COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_COFINS < 0)              THEN EXCEPTION "..." 'VALOR COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_CUSTO < 0)               THEN EXCEPTION "..." 'VALOR CUSTO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_ICMS < 0)                THEN EXCEPTION "..." 'VALOR ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.BASECALCULO_IPI < 0)           THEN EXCEPTION "..." 'BASE CALC. IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.BASECALCULO_PIS < 0)           THEN EXCEPTION "..." 'BASE CALC. PIS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.BASECALCULO_COFINS < 0)        THEN EXCEPTION "..." 'BASE CALC. COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_ACRESCIMO < 0)           THEN EXCEPTION "..." 'VALOR ACRESCIMO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_DESCONTO < 0)            THEN EXCEPTION "..." 'VALOR DESCONTO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_CONTABIL < 0)            THEN EXCEPTION "..." 'VALOR CONTABIL DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_BASECALCULO_ICMS < 0)    THEN EXCEPTION "..." 'VALOR BASE CALC. ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.MARGEM_ICMS_ST < 0)            THEN EXCEPTION "..." 'MARGEM ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.REDUCAO_ICMS_ST < 0)           THEN EXCEPTION "..." 'REDUCAO ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.BASECALCULO_ICMS_ST < 0)       THEN EXCEPTION "..." 'BASE CALC. ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_ICMS_ST < 0)             THEN EXCEPTION "..." 'VALOR ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_FRETE < 0)               THEN EXCEPTION "..." 'VALOR FRETE DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_SEGURO < 0)              THEN EXCEPTION "..." 'VALOR SEGURO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_FRETE_RATEADO < 0)       THEN EXCEPTION "..." 'VALOR FRETE RATEADO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.QUANTIDADE_ALTERNATIVA < 0)    THEN EXCEPTION "..." 'QUANTIDADE ALTERNATIVA DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_ALTERNATIVO < 0)         THEN EXCEPTION "..." 'VALOR ALTERNATIVO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.CUSTO_FRETE_RATEADO < 0)       THEN EXCEPTION "..." 'CUSTO FRETE RATEADO DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';

  -- CAMPOS FISCAIS

  IF(NEW.FISCAL_BASECALCULO_ICMS < 0)           THEN EXCEPTION "..." 'FISCAL % BASE CALC. ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_PERCENTUAL_ICMS < 0)            THEN EXCEPTION "..." 'FISCAL % ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_ALIQUOTA_ICMS_ST < 0)           THEN EXCEPTION "..." 'FISCAL % ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_PERCENTUAL_IPI < 0)             THEN EXCEPTION "..." 'FISCAL % IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_VALOR_IPI < 0)                  THEN EXCEPTION "..." 'FISCAL VALOR IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_PERCENTUAL_PIS < 0)             THEN EXCEPTION "..." 'FISCAL % PIS ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_PERCENTUAL_COFINS < 0)          THEN EXCEPTION "..." 'FISCAL % COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_VALOR_COFINS < 0)               THEN EXCEPTION "..." 'FISCAL VALOR COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_VALOR_ICMS < 0)                 THEN EXCEPTION "..." 'FISCAL VALOR ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_BASECALCULO_IPI < 0)            THEN EXCEPTION "..." 'FISCAL BASE CALC. IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_BASECALCULO_PIS < 0)            THEN EXCEPTION "..." 'FISCAL BASE CALC. PIS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_BASECALCULO_COFINS < 0)         THEN EXCEPTION "..." 'FISCAL BASE CALC. COFINS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_REDUCAO_ICMS_ST < 0)            THEN EXCEPTION "..." 'FISCAL REDUCAO ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_BASECALCULO_ICMS_ST < 0)        THEN EXCEPTION "..." 'FISCAL BASE CALC. ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_VALOR_ICMS_ST < 0)              THEN EXCEPTION "..." 'FISCAL VALOR ICMS ST DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_ISENTAS_IPI < 0)                THEN EXCEPTION "..." 'FISCAL ISENTAS IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_OUTRAS_IPI < 0)                 THEN EXCEPTION "..." 'FISCAL OUTRAS IPI DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_OUTRAS_ICMS < 0)                THEN EXCEPTION "..." 'FISCAL OUTRAS ICMS DO ITEM '||NEW.SEQUENCIA||'NAO PODE SER NEGATIVO';


END;

COMMENT ON TRIGGER TBNFE_ITEM_B07IU IS 'VALIDAÇÃO PARA CAMPOS MONETARIOS NEGATIVOS';

CREATE TRIGGER TBNFS_TOTAIS_B02IU FOR TBNFS_TOTAIS
ACTIVE BEFORE INSERT OR UPDATE POSITION 2
AS
BEGIN

  IF(NEW.BASECALCULO_ICMS < 0)                      THEN EXCEPTION "..." 'BASE CALC. ICMS TOTAL DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.BASECALCULO_ICMS_SUBST < 0)                THEN EXCEPTION "..." 'BASE CALC. ICMS ST TOTAL DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_ICMS < 0)                            THEN EXCEPTION "..." 'VALOR ICMS TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_ICMS_SUBST < 0)                      THEN EXCEPTION "..." 'VALOR ICMS ST TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_IPI < 0)                             THEN EXCEPTION "..." 'VALOR IPI TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_ISSQN < 0)                           THEN EXCEPTION "..." 'VALOR ISSQN DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_FRETE < 0)                           THEN EXCEPTION "..." 'VALOR FRETE TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_SEGURO < 0)                          THEN EXCEPTION "..." 'VALOR SEGURO TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_PIS < 0)                             THEN EXCEPTION "..." 'VALOR PIS TOTAL DO DOCUMENTONAO PODE SER NEGATIVO';
  IF(NEW.VALOR_COFINS < 0)                          THEN EXCEPTION "..." 'VALOR COFINS TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_CSLL < 0)                            THEN EXCEPTION "..." 'VALOR CSLL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_DESCONTO < 0)                        THEN EXCEPTION "..." 'VALOR DESCONTO TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_ACRESCIMO < 0)                       THEN EXCEPTION "..." 'VALOR ACRESCIMO TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_OUTROSCUSTOS < 0)                    THEN EXCEPTION "..." 'VALOR OUTROS CUSTOS TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_TOTAL_PRODUTO < 0)                   THEN EXCEPTION "..." 'VALOR TOTAL DOS PRODUTOS DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_TOTAL_NF < 0)                        THEN EXCEPTION "..." 'VALOR TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.RETENCAO_VALOR_PIS < 0)                    THEN EXCEPTION "..." 'RETENCAO VALOR PIS DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.RETENCAO_VALOR_COFINS < 0)                 THEN EXCEPTION "..." 'RETENCAO VALOR COFINS DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.RETENCAO_VALOR_INSS < 0)                   THEN EXCEPTION "..." 'RETENCAO VALOR INSS DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.RETENCAO_VALOR_ISSQN < 0)                  THEN EXCEPTION "..." 'RETENCAO VALOR ISSQN DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.RETENCAO_VALOR_IRRF < 0)                   THEN EXCEPTION "..." 'RETENCAO VALOR IRRF DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.RETENCAO_VALOR_CSLL < 0)                   THEN EXCEPTION "..." 'RETENCAO VALOR CSLL DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_PARCELAS < 0)                        THEN EXCEPTION "..." 'VALOR DAS PARCELAS TOTAL DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.RETENCAO_BASE_CALCULO_IRRF < 0)            THEN EXCEPTION "..." 'RETENCAO BASE CALC. IRRF DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.RETENCAO_BASE_CALCULO_INSS < 0)            THEN EXCEPTION "..." 'RETENCAO BASE CALC. INSS DO DOCUMENTO NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_CONTABIL < 0)                        THEN EXCEPTION "..." 'VALOR CONTABIL TOTAL DO DOCUMENTO NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_ESTORNO < 0)                         THEN EXCEPTION "..." 'VALOR ESTORNO DO DOCUMENTO NAO PODE SER NEGATIVO';


END;

COMMENT ON TRIGGER TBNFS_TOTAIS_B02IU IS 'VALIDAÇÃO PARA CAMPOS MONETARIOS NEGATIVOS';