CREATE OR REPLACE TRIGGER LOG_FIS_PRODFORNXML
AFTER DELETE OR INSERT OR UPDATE
ON PRODFORNXML FOR EACH ROW
DECLARE
  V_USUARIO      VARCHAR2(40);
  V_TIPO         VARCHAR2(1);
  V_ITPESQ       VARCHAR2(80);
  V_DESC         VARCHAR2(700);
  V_DSREMOTEADDR VARCHAR2(15);
  V_DSREMOTEHOST VARCHAR2(15);
  V_DSSERVERRDM  VARCHAR2(20);
  V_DSSERVMETHOD VARCHAR2(30);
  V_DSREMOTEOPER VARCHAR2(12);
  V_DTOPER       DATE;
BEGIN
   V_TIPO := '0';
   V_DESC := '';

   IF DELETING THEN
      IF :OLD.NMPRODUTOXML IS NOT NULL THEN
         V_DESC := V_DESC || ' NomeProdXml=' || :OLD.NMPRODUTOXML;
      END IF;

      IF :OLD.VRFATCONVOL IS NOT NULL THEN
         V_DESC := V_DESC || ' FatorConvOL=' || :OLD.VRFATCONVOL;
      END IF;

      V_TIPO         := '3';
      V_ITPESQ       := :OLD.CDPRODUTO||:OLD.CDFORNECED||:OLD.CDPRODUTOXML;
   ELSE
      IF UPDATING THEN
         IF (:OLD.NMPRODUTOXML <> :NEW.NMPRODUTOXML) OR
            (:OLD.VRFATCONVOL  <> :NEW.VRFATCONVOL)  THEN
            V_TIPO   := '2';
            V_ITPESQ := :OLD.CDPRODUTO||:OLD.CDFORNECED||:OLD.CDPRODUTOXML;
         END IF;
      ELSE
         V_TIPO   := '1';
         V_ITPESQ := :NEW.CDPRODUTO||:NEW.CDFORNECED||:NEW.CDPRODUTOXML;
      END IF;

      IF NVL(:NEW.NMPRODUTOXML, '!') <> NVL(:OLD.NMPRODUTOXML, '!') THEN
         V_DESC := V_DESC || ' NomeProdXml=' || :NEW.NMPRODUTOXML;
      END IF;

      IF NVL(:NEW.VRFATCONVOL, 0) <> NVL(:OLD.VRFATCONVOL, 0) THEN
         V_DESC := V_DESC || ' FatorConvOL=' || :NEW.VRFATCONVOL;
      END IF;

   END IF;

   IF V_TIPO <> '0' THEN
      NMUSUARIO(V_USUARIO);
      WEBTUNNING(V_DSREMOTEADDR,
                 V_DSREMOTEHOST,
                 V_DSSERVERRDM,
                 V_DSSERVMETHOD,
                 V_DSREMOTEOPER);
      IF V_DESC IS NOT NULL THEN
         IF V_USUARIO IS NOT NULL THEN
            V_DTOPER := SYSDATE;

            INSERT INTO LOGOPERA
               (NMTABELA,
                DTOPERACAO,
                NMRESPOPER,
                IDTIPOOPER,
                CDPESQITEM,
                DSOPERACAO,
                DSRDMUSUOPER,
                DSENDUSUOPER,
                DSNMUSUOPER,
                DSMETUSUOPER,
                CDORESPOPER)
            VALUES
               ('PRODFORNXML',
                V_DTOPER,
                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;
/

-- VERSAO --
BEGIN ATUVEROBJ('PRODFORNXML','6.25.XXX'); END;
/