CREATE OR REPLACE TRIGGER LOG_VND_DESGRUPROMOCPR
AFTER DELETE OR INSERT OR UPDATE
ON DESGRUPROMOCPR 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_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 := '';
   NMUSUARIO(V_NMOPERADOR);
   WEBTUNNING(V_DSREMOTEADDR,
              V_DSREMOTEHOST,
              V_DSSERVERRDM,
              V_DSSERVMETHOD,
              V_DSREMOTEOPER);
   IF UPDATING THEN
		IF NVL(:NEW.CDGRUPROMOC ,'NULL') <> NVL(:OLD.CDGRUPROMOC ,'NULL') THEN
			V_DESC   := 'Cod Grupo Prom ' || '' || NVL(:NEW.CDGRUPROMOC,''    );
		END IF;
		IF NVL(:NEW.CDPRODPROMOCAO ,'NULL') <> NVL(:OLD.CDPRODPROMOCAO , 'NULL') THEN
			V_DESC := NVL(V_DESC, '') || ' ' || 'Produto Promocional '|| '' || NVL(:NEW.CDPRODPROMOCAO,'');
		END IF;
		IF NVL(:NEW.CDPRODUTO ,'NULL') <> NVL(:OLD.CDPRODUTO ,'NULL') THEN
            V_DESC := NVL(V_DESC, '') || ' ' || 'Produto '     || '' || NVL(:NEW.CDPRODUTO,''  );
		END IF;
		IF NVL(:NEW.IDPERVALORDES ,'NULL') <> NVL(:OLD.IDPERVALORDES ,'NULL') THEN
            V_DESC := NVL(V_DESC, '') || ' ' || 'Percentual/Valor '     || '' || NVL(:NEW.IDPERVALORDES,''  );
		END IF;						
		IF NVL(:NEW.VRDESPRODPROMOC ,999999) <> NVL(:OLD.VRDESPRODPROMOC ,999999) THEN
            V_DESC := NVL(V_DESC, '') || ' ' || 'Valor '  || '' || NVL(:NEW.VRDESPRODPROMOC,'');
		END IF;
		IF NVL(:NEW.IDAPLICADESCPR ,'NULL') <> NVL(:OLD.IDAPLICADESCPR ,'NULL') THEN
            V_DESC := NVL(V_DESC, '') || ' ' || 'Aplica '     || '' || NVL(:NEW.IDAPLICADESCPR,''  );
		END IF;						
		IF NVL(:NEW.IDPRODPRESELEC ,'NULL') <> NVL(:OLD.IDPRODPRESELEC ,'NULL') THEN
            V_DESC := NVL(V_DESC, '') || ' ' || 'Pre-Selecionado '     || '' || NVL(:NEW.IDPRODPRESELEC ,''  );
		END IF;						
		IF NVL(:NEW.NRORDPROMOPR ,999999) <> NVL(:OLD.NRORDPROMOPR ,999999) THEN
            V_DESC := NVL(V_DESC, '') || ' ' || 'Ordem Exb '  || '' || NVL(:NEW.NRORDPROMOPR,'');
		END IF;
		IF NVL(:NEW.IDOBRPRODSELEC ,'NULL') <> NVL(:OLD.IDOBRPRODSELEC ,'NULL') THEN
            V_DESC := NVL(V_DESC, '') || ' ' || 'Produto Obrigat '     || '' || NVL(:NEW.IDOBRPRODSELEC ,''  );
		END IF;						
		IF NVL(:NEW.IDDESCACRPROMO ,'NULL') <> NVL(:OLD.IDDESCACRPROMO ,'NULL') THEN
            V_DESC := NVL(V_DESC, '') || ' ' || 'Desconto/Acrescimo '     || '' || NVL(:NEW.IDDESCACRPROMO ,''  );
		END IF;						

		V_ITPESQ := :NEW.CDGRUPROMOC||:NEW.CDPRODPROMOCAO||:NEW.CDPRODUTO||:NEW.NRSEQGRPROMO;
        V_IDTIPOOPER := '2';
   ELSE
      IF INSERTING THEN
        V_DESC   := 'Cod Grupo Prom '          || '' || NVL(:NEW.CDGRUPROMOC,''    )||   
			   	  ' ' || 'Produto Promocional '|| '' || NVL(:NEW.CDPRODPROMOCAO,'' )|| 
	              ' ' || 'Produto '            || '' || NVL(:NEW.CDPRODUTO,''      )||
                  ' ' || 'Nr Seq '             || '' || NVL(:NEW.NRSEQGRPROMO,''   )||				  
	              ' ' || 'Percentual/Valor '   || '' || NVL(:NEW.IDPERVALORDES,''  )||
                  ' ' || 'Valor '              || '' || NVL(:NEW.VRDESPRODPROMOC,'')||
	              ' ' || 'Aplica '             || '' || NVL(:NEW.IDAPLICADESCPR,'' )||
	              ' ' || 'Pre-Selecionado '    || '' || NVL(:NEW.IDPRODPRESELEC,'' )||
	              ' ' || 'Ordem Exb '          || '' || NVL(:NEW.NRORDPROMOPR,''   )||
	              ' ' || 'Produto Obrigat '    || '' || NVL(:NEW.IDOBRPRODSELEC,'' )||
	              ' ' || 'Desconto/Acrescimo ' || '' || NVL(:NEW.IDDESCACRPROMO,'' );

		V_ITPESQ := :NEW.CDGRUPROMOC||:NEW.CDPRODPROMOCAO||:NEW.CDPRODUTO||:NEW.NRSEQGRPROMO;
        V_IDTIPOOPER := '1';
      ELSE
         IF DELETING THEN
        V_DESC   := 'Cod Grupo Prom '          || '' || NVL(:OLD.CDGRUPROMOC,''    )||   
			   	  ' ' || 'Produto Promocional '|| '' || NVL(:OLD.CDPRODPROMOCAO,'' )|| 
	              ' ' || 'Produto '            || '' || NVL(:OLD.CDPRODUTO,''      )||
                  ' ' || 'Nr Seq '             || '' || NVL(:OLD.NRSEQGRPROMO,''   )||				  
	              ' ' || 'Percentual/Valor '   || '' || NVL(:OLD.IDPERVALORDES,''  )||
                  ' ' || 'Valor '              || '' || NVL(:OLD.VRDESPRODPROMOC,'')||
	              ' ' || 'Aplica '             || '' || NVL(:OLD.IDAPLICADESCPR,'' )||
	              ' ' || 'Pre-Selecionado '    || '' || NVL(:OLD.IDPRODPRESELEC,'' )||
	              ' ' || 'Ordem Exb '          || '' || NVL(:OLD.NRORDPROMOPR,''   )||
	              ' ' || 'Produto Obrigat '    || '' || NVL(:OLD.IDOBRPRODSELEC,'' )||
	              ' ' || 'Desconto/Acrescimo ' || '' || NVL(:OLD.IDDESCACRPROMO,'' );
			V_ITPESQ := :OLD.CDGRUPROMOC||:OLD.CDPRODPROMOCAO||:OLD.CDPRODUTO||:OLD.NRSEQGRPROMO;
			V_IDTIPOOPER := '3';
         END IF;
      END IF;
   END IF;
   V_DESC := SUBSTR(V_DESC, 1, 500);
   INSERT INTO LOGOPERAVND
      (NMTABELAVND,
       DTOPERACAOVND,
       NMRESPOPERVND,
       IDTIPOOPERVND,
       DSOPERACAOVND,
       CDPESQITEMVND,
       DSRDMUSUOPERVND,
       DSENDUSUOPERVND,
       DSNMUSUOPERVND,
       DSMETUSUOPERVND,
       CDORESPOPERVND,
       CDFILLOGOPERVND)
   VALUES
      ('DESGRUPROMOCPR',
       SYSDATE,
       NVL(V_NMOPERADOR,' '),
       V_IDTIPOOPER,
       NVL(V_DESC,' '),
       V_ITPESQ,
       V_DSSERVERRDM,
       V_DSREMOTEADDR,
       V_DSREMOTEHOST,
       V_DSSERVMETHOD,
       V_DSREMOTEOPER,
       '');
END;
/