create or replace TRIGGER LOG_GOP_OPGRUPGERENTEOP
AFTER INSERT
ON OPGRUPGERENTEOP 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(50);
  V_DESC            VARCHAR2(500);
  V_CDFILLOGOPER    VARCHAR2(20);
  V_ITPESQ          VARCHAR2(40);
  V_NMOPERADOR      VARCHAR2(40);
  V_CDOPERADOR      VARCHAR2(40);
  V_DESCUPD         VARCHAR2(500);

  /* nome do grupo e do gerente relacionado */
  V_NMGERENTE       VARCHAR2(200);
  V_NMGRUPGERENTEOP VARCHAR2(200);

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

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

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

   IF INSERTING THEN
      V_TIPO         := '1';
      V_ITPESQ       := TO_CHAR(:NEW.CDGRUPGERENTEOP) || '/' || TO_CHAR(:NEW.CDOPERADOR);
      V_CDOPERADOR   := :NEW.CDOPERINCLUSAO;
      NMOPERADOR(V_CDOPERADOR, V_NMOPERADOR);
      SELECT  MAX(GG.NMGRUPGERENTEOP), MAX(OP.NMOPERADOR) INTO V_NMGRUPGERENTEOP, V_NMGERENTE
        FROM OPERADOR OP, GRUPGERENTEOP GG
       WHERE :NEW.CDGRUPGERENTEOP = GG.CDGRUPGERENTEOP AND :NEW.CDOPERADOR = OP.CDOPERADOR;
       IF NVL(:NEW.CDGRUPGERENTEOP,0)     <> NVL(:OLD.CDGRUPGERENTEOP, 0) THEN
         V_DESC   := chr(10) ||'Grupo de Gerente: '  || :NEW.CDGRUPGERENTEOP || ' - ' || NVL(V_NMGRUPGERENTEOP, ' ');
      END IF;
      
      IF NVL(:NEW.CDOPERADOR,0) <> NVL(:OLD.CDOPERADOR, 0) THEN
         V_DESC   := V_DESC || chr(10) ||'Gerente: '  || NVL(TO_CHAR(:NEW.CDOPERADOR), ' ') || ' - ' || NVL(V_NMGERENTE, ' ');
      END IF;

   END IF;
   
   V_DESC := SUBSTR(V_DESC, 1, 300);

   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
         ('OPGRUPGERENTEOP', 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;