create or replace PROCEDURE EXPORTA_VIG_ITEM_OTIMIZADOR(
   P_TABELA IN VARCHAR2, --NOME DA TABELA PRINCIPAL DA TELA QUE SERA EXPORTADA
   P_NRVIGENCIA IN NUMBER, -- NUMERO DA VIGENCIA DE ORIGEM
   P_CDFILIAL IN FILIAL.CDFILIAL%TYPE, -- CODIGO DA FILIAL DE ORIGEM
   P_CDSERVFILI IN SERVICO.CDSERVFILI%TYPE, -- CODIGO DO SERVICO DE ORIGEM
   P_IDTIPORESTRICAO IN VARCHAR2, -- TIPO DE RESTRICAO CONTRATUAL = PLANEJADO OU CONTRATO
   P_NRLISTA_DEST IN LISTA.NRLISTA%TYPE, -- NUMERO DE UMA LISTA CUJO CAMPO CDLISTA COMPOSTO DE CDFILIAL||CDSERVFILI||NRVIGENCIA
   P_NRLISTA IN LISTA.NRLISTA%TYPE, -- NUMERO DE UMA LISTA CUJO CAMPO CDLISTA CONTEM A PK DOS ITENS SELECIONADO
   P_IDOPCAO IN VARCHAR2, -- SOBREPOR OU ACRESCENTAR 
   P_CDOPERADOR IN OPERADOR.CDOPERADOR%TYPE,-- CODIGO DO OPERADOR LOGADO
   P_LISTA_ERROS OUT VARCHAR2 -- LISTA DE ERROS RETORNADOS
   )
AS
BEGIN 
   IF P_TABELA = 'FREQGRPRATMES' OR P_TABELA = 'VIGFREQGRPRATMES' THEN
      UTIL_OTIMIZADOR.EXPORTA_ITEM_FREQ_GR_PRAT(P_NRVIGENCIA, P_CDFILIAL, P_CDSERVFILI, P_IDTIPORESTRICAO, P_NRLISTA_DEST, P_NRLISTA, P_IDOPCAO, P_CDOPERADOR, P_LISTA_ERROS);
   END IF;
   IF P_TABELA = 'RESTPRODGR' OR P_TABELA = 'VIGRESTPRODGR' THEN
      UTIL_OTIMIZADOR.EXPORTA_ITEM_REST_PROD_GR(P_NRVIGENCIA, P_CDFILIAL, P_CDSERVFILI, P_IDTIPORESTRICAO, P_NRLISTA_DEST, P_NRLISTA, P_IDOPCAO, P_CDOPERADOR, P_LISTA_ERROS);
   END IF;
   IF P_TABELA = 'LIMPESERGR' OR P_TABELA = 'VIGLIMPESERGR' THEN
      UTIL_OTIMIZADOR.EXPORTA_ITEM_LIM_PERC_GR(P_NRVIGENCIA, P_CDFILIAL, P_CDSERVFILI, P_IDTIPORESTRICAO, P_NRLISTA_DEST, P_NRLISTA, P_IDOPCAO, P_CDOPERADOR, P_LISTA_ERROS);
   END IF;
   IF P_TABELA = 'FREQOPCAGR' OR P_TABELA = 'VIGFREQOPCAGR' THEN
      UTIL_OTIMIZADOR.EXPORTA_ITEM_FREQ_GR_OPC_PRAT(P_NRVIGENCIA, P_CDFILIAL, P_CDSERVFILI, P_IDTIPORESTRICAO, P_NRLISTA_DEST, P_NRLISTA, P_IDOPCAO, P_CDOPERADOR, P_LISTA_ERROS);
   END IF;
   IF P_TABELA = 'FREQPRODGRPRAT' OR P_TABELA = 'VIGFREQPRODGRPRAT' THEN
      UTIL_OTIMIZADOR.EXPORTA_ITEM_FREQ_PROD_GR(P_NRVIGENCIA, P_CDFILIAL, P_CDSERVFILI, P_IDTIPORESTRICAO, P_NRLISTA_DEST, P_NRLISTA, P_IDOPCAO, P_CDOPERADOR, P_LISTA_ERROS);
   END IF;
   IF P_TABELA = 'UTILPRATOSERV' OR P_TABELA = 'VIGUTILPRATOSERV' THEN
      UTIL_OTIMIZADOR.EXPORTA_ITEM_UTIL_PRAT_SERV(P_NRVIGENCIA, P_CDFILIAL, P_CDSERVFILI, P_IDTIPORESTRICAO, P_NRLISTA_DEST, P_NRLISTA, P_IDOPCAO, P_CDOPERADOR, P_LISTA_ERROS);
   END IF;      
   IF P_TABELA = 'FREQPRATMES' OR P_TABELA = 'VIGFREQPRATMES' THEN
      UTIL_OTIMIZADOR.EXPORTA_ITEM_FREQ_PRAT_MES(P_NRVIGENCIA, P_CDFILIAL, P_CDSERVFILI, P_IDTIPORESTRICAO, P_NRLISTA_DEST, P_NRLISTA, P_IDOPCAO, P_CDOPERADOR, P_LISTA_ERROS);
   END IF;        
END;
/