CREATE OR REPLACE TRIGGER LOG_GER_PERFACESSPARC
AFTER DELETE OR INSERT OR UPDATE
ON PERFACESSPARC 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_USUARIO      VARCHAR2(40);
  V_TIPO         VARCHAR2(1);
  V_ITPESQ       VARCHAR2(40);
  V_DESC         VARCHAR2(300);
  V_DTOPER       DATE;
BEGIN
   V_TIPO := '0';
   V_DESC := '';

   IF DELETING THEN
      IF :OLD.NRPERFILACESSO IS NOT NULL THEN
         V_DESC := V_DESC || 'ParcNegocio=' || TO_CHAR(:OLD.NRPARCNEGOCIO) || ' Perfil=' || TO_CHAR(:OLD.NRPERFILACESSO);
      END IF;
      V_TIPO         := '3';
      V_ITPESQ       := TO_CHAR(:OLD.NRPERFACESSPARC);
   ELSE
      IF UPDATING THEN
         IF (:OLD.NRPERFILACESSO <> :NEW.NRPERFILACESSO) THEN
            V_TIPO         := '2';
            V_ITPESQ       := TO_CHAR(:OLD.NRPERFACESSPARC);
         END IF;
      ELSE
         V_TIPO         := '1';
         V_ITPESQ       := TO_CHAR(:NEW.NRPERFACESSPARC);
      END IF;
      IF :NEW.NRPERFILACESSO IS NOT NULL THEN
         V_DESC := V_DESC || 'ParcNegocio=' || TO_CHAR(:NEW.NRPARCNEGOCIO) || ' Perfil=' || TO_CHAR(:NEW.NRPERFILACESSO);
      END IF;
   END IF;
   IF V_TIPO <> '0' THEN
      NMUSUARIO(V_USUARIO);
      WEBTUNNING(V_DSREMOTEADDR,
                 V_DSREMOTEHOST,
                 V_DSSERVERRDM,
                 V_DSSERVMETHOD,
                 V_DSREMOTEOPER);
      IF NOT V_DESC IS NULL THEN
         IF NOT V_USUARIO IS NULL THEN
            INSERT INTO LOGOPERA
               (NMTABELA,   DTOPERACAO, NMRESPOPER,
                IDTIPOOPER, CDPESQITEM, DSOPERACAO,
                DSRDMUSUOPER, DSENDUSUOPER, DSNMUSUOPER,
                DSMETUSUOPER, CDORESPOPER)
            VALUES
               ('PERFACESSPARC', SYSDATE, V_USUARIO,
                V_TIPO, V_ITPESQ, V_DESC,
                V_DSSERVERRDM, V_DSREMOTEADDR, V_DSREMOTEHOST,
                V_DSSERVMETHOD, V_DSREMOTEOPER);
         END IF;
      END IF;
   END IF;
END;