CREATE OR REPLACE TRIGGER LOG_GOP_TIPOPAGIMPROP 
AFTER INSERT ON TIPOPAGIMPROP 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_DESCUPD             VARCHAR2(4000);
  V_DESC                VARCHAR2(1000);
  V_CDFILLOGOPER        VARCHAR2(4);
  V_ITPESQ              VARCHAR2(40);
  V_NMOPERADOR          VARCHAR2(40);
  V_CDOPERADOR          VARCHAR2(12);
  V_CDTPCPAGAR          VARCHAR(50); 
  V_CDFILIAL            VARCHAR2(20);
  V_NMFILIAL            VARCHAR2(50);
  V_UNIDADE             VARCHAR2(50);
  V_CDTPCTPAGAR         VARCHAR(50);
  V_DSTPCTPAGAR         VARCHAR(50);

  PROCEDURE NMOPERADOR (P_CDOPERADOR IN OUT VARCHAR2,
                        P_NMOPERADOR OUT VARCHAR2) AS
  BEGIN
     P_NMOPERADOR := NULL;

     BEGIN
        SELECT CDOPERADOR, NMOPERADOR
          INTO P_CDOPERADOR, P_NMOPERADOR
          FROM OPERADOR
         WHERE CDOPERADOR = P_CDOPERADOR;
     EXCEPTION
        WHEN NO_DATA_FOUND THEN
          P_CDOPERADOR := 'VIA BD';
          P_NMOPERADOR := 'VIA BD';
     END;
  END;
BEGIN
  /* IDTIPOOPER - '1' - Inclusão, '2' - Alteração, '3' - Exclusão*/
   V_TIPO         := '0';
   V_DESC         := '';
   V_ITPESQ       := '';
   V_NMOPERADOR   := '';
   V_CDOPERADOR   := :NEW.CDOPERINCLUSAO;
   V_CDFILLOGOPER := '';

   NMOPERADOR(V_CDOPERADOR, V_NMOPERADOR);
   WEBTUNNING(V_DSREMOTEADDR,
              V_DSREMOTEHOST,
              V_DSSERVERRDM,
              V_DSSERVMETHOD,
              V_DSREMOTEOPER);

   V_DSSERVERRDM := 'ger80200_parametros_resultado_operacional';
   IF TO_CHAR(:NEW.CDFILIAL) = 'T' OR TO_CHAR(:NEW.CDFILIAL) =  'P' THEN
      V_UNIDADE := 'Unidade: Padrao' || chr(10);
   ELSE
      SELECT MAX(CDFILIAL), MAX(NMFILIAL)
        INTO V_CDFILIAL, V_NMFILIAL 
        FROM FILIAL 
       WHERE CDFILIAL = :NEW.CDFILIAL;
      V_UNIDADE := 'Unidade: '|| V_CDFILIAL || ' - ' || V_NMFILIAL || chr(10);
   END IF;
   
   SELECT MAX(CDTPCTPAGAR), MAX(DSTPCTPAGAR)
     INTO V_CDTPCPAGAR, V_DSTPCTPAGAR
     FROM TIPOCTPAGAR
    WHERE CDTPCTPAGAR = :NEW.CDTPCTPAGAR;

   V_DESCUPD := 'Parametros para Resultado Operacional' || chr(10);
   
   IF INSERTING THEN
      V_TIPO   := '1';
      V_ITPESQ := V_CDFILIAL || V_CDTPCPAGAR;
      V_DESCUPD := V_DESCUPD ||'Faturamento -> Impostos -> Tipos de Conta a Pagar';

      IF V_CDTPCPAGAR IS NOT NULL THEN
         V_DESC := chr(10) || chr(10)|| V_UNIDADE || V_CDTPCPAGAR || '-' || V_DSTPCTPAGAR;
      END IF;
   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
         ('TIPOPAGIMPROP', 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;
/

-- VERSAO --
BEGIN ATUVEROBJ('LOG_GOP_TIPOPAGIMPROP','6.35.xxx'); END;
/