CREATE OR REPLACE TRIGGER LOG_SUP_PERFILPROD
AFTER DELETE OR INSERT OR UPDATE
ON PERFILPROD 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_CDFILLOGOPER VARCHAR2(4);
  V_ITPESQ       VARCHAR2(40);
  V_NMOPERADOR   VARCHAR2(40);
  V_IDTIPOOPER   VARCHAR2(1);
BEGIN
/* IDTIPOOPER - '1' - Inclusao, '2' - Alteracao, '3' - Exclusao*/

   V_DESC       := '';
   V_ITPESQ     := '';
   V_NMOPERADOR := '';
   V_IDTIPOOPER := '';
   V_CDFILLOGOPER := '';
   NMUSUARIO(V_NMOPERADOR);
   WEBTUNNING(V_DSREMOTEADDR,
              V_DSREMOTEHOST,
              V_DSSERVERRDM,
              V_DSSERVMETHOD,
              V_DSREMOTEOPER);
   IF UPDATING THEN
      V_DESC       := 'Filial '        || '' || :NEW.CDFILIAL   || ' ' ||
                      'Produto '       || '' || :NEW.CDPRODUTO  || ' ' ||
                      'Periodicidade ' || '' || :NEW.CDPERIENTR;
      V_ITPESQ       := :NEW.CDFILIAL||:NEW.CDPRODUTO;
      V_CDFILLOGOPER := :NEW.CDFILIAL;
      V_IDTIPOOPER   := '2';
   ELSE
      IF INSERTING THEN
         V_DESC   := 'Filial '        || '' || :NEW.CDFILIAL   || ' ' ||
                     'Produto '       || '' || :NEW.CDPRODUTO  || ' ' ||
                     'Periodicidade ' || '' || :NEW.CDPERIENTR;
         V_ITPESQ       := :NEW.CDFILIAL||:NEW.CDPRODUTO;
         V_CDFILLOGOPER := :NEW.CDFILIAL;
         V_IDTIPOOPER   := '1';
      ELSE
         IF DELETING  THEN
            V_DESC   := 'Filial '        || '' || :OLD.CDFILIAL   || ' ' ||
                        'Produto '       || '' || :OLD.CDPRODUTO  || ' ' ||
                        'Periodicidade ' || '' || :OLD.CDPERIENTR;
            V_ITPESQ       := :OLD.CDFILIAL||:OLD.CDPRODUTO;
            V_CDFILLOGOPER := :OLD.CDFILIAL;
            V_IDTIPOOPER   := '3';
         END IF;
      END IF;
   END IF;
   V_DESC := SUBSTR(V_DESC, 1, 300);
   INSERT INTO LOGOPERA
      (NMTABELA,
       DTOPERACAO,
       NMRESPOPER,
       IDTIPOOPER,
       DSOPERACAO,
       CDPESQITEM,
       DSRDMUSUOPER,
       DSENDUSUOPER,
       DSNMUSUOPER,
       DSMETUSUOPER,
       CDORESPOPER,
       CDFILLOGOPER)
    VALUES
      ('PERFILPROD',
       SYSDATE,
       NVL(V_NMOPERADOR, ' '),
       V_IDTIPOOPER,
       V_DESC,
       V_ITPESQ,
       V_DSSERVERRDM,
       V_DSREMOTEADDR,
       V_DSREMOTEHOST,
       V_DSSERVMETHOD,
       V_DSREMOTEOPER,
       V_CDFILLOGOPER);
END;
/