create or replace TRIGGER LOG_GOP_GRUPGERENTEOP
AFTER UPDATE OR INSERT
ON GRUPGERENTEOP FOR EACH ROW
DECLARE
   V_TIPO         VARCHAR2(1);
   V_DSREMOTEADDR VARCHAR2(15);
   V_DSREMOTEHOST VARCHAR2(15);
   V_DSSERVERRDM  VARCHAR2(100);
   V_DSSERVMETHOD VARCHAR2(4000);
   V_DSREMOTEOPER VARCHAR2(12);
   V_DESC         VARCHAR2(1000);
   V_CDFILLOGOPER VARCHAR2(4);
   V_ITPESQ       VARCHAR2(40);
   V_NMOPERADOR   VARCHAR2(40);
   V_CDOPERADOR   VARCHAR2(12);
   V_DESCUPD      VARCHAR2(200);

BEGIN
/* IDTIPOOPER - '1' - Inclusao, '2' - Alteracao, '3' - Exclusao*/
   V_TIPO         := '0';
   V_DESC         := '';
   V_ITPESQ       := '';
   V_NMOPERADOR   := '';
   V_CDOPERADOR   := '';
   V_CDFILLOGOPER := '';

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

   V_DESCUPD := 'Controle de Unidades por Gerente' || chr(10);
   V_DSSERVERRDM := 'gop00200_controle_de_unidades_por_gerente';

   IF INSERTING THEN
   
      IF NVL(:NEW.CDGRUPGERENTEOP,0) <> NVL(:OLD.CDGRUPGERENTEOP, 0) AND
         NVL(TO_CHAR(:NEW.NMGRUPGERENTEOP),'!') <> NVL(TO_CHAR(:OLD.NMGRUPGERENTEOP),'!') THEN
            V_DESC   := chr(10) ||'Grupo de Gerente: '  || NVL(TO_CHAR(:NEW.CDGRUPGERENTEOP), ' ') || ' - ' || NVL(TO_CHAR(:NEW.NMGRUPGERENTEOP), ' ');
         END IF;
        
      V_TIPO         := '1';
      V_ITPESQ       := TO_CHAR(:NEW.CDGRUPGERENTEOP);
      V_CDOPERADOR   := :NEW.CDOPERINCLUSAO;    
      NMOPERADOR(V_CDOPERADOR, V_NMOPERADOR);

   ELSIF UPDATING THEN
      IF NVL(TO_CHAR(:NEW.NMGRUPGERENTEOP),'!') <> NVL(TO_CHAR(:OLD.NMGRUPGERENTEOP),'!') THEN
         V_DESCUPD := V_DESCUPD || chr(10) || 'Codigo do Grupo de Gerente: '|| :NEW.CDGRUPGERENTEOP;
         V_DESC := chr(10) || 'Nome alterado de '|| TO_CHAR(:OLD.NMGRUPGERENTEOP) || ' para ' ||  TO_CHAR(:NEW.NMGRUPGERENTEOP);
         END IF;
         
      V_TIPO := '2';
      V_ITPESQ       := TO_CHAR(:OLD.CDGRUPGERENTEOP);
      V_CDOPERADOR   := :NEW.CDOPERULTATU;
      NMOPERADOR(V_CDOPERADOR, V_NMOPERADOR);

   END IF;

   IF NOT V_DESC IS NULL THEN
      V_DESC := V_DESCUPD || V_DESC;
         INSERT INTO LOGOPERAGES
            (NMTABELA,     DTOPERACAO,   NMRESPOPER,  IDTIPOOPER,   DSOPERACAO,  CDPESQITEM,
             DSRDMUSUOPER, DSENDUSUOPER, DSNMUSUOPER, DSMETUSUOPER, CDORESPOPER, CDFILLOGOPER)
         VALUES
            ('GRUPGERENTEOP', SYSDATE, NVL(V_NMOPERADOR,' '), V_TIPO, V_DESC, V_ITPESQ, NVL(V_DSSERVERRDM, ' '), 
            NVL(V_DSREMOTEADDR, ' '), NVL(V_DSREMOTEHOST, ' '), NVL(V_DSSERVMETHOD, ' '), NVL(V_CDOPERADOR, ' '),
            NVL(V_CDFILLOGOPER, ' '));
      END IF;
END;