CREATE OR REPLACE TRIGGER LOG_VND_PRODBLOQVND
AFTER DELETE OR INSERT OR UPDATE
ON PRODBLOQVND 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(4000);
  V_ITPESQ       VARCHAR2(60);
  V_NMOPERADOR   VARCHAR2(40);
  V_IDTIPOOPER   VARCHAR2(1);
BEGIN
/* IDTIPOOPER - '1' - Inclusao, '2' - Alteracao, '3' - Exclusao*/
   V_DESC       := '';
   V_ITPESQ     := '';
   V_NMOPERADOR := '';
   V_IDTIPOOPER := '';
   NMUSUARIO(V_NMOPERADOR);
   IF :NEW.IDORIGENDPOINT = 'S' THEN
      V_NMOPERADOR := 'ORIGEM ENDPOINT';
   END IF;
   WEBTUNNING(V_DSREMOTEADDR,
              V_DSREMOTEHOST,
              V_DSSERVERRDM,
              V_DSSERVMETHOD,
              V_DSREMOTEOPER);
   IF UPDATING THEN
		IF NVL(:NEW.CDFILIAL ,'NULL') <> NVL(:OLD.CDFILIAL ,'NULL') THEN
			V_DESC   := 'Filial ' || '' || NVL(:NEW.CDFILIAL,'');
		END IF;
		IF NVL(:NEW.CDLOJA ,'NULL') <> NVL(:OLD.CDLOJA ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Cod Loja ' || '' || NVL(:NEW.CDLOJA,'');
		END IF;    
		IF NVL(:NEW.CDPRODUTO ,'NULL') <> NVL(:OLD.CDPRODUTO ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Cod Produto ' || '' || NVL(:NEW.CDPRODUTO,'');
		END IF;
		IF NVL(:NEW.CDOPERADOR ,'NULL') <> NVL(:OLD.CDOPERADOR ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Cod. Operador ' || '' || NVL(:NEW.CDOPERADOR,'');
		END IF;
		IF NVL(:NEW.DTHRBLOQUEIO ,TO_DATE('01/01/0001','DD/MM/YYYY')) <> NVL(:OLD.DTHRBLOQUEIO ,TO_DATE('01/01/0001','DD/MM/YYYY')) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Dt Hr Bloqueio ' || '' || NVL(:NEW.DTHRBLOQUEIO,'');
		END IF;
		IF NVL(:NEW.NRDIASEMANABLOQ ,'NULL') <> NVL(:OLD.NRDIASEMANABLOQ ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Dia semana Bloq ' || '' || NVL(:NEW.NRDIASEMANABLOQ,'');
		END IF;    
		IF NVL(:NEW.NRORG ,999999) <> NVL(:OLD.NRORG ,999999) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Nr Org ' || '' || NVL(:NEW.NRORG,'');
		END IF;
		IF NVL(:NEW.DTINCLUSAO ,TO_DATE('01/01/0001','DD/MM/YYYY')) <> NVL(:OLD.DTINCLUSAO ,TO_DATE('01/01/0001','DD/MM/YYYY')) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Dt Inclusao ' || '' || NVL(:NEW.DTINCLUSAO,'');
		END IF;
		IF NVL(:NEW.DTULTATU ,TO_DATE('01/01/0001','DD/MM/YYYY')) <> NVL(:OLD.DTULTATU ,TO_DATE('01/01/0001','DD/MM/YYYY')) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Dt Ult Atualizacao ' || '' || NVL(:NEW.DTULTATU,'');
		END IF;
		IF NVL(:NEW.NRORGINCLUSAO ,999999) <> NVL(:OLD.NRORGINCLUSAO ,999999) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Nr Org Inclusao ' || '' || NVL(:NEW.NRORGINCLUSAO,'');
		END IF;
		IF NVL(:NEW.CDOPERINCLUSAO ,'NULL') <> NVL(:OLD.CDOPERINCLUSAO ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Cod Oper Inclusao ' || '' || NVL(:NEW.CDOPERINCLUSAO,'');
		END IF;
		IF NVL(:NEW.NRORGULTATU ,999999) <> NVL(:OLD.NRORGULTATU ,999999) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Nr Org Ult Atua ' || '' || NVL(:NEW.NRORGULTATU,'');
		END IF;
		IF NVL(:NEW.CDOPERULTATU ,'NULL') <> NVL(:OLD.CDOPERULTATU ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Cod Oper Ult Atua ' || '' || NVL(:NEW.CDOPERULTATU,'');
		END IF;
		IF NVL(:NEW.IDATIVO ,'NULL') <> NVL(:OLD.IDATIVO ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Ativo ' || '' || NVL(:NEW.IDATIVO,'');
		END IF;    
    
    V_ITPESQ := :NEW.CDFILIAL||:NEW.CDLOJA||:NEW.CDPRODUTO||:NEW.NRDIASEMANABLOQ;    
    V_IDTIPOOPER := '2';
  ELSE
    IF INSERTING THEN
      V_DESC   := 'Filial  '             || '' || NVL(:NEW.CDFILIAL,'')         || ' ' ||
                  'Cod Loja  '           || '' || NVL(:NEW.CDLOJA,'')           || ' ' ||	  
                  'Cod Produto '         || '' || NVL(:NEW.CDPRODUTO,'')        || ' ' ||				  
                  'Cod Operador '        || '' || NVL(:NEW.CDOPERADOR,'')       || ' ' ||				  
                  'Dt Hr Bloqueio '      || '' || NVL(:NEW.DTHRBLOQUEIO,'')     || ' ' ||
                  'Dia semana Bloq '     || '' || nvl(:NEW.NRDIASEMANABLOQ, '') || ' ' ||
                  'Nr Org  '             || '' || NVL(:NEW.NRORG,'')            || ' ' ||
                  'Dt Inclusao  '        || '' || NVL(:NEW.DTINCLUSAO,'')       || ' ' ||
                  'Dt Ult Atualizacao  ' || '' || NVL(:NEW.DTULTATU,'')         || ' ' ||
                  'Nr Org Inclusao  '    || '' || NVL(:NEW.NRORGINCLUSAO,'')    || ' ' ||        
                  'Cod Oper Inclusao  '  || '' || NVL(:NEW.CDOPERINCLUSAO,'')   || ' ' ||
                  'Nr Org Ult Atua  '    || '' || NVL(:NEW.NRORGULTATU,'')      || ' ' ||
                  'Cod Oper Ult Atua  '  || '' || NVL(:NEW.CDOPERULTATU,'')     || ' ' ||
                  'Ativo  '              || '' || NVL(:NEW.IDATIVO,'');
                  
         V_ITPESQ := :NEW.CDFILIAL||:NEW.CDLOJA||:NEW.CDPRODUTO||:NEW.NRDIASEMANABLOQ;
         V_IDTIPOOPER := '1';
      ELSE
        IF DELETING THEN
      V_DESC   := 'Filial  '             || '' || NVL(:OLD.CDFILIAL,'')         || ' ' ||
                  'Cod Loja  '           || '' || NVL(:OLD.CDLOJA,'')           || ' ' ||	  
                  'Cod Produto '         || '' || NVL(:OLD.CDPRODUTO,'')        || ' ' ||				  
                  'Cod Operador '        || '' || NVL(:OLD.CDOPERADOR,'')       || ' ' ||				  
                  'Dt Hr Bloqueio '      || '' || NVL(:OLD.DTHRBLOQUEIO,'')     || ' ' ||
                  'Nr Org  '             || '' || NVL(:OLD.NRORG,'')            || ' ' ||
                  'Dia semana Bloq '     || '' || nvl(:NEW.NRDIASEMANABLOQ, '') || ' ' ||
                  'Dt Inclusao  '        || '' || NVL(:OLD.DTINCLUSAO,'')       || ' ' ||
                  'Dt Ult Atualizacao  ' || '' || NVL(:OLD.DTULTATU,'')         || ' ' ||
                  'Nr Org Inclusao  '    || '' || NVL(:OLD.NRORGINCLUSAO,'')    || ' ' ||        
                  'Cod Oper Inclusao  '  || '' || NVL(:OLD.CDOPERINCLUSAO,'')   || ' ' ||
                  'Nr Org Ult Atua  '    || '' || NVL(:OLD.NRORGULTATU,'')      || ' ' ||
                  'Cod Oper Ult Atua  '  || '' || NVL(:OLD.CDOPERULTATU,'')     || ' ' ||
                  'Ativo  '              || '' || NVL(:OLD.IDATIVO,'');
                      
             V_ITPESQ := :OLD.CDFILIAL||:OLD.CDLOJA||:OLD.CDPRODUTO||:OLD.NRDIASEMANABLOQ;
            V_IDTIPOOPER := '3';
         END IF;
      END IF;
   END IF;
   V_DESC := SUBSTR(V_DESC, 1, 4000);
   V_ITPESQ := SUBSTR(V_ITPESQ, 1, 40);
   INSERT INTO LOGOPERAVND
      (NMTABELAVND,
       DTOPERACAOVND,
       NMRESPOPERVND,
       IDTIPOOPERVND,
       DSOPERACAOVND,
       CDPESQITEMVND,
       DSRDMUSUOPERVND,
       DSENDUSUOPERVND,
       DSNMUSUOPERVND,
       DSMETUSUOPERVND,
       CDORESPOPERVND,
       CDFILLOGOPERVND)
   VALUES
      ('ITEMPRECO',
       SYSDATE,
       NVL(V_NMOPERADOR,' '),
       V_IDTIPOOPER,
       NVL(V_DESC,' '),
       V_ITPESQ,
       V_DSSERVERRDM,
       V_DSREMOTEADDR,
       V_DSREMOTEHOST,
       V_DSSERVMETHOD,
       V_DSREMOTEOPER,
       NVL(:NEW.CDFILIAL,:OLD.CDFILIAL));
END;
/