CREATE OR REPLACE TRIGGER LOG_CMP_PERCENTAJUSTEITEMAF
AFTER INSERT OR UPDATE OR DELETE ON PERCENTAJUSTEITEMAF
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(1500);
  V_CDFILLOGOPER VARCHAR2(4);
  V_ITPESQ       VARCHAR2(80);
  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
      IF (NVL(:OLD.CDFILIAL, 'X') <> NVL(:NEW.CDFILIAL, 'X')) THEN
         V_DESC := V_DESC || 'Filial: ' ||''|| NVL(:NEW.CDFILIAL,'') ||'   ';
      END IF;
      IF (NVL(:OLD.CDPRODUTO, 'X') <> NVL(:NEW.CDPRODUTO, 'X')) THEN
         V_DESC := V_DESC || 'Produto: ' ||''|| NVL(:NEW.CDPRODUTO,'') ||'   ';
      END IF;
      IF (NVL(:OLD.VRPERCENTACRESCIMO, 0) <> NVL(:NEW.VRPERCENTACRESCIMO, 0)) THEN
         V_DESC := V_DESC || 'Acresc.: ' ||''|| NVL(:NEW.VRPERCENTACRESCIMO,'') ||'   ';
      END IF;
      IF (NVL(:OLD.VRPERCENTDESCONTO, 0) <> NVL(:NEW.VRPERCENTDESCONTO, 0)) THEN
         V_DESC := V_DESC || 'Descon.: ' ||''|| NVL(:NEW.VRPERCENTDESCONTO,'') ||'   ';
      END IF;

      V_ITPESQ       := :NEW.NRPERCENTAJUSTEITEMAF;
      V_CDFILLOGOPER := :NEW.CDFILIAL;
      V_IDTIPOOPER   := '2';
   ELSE
      IF INSERTING THEN
         V_DESC   :=       'Filial: '             ||''  || NVL(:NEW.CDFILIAL,'')          ||'  '  ||
                           'Produto: '            ||''  || NVL(:NEW.CDPRODUTO,'')         ||'  '  ||
                           'Acresc.: '            ||''  || NVL(:NEW.VRPERCENTACRESCIMO,'')||'  '  ||
                           'Descon.: '            ||''  || NVL(:NEW.VRPERCENTDESCONTO,'');

         V_ITPESQ       := :NEW.NRPERCENTAJUSTEITEMAF;
         V_CDFILLOGOPER := :NEW.CDFILIAL;
         V_IDTIPOOPER   := '1';
      ELSE
         IF DELETING THEN
            V_DESC   :=    'Filial: '             ||''  || NVL(:OLD.CDFILIAL,'')          ||'  '  ||
                           'Produto: '            ||''  || NVL(:OLD.CDPRODUTO,'')         ||'  '  ||
                           'Acresc.: '            ||''  || NVL(:OLD.VRPERCENTACRESCIMO,'')||'  '  ||
                           'Descon.: '            ||''  || NVL(:OLD.VRPERCENTDESCONTO,'');

            V_ITPESQ       := :OLD.NRPERCENTAJUSTEITEMAF;
            V_CDFILLOGOPER := :OLD.CDFILIAL;
            V_IDTIPOOPER   := '3';
         END IF;
      END IF;
   END IF;
   IF (V_DESC IS NOT NULL)   THEN
      V_DESC := SUBSTR(V_DESC, 1, 400);
      INSERT INTO LOGOPERA
         (NMTABELA,
          DTOPERACAO,
          NMRESPOPER,
          IDTIPOOPER,
          DSOPERACAO,
          CDPESQITEM,
          DSRDMUSUOPER,
          DSENDUSUOPER,
          DSNMUSUOPER,
          DSMETUSUOPER,
          CDORESPOPER,
          CDFILLOGOPER)
      VALUES
         ('PERCENTAJUSTEITEMAF',
          SYSDATE,
          NVL(V_NMOPERADOR,' '),
          V_IDTIPOOPER,
          V_DESC,
          V_ITPESQ,
          V_DSSERVERRDM,
          V_DSREMOTEADDR,
          V_DSREMOTEHOST,
          V_DSSERVMETHOD,
          V_DSREMOTEOPER,
          V_CDFILLOGOPER);
   END IF;
END;
/