CREATE OR REPLACE TRIGGER LOG_VND_ITEMPRECODIAGER
AFTER DELETE OR INSERT OR UPDATE
ON ITEMPRECODIAGER 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(100);
  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.CDTABEPREC ,'NULL') <> NVL(:OLD.CDTABEPREC ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Cd da Tabela de Preco ' || '' || NVL(:NEW.CDTABEPREC,'');
		END IF;
		IF NVL(:NEW.DTINIVGPREC ,TO_DATE('01/01/0001','DD/MM/YYYY')) <> NVL(:OLD.DTINIVGPREC ,TO_DATE('01/01/0001','DD/MM/YYYY')) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'DTINIVGPREC ' || '' || NVL(:NEW.DTINIVGPREC,'');
		END IF;
		IF NVL(:NEW.CDPRODUTO ,'NULL') <> NVL(:OLD.CDPRODUTO ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Cd Produto ' || '' || NVL(:NEW.CDPRODUTO,'');
		END IF;
		IF NVL(:NEW.CDPRPAITABPR ,'NULL') <> NVL(:OLD.CDPRPAITABPR ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Cd Pai ' || '' || NVL(:NEW.CDPRPAITABPR,'');
		END IF;
		IF NVL(:NEW.NRDIASEMANPR ,'NULL') <> NVL(:OLD.NRDIASEMANPR ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Nr dia Semana '|| '' || NVL(:NEW.NRDIASEMANPR,'');
		END IF;
		IF NVL(:NEW.HRINIPRECDIA ,'NULL') <> NVL(:OLD.HRINIPRECDIA ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Hr Inicio ' || '' || NVL(:NEW.HRINIPRECDIA,'');
		END IF;
		IF NVL(:NEW.CDTIPOCONSPD ,'NULL') <> NVL(:OLD.CDTIPOCONSPD ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Cd Tipo Cons ' || '' || NVL(:NEW.CDTIPOCONSPD,'');
		END IF;
		IF NVL(:NEW.HRFINPRECDIA ,'NULL') <> NVL(:OLD.HRFINPRECDIA ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Hr Fim ' || '' || NVL(:NEW.HRFINPRECDIA,'');
		END IF;
		IF NVL(:NEW.VRPRECODIA ,999999) <> NVL(:OLD.VRPRECODIA ,999999) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Preco produto ' || '' || NVL(:NEW.VRPRECODIA,'');
		END IF;
		IF NVL(:NEW.IDPERVALORPR ,'NULL') <> NVL(:OLD.IDPERVALORPR ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Id Valor-perc ' || '' || NVL(:NEW.IDPERVALORPR,'');
		END IF;
		IF NVL(:NEW.IDDESCACREPR ,'NULL') <> NVL(:OLD.IDDESCACREPR ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Id Desconto ' || '' || NVL(:NEW.IDDESCACREPR,'');
		END IF;
		IF NVL(:NEW.DTINIVALPREC ,TO_DATE('01/01/0001','DD/MM/YYYY')) <> NVL(:OLD.DTINIVALPREC ,TO_DATE('01/01/0001','DD/MM/YYYY')) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Dt Inicio Validade ' || '' || NVL(:NEW.DTINIVALPREC,'');
		END IF;
		IF NVL(:NEW.DTFINVALPREC ,TO_DATE('01/01/0001','DD/MM/YYYY')) <> NVL(:OLD.DTFINVALPREC ,TO_DATE('01/01/0001','DD/MM/YYYY')) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Dt Fim Validade ' || '' || NVL(:NEW.DTFINVALPREC,'');
		END IF;
		IF NVL(:NEW.DTULTATUITPD ,TO_DATE('01/01/0001','DD/MM/YYYY')) <> NVL(:OLD.DTULTATUITPD ,TO_DATE('01/01/0001','DD/MM/YYYY')) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Dt Ult Atu ' || '' || NVL(:NEW.DTULTATUITPD,'');
		END IF;
		IF NVL(:NEW.IDVISUACUPOM ,'NULL') <> NVL(:OLD.IDVISUACUPOM ,'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Id Visua Desc Cupom ' || '' || NVL(:NEW.IDVISUACUPOM,'');
		END IF;
      IF NVL(:NEW.VRPRECODIADLV ,999999) <> NVL(:OLD.VRPRECODIADLV ,999999) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Preco Delivery ' || '' || NVL(:NEW.VRPRECODIADLV,'');
		END IF;
      IF NVL(:NEW.VRPRECODIACMD ,999999) <> NVL(:OLD.VRPRECODIACMD ,999999) THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Preco Comanda ' || '' || NVL(:NEW.VRPRECODIACMD,'');
		END IF;
      IF NVL(:NEW.IDTPMODGERAL ,'NULL') <> NVL(:OLD.IDTPMODGERAL, 'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Id Mod Geral ' || '' || NVL(:NEW.IDTPMODGERAL,'');
		END IF;
      IF NVL(:NEW.IDTPMODDLV ,'NULL') <> NVL(:OLD.IDTPMODDLV, 'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Id Mod Delivery ' || '' || NVL(:NEW.IDTPMODDLV,'');
		END IF;
      IF NVL(:NEW.IDTPMODCMD ,'NULL') <> NVL(:OLD.IDTPMODCMD, 'NULL') THEN
			V_DESC := NVL(V_DESC,'') || ' ' || 'Id Mod Comanda ' || '' || NVL(:NEW.IDTPMODCMD,'');
		END IF;
      V_ITPESQ := :NEW.CDTABEPREC||:NEW.DTINIVGPREC||:NEW.CDPRODUTO||:NEW.CDPRPAITABPR||:NEW.NRDIASEMANPR||:NEW.HRINIPRECDIA||:NEW.CDTIPOCONSPD;
      V_IDTIPOOPER := '2';
   ELSE
      IF INSERTING THEN
         V_DESC   := 'Cd da Tabela de Preco ' || '' || NVL(:NEW.CDTABEPREC,  '')  || ' ' ||
                     'DTINIVGPREC'            || '' || NVL(:NEW.DTINIVGPREC, '')  || ' ' ||
                     'Cd Produto '            || '' || NVL(:NEW.CDPRODUTO,   '')  || ' ' ||
                     'Cd Pai'                 || '' || NVL(:NEW.CDPRPAITABPR,'')  || ' ' ||
                     'Nr dia Semana '         || '' || NVL(:NEW.NRDIASEMANPR,'')  || ' ' ||
                     'Hr Inicio '             || '' || NVL(:NEW.HRINIPRECDIA,'')  || ' ' ||
                     'Cd Tipo Cons '          || '' || NVL(:NEW.CDTIPOCONSPD,'')  || ' ' ||
                     'Hr Fim '                || '' || NVL(:NEW.HRFINPRECDIA,'')  || ' ' ||
                     'Preco produto '         || '' || NVL(:NEW.VRPRECODIA,  '')  || ' ' ||
                     'Id Valor-perc '         || '' || NVL(:NEW.IDPERVALORPR,'')  || ' ' ||
                     'Id Desconto '           || '' || NVL(:NEW.IDDESCACREPR,'')  || ' ' ||
                     'Dt Inicio Validade '    || '' || NVL(:NEW.DTINIVALPREC,'')  || ' ' ||
                     'Dt Fim Validade '       || '' || NVL(:NEW.DTFINVALPREC,'')  || ' ' ||
                     'Dt Ult Atu '            || '' || NVL(:NEW.DTULTATUITPD,'')  || ' ' ||
                     'Id Visua Desc Cupom '   || '' || NVL(:NEW.IDVISUACUPOM,'')  || ' ' ||
                     'Vr Delivery '           || '' || NVL(:NEW.VRPRECODIADLV,'') || ' ' ||
                     'Vr Comanda '            || '' || NVL(:NEW.VRPRECODIACMD,'') || ' ' ||
                     'Id Mod Geral '          || '' || NVL(:NEW.IDTPMODGERAL, '') || ' ' ||
                     'Id Mod Delivery '       || '' || NVL(:NEW.IDTPMODDLV,   '') || ' ' ||
                     'Id Mod Comanda '        || '' || NVL(:NEW.IDTPMODCMD,   '');
         V_ITPESQ := :NEW.CDTABEPREC||:NEW.DTINIVGPREC||:NEW.CDPRODUTO||:NEW.CDPRPAITABPR||:NEW.NRDIASEMANPR||:NEW.HRINIPRECDIA||:NEW.CDTIPOCONSPD;
         V_IDTIPOOPER := '1';
      ELSE
         IF DELETING THEN
      V_DESC   := 'Cd da Tabela de Preco ' || '' || NVL(:OLD.CDTABEPREC,''  )     || ' ' ||
                  'DTINIVGPREC'            || '' || NVL(:OLD.DTINIVGPREC,'' )     || ' ' ||
				      'Cd Produto '            || '' || NVL(:OLD.CDPRODUTO,''    )    || ' ' ||
                  'Cd Pai'                 || '' || NVL(:OLD.CDPRPAITABPR,'' )    || ' ' ||
                  'Nr dia Semana '         || '' || NVL(:OLD.NRDIASEMANPR,''  )   || ' ' ||
                  'Hr Inicio '             || '' || NVL(:OLD.HRINIPRECDIA,'' )    || ' ' ||
                  'Cd Tipo Cons '          || '' || NVL(:OLD.CDTIPOCONSPD,''  )   || ' ' ||
                  'Hr Fim '                || '' || NVL(:OLD.HRFINPRECDIA,'' )    || ' ' ||
				      'Preco produto '         || '' || NVL(:OLD.VRPRECODIA,''    )   || ' ' ||
                  'Id Valor-perc '         || '' || NVL(:OLD.IDPERVALORPR,''  )   || ' ' ||
                  'Id Desconto '           || '' || NVL(:OLD.IDDESCACREPR,'' )    || ' ' ||
				      'Dt Inicio Validade '    || '' || NVL(:OLD.DTINIVALPREC,''    ) || ' ' ||
                  'Dt Fim Validade '       || '' || NVL(:OLD.DTFINVALPREC,''  )   || ' ' ||
                  'Dt Ult Atu '            || '' || NVL(:OLD.DTULTATUITPD,'' ) 	  || ' ' ||
                  'Id Visua Desc Cupom '   || '' || NVL(:OLD.IDVISUACUPOM,'')     || ' ' ||
                  'Vr Delivery '           || '' || NVL(:OLD.VRPRECODIADLV,'') || ' ' ||
                  'Vr Comanda '            || '' || NVL(:OLD.VRPRECODIACMD,'') || ' ' ||
                  'Id Mod Geral '          || '' || NVL(:OLD.IDTPMODGERAL, '') || ' ' ||
                  'Id Mod Delivery '       || '' || NVL(:OLD.IDTPMODDLV,   '') || ' ' ||
                  'Id Mod Comanda '        || '' || NVL(:OLD.IDTPMODCMD,   '');
            V_ITPESQ := :OLD.CDTABEPREC||:OLD.DTINIVGPREC||:OLD.CDPRODUTO||:OLD.CDPRPAITABPR||:OLD.NRDIASEMANPR||:OLD.HRINIPRECDIA||:OLD.CDTIPOCONSPD;
            V_IDTIPOOPER := '3';
         END IF;
      END IF;
   END IF;
   V_DESC := SUBSTR(V_DESC, 1, 300);
   V_ITPESQ := SUBSTR(V_ITPESQ,1,40);
   INSERT INTO LOGOPERAVND
      (NMTABELAVND,
       DTOPERACAOVND,
       NMRESPOPERVND,
       IDTIPOOPERVND,
       DSOPERACAOVND,
       CDPESQITEMVND,
       DSRDMUSUOPERVND,
       DSENDUSUOPERVND,
       DSNMUSUOPERVND,
       DSMETUSUOPERVND,
       CDORESPOPERVND,
       CDFILLOGOPERVND)
   VALUES
      ('ITEMPRECODIAGER',
       SYSDATE,
       NVL(V_NMOPERADOR,' '),
       V_IDTIPOOPER,
       NVL(V_DESC,' '),
       V_ITPESQ,
       V_DSSERVERRDM,
       V_DSREMOTEADDR,
       V_DSREMOTEHOST,
       V_DSSERVMETHOD,
       V_DSREMOTEOPER,
       NULL);
END;
/