create or replace TRIGGER LOG_GOP_TAXAADMFILGES
AFTER UPDATE OR INSERT
ON TAXAADMFILGES FOR EACH ROW
DECLARE
  V_TIPO         VARCHAR2(1);
  V_DSREMOTEADDR VARCHAR2(15);
  V_DSREMOTEHOST VARCHAR2(15);
  V_DSSERVERRDM  VARCHAR2(100);
  V_DSSERVMETHOD VARCHAR2(4000);
  V_DSREMOTEOPER VARCHAR2(12);
  V_DESC         VARCHAR2(1000);
  V_CDFILLOGOPER VARCHAR2(4);
  V_ITPESQ       VARCHAR2(40);
  V_NMOPERADOR   VARCHAR2(40);
  V_CDOPERADOR   VARCHAR2(12);

  V_DESCUPD      VARCHAR2(4000);
  V_NMFILIAL     VARCHAR2(30);


BEGIN
/* IDTIPOOPER - '1' - Inclusao, '2' - Alteracao, '3' - Exclusao*/
   V_TIPO         := '0';
   V_DESC         := '';
   V_ITPESQ       := '';
   V_NMOPERADOR   := '';
   V_CDOPERADOR   := '';
   V_CDFILLOGOPER := '';

   V_DESCUPD := 'Taxa Administrativa ' || chr(10) || '-> Taxa Administrativa por Unidade' || chr(10);

   WEBTUNNING(V_DSREMOTEADDR,
              V_DSREMOTEHOST,
              V_DSSERVERRDM,
              V_DSSERVMETHOD,
              V_DSREMOTEOPER);

    V_DSSERVERRDM := 'gop00800_taxa_administrativa';

   SELECT MAX(NMFILIAL) INTO V_NMFILIAL FROM FILIAL WHERE CDFILIAL = :NEW.CDFILIAL;


  IF UPDATING THEN

        V_TIPO         := '2';
        V_ITPESQ       := TO_CHAR(:OLD.CDFILIAL);
        V_CDOPERADOR   := :NEW.CDOPERULTATU;

        NMOPERADOR(V_CDOPERADOR, V_NMOPERADOR);

        V_DESCUPD := V_DESCUPD || chr(10) || 'Unidade: ' || NVL(TO_CHAR(:NEW.CDFILIAL), ' ') || ' - ' || V_NMFILIAL;
        V_DESCUPD := V_DESCUPD || chr(10) || 'Ano: ' || NVL(TO_CHAR(:NEW.CDANO), ' ');

        IF NVL(:OLD.VRMES01, 0) <> NVL(:NEW.VRMES01, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Janeiro alterado de: ' || :OLD.VRMES01 || ' para: ' || :NEW.VRMES01;
            END IF;
        IF NVL(:OLD.VRMES02, 0) <> NVL(:NEW.VRMES02, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Fevereiro alterado de: ' || :OLD.VRMES02 || ' para: ' || :NEW.VRMES02;
            END IF;
        IF NVL(:OLD.VRMES03, 0) <> NVL(:NEW.VRMES03, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Marco alterado de: ' || :OLD.VRMES03 || ' para: ' || :NEW.VRMES03;
            END IF;
        IF NVL(:OLD.VRMES04, 0) <> NVL(:NEW.VRMES04, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Abril alterado de: ' || :OLD.VRMES04 || ' para: ' || :NEW.VRMES04;
            END IF;
        IF NVL(:OLD.VRMES05, 0) <> NVL(:NEW.VRMES05, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Maio alterado de: ' || :OLD.VRMES05 || ' para: ' || :NEW.VRMES05;
            END IF;
        IF NVL(:OLD.VRMES06, 0) <> NVL(:NEW.VRMES06, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Junho alterado de: ' || :OLD.VRMES06 || ' para: ' || :NEW.VRMES06;
            END IF;
        IF NVL(:OLD.VRMES07, 0) <> NVL(:NEW.VRMES07, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Julho alterado de: ' || :OLD.VRMES07 || ' para: ' || :NEW.VRMES07;
            END IF;
        IF NVL(:OLD.VRMES08, 0) <> NVL(:NEW.VRMES08, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Agosto alterado de: ' || :OLD.VRMES08 || ' para: ' || :NEW.VRMES08;
            END IF;
        IF NVL(:OLD.VRMES09, 0) <> NVL(:NEW.VRMES09, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Setembro alterado de: ' || :OLD.VRMES09 || ' para: ' || :NEW.VRMES09;
            END IF;
        IF NVL(:OLD.VRMES10, 0) <> NVL(:NEW.VRMES10, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Outubro alterado de: ' || :OLD.VRMES10 || ' para: ' || :NEW.VRMES10;
            END IF;
        IF NVL(:OLD.VRMES11, 0) <> NVL(:NEW.VRMES11, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Novembro alterado de: ' || :OLD.VRMES11 || ' para: ' || :NEW.VRMES11;
            END IF;
        IF NVL(:OLD.VRMES12, 0) <> NVL(:NEW.VRMES12, 0) THEN 
            V_DESC := V_DESC || chr(10) || 'Dezembro alterado de: ' || :OLD.VRMES12 || ' para: ' || :NEW.VRMES12;
            END IF;

    ELSIF INSERTING THEN

        V_TIPO         := '1';
        V_ITPESQ       := TO_CHAR(:NEW.CDFILIAL);
        V_CDOPERADOR   := :NEW.CDOPERINCLUSAO;

        NMOPERADOR(V_CDOPERADOR, V_NMOPERADOR); 

        V_DESCUPD := V_DESCUPD || chr(10) || 'Unidade: ' || :NEW.CDFILIAL || ' - ' || V_NMFILIAL;
        V_DESCUPD := V_DESCUPD || chr(10) || 'Ano: ' || :NEW.CDANO;

        IF NVL(:NEW.VRMES01, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Janeiro: ' || :NEW.VRMES01;
            END IF;
        IF NVL(:NEW.VRMES02, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Fevereiro: ' || :NEW.VRMES02;
            END IF;
        IF NVL(:NEW.VRMES03, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Marco: ' || :NEW.VRMES03;
            END IF;
        IF NVL(:NEW.VRMES04, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Abril: ' || :NEW.VRMES04;
            END IF;
        IF NVL(:NEW.VRMES05, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Maio: ' || :NEW.VRMES05;
            END IF;
        IF NVL(:NEW.VRMES06, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Junho: ' || :NEW.VRMES06;
            END IF;
        IF NVL(:NEW.VRMES07, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Julho: ' || :NEW.VRMES07;
            END IF;
        IF NVL(:NEW.VRMES08, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Agosto: ' || :NEW.VRMES08;
            END IF;
        IF NVL(:NEW.VRMES09, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Setembro: ' || :NEW.VRMES09;
            END IF;
        IF NVL(:NEW.VRMES10, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Outubro: ' || :NEW.VRMES10;
            END IF;
        IF NVL(:NEW.VRMES11, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Novembro: ' || :NEW.VRMES11;
            END IF;
        IF NVL(:NEW.VRMES12, 0) <> 0 THEN 
            V_DESC := V_DESC || chr(10) || 'Dezembro: ' || :NEW.VRMES12;
            END IF;

   END IF;

    IF NOT V_DESC IS NULL THEN
        V_DESC := V_DESCUPD || V_DESC;
         INSERT INTO LOGOPERAGES
            (NMTABELA,     DTOPERACAO,   NMRESPOPER,  IDTIPOOPER,   DSOPERACAO,  CDPESQITEM,
             DSRDMUSUOPER, DSENDUSUOPER, DSNMUSUOPER, DSMETUSUOPER, CDORESPOPER, CDFILLOGOPER)
         VALUES
            ('TAXAADMFILGES', SYSDATE, NVL(V_NMOPERADOR,' '), V_TIPO, V_DESC, V_ITPESQ, NVL(V_DSSERVERRDM, ' '), 
              NVL(V_DSREMOTEADDR, ' '), NVL(V_DSREMOTEHOST, ' '), NVL(V_DSSERVMETHOD, ' '), NVL(V_CDOPERADOR, ' '),
              NVL(V_CDFILLOGOPER, ' '));
      END IF;
END;