CREATE OR REPLACE TRIGGER LOG_FILIALCADA
AFTER DELETE OR INSERT OR UPDATE
ON FILIALCADA FOR EACH ROW
DECLARE
  V_DSREMOTEADDR VARCHAR2(15);
  V_DSREMOTEHOST VARCHAR2(15);
  V_DSSERVERRDM  VARCHAR2(20);
  V_DSSERVMETHOD VARCHAR2(30);
  V_DSREMOTEOPER VARCHAR2(12);
  V_DESC         VARCHAR2(500);
  V_ITPESQ       VARCHAR2(40);
  V_NMOPERADOR   VARCHAR2(40);
  V_IDTIPOOPER   VARCHAR2(1);
BEGIN
/* IDTIPOOPER - '1' - Inclusão, '2' - Alteração, '3' - Exclusão*/
   V_DESC         := '';
   V_ITPESQ       := '';
   V_NMOPERADOR   := '';
   V_IDTIPOOPER   := '';
   NMUSUARIO(V_NMOPERADOR);
   WEBTUNNING(V_DSREMOTEADDR,
              V_DSREMOTEHOST,
              V_DSSERVERRDM,
              V_DSSERVMETHOD,
              V_DSREMOTEOPER);

   IF UPDATING THEN
      IF NVL(:OLD.NRCONFIGALCADA, 0) <> NVL(:NEW.NRCONFIGALCADA, 0)    THEN
         V_DESC   := V_DESC || 'Alçada:' || '' || NVL(:NEW.NRCONFIGALCADA,  0)  || ' ';
      END IF;
      IF NVL(:OLD.CDFILIAL, '!')   <> NVL(:NEW.CDFILIAL, '!')   THEN
         V_DESC   := V_DESC || 'Unidade:' || '' || NVL(:NEW.CDFILIAL, '')  || ' ';
      END IF;
      IF NVL(:OLD.IDCONSISTVRAPROV, '!')   <> NVL(:NEW.IDCONSISTVRAPROV, '!')   THEN
         V_DESC   := V_DESC || 'Consiste Vr Aprov:' || '' || NVL(:NEW.IDCONSISTVRAPROV, '')  || ' ';
      END IF;
      V_ITPESQ       := NVL(TO_CHAR(:OLD.NRCONFIGALCADA)||:OLD.CDFILIAL, '');
      V_IDTIPOOPER   := '2';
   ELSE
      IF INSERTING THEN
         V_DESC   := 'Alçada:'            || '' || TO_CHAR(NVL(:NEW.NRCONFIGALCADA, 0)) || ' ' ||
                     'Unidade:'           || '' || NVL(:NEW.CDFILIAL, '')        || ' ' ||
				             'Consiste Vr Aprov:' || '' || NVL(:NEW.IDCONSISTVRAPROV, '');
         
         V_ITPESQ     := TO_CHAR(:NEW.NRCONFIGALCADA)||:NEW.CDFILIAL;
         V_IDTIPOOPER := '1';
      ELSE
         IF DELETING THEN
            V_DESC   := 'Alçada:'            || '' || TO_CHAR(NVL(:OLD.NRCONFIGALCADA, 0))  || ' ' ||
	                      'Unidade:'           || '' || NVL(:OLD.CDFILIAL, '')        || ' ' ||
					              'Consiste Vr Aprov:' || '' || NVL(:OLD.IDCONSISTVRAPROV, '');
            
            V_ITPESQ      := NVL(TO_CHAR(:OLD.NRCONFIGALCADA)||:OLD.CDFILIAL, '');
            V_IDTIPOOPER  := '3';
         END IF;
      END IF;
   END IF;
   V_DESC := NVL(SUBSTR(V_DESC, 1, 300), ' ');
   INSERT INTO LOGOPERA
      (NMTABELA,
       DTOPERACAO,
       NMRESPOPER,
       IDTIPOOPER,
       DSOPERACAO,
       CDPESQITEM,
       DSRDMUSUOPER,
       DSENDUSUOPER,
       DSNMUSUOPER,
       DSMETUSUOPER,
       CDORESPOPER)
    VALUES
      ('FILIALCADA',
       SYSDATE,
       NVL(V_NMOPERADOR,' '),
       V_IDTIPOOPER,
       V_DESC,
       V_ITPESQ,
       V_DSSERVERRDM,
       V_DSREMOTEADDR,
       V_DSREMOTEHOST,
       V_DSSERVMETHOD,
       V_DSREMOTEOPER);
END;
/
