create or replace PROCEDURE APURAC_RELGESDIRETA_CENTRAL (
      P_CDFILIAL    IN FILIAL.CDFILIAL%TYPE,
      P_CDCLIENTE   IN CLIENTE.CDCLIENTE%TYPE,
      P_DATAINI     IN DATE,
      P_DATAFIM     IN DATE,
      P_NRAPURACFAT IN NOTAFISCAL.NRAPURACFAT%TYPE,
      P_IDGERANOTA  IN VARCHAR DEFAULT 'S',
      P_DTSAIDAPUR  IN DATE DEFAULT NULL,
      P_CDTIPOOPER  IN VARCHAR DEFAULT '01',
      P_GERAPREVIA  IN VARCHAR DEFAULT 'S',
      P_NRLISTA_AGREGADAS IN VARCHAR2 DEFAULT 'T') AS

   V_NRAPURAGREGADA VARCHAR2(20);
BEGIN
   /*EXECUTA A PROCEDURE APURAC_GESDIRETA PARA A FILIAL CENTRAL*/
   APURAC_GESDIRETA(P_CDFILIAL,
                    P_CDCLIENTE,
                    P_DATAINI,
                    P_DATAFIM,
                    P_NRAPURACFAT,
                    'N',   /*A NOTA � GERADA AP�S CALCULAR O FATURAMENTO DE TODAS AS FILIAIS AGREGADAS*/
                    P_DTSAIDAPUR,
                    P_CDTIPOOPER,
                    NULL,
                    P_GERAPREVIA,
                    P_CDFILIAL,
                    P_NRAPURACFAT); /*NUMERO DA CENTRAL*/


   /*APURA APENAS AS AGREGADAS QUE POSSUEM OS MESMOS CLIENTES DA CENTRAL*/
   FOR C_AGREGADA IN (SELECT CL.CDFILIAL
                        FROM FILIAL FI, CLIENFILIAL CL
                       WHERE FI.CDFILCENTRALFATU  = P_CDFILIAL
                         AND FI.CDFILIAL          = CL.CDFILIAL
                         AND CL.CDCLIENTE         = P_CDCLIENTE
                         AND VALOR_NA_LISTA(FI.CDFILIAL, P_NRLISTA_AGREGADAS) <> 0
   ) LOOP
      /*GERA UM NOVO CODIGO DE APURACAO PARA AS AGREGADAS*/
      NOVO_CODIGO('APURACFATUR'||C_AGREGADA.CDFILIAL, V_NRAPURAGREGADA);
      V_NRAPURAGREGADA := SUBSTR(V_NRAPURAGREGADA,11,10);

      /*APURA TODAS AS AGREGADAS PASSANDO O MESMO NUMERO DE APURACAO DA CENTRAL*/  
      APURAC_GESDIRETA(C_AGREGADA.CDFILIAL,
                       P_CDCLIENTE,
                       P_DATAINI,
                       P_DATAFIM,
                       V_NRAPURAGREGADA,
                       'N',   /*A NOTA � GERADA AP�S CALCULAR O FATURAMENTO DE TODAS AS FILIAIS AGREGADAS*/
                       P_DTSAIDAPUR,
                       P_CDTIPOOPER,
                       NULL,
                       P_GERAPREVIA,
                       P_CDFILIAL,  /*FILIAL PROCESSAMENTO*/
                       P_NRAPURACFAT); /*NUMERO DA CENTRAL*/
   END LOOP;
END;
/