CREATE OR REPLACE TRIGGER LOG_PRODLOJANIVEL
BEFORE UPDATE OR INSERT OR DELETE ON PRODLOJANIVEL
FOR EACH ROW
DECLARE
   V_USUARIO VARCHAR2(40);
   V_TIPO VARCHAR2(1);
   V_DESC VARCHAR2(300);
   V_DSREMOTEADDR VARCHAR2(15);
   V_DSREMOTEHOST VARCHAR2(15);
   V_DSSERVERRDM  VARCHAR2(20);
   V_DSSERVMETHOD VARCHAR2(30);
   V_DSREMOTEOPER VARCHAR2(12);
   V_CDPRODUTO VARCHAR2(20);
   V_CDPESQITEMVND VARCHAR2(40);
BEGIN
   V_CDPESQITEMVND := '';
   V_CDPESQITEMVND := NVL(:NEW.CDFILIAL, :OLD.CDFILIAL);
   V_CDPESQITEMVND := V_CDPESQITEMVND || NVL(:NEW.CDLOJA, :OLD.CDLOJA);
   V_CDPESQITEMVND := V_CDPESQITEMVND || NVL(:NEW.CDPRODUTO, :OLD.CDPRODUTO);
   IF INSERTING THEN
      V_CDPRODUTO := :NEW.CDPRODUTO;
      V_TIPO := '1';
      V_DESC := 'CDFILIAL: '||:NEW.CDFILIAL||' CDLOJA: '||:NEW.CDLOJA||' CDPRODUTO: '||:NEW.CDPRODUTO||' NRSEQIMPRPROD: '||NVL(:NEW.NRSEQIMPRPROD, ' ')||' NRSEQIMPRPROD2: '||NVL(:NEW.NRSEQIMPRPROD2, ' ')||' ';
      V_DESC := V_DESC||' NRSEQIMPRPUXA: '||NVL(:NEW.NRSEQIMPRPUXA, ' ')||' IDIMPCANITEM: '||NVL(:NEW.IDIMPCANITEM, ' ')||' CDSETOR: '||NVL(:NEW.CDSETOR, ' ')||' CDPRODEXCECAO: '||NVL(:NEW.CDPRODEXCECAO, ' ');
   ELSIF UPDATING THEN
      V_CDPRODUTO := :NEW.CDPRODUTO;
      V_TIPO := '2';
      V_DESC := 'CDFILIAL: '||:NEW.CDFILIAL||' CDLOJA: '||:NEW.CDLOJA||' CDPRODUTO: '||:NEW.CDPRODUTO||' NRSEQIMPRPROD: '||NVL(:NEW.NRSEQIMPRPROD, ' ')||' NRSEQIMPRPROD2: '||NVL(:NEW.NRSEQIMPRPROD2, ' ')||' ';
      V_DESC := V_DESC||' NRSEQIMPRPUXA: '||NVL(:NEW.NRSEQIMPRPUXA, ' ')||' IDIMPCANITEM: '||NVL(:NEW.IDIMPCANITEM, ' ')||' CDSETOR: '||NVL(:NEW.CDSETOR, ' ')||' CDPRODEXCECAO: '||NVL(:NEW.CDPRODEXCECAO, ' ');
   ELSE
      V_TIPO := '3';
      V_DESC := 'CDFILIAL: '||:OLD.CDFILIAL||' CDLOJA: '||:OLD.CDLOJA||' CDPRODUTO: '||:OLD.CDPRODUTO||' NRSEQIMPRPROD: '||NVL(:OLD.NRSEQIMPRPROD, ' ')||' NRSEQIMPRPROD2: '||NVL(:OLD.NRSEQIMPRPROD2, ' ')||' ';
      V_DESC := V_DESC||' NRSEQIMPRPUXA: '||NVL(:OLD.NRSEQIMPRPUXA, ' ')||' IDIMPCANITEM: '||NVL(:OLD.IDIMPCANITEM, ' ')||' CDSETOR: '||NVL(:OLD.CDSETOR, ' ')||' CDPRODEXCECAO: '||NVL(:OLD.CDPRODEXCECAO, ' ');
   END IF;

   NMUSUARIO(V_USUARIO);
   WEBTUNNING(V_DSREMOTEADDR,
              V_DSREMOTEHOST,
              V_DSSERVERRDM,
              V_DSSERVMETHOD,
              V_DSREMOTEOPER);

   INSERT INTO LOGOPERAVND
      (NMTABELAVND,   DTOPERACAOVND, NMRESPOPERVND,
       IDTIPOOPERVND, CDPESQITEMVND, DSOPERACAOVND,
       DSRDMUSUOPERVND, DSENDUSUOPERVND, DSNMUSUOPERVND,
       DSMETUSUOPERVND, CDORESPOPERVND)
   VALUES
      ('PRODLOJANIVEL',  SYSDATE, V_USUARIO,
       V_TIPO, V_CDPESQITEMVND, V_DESC,
       V_DSSERVERRDM, V_DSREMOTEADDR, V_DSREMOTEHOST, V_DSSERVMETHOD, V_DSREMOTEOPER);
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('LOG_CONTCTBL','6.35.030'); END;
/
