SET TERM ^ ;

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 "..." 'VR UNIT. DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_TOTAL < 0)               THEN EXCEPTION "..." 'VR TOTAL DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.BASECALCULO_ICMS < 0)          THEN EXCEPTION "..." '% BS 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 "..." 'VR 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 "..." '% COF DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_COFINS < 0)              THEN EXCEPTION "..." 'VR COF DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_CUSTO < 0)               THEN EXCEPTION "..." 'VR CUSTO DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_ICMS < 0)                THEN EXCEPTION "..." 'VR ICMS DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.BASECALCULO_IPI < 0)           THEN EXCEPTION "..." 'BS CALC.IPI DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVA';
  IF(NEW.BASECALCULO_PIS < 0)           THEN EXCEPTION "..." 'BS CALC.PIS DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVA';
  IF(NEW.BASECALCULO_COFINS < 0)        THEN EXCEPTION "..." 'BS CALC.COF DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_ACRESCIMO < 0)           THEN EXCEPTION "..." 'VR ACRESCIMO DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_DESCONTO < 0)            THEN EXCEPTION "..." 'VR DESCONTO DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_CONTABIL < 0)            THEN EXCEPTION "..." 'VR CONTABIL DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_BASECALCULO_ICMS < 0)    THEN EXCEPTION "..." 'VR BS 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 "..." 'RED.ICMS ST DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVA';
  IF(NEW.BASECALCULO_ICMS_ST < 0)       THEN EXCEPTION "..." 'BS CALC.ICMS ST DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVA';
  IF(NEW.VALOR_ICMS_ST < 0)             THEN EXCEPTION "..." 'VR ICMS ST DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_FRETE < 0)               THEN EXCEPTION "..." 'VR FRETE DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_SEGURO < 0)              THEN EXCEPTION "..." 'VR SEGURO DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_FRETE_RATEADO < 0)       THEN EXCEPTION "..." 'VR FRETE RAT DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.QUANTIDADE_ALTERNATIVA < 0)    THEN EXCEPTION "..." 'QUANT ALTERNATIVA DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.VALOR_ALTERNATIVO < 0)         THEN EXCEPTION "..." 'VR ALTERNATIVO DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.CUSTO_FRETE_RATEADO < 0)       THEN EXCEPTION "..." 'CUSTO FRETE RAT DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';

  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

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

  -- CAMPOS FISCAIS

  IF(NEW.FISCAL_BASECALCULO_ICMS < 0)           THEN EXCEPTION "..." '(FISCAL) % BS 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) VR IPI DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_PERCENTUAL_PIS < 0)             THEN EXCEPTION "..." '(FISCAL) % PIS DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_PERCENTUAL_COFINS < 0)          THEN EXCEPTION "..." '(FISCAL) % COF DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_VALOR_COFINS < 0)               THEN EXCEPTION "..." '(FISCAL) VR COF DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_VALOR_ICMS < 0)                 THEN EXCEPTION "..." '(FISCAL) VR ICMS DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVO';
  IF(NEW.FISCAL_BASECALCULO_IPI < 0)            THEN EXCEPTION "..." '(FISCAL) BS CALC.IPI DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_BASECALCULO_PIS < 0)            THEN EXCEPTION "..." '(FISCAL) BS CALC.PIS DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_BASECALCULO_COFINS < 0)         THEN EXCEPTION "..." '(FISCAL) BS CALC.COFINS DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_REDUCAO_ICMS_ST < 0)            THEN EXCEPTION "..." '(FISCAL) RED.ICMS ST DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_BASECALCULO_ICMS_ST < 0)        THEN EXCEPTION "..." '(FISCAL) BS CALC. ICMS ST DO ITEM '||NEW.SEQUENCIA||' NAO PODE SER NEGATIVA';
  IF(NEW.FISCAL_VALOR_ICMS_ST < 0)              THEN EXCEPTION "..." '(FISCAL) VR 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
^

SET TERM ; ^

