CREATE OR REPLACE PROCEDURE ETL_DRO
                           (P_DTINI IN DATE, 
                            P_DTFIM IN DATE, 
                            P_CDFILIAL FILIAL.CDFILIAL%TYPE DEFAULT NULL) 
IS 
   V_DTINI              DATE; 
   V_DTFIM              DATE; 
   V_DTPROCESSA         DATE; 
   V_FATLIQ_MEDICAO     FLOAT NOT NULL := 0; 
   V_FATLIQ_NF          FLOAT NOT NULL := 0; 
   V_FATMEDICAO         FLOAT NOT NULL := 0; 
   V_FATNOTAFISCAL      FLOAT NOT NULL := 0; 
   V_SAIDAS             FLOAT NOT NULL := 0; 
   V_ENTRADA            FLOAT NOT NULL := 0; 
   V_DESPESASDIVER      FLOAT NOT NULL := 0; 
   V_DESPESAMAO         FLOAT NOT NULL := 0; 
   V_IMPOSTO_FAT_MED    FLOAT NOT NULL := 0; 
   V_IMPOSTO_FAT_NF     FLOAT NOT NULL := 0; 
   V_VRCONSUMOTOTAL     FLOAT NOT NULL := 0; 
   V_DESPESAENTRA       FLOAT NOT NULL := 0; 
   V_DESPESACONTAPAG    FLOAT NOT NULL := 0; 
   V_FATBRUT_ORCADO     FLOAT NOT NULL := 0; 
   V_FATLIQU_ORCADO     FLOAT NOT NULL := 0; 
   V_IMPOSTO_ORCADO     FLOAT NOT NULL := 0; 
   V_CONSUMO_ORCADO     FLOAT NOT NULL := 0; 
   V_DESPESA_ORCADO     FLOAT NOT NULL := 0; 
   V_MAOOBRA_ORCADO     FLOAT NOT NULL := 0; 
   V_MAXVERSAO          VARCHAR2(4); 
   V_TIPOFATU           VARCHAR2(30); 
   V_ANO                VARCHAR2(04);
   V_ANO_ORC            NUMBER; 
   V_DTVENDA            VARCHAR2(15); 
   V_DTRECEBE           VARCHAR2(15); 
   V_DIA                VARCHAR2(02); 
   V_MES                VARCHAR2(02); 
   V_MES_ORC            VARCHAR2(02); 
   V_TRI                VARCHAR2(10); 
   V_BIM                VARCHAR2(10); 
   V_SEM                VARCHAR2(10); 
   V_IDDTAPURFAT        VARCHAR2(01); 
   V_TABELA             VARCHAR2(15); 
   V_USUARIO            VARCHAR2(100); 
   V_ZERO               NUMBER :=0; 
   V_CONT               NUMBER :=0; 
   V_SOMA               FLOAT ; 
   V_QTEFETSERVPRI      FLOAT NOT NULL := 0; 
   V_INVESTIMENTO       FLOAT NOT NULL := 0; 
   V_QTEFETSERVEQU      FLOAT NOT NULL := 0; 
   V_VREFETNPRIN        FLOAT NOT NULL := 0; 
   V_VREFETSERVPRIN     FLOAT NOT NULL := 0; 
   V_VRTOTINVINIC       FLOAT NOT NULL := 0; 
   V_VRTOTINVFINAL      FLOAT NOT NULL := 0; 
   V_VRPUETLDRO         FLOAT NOT NULL := 0; 
   V_VRPUENTRADA        FLOAT NOT NULL := 0; 
   V_VRIMPOSTOPROD      FLOAT NOT NULL := 0; 
   V_QTCONSUMOCONS      FLOAT NOT NULL := 0; 
   V_VRTOTINVINICPV     FLOAT NOT NULL := 0; 
   V_VRTOTINVFINALPV    FLOAT NOT NULL := 0; 
   V_NRDIAESTETLDRO     FLOAT NOT NULL := 0;
   V_VRRETISERVPR       FLOAT NOT NULL := 0; 
   V_QTTOTESTOQUE       FLOAT NOT NULL := 0; 
   V_VRTOTESTOQUE       FLOAT NOT NULL := 0; 
   V_VRSOBLUCRO         FLOAT NOT NULL := 0; 
   V_PERCLUC            FLOAT NOT NULL := 0; 
   V_VRDEPREC           FLOAT NOT NULL := 0; 
   V_VRCREDIMPOS        FLOAT NOT NULL := 0; 
   V_PERCREDIMPOS       FLOAT NOT NULL := 0; 
   V_INVEST_ORCADO      FLOAT NOT NULL := 0; 
   V_DEPREC_ORCADO      FLOAT NOT NULL := 0; 
   V_IMPARECU_ORCADO    FLOAT NOT NULL := 0; 
   V_IMPSLUC_ORCADO     FLOAT NOT NULL := 0; 
   V_QTVENDA            FLOAT NOT NULL := 0; 
   V_VRVENDA            float not null := 0; 
   V_VR_PERCENT_TX_ADM  float not null := 0;
   V_TX_ADM_ORCADO      FLOAT NOT NULL := 0;
   V_VRLANCFATDIV       FLOAT NOT NULL := 0;
   V_NUMDIAS            NUMBER; 
   V_DIAS_REALIZADOS    NUMBER;
   V_IDNRDIASUTEST      VARCHAR2(1);
   V_IDTIPOCALCTAXAADM  VARCHAR2(30);
   w_S                  CHAR(1) := 'S'; 
   w_N                  CHAR(1) := 'N'; 
 
    
   TYPE CUR_TYP      IS REF CURSOR; 
   C_TABLE           CUR_TYP; 
   C_CONSULTA        CUR_TYP; 
   V_QRYEXISTE       VARCHAR2(5000); 
   V_QRYCONSULTA     VARCHAR2(5000);
   V_NMTABELA        VARCHAR2(30) := 'USR_IMPLUCRO'; 
 
 
   s_CC                 VARCHAR2(2) := 'CC'; 
   s_CS                 VARCHAR2(2) := 'CS'; 
   s_RE                 VARCHAR2(2) := 'RE'; 
   s_RP                 VARCHAR2(2) := 'RP'; 
   s_AJ                 VARCHAR2(2) := 'AJ'; 
   s_IM                 VARCHAR2(2) := 'IM'; 
   s_FS                 VARCHAR2(2) := 'FS'; 
   s_FE                 VARCHAR2(2) := 'FE'; 
   s_FD                 VARCHAR2(2) := 'FD'; 
   s_DC                 VARCHAR2(2) := 'DC'; 
   s_DD                 VARCHAR2(2) := 'DD'; 
   s_DE                 VARCHAR2(2) := 'DE'; 
   s_DM                 VARCHAR2(2) := 'DM'; 
   s_R2                 VARCHAR2(2) := 'R2'; 
   s_IV                 VARCHAR2(2) := 'IV'; 
   s_DB                 VARCHAR2(2) := 'DB'; 
 
 
   s_FN                 VARCHAR2(2) := 'FN'; 
   s_FF                 VARCHAR2(2) := 'FF'; 
   s_PV                 VARCHAR2(2) := 'PV'; 
   s_PQ                 VARCHAR2(2) := 'PQ'; 
   s_RT                 VARCHAR2(2) := 'RT'; 
   s_M1                 VARCHAR2(2) := 'M1'; 
   s_C1                 VARCHAR2(2) := 'C1'; 
   s_C2                 VARCHAR2(2) := 'C2'; 
   s_CM                 VARCHAR2(2) := 'CM';
   s_I1                 VARCHAR2(2) := 'I1'; 
   s_I2                 VARCHAR2(2) := 'I2'; 
   s_II                 VARCHAR2(2) := 'II'; 
   s_IF                 VARCHAR2(2) := 'IF'; 
   s_VN                 VARCHAR2(2) := 'VN';
 
   S_FATBRU             VARCHAR2(2) := 'F' ;
   S_CONSUMO            VARCHAR2(2) := 'C' ;
   S_MAOBRA             VARCHAR2(2) := 'O' ;
   S_DESPMATRIZ         VARCHAR2(2) := 'M' ;
   S_DESPDIVERSA        VARCHAR2(2) := 'D' ;
   S_DESPESADFE         VARCHAR2(2) := 'E' ;
   S_FATLIQU            VARCHAR2(2) := 'L' ;
   S_IMPOSTO            VARCHAR2(2) := 'I' ;
   S_IMPLUC             VARCHAR2(2)	:= 'S' ;
   S_IMPRECU            VARCHAR2(2) := 'R' ;
   S_DEPREC             VARCHAR2(2) := 'P' ;
   S_INVEST             VARCHAR2(2) := 'N' ;
   S_TXADM              VARCHAR2(2) := 'T' ;
 
   V_FATBRUTO_FORSALE  FLOAT NOT NULL := 0; 
   V_IMPOSTO_FORSALE   FLOAT NOT NULL := 0; 
   V_NRCUPLANCROP      NUMBER;   
   V_IDRETIRADAROP     CHAR(1); --Responsavel por alocar o identificador do tipo de consumo
   V_IDDETALHEFATUR    VARCHAR2(2);
   V_IDFATUROP         VARCHAR2(2); 
   V_VRRECEXTRA        FLOAT;
   V_VOLUME_NEGOCIOS   FLOAT;
   V_IDEXIBEDESPESAMOBRA VARCHAR2(30);
BEGIN 
   V_MES := TO_CHAR(P_DTINI,'MM'); 
   V_ANO := TO_CHAR(P_DTINI,'YYYY'); 
   V_DTINI := TO_DATE('01'||TO_CHAR(P_DTINI,'MMYYYY'),'DDMMYYYY'); 
 
   WHILE (V_DTINI <= P_DTFIM) 
   LOOP   
    
      FOR C_ETLDRO IN 
         (SELECT 
                F.CDFILIAL,        F.CDAREAGERE,        F.CDSEGMER, 
                F.CDEMPRESA,       F.CDSUPERVISOR,      F.DTINICIALBI, 
                F.CDGOPERAC,       PF.CDTIPOFATUR,      F.NMFILIAL, 
                EF.CDPAIS,         EF.SGESTADO,         EF.CDMUNICIPIO, 
                P.NMPAIS,          E.NMESTADO,          M.NMMUNICIPIO, 
                EP.NMEMPRESA,      A.NMAREAGERE,        PR.NRMETROFILIAL, 
                F.CDPLANEJADORA,   F.CDGUNIDADE 
          FROM  FILIAL F, PARAMFILIAL PF, ENDEFILI EF, 
                PAIS P, ESTADO E, MUNICIPIO M, 
                EMPRESA EP, AREAGERE A, PARFILIALROP PR 
          WHERE ((PF.CDFILIAL = P_CDFILIAL) OR (P_CDFILIAL IS NULL)) 
            AND PF.CDFILIAL = F.CDFILIAL 
            --AND F.IDFUNCAOFILI IS NULL 
            AND F.DTINICIALBI <= V_DTINI 
            AND NVL(IDCNTRRESC,w_N) = w_N 
            AND F.CDFILIAL = EF.CDFILIAL 
            AND EF.IDTPENDEFILI = 'P' 
            AND P.CDPAIS = EF.CDPAIS 
            AND E.CDPAIS = EF.CDPAIS 
            AND E.SGESTADO = EF.SGESTADO 
            AND M.CDPAIS = EF.CDPAIS 
            AND M.SGESTADO = EF.SGESTADO 
            AND M.CDMUNICIPIO = EF.CDMUNICIPIO 
            AND F.CDEMPRESA = EP.CDEMPRESA 
            AND F.CDAREAGERE = A.CDAREAGERE(+) 
            AND F.CDFILIAL = PR.CDFILIAL(+)) 
      LOOP  
       
         SELECT  
            TRUNC(DECODE(PG.IDUTILDTPROC, 'N', SYSDATE, NVL(PF.DTPROCESSA,SYSDATE))) 
         INTO V_DTPROCESSA             
         FROM PARAMGERAL PG, PARAMFILIAL PF 
         WHERE PF.CDFILIAL = C_ETLDRO.CDFILIAL; 
          
         IF (TO_CHAR (V_DTINI, 'MMYYYY') = TO_CHAR (V_DTPROCESSA, 'MMYYYY'))   THEN 
            V_DTFIM := TO_DATE(V_DTPROCESSA - 1); 
         ELSE 
            V_DTFIM := LAST_DAY(V_DTINI); 
         END IF;  
          
         V_ANO :=  TO_CHAR(V_DTFIM,'YYYY'); 
         V_MES :=  TO_CHAR(V_DTFIM,'MM'); 
         V_BIM :=  TO_CHAR(TRUNC((V_MES - 1) / 2) + 1)||'°Bim';
         V_TRI :=  TO_CHAR(TRUNC((V_MES - 1) / 3) + 1)||'°Tri';
         V_SEM :=  TO_CHAR(TRUNC((V_MES - 1) / 6) + 1)||'°Sem';
          
         DELETE FROM ETLDRO 
         WHERE (CDFILIAL = C_ETLDRO.CDFILIAL) 
         AND ((CDANOBI > V_ANO) OR 
              (CDANOBI = V_ANO AND CDMESBI >= V_MES)); 
         DELETE FROM DM_DRF 
         WHERE (CDFILIAL = C_ETLDRO.CDFILIAL) 
         AND ((CDANOBI > V_ANO) OR 
              (CDANOBI = V_ANO AND CDMESBI >= V_MES)); 
         DELETE FROM DM_DRFRECEBE 
         WHERE (CDFILIAL = C_ETLDRO.CDFILIAL) 
         AND ((CDANOBI > V_ANO) OR 
              (CDANOBI = V_ANO AND CDMESBI >= V_MES)); 
         DELETE FROM DM_DRFPRODUTO 
         WHERE (CDFILIAL = C_ETLDRO.CDFILIAL) 
         AND ((CDANOBI > V_ANO) OR 
              (CDANOBI = V_ANO AND CDMESBI >= V_MES)); 
         DELETE FROM ETLDRODADOSAGRU 
         WHERE (CDFILIAL = C_ETLDRO.CDFILIAL) 
         AND ((CDANOBI > V_ANO) OR 
              (CDANOBI = V_ANO AND CDMESBI >= V_MES)); 
         DELETE FROM ETLDRODESPDRILL 
         WHERE (CDFILIAL = C_ETLDRO.CDFILIAL) 
         AND ((CDANOBI > V_ANO) OR 
              (CDANOBI = V_ANO AND CDMESBI >= V_MES)); 
         DELETE FROM ETLDROMAOBRADRILL 
         WHERE (CDFILIAL = C_ETLDRO.CDFILIAL) 
         AND ((CDANOBI > V_ANO) OR 
              (CDANOBI = V_ANO AND CDMESBI >= V_MES));  
          
         V_DESPESASDIVER   := V_ZERO; 
         V_DESPESACONTAPAG := V_ZERO; 
         V_DESPESAENTRA    := V_ZERO; 
         V_DESPESAMAO      := V_ZERO; 
         V_FATNOTAFISCAL   := V_ZERO; 
         V_FATMEDICAO      := V_ZERO; 
         V_QTEFETSERVPRI   := V_ZERO; 
         V_VREFETNPRIN     := V_ZERO; 
         V_VREFETSERVPRIN  := V_ZERO; 
         V_FATLIQ_MEDICAO  := V_ZERO; 
         V_IMPOSTO_FAT_MED := V_ZERO; 
         V_VRCONSUMOTOTAL  := V_ZERO; 
         V_FATLIQ_NF       := V_ZERO; 
         V_IMPOSTO_FAT_NF  := V_ZERO; 
         V_QTEFETSERVEQU   := V_ZERO; 
         V_FATBRUTO_FORSALE:= V_ZERO; 
         V_IMPOSTO_FORSALE := V_ZERO; 
         V_VRIMPOSTOPROD   := V_ZERO; 
         V_QTCONSUMOCONS   := V_ZERO; 
         V_VRTOTINVINICPV  := V_ZERO; 
         V_VRTOTINVFINALPV := V_ZERO; 
         V_SOMA            := V_ZERO; 
         V_SAIDAS          := V_ZERO; 
         V_ENTRADA         := V_ZERO; 
         V_INVESTIMENTO    := V_ZERO; 
         V_FATBRUT_ORCADO  := V_ZERO; 
         V_FATLIQU_ORCADO  := V_ZERO; 
         V_IMPOSTO_ORCADO  := V_ZERO; 
         V_CONSUMO_ORCADO  := V_ZERO; 
         V_DESPESA_ORCADO  := V_ZERO; 
         V_MAOOBRA_ORCADO  := V_ZERO; 
         V_VRSOBLUCRO      := V_ZERO; 
         V_PERCLUC         := V_ZERO; 
         V_VRDEPREC        := V_ZERO; 
         V_INVEST_ORCADO   := V_ZERO; 
         V_DEPREC_ORCADO   := V_ZERO; 
         V_IMPARECU_ORCADO := V_ZERO; 
         V_IMPSLUC_ORCADO  := V_ZERO; 
         V_VRCREDIMPOS     := V_ZERO; 
         V_PERCREDIMPOS    := V_ZERO; 
         V_VOLUME_NEGOCIOS := V_ZERO;
         V_VRRECEXTRA      := V_ZERO;  
 
         BEGIN 
          SELECT NVL(VRPERIMPRECUROP,0), IDDTAPURFAT,IDRETIRADAROP,IDEXIBEDESPESAMOBRA, IDNRDIASUTEST,
                 IDTIPOCALCTAXAADM, IDDETALHEFATUR 
            INTO V_PERCREDIMPOS, V_IDDTAPURFAT, V_IDRETIRADAROP, V_IDEXIBEDESPESAMOBRA, V_IDNRDIASUTEST,
                 V_IDTIPOCALCTAXAADM, V_IDDETALHEFATUR
            FROM PARFILIALROP 
           WHERE CDFILIAL = TIPOPARAM_DRO(C_ETLDRO.CDFILIAL); 
         EXCEPTION 
            WHEN OTHERS THEN 
              V_PERCREDIMPOS := V_ZERO; 
              V_IDDTAPURFAT  := 'S'; 
         END; 
          
         V_QRYEXISTE := 'SELECT TABELA
                         FROM
                           (SELECT TABLE_NAME AS TABELA
                            FROM USER_TABLES
                            WHERE TABLE_NAME = :CDTABELA)'; 
         OPEN C_TABLE FOR V_QRYEXISTE USING V_NMTABELA; 
            LOOP 
               FETCH C_TABLE INTO V_TABELA; 
                  EXIT WHEN C_TABLE%NOTFOUND; 
            END LOOP;
          CLOSE C_TABLE; 
 
         SELECT NVL(SUM(DECODE(IDTPLANCROP, s_CC,DECODE(CDTIPOOPERROP, '06', 0,VRITEMLANCROP),0)),0),
                NVL(SUM(DECODE(IDTPLANCROP, s_CS,VRITEMLANCROP,0)),0),
                NVL(SUM(DECODE(IDTPLANCROP, S_IV,VRITEMLANCROP,0)),0),
                NVL(SUM(DECODE(IDTPLANCROP, S_DB,VRITEMLANCROP,0)),0)
           INTO V_ENTRADA, V_SAIDAS, V_INVESTIMENTO, V_VRDEPREC
           FROM ITLANCROPFILIAL IT, LANCROPFILIAL L  , SERVICO  S
          WHERE (L.CDFILIAL       = C_ETLDRO.CDFILIAL)
            AND (L.IDTPLANCROP    IN (s_CS,s_CC,s_FF, s_IV,s_DB))
            AND (L.CDFILIAL       = IT.CDFILIAL   )
            AND (L.NRROPFILIAL    = IT.NRROPFILIAL)
            AND (L.NRLANCROP      = IT.NRLANCROP  )
            AND (IT.CDFILIAL   = S.CDFILIAL(+))
            AND (IT.CDITEMLANCROP = S.CDSERVFILI(+))
            AND (L.DTLANCROP BETWEEN V_DTINI AND V_DTFIM);
             
         /*Despesas Diversas e Mao de Obra,calculada para o periodo completo*/    
         SELECT NVL(SUM(DECODE(IDTPLANCROP, s_DC,VRITEMLANCROP,0)),0),
                NVL(SUM(DECODE(IDTPLANCROP, S_DD,VRITEMLANCROP,0)),0),
                NVL(SUM(DECODE(IDTPLANCROP, s_DE,VRITEMLANCROP,0)),0),
                NVL(SUM(DECODE(IDTPLANCROP, s_DM,VRITEMLANCROP,0)),0)           
           INTO V_DESPESACONTAPAG, V_DESPESASDIVER, V_DESPESAENTRA, V_DESPESAMAO
           FROM ITLANCROPFILIAL IT, LANCROPFILIAL L
          WHERE (L.CDFILIAL       = C_ETLDRO.CDFILIAL)
            AND (L.IDTPLANCROP    IN (s_DC,s_DD,s_DE,s_DM))
            AND (L.CDFILIAL       = IT.CDFILIAL   )
            AND (L.NRROPFILIAL    = IT.NRROPFILIAL)
            AND (L.NRLANCROP      = IT.NRLANCROP  )
            AND (L.DTLANCROP BETWEEN FIRST_DAY(V_DTINI) AND LAST_DAY(V_DTFIM));

         SELECT NVL(SUM(IT.VRITEMLANCROP),0)
           INTO V_VRLANCFATDIV
           FROM ITLANCROPFILIAL IT, LANCROPFILIAL L
          WHERE L.CDFILIAL    = C_ETLDRO.CDFILIAL
            AND L.IDTPLANCROP = s_FD
            AND L.CDFILIAL    = IT.CDFILIAL
            AND L.NRROPFILIAL = IT.NRROPFILIAL
            AND L.NRLANCROP   = IT.NRLANCROP
            AND L.DTLANCROP BETWEEN V_DTINI AND V_DTFIM;

         SELECT NVL(SUM(DECODE(IDTPLANCROP, S_FE,VRITEMLANCROP,0)),0),
                NVL(SUM(DECODE(IDTPLANCROP, s_FE, DECODE(IT.CDITEMLANCROP,S.CDSERVFILI,DECODE(IDSERVPRINC, w_S, QTITEMLANCROP,0),0),0)),0),
                NVL(SUM(DECODE(IDTPLANCROP, s_FE, DECODE(IT.CDITEMLANCROP, S.CDSERVFILI,DECODE(IDSERVPRINC, w_S,0, VRITEMLANCROP),0),0)),0) ,
                NVL(SUM(DECODE(IDTPLANCROP, S_FE, DECODE(IT.CDITEMLANCROP, S.CDSERVFILI,DECODE(IDSERVPRINC, W_S,VRITEMLANCROP,0 ),0),0)),0)
           INTO V_FATMEDICAO,
                V_QTEFETSERVPRI, V_VREFETNPRIN , V_VREFETSERVPRIN
           FROM ITLANCROPFILIAL IT, LANCROPFILIAL L  , SERVICO  S
          WHERE (L.CDFILIAL       = C_ETLDRO.CDFILIAL)
            AND (L.IDTPLANCROP    = s_FE)
            AND (L.CDFILIAL       = IT.CDFILIAL   )
            AND (L.NRROPFILIAL    = IT.NRROPFILIAL)
            AND (L.NRLANCROP      = IT.NRLANCROP  )
            AND (IT.CDFILIAL      = S.CDFILIAL)
            AND (IT.CDITEMLANCROP = S.CDSERVFILI)
            AND (L.DTLANCROP BETWEEN V_DTINI AND V_DTFIM);

         SELECT NVL(SUM(DECODE(IDTPLANCROP, s_FS,VRITEMLANCROP,0)),0) INTO   V_FATNOTAFISCAL
           FROM ITLANCROPFILIAL IT, LANCROPFILIAL L  , SERVICO  S
          WHERE (L.CDFILIAL       = C_ETLDRO.CDFILIAL)
            AND (L.IDTPLANCROP    = s_FS)
            AND (L.CDFILIAL       = IT.CDFILIAL   )
            AND (L.NRROPFILIAL    = IT.NRROPFILIAL)
            AND (L.NRLANCROP      = IT.NRLANCROP  )
            AND (IT.CDFILIAL   = S.CDFILIAL(+))
            AND (IT.CDITEMLANCROP = S.CDSERVFILI(+))
            AND ((('S' = V_IDDTAPURFAT) AND (L.DTLANCROP BETWEEN V_DTINI AND V_DTFIM)) OR
                 (('R' = V_IDDTAPURFAT) AND (L.DTFINREFEROP BETWEEN V_DTINI AND V_DTFIM))) ;

         SELECT NVL(SUM(VRRECEEXTRA),0)
           INTO V_VRRECEXTRA
           FROM (SELECT VRRECEITA + VRREDUCAO AS VRRECEEXTRA FROM(   
                 SELECT RF.IDTPRECEXTRAFILI AS TIPO,RF.CDFILIAL,RF.DTRECEXTRAFILI,RF.CDRECEXTRA,VRRECEXTRAFILI AS VRRECEITA, 0 AS VRREDUCAO
                   FROM RECEXTRAFILI RF,RECEXTRA R
                  WHERE RF.CDFILIAL         = P_CDFILIAL
                    AND RF.DTRECEXTRAFILI   BETWEEN V_DTINI AND V_DTFIM
                    AND RF.IDTPRECEXTRAFILI = 'RECEITA'
                    AND RF.CDRECEXTRA       = R.CDRECEXTRA
                  UNION ALL    
                 SELECT RF.IDTPRECEXTRAFILI AS TIPO,RF.CDFILIAL,RF.DTRECEXTRAFILI,RF.CDRECEXTRA,0 AS VRRECEITA, VRRECEXTRAFILI *-1 AS VRREDUCAO
                   FROM RECEXTRAFILI RF,RECEXTRA R
                  WHERE RF.CDFILIAL         = P_CDFILIAL
                    AND RF.DTRECEXTRAFILI   BETWEEN V_DTINI AND V_DTFIM
                    AND RF.IDTPRECEXTRAFILI ='DEDUCAO'
                    AND RF.CDRECEXTRA       = R.CDRECEXTRA) REC,    
                (SELECT DISTINCT IT.CDITEMLANCROP
                   FROM ITLANCROPFILIAL IT, LANCROPFILIAL L,RECEXTRA R
                  WHERE (L.CDFILIAL       = P_CDFILIAL )
                    AND (L.IDTPLANCROP    = s_VN       )
                    AND (L.DTLANCROP      BETWEEN V_DTINI AND V_DTFIM)
                    AND (L.CDFILIAL       = IT.CDFILIAL)
                    AND (L.NRROPFILIAL    = IT.NRROPFILIAL)
                    AND (L.NRLANCROP      = IT.NRLANCROP)
                    AND (IT.CDITEMLANCROP = R.CDRECEXTRA)) APU
                  WHERE APU.CDITEMLANCROP = REC.CDRECEXTRA);
      
         V_VOLUME_NEGOCIOS := V_VRRECEXTRA + CASE WHEN V_IDDETALHEFATUR = 'M' THEN V_FATMEDICAO  ELSE V_FATNOTAFISCAL END; 
         
         IF V_QTEFETSERVPRI > 0 AND V_VREFETSERVPRIN > 0 THEN 
             V_QTEFETSERVEQU := V_VREFETNPRIN/(V_VREFETSERVPRIN/V_QTEFETSERVPRI); 
         END IF; 
         
         V_VRCREDIMPOS := NVL((((V_ENTRADA - V_SAIDAS) * V_PERCREDIMPOS)/100),0);          
         BEGIN           
            SELECT 
               NVL(SUM(DECODE(IDTPLANCROP, s_FE, DECODE(IDTRATIMPROP,'D', VRITRELITROP *(-1),DECODE(IDTRATIMPROP,'V',0,VRITRELITROP)),0)),0)   
               INTO V_IMPOSTO_FAT_MED 
            FROM LANCROPFILIAL L, ITLANCROPFILIAL IT, ITRELACITROP IR, IMPOSTOROP IM 
             WHERE (L.CDFILIAL      = C_ETLDRO.CDFILIAL) 
               AND (L.IDTPLANCROP    = s_FE) 
               AND (L.CDFILIAL      = IT.CDFILIAL    ) 
               AND (L.NRROPFILIAL   = IT.NRROPFILIAL ) 
               AND (L.NRLANCROP     = IT.NRLANCROP   ) 
               AND (IT.CDFILIAL     = IR.CDFILIAL    ) 
               AND (IT.NRROPFILIAL  = IR.NRROPFILIAL ) 
               AND (IT.NRLANCROP    = IR.NRLANCROP   ) 
               AND (IT.NRITLANCROP  = IR.NRITLANCROP ) 
               AND (IM.CDFILIAL = TIPOPARAM_DRO(IT.CDFILIAL)) 
               AND (IR.CDITRELITROP = IM.CDIMPOSTO) 
               AND (IM.IDTPIMPOSTOROP = L.IDTPLANCROP) 
               AND (L.DTLANCROP BETWEEN V_DTINI AND V_DTFIM) ; 
         EXCEPTION 
            WHEN OTHERS THEN 
               V_IMPOSTO_FAT_MED := V_ZERO; 
         END;
 
          BEGIN 
            SELECT  NVL(SUM(DECODE(IDTPLANCROP, s_FS, DECODE(IDTRATIMPROP,'D', VRITRELITROP *(-1),DECODE(IDTRATIMPROP,'V',0,VRITRELITROP)),0)),0) 
                    INTO V_IMPOSTO_FAT_NF 
            FROM LANCROPFILIAL L, ITLANCROPFILIAL IT, ITRELACITROP IR, IMPOSTOROP IM 
            WHERE (L.CDFILIAL      = C_ETLDRO.CDFILIAL) 
              AND ( L.IDTPLANCROP    =  s_FS) 
              AND (L.CDFILIAL      = IT.CDFILIAL    ) 
              AND (L.NRROPFILIAL   = IT.NRROPFILIAL ) 
              AND (L.NRLANCROP     = IT.NRLANCROP   ) 
              AND (IT.CDFILIAL     = IR.CDFILIAL    ) 
              AND (IT.NRROPFILIAL  = IR.NRROPFILIAL ) 
              AND (IT.NRLANCROP    = IR.NRLANCROP   ) 
              AND (IT.NRITLANCROP  = IR.NRITLANCROP ) 
              AND (IM.CDFILIAL = TIPOPARAM_DRO(IT.CDFILIAL)) 
              AND (IR.CDITRELITROP = IM.CDIMPOSTO) 
              AND (IM.IDTPIMPOSTOROP = L.IDTPLANCROP) 
              AND ((('S' = V_IDDTAPURFAT) AND (L.DTLANCROP BETWEEN V_DTINI AND V_DTFIM)) OR  
                   (('R' = V_IDDTAPURFAT) AND (L.DTFINREFEROP BETWEEN V_DTINI AND V_DTFIM))); 
         EXCEPTION 
            WHEN OTHERS THEN 
              V_IMPOSTO_FAT_NF := V_ZERO; 
         END; 

         BEGIN 
            SELECT NRMESINIORCA 
            INTO V_MES_ORC 
            FROM PARAMORCAOPERAC; 
         EXCEPTION 
            WHEN OTHERS THEN 
              V_MES_ORC := 0; 
         END; 
             
         IF (V_MES_ORC <> 0) THEN  
            IF(V_MES< V_MES_ORC) THEN 
               V_ANO_ORC := V_ANO -1; 
            ELSE 
               V_ANO_ORC := V_ANO; 
            END IF; 
 
            SELECT TO_CHAR(MAX(CDVERSAOORCA)) CDVERSAOORCA 
            INTO V_MAXVERSAO 
            FROM VERSAOORCA 
            WHERE CDANOVERORCA = V_ANO_ORC; 
             
            BEGIN 
               SELECT SUM (NVL(DECODE(V_MES,'01',ITEMORCAOP.VRORCAMENTOJAN, 
                               DECODE(V_MES,'02',ITEMORCAOP.VRORCAMENTOFEV, 
                               DECODE(V_MES,'03',ITEMORCAOP.VRORCAMENTOMAR, 
                               DECODE(V_MES,'04',ITEMORCAOP.VRORCAMENTOABR, 
                               DECODE(V_MES,'05',ITEMORCAOP.VRORCAMENTOMAI, 
                               DECODE(V_MES,'06',ITEMORCAOP.VRORCAMENTOJUN, 
                               DECODE(V_MES,'07',ITEMORCAOP.VRORCAMENTOJUL, 
                               DECODE(V_MES,'08',ITEMORCAOP.VRORCAMENTOAGO, 
                               DECODE(V_MES,'09',ITEMORCAOP.VRORCAMENTOSET, 
                               DECODE(V_MES,'10',ITEMORCAOP.VRORCAMENTOOUT, 
                               DECODE(V_MES,'11',ITEMORCAOP.VRORCAMENTONOV, 
                               DECODE(V_MES,'12',ITEMORCAOP.VRORCAMENTODEZ)))))))))))),0)) FAT_ORCADO 
               INTO V_FATBRUT_ORCADO 
               FROM ITEMORCAOP 
               WHERE ITEMORCAOP.IDTIPOORCAOP = S_FATBRU 
                 AND ITEMORCAOP.CDFILIAL = C_ETLDRO.CDFILIAL 
                 AND ITEMORCAOP.CDVERSORCAOP = V_MAXVERSAO 
                 AND ITEMORCAOP.NRANOORCAOP = V_ANO_ORC; 
            EXCEPTION 
               WHEN OTHERS THEN 
                  V_FATBRUT_ORCADO := V_ZERO; 
            END; 
 
            BEGIN 
               SELECT SUM (NVL(DECODE(V_MES,'01',ITEMORCAOP.VRORCAMENTOJAN, 
                               DECODE(V_MES,'02',ITEMORCAOP.VRORCAMENTOFEV, 
                               DECODE(V_MES,'03',ITEMORCAOP.VRORCAMENTOMAR, 
                               DECODE(V_MES,'04',ITEMORCAOP.VRORCAMENTOABR, 
                               DECODE(V_MES,'05',ITEMORCAOP.VRORCAMENTOMAI, 
                               DECODE(V_MES,'06',ITEMORCAOP.VRORCAMENTOJUN, 
                               DECODE(V_MES,'07',ITEMORCAOP.VRORCAMENTOJUL, 
                               DECODE(V_MES,'08',ITEMORCAOP.VRORCAMENTOAGO, 
                               DECODE(V_MES,'09',ITEMORCAOP.VRORCAMENTOSET, 
                               DECODE(V_MES,'10',ITEMORCAOP.VRORCAMENTOOUT, 
                               DECODE(V_MES,'11',ITEMORCAOP.VRORCAMENTONOV, 
                               DECODE(V_MES,'12',ITEMORCAOP.VRORCAMENTODEZ)))))))))))),0)) FAT_ORCADO 
               INTO V_CONSUMO_ORCADO 
               FROM ITEMORCAOP 
               WHERE ITEMORCAOP.IDTIPOORCAOP = S_CONSUMO 
                 AND ITEMORCAOP.CDFILIAL = C_ETLDRO.CDFILIAL 
                 AND ITEMORCAOP.CDVERSORCAOP = V_MAXVERSAO 
                 AND ITEMORCAOP.NRANOORCAOP = V_ANO_ORC; 
            EXCEPTION 
               WHEN OTHERS THEN 
                  V_CONSUMO_ORCADO := V_ZERO; 
            END;  
             
            BEGIN 
               SELECT SUM (NVL(DECODE(V_MES,'01',ITEMORCAOP.VRORCAMENTOJAN, 
                               DECODE(V_MES,'02',ITEMORCAOP.VRORCAMENTOFEV, 
                               DECODE(V_MES,'03',ITEMORCAOP.VRORCAMENTOMAR, 
                               DECODE(V_MES,'04',ITEMORCAOP.VRORCAMENTOABR, 
                               DECODE(V_MES,'05',ITEMORCAOP.VRORCAMENTOMAI, 
                               DECODE(V_MES,'06',ITEMORCAOP.VRORCAMENTOJUN, 
                               DECODE(V_MES,'07',ITEMORCAOP.VRORCAMENTOJUL, 
                               DECODE(V_MES,'08',ITEMORCAOP.VRORCAMENTOAGO, 
                               DECODE(V_MES,'09',ITEMORCAOP.VRORCAMENTOSET, 
                               DECODE(V_MES,'10',ITEMORCAOP.VRORCAMENTOOUT, 
                               DECODE(V_MES,'11',ITEMORCAOP.VRORCAMENTONOV, 
                               DECODE(V_MES,'12',ITEMORCAOP.VRORCAMENTODEZ)))))))))))),0)) FAT_ORCADO 
               INTO V_DESPESA_ORCADO 
               FROM ITEMORCAOP 
               WHERE ITEMORCAOP.IDTIPOORCAOP IN (S_DESPDIVERSA, S_DESPMATRIZ, S_DESPESADFE) 
                 AND ITEMORCAOP.CDFILIAL = C_ETLDRO.CDFILIAL 
                 AND ITEMORCAOP.CDVERSORCAOP = V_MAXVERSAO 
                 AND ITEMORCAOP.NRANOORCAOP = V_ANO_ORC; 
            EXCEPTION 
               WHEN OTHERS THEN 
                  V_DESPESA_ORCADO := V_ZERO; 
            END; 
 
            BEGIN 
               SELECT SUM (NVL(DECODE(V_MES,'01',ITEMORCAOP.VRORCAMENTOJAN, 
                               DECODE(V_MES,'02',ITEMORCAOP.VRORCAMENTOFEV, 
                               DECODE(V_MES,'03',ITEMORCAOP.VRORCAMENTOMAR, 
                               DECODE(V_MES,'04',ITEMORCAOP.VRORCAMENTOABR, 
                               DECODE(V_MES,'05',ITEMORCAOP.VRORCAMENTOMAI, 
                               DECODE(V_MES,'06',ITEMORCAOP.VRORCAMENTOJUN, 
                               DECODE(V_MES,'07',ITEMORCAOP.VRORCAMENTOJUL, 
                               DECODE(V_MES,'08',ITEMORCAOP.VRORCAMENTOAGO, 
                               DECODE(V_MES,'09',ITEMORCAOP.VRORCAMENTOSET, 
                               DECODE(V_MES,'10',ITEMORCAOP.VRORCAMENTOOUT, 
                               DECODE(V_MES,'11',ITEMORCAOP.VRORCAMENTONOV, 
                               DECODE(V_MES,'12',ITEMORCAOP.VRORCAMENTODEZ)))))))))))),0)) FAT_ORCADO 
               INTO V_MAOOBRA_ORCADO 
               FROM ITEMORCAOP 
               WHERE ITEMORCAOP.IDTIPOORCAOP = S_MAOBRA 
                 AND ITEMORCAOP.CDFILIAL = C_ETLDRO.CDFILIAL 
                 AND ITEMORCAOP.CDVERSORCAOP = V_MAXVERSAO 
                 AND ITEMORCAOP.NRANOORCAOP = V_ANO_ORC; 
            EXCEPTION 
               WHEN OTHERS THEN 
                  V_MAOOBRA_ORCADO := V_ZERO; 
            END; 
 
             
            BEGIN 
               SELECT SUM (NVL(DECODE(V_MES,'01',ITEMORCAOP.VRORCAMENTOJAN, 
                               DECODE(V_MES,'02',ITEMORCAOP.VRORCAMENTOFEV, 
                               DECODE(V_MES,'03',ITEMORCAOP.VRORCAMENTOMAR, 
                               DECODE(V_MES,'04',ITEMORCAOP.VRORCAMENTOABR, 
                               DECODE(V_MES,'05',ITEMORCAOP.VRORCAMENTOMAI, 
                               DECODE(V_MES,'06',ITEMORCAOP.VRORCAMENTOJUN, 
                               DECODE(V_MES,'07',ITEMORCAOP.VRORCAMENTOJUL, 
                               DECODE(V_MES,'08',ITEMORCAOP.VRORCAMENTOAGO, 
                               DECODE(V_MES,'09',ITEMORCAOP.VRORCAMENTOSET, 
                               DECODE(V_MES,'10',ITEMORCAOP.VRORCAMENTOOUT, 
                               DECODE(V_MES,'11',ITEMORCAOP.VRORCAMENTONOV, 
                               DECODE(V_MES,'12',ITEMORCAOP.VRORCAMENTODEZ)))))))))))),0)) FAT_ORCADO 
               INTO V_IMPOSTO_ORCADO 
               FROM ITEMORCAOP 
               WHERE ITEMORCAOP.IDTIPOORCAOP = S_IMPOSTO 
                 AND ITEMORCAOP.CDFILIAL = C_ETLDRO.CDFILIAL 
                 AND ITEMORCAOP.CDVERSORCAOP = V_MAXVERSAO 
                 AND ITEMORCAOP.NRANOORCAOP = V_ANO_ORC; 
            EXCEPTION 
               WHEN OTHERS THEN 
                  V_IMPOSTO_ORCADO := V_ZERO; 
            END; 

            BEGIN 
               SELECT SUM (NVL(DECODE(V_MES,'01',ITEMORCAOP.VRORCAMENTOJAN, 
                               DECODE(V_MES,'02',ITEMORCAOP.VRORCAMENTOFEV, 
                               DECODE(V_MES,'03',ITEMORCAOP.VRORCAMENTOMAR, 
                               DECODE(V_MES,'04',ITEMORCAOP.VRORCAMENTOABR, 
                               DECODE(V_MES,'05',ITEMORCAOP.VRORCAMENTOMAI, 
                               DECODE(V_MES,'06',ITEMORCAOP.VRORCAMENTOJUN, 
                               DECODE(V_MES,'07',ITEMORCAOP.VRORCAMENTOJUL, 
                               DECODE(V_MES,'08',ITEMORCAOP.VRORCAMENTOAGO, 
                               DECODE(V_MES,'09',ITEMORCAOP.VRORCAMENTOSET, 
                               DECODE(V_MES,'10',ITEMORCAOP.VRORCAMENTOOUT, 
                               DECODE(V_MES,'11',ITEMORCAOP.VRORCAMENTONOV, 
                               DECODE(V_MES,'12',ITEMORCAOP.VRORCAMENTODEZ)))))))))))),0)) INVEST_ORCADO 
               INTO V_INVEST_ORCADO 
               FROM ITEMORCAOP 
               WHERE ITEMORCAOP.IDTIPOORCAOP = S_INVEST 
                 AND ITEMORCAOP.CDFILIAL = C_ETLDRO.CDFILIAL 
                 AND ITEMORCAOP.CDVERSORCAOP = V_MAXVERSAO 
                 AND ITEMORCAOP.NRANOORCAOP = V_ANO_ORC; 
            EXCEPTION 
               WHEN OTHERS THEN 
                  V_INVEST_ORCADO := V_ZERO; 
            END;  
             
            BEGIN 
               SELECT SUM (NVL(DECODE(V_MES,'01',ITEMORCAOP.VRORCAMENTOJAN, 
                               DECODE(V_MES,'02',ITEMORCAOP.VRORCAMENTOFEV, 
                               DECODE(V_MES,'03',ITEMORCAOP.VRORCAMENTOMAR, 
                               DECODE(V_MES,'04',ITEMORCAOP.VRORCAMENTOABR, 
                               DECODE(V_MES,'05',ITEMORCAOP.VRORCAMENTOMAI, 
                               DECODE(V_MES,'06',ITEMORCAOP.VRORCAMENTOJUN, 
                               DECODE(V_MES,'07',ITEMORCAOP.VRORCAMENTOJUL, 
                               DECODE(V_MES,'08',ITEMORCAOP.VRORCAMENTOAGO, 
                               DECODE(V_MES,'09',ITEMORCAOP.VRORCAMENTOSET, 
                               DECODE(V_MES,'10',ITEMORCAOP.VRORCAMENTOOUT, 
                               DECODE(V_MES,'11',ITEMORCAOP.VRORCAMENTONOV, 
                               DECODE(V_MES,'12',ITEMORCAOP.VRORCAMENTODEZ)))))))))))),0)) DEPREC_ORCADO 
               INTO V_DEPREC_ORCADO 
               FROM ITEMORCAOP 
               WHERE ITEMORCAOP.IDTIPOORCAOP = S_DEPREC 
                 AND ITEMORCAOP.CDFILIAL = C_ETLDRO.CDFILIAL 
                 AND ITEMORCAOP.CDVERSORCAOP = V_MAXVERSAO 
                 AND ITEMORCAOP.NRANOORCAOP = V_ANO_ORC; 
            EXCEPTION 
               WHEN OTHERS THEN 
                  V_DEPREC_ORCADO := V_ZERO; 
            END;  
             
            BEGIN 
               SELECT SUM (NVL(DECODE(V_MES,'01',ITEMORCAOP.VRORCAMENTOJAN, 
                               DECODE(V_MES,'02',ITEMORCAOP.VRORCAMENTOFEV, 
                               DECODE(V_MES,'03',ITEMORCAOP.VRORCAMENTOMAR, 
                               DECODE(V_MES,'04',ITEMORCAOP.VRORCAMENTOABR, 
                               DECODE(V_MES,'05',ITEMORCAOP.VRORCAMENTOMAI, 
                               DECODE(V_MES,'06',ITEMORCAOP.VRORCAMENTOJUN, 
                               DECODE(V_MES,'07',ITEMORCAOP.VRORCAMENTOJUL, 
                               DECODE(V_MES,'08',ITEMORCAOP.VRORCAMENTOAGO, 
                               DECODE(V_MES,'09',ITEMORCAOP.VRORCAMENTOSET, 
                               DECODE(V_MES,'10',ITEMORCAOP.VRORCAMENTOOUT, 
                               DECODE(V_MES,'11',ITEMORCAOP.VRORCAMENTONOV, 
                               DECODE(V_MES,'12',ITEMORCAOP.VRORCAMENTODEZ)))))))))))),0)) IMP_RECU_ORCADO 
               INTO V_IMPARECU_ORCADO 
               FROM ITEMORCAOP 
               WHERE ITEMORCAOP.IDTIPOORCAOP = S_IMPRECU 
                 AND ITEMORCAOP.CDFILIAL = C_ETLDRO.CDFILIAL 
                 AND ITEMORCAOP.CDVERSORCAOP = V_MAXVERSAO 
                 AND ITEMORCAOP.NRANOORCAOP = V_ANO_ORC; 
            EXCEPTION 
               WHEN OTHERS THEN 
                  V_IMPARECU_ORCADO := V_ZERO; 
            END;  
             
            BEGIN 
               SELECT SUM (NVL(DECODE(V_MES,'01',ITEMORCAOP.VRORCAMENTOJAN, 
                               DECODE(V_MES,'02',ITEMORCAOP.VRORCAMENTOFEV, 
                               DECODE(V_MES,'03',ITEMORCAOP.VRORCAMENTOMAR, 
                               DECODE(V_MES,'04',ITEMORCAOP.VRORCAMENTOABR, 
                               DECODE(V_MES,'05',ITEMORCAOP.VRORCAMENTOMAI, 
                               DECODE(V_MES,'06',ITEMORCAOP.VRORCAMENTOJUN, 
                               DECODE(V_MES,'07',ITEMORCAOP.VRORCAMENTOJUL, 
                               DECODE(V_MES,'08',ITEMORCAOP.VRORCAMENTOAGO, 
                               DECODE(V_MES,'09',ITEMORCAOP.VRORCAMENTOSET, 
                               DECODE(V_MES,'10',ITEMORCAOP.VRORCAMENTOOUT, 
                               DECODE(V_MES,'11',ITEMORCAOP.VRORCAMENTONOV, 
                               DECODE(V_MES,'12',ITEMORCAOP.VRORCAMENTODEZ)))))))))))),0)) IMP_SOB_LUC_ORCADO 
               INTO V_IMPSLUC_ORCADO 
               FROM ITEMORCAOP 
               WHERE ITEMORCAOP.IDTIPOORCAOP = S_IMPLUC 
                 AND ITEMORCAOP.CDFILIAL = C_ETLDRO.CDFILIAL 
                 AND ITEMORCAOP.CDVERSORCAOP = V_MAXVERSAO 
                 AND ITEMORCAOP.NRANOORCAOP = V_ANO_ORC; 
            EXCEPTION 
               WHEN OTHERS THEN 
                  V_IMPSLUC_ORCADO := V_ZERO; 
            END;
            
            BEGIN  
               SELECT SUM (NVL(DECODE(V_MES,'01',ITEMORCAOP.VRORCAMENTOJAN,  
                               DECODE(V_MES,'02',ITEMORCAOP.VRORCAMENTOFEV,  
                               DECODE(V_MES,'03',ITEMORCAOP.VRORCAMENTOMAR,  
                               DECODE(V_MES,'04',ITEMORCAOP.VRORCAMENTOABR,  
                               DECODE(V_MES,'05',ITEMORCAOP.VRORCAMENTOMAI,  
                               DECODE(V_MES,'06',ITEMORCAOP.VRORCAMENTOJUN,  
                               DECODE(V_MES,'07',ITEMORCAOP.VRORCAMENTOJUL,  
                               DECODE(V_MES,'08',ITEMORCAOP.VRORCAMENTOAGO,  
                               DECODE(V_MES,'09',ITEMORCAOP.VRORCAMENTOSET,  
                               DECODE(V_MES,'10',ITEMORCAOP.VRORCAMENTOOUT,  
                               DECODE(V_MES,'11',ITEMORCAOP.VRORCAMENTONOV,  
                               DECODE(V_MES,'12',ITEMORCAOP.VRORCAMENTODEZ)))))))))))),0)) TX_ADM_ORCADO  
               INTO V_TX_ADM_ORCADO  
               FROM ITEMORCAOP  
               WHERE ITEMORCAOP.IDTIPOORCAOP = S_TXADM  
                 AND ITEMORCAOP.CDFILIAL = C_ETLDRO.CDFILIAL  
                 AND ITEMORCAOP.CDVERSORCAOP = V_MAXVERSAO  
                 AND ITEMORCAOP.NRANOORCAOP = V_ANO_ORC;  
            EXCEPTION  
               WHEN OTHERS THEN  
                  V_TX_ADM_ORCADO := V_ZERO;  
            END; 
            
            BEGIN
              SELECT NVL(A.TAXAADMINREG,0)+NVL(B.TAXAADMINMATRIZ,0) as TXADM
                INTO V_VR_PERCENT_TX_ADM
                FROM (SELECT 'A' CDCODIGO,F.CDFILIAL, AR.TAXAADMINREG TAXAADMINREG
                        FROM AREAGERE AR, FILIAL F  
                       WHERE AR.CDAREAGERE(+) = F.CDAREAGERE
                         AND F.CDFILIAL       = C_ETLDRO.CDFILIAL) A,  
                               
                     (SELECT 'A' CDCODIGO,NVL(P.TAXAADMINMATRIZ,0) TAXAADMINMATRIZ 
                        FROM PARAMGESTAO P)B
                       WHERE A.CDCODIGO = B.CDCODIGO(+); 
            EXCEPTION
              WHEN NO_DATA_FOUND THEN
                V_VR_PERCENT_TX_ADM := V_ZERO;
            END;
            V_FATLIQU_ORCADO := V_FATBRUT_ORCADO - V_IMPOSTO_ORCADO; 
         END IF;  
         V_FATLIQ_MEDICAO := (V_FATMEDICAO + V_IMPOSTO_FAT_MED) + V_VRRECEXTRA;
         V_FATLIQ_NF := (V_FATNOTAFISCAL + V_IMPOSTO_FAT_NF) + V_VRRECEXTRA;
         
         /*Mao de Obra e Despesas diversas s�o apuradas para o mes completo, independente 
         da data de processamento. Isto � para que o valor de ambos estes itens seja comparavel ao D*/
         FOR C_DESPMAOBRA IN (
              SELECT  IT.CDITEMLANCROP, D.DSDESPADMFAT, NVL(SUM(IT.VRITEMLANCROP),0) AS VRITEMLANCROP 
               FROM LANCROPFILIAL L, ITLANCROPFILIAL IT, DESPADMFATUR D 
              WHERE L.IDTPLANCROP='DM' 
                AND (L.CDFILIAL= C_ETLDRO.CDFILIAL) 
                AND (L.DTLANCROP BETWEEN FIRST_DAY(V_DTINI) AND LAST_DAY(V_DTFIM))   
                AND (L.CDFILIAL = IT.CDFILIAL) 
                AND (L.NRROPFILIAL = IT.NRROPFILIAL) 
                AND (L.NRLANCROP = IT.NRLANCROP) 
                AND (IT.CDITEMLANCROP = D.CDDESPADMFAT) 
                GROUP BY  IT.CDITEMLANCROP, D.DSDESPADMFAT 
                ORDER BY  D.DSDESPADMFAT)  
         LOOP 
              
            INSERT INTO ETLDROMAOBRADRILL 
                  (CDEMPRESA,     CDAREAGERE,       CDSEGMER,       CDFILIAL, 
                   CDANOBI,       CDMESBI,          BIETLDRO,       TRETLDRO, 
                   SEETLDRO,      CDDESPADMFAT,     DSDESPADMFAT,   VRITEMLANCROP) 
            VALUES 
                 (C_ETLDRO.CDEMPRESA,C_ETLDRO.CDAREAGERE,C_ETLDRO.CDSEGMER,C_ETLDRO.CDFILIAL, 
                 V_ANO, V_MES, V_BIM, V_TRI, V_SEM, C_DESPMAOBRA.CDITEMLANCROP, C_DESPMAOBRA.DSDESPADMFAT, 
                 C_DESPMAOBRA.VRITEMLANCROP); 
         END LOOP; 
 
         FOR C_DESPDETALHADA IN ( 
                  SELECT CODIGO, NOME, SUM(VALOR)  AS VRITEMLANCROP 
                  FROM (SELECT DESPPREVFILI.CDDESPPREV AS CODIGO, 
                               DESPPREV.NMDESPPREV AS NOME, 
                              (DESPPREVFILI.VRREDESPFILI) AS VALOR 
                        FROM DESPPREVFILI, DESPPREV 
                        WHERE (DESPPREVFILI.CDFILIAL = C_ETLDRO.CDFILIAL) 
                          AND ((DESPPREVFILI.DTPRDESPFILI BETWEEN V_DTINI AND V_DTFIM)) 
                          AND DESPPREVFILI.CDDESPPREV > 0 
                          AND (DESPPREVFILI.CDDESPPREV = DESPPREV.CDDESPPREV) 
                        UNION ALL 
                        SELECT  P.CDARVPROD AS CODIGO, 
                                P.NMPRODUTO AS NOME, 
                                NVL(( IT.VRITEMLANCROP),0) AS VALOR 
                        FROM ITLANCROPFILIAL IT, LANCROPFILIAL L, PRODUTO P 
                        WHERE  L.IDTPLANCROP IN ('DE','DD') 
                          AND (IT.CDFILIAL = C_ETLDRO.CDFILIAL) 
                          AND (L.DTLANCROP  BETWEEN FIRST_DAY(V_DTINI) AND LAST_DAY(V_DTFIM)) 
                          AND (IT.CDFILIAL= L.CDFILIAL) 
                          AND (IT.NRROPFILIAL= L.NRROPFILIAL) 
                          AND (P.CDPRODUTO= IT.CDITEMLANCROP) 
                          AND L.NRLANCROP = IT.NRLANCROP 
                        UNION ALL 
                        SELECT CDTPCTPAGAR AS CODIGO, 
                               DSTPCTPAGAR AS NOME, 
                               NVL  (SUM(IT.VRITEMLANCROP),0) AS VALOR 
                        FROM ITLANCROPFILIAL IT, LANCROPFILIAL L,  TIPOCTPAGAR TP 
                        WHERE  L.IDTPLANCROP IN ('DC') 
                          AND (IT.CDFILIAL = C_ETLDRO.CDFILIAL) 
                          AND (L.DTLANCROP  BETWEEN V_DTINI AND V_DTFIM) 
                          AND (IT.CDFILIAL= L.CDFILIAL) 
                          AND (IT.NRROPFILIAL= L.NRROPFILIAL) 
                          AND TP.CDTPCTPAGAR= IT.CDITEMLANCROP 
                          AND L.NRLANCROP = IT.NRLANCROP 
                        GROUP BY CDTPCTPAGAR,DSTPCTPAGAR,L.DTLANCROP 
                        ) 
                     GROUP BY CODIGO, NOME 
                     ORDER BY NOME 
                  ) 
         LOOP  
             
            INSERT INTO ETLDRODESPDRILL 
               (CDEMPRESA,     CDAREAGERE,    CDSEGMER,    CDFILIAL, 
                CDANOBI,       CDMESBI,       BIETLDRO,    TRETLDRO, 
                SEETLDRO,      CDDESPDIV,     NMDESPDIV,   VRITEMLANCROP) 
            VALUES 
               (C_ETLDRO.CDEMPRESA,C_ETLDRO.CDAREAGERE,C_ETLDRO.CDSEGMER,C_ETLDRO.CDFILIAL, 
                V_ANO, V_MES, V_BIM, V_TRI, V_SEM,C_DESPDETALHADA.CODIGO,C_DESPDETALHADA.NOME, 
                C_DESPDETALHADA.VRITEMLANCROP); 
         END LOOP; 
 
         FOR C_DADOSAGRUDRO IN(  
            SELECT CDGRUPPRODROP, CDSUBGRPRODROP,NMGRUPPROD, NMSUBGRPROD,VRCONSENTRA,  
                    ENTRADAS_COMPRAS,OUTRAS_ENTRADAS, VRCONSSAIDA, SAIDAS_DEVOLUCAO,OUTRAS_SAIDAS,
                    VRAJUSTE,VRIMPLANTA,VRDESPESARET,VRRETISERVPRI,  
                    DECODE(V_FATLIQ_MEDICAO,0,0,((VRCONSENTRA*100)/V_FATLIQ_MEDICAO)) AS PER_TOT_ENTRADAS_MED,  
                    DECODE(V_FATLIQ_NF,0,0,((VRCONSENTRA*100)/V_FATLIQ_NF)) AS PER_TOT_ENTRADAS_NF,
                    DECODE(V_FATLIQ_MEDICAO,0,0,(((ENTRADAS_COMPRAS)*100)/V_FATLIQ_MEDICAO)) AS PER_ENTRADAS_COMP_MED,  
                    DECODE(V_FATLIQ_NF,0,0,(((ENTRADAS_COMPRAS)*100)/V_FATLIQ_NF)) AS PER_ENTRADAS_COMP_NF,
                    DECODE(V_FATLIQ_MEDICAO,0,0,(((OUTRAS_ENTRADAS)*100)/V_FATLIQ_MEDICAO)) AS PER_OUT_ENTRADAS_MED,
                    DECODE(V_FATLIQ_NF,0,0,(((OUTRAS_ENTRADAS)*100)/V_FATLIQ_NF)) AS PER_OUT_ENTRADAS_NF
                    
            FROM(    
                     SELECT CDGRUPPRODROP, CDSUBGRPRODROP,NMGRUPPROD, NMSUBGRPROD,
                            SUM(VRCONSENTRA) AS VRCONSENTRA,
                            SUM(VRCONSSAIDA) AS VRCONSSAIDA,
                            SUM(DECODE(IDTIPOENTRADA,'A',VRCONSENTRA,0)) AS ENTRADAS_COMPRAS,
                            SUM(DECODE(IDTIPOENTRADA,'B',VRCONSENTRA,0)) AS OUTRAS_ENTRADAS,
                            SUM(DECODE(IDTIPOSAIDA,'A',VRCONSSAIDA,0)) AS SAIDAS_DEVOLUCAO,
                            SUM(DECODE(IDTIPOSAIDA,'B',VRCONSSAIDA,0)) AS OUTRAS_SAIDAS,
                            SUM(VRAJUSTE) VRAJUSTE,
                            SUM(VRIMPLANTA) VRIMPLANTA,
                            SUM(VRDESPESARET) VRDESPESARET,
                            SUM(VRRETISERVPRI) VRRETISERVPRI
                    FROM
                        (
                        
                        SELECT 
                        NVL((SELECT 'A'
                              FROM TIPOOPERACROP T
                             WHERE L.CDTIPOOPERROP = T.CDTIPOOPER
                               AND CDFILIAL = TIPOPARAM_DRO(C_ETLDRO.CDFILIAL)
                               AND IDENTRSAIDOP = 'E'
                               AND IDTPOPERACROP = 'CC'),'B') IDTIPOENTRADA,
                         NVL((SELECT 'A'
                                FROM TIPOOPERACROP T
                               WHERE L.CDTIPOOPERROP = T.CDTIPOOPER
                                 AND CDFILIAL = TIPOPARAM_DRO(C_ETLDRO.CDFILIAL)
                                 AND IDENTRSAIDOP = 'S'
                                 AND IDTPOPERACROP = 'CS'),'B') IDTIPOSAIDA,
                         NVL(DECODE(IDTPLANCROP, s_CC,DECODE(CDTIPOOPERROP, '06', 0,VRITEMLANCROP),0),0) AS VRCONSENTRA,
                         NVL((DECODE(IDTPLANCROP, s_CS,VRITEMLANCROP,0)),0) AS  VRCONSSAIDA,
                         NVL(DECODE(IDTPLANCROP, s_AJ,VRITEMLANCROP,0),0) AS  VRAJUSTE,  
                         NVL(DECODE(IDTPLANCROP, s_IM,VRITEMLANCROP,0),0) AS  VRIMPLANTA,  
                         NVL(DECODE(IDTPLANCROP, s_RE,VRITEMLANCROP,'RP',VRITEMLANCROP, 0),0) AS  VRDESPESARET,  
                         NVL(DECODE(IDTPLANCROP, s_RP,DECODE(IDSERVPRINC  ,'S',VRITEMLANCROP,0),0),0)AS VRRETISERVPRI,
                         CDGRUPPRODROP, CDSUBGRPRODROP,NMGRUPPROD, NMSUBGRPROD
                  FROM  
                         ITLANCROPFILIAL IT, LANCROPFILIAL L, SERVICO  S,GRUPPROD GP, SUBGRUPPROD SG  
                  WHERE (L.CDFILIAL       = C_ETLDRO.CDFILIAL)  
                    AND (L.IDTPLANCROP    IN (s_CC, s_CS, s_RE, s_RP, s_AJ, s_IM,s_II,s_IF))  
                    AND (L.CDFILIAL       = IT.CDFILIAL   )  
                    AND (L.NRROPFILIAL    = IT.NRROPFILIAL)  
                    AND (L.NRLANCROP      = IT.NRLANCROP  )  
                    AND (L.DTLANCROP  BETWEEN V_DTINI AND V_DTFIM)  
                    AND (CDSUBGRPRODROP IS NOT NULL)  
                    AND (IT.CDGRUPPRODROP = GP.CDGRUPPROD)  
                    AND (IT.CDGRUPPRODROP = SG.CDGRUPPROD)  
                    AND (IT.CDSUBGRPRODROP = SG.CDSUBGRPROD)  
                    AND (IT.CDFILIAL   = S.CDFILIAL(+))  
                    AND (IT.CDITEMLANCROP = S.CDSERVFILI(+)))  
                  GROUP BY CDGRUPPRODROP, CDSUBGRPRODROP, NMGRUPPROD, NMSUBGRPROD  
                  ORDER BY CDSUBGRPRODROP 
                  )
            )   
         LOOP
            SELECT 
               NVL(SUM(DECODE(IDTPLANCROP,s_II,VRITEMLANCROP,0)),0) VRTOTINVINIC, 
               NVL(SUM(DECODE(IDTPLANCROP,s_IF,VRITEMLANCROP,0)),0) VRTOTINVFINAL 
            INTO V_VRTOTINVINIC, V_VRTOTINVFINAL 
            FROM LANCROPFILIAL L, ITLANCROPFILIAL IT 
            WHERE ((L.CDFILIAL    = C_ETLDRO.CDFILIAL) 
               OR (CDFILCENTROP   = C_ETLDRO.CDFILIAL)) 
              AND ((L.DTLANCROP   = V_DTINI AND IDTPLANCROP = S_II) 
               OR (L.DTLANCROP    = V_DTFIM AND IDTPLANCROP = S_IF)) 
              AND (L.CDFILIAL     = IT.CDFILIAL) 
              AND (L.NRROPFILIAL  = IT.NRROPFILIAL) 
              AND (L.NRLANCROP    = IT.NRLANCROP) 
              AND (CDSUBGRPRODROP =  C_DADOSAGRUDRO.CDSUBGRPRODROP); 
 
             
            IF (V_QTEFETSERVPRI > 0) THEN 
               V_VRPUETLDRO  := ROUND(C_DADOSAGRUDRO.VRDESPESARET/V_QTEFETSERVPRI,2); 
               V_VRPUENTRADA := ROUND((C_DADOSAGRUDRO.VRCONSENTRA - C_DADOSAGRUDRO.VRCONSSAIDA)/V_QTEFETSERVPRI,2); 
            END IF;  
             
            V_NUMDIAS := (V_DTFIM - V_DTINI)+1;  
            
            V_DIAS_REALIZADOS := CASE V_IDNRDIASUTEST WHEN 'S' THEN RETORNA_DIAS_REALIZADOS(C_ETLDRO.CDFILIAL,V_DTINI,V_DTFIM) ELSE 30 END;
            
            IF C_DADOSAGRUDRO.VRDESPESARET > 0 THEN 
              IF V_DIAS_REALIZADOS > 0 THEN  
                V_NRDIAESTETLDRO := (ROUND(V_VRTOTINVFINAL,2) /(ROUND(C_DADOSAGRUDRO.VRDESPESARET,2)/V_DIAS_REALIZADOS));
              ELSE
                V_NRDIAESTETLDRO := 0;
              END IF;
            ELSE
              V_NRDIAESTETLDRO := 0;
            END IF;
                        
            IF(V_TABELA = V_NMTABELA) THEN 
               BEGIN 
                  V_QRYCONSULTA := 'SELECT SUM(VRIMPMES)
                                    FROM '|| V_TABELA|| 
                                   'WHERE CDFILIAL = :CDFILIAL
                                    AND TRUNC(DTMESREF) BETEWEEN :DTINI AND :DTFIM' ; 
                  OPEN C_CONSULTA FOR V_QRYCONSULTA USING C_ETLDRO.CDFILIAL, V_DTINI, V_DTFIM; 
                     LOOP 
                        FETCH C_CONSULTA INTO V_PERCLUC; 
                        EXIT WHEN C_CONSULTA%NOTFOUND; 
                     END LOOP; 
                  CLOSE C_CONSULTA; 
               EXCEPTION 
                  WHEN OTHERS THEN 
                     V_PERCLUC := V_ZERO; 
               END; 
               V_VRSOBLUCRO := NVL(((V_FATMEDICAO + V_IMPOSTO_FAT_MED - (V_ENTRADA-V_SAIDAS) - (V_DESPESASDIVER + V_DESPESAENTRA +  
               V_DESPESACONTAPAG) - V_DESPESAMAO - V_INVESTIMENTO - V_VRDEPREC + V_VRCREDIMPOS) * V_PERCLUC),0); 
            END IF; 
 
            INSERT 
              INTO ETLDRODADOSAGRU             
                   (CDFILIAL,
                   CDEMPRESA,
                   CDAREAGERE,
                   CDSUPERVISOR,
                   CDSEGMER,
                   CDGOPERAC,
                   CDANOBI,
                   CDMESBI,
                   BIETLDRO,
                   TRETLDRO,
                   SEETLDRO,
                   CDGRUPPROD,
                   CDSUBGRPROD,
                   DSGRUPPROD,
                   DSSUBGRPROD,
                   VRPOSINIETLDRO,
                   VRPOSFIMETLDRO,
                   VRENTRETLDRO,
                   VRENTRADACOMPRAS,                    
                   VROUTRASENTRADAS,                    
                   VRSAIDETLDRO,                        
                   VRSAIDADEVOLUCAO,                    
                   VROUTRASSAIDAS,                      
                   VRBAIXAETLDRO,                       
                   VRAJUETLDRO,                         
                   VRIMPETLDRO,                         
                   VRPUETLDRO,                          
                   VRPUENTRADA,                         
                   NRDIAESTETLDRO,                      
                   VRPERCMPMED,                         
                   VRPERCCMPNF,                         
                   VRPERENTRCOMPMED,                    
                   VRPERENTRCOMPNF,                     
                   VRPEROUTENTRMED,                     
                   VRPEROUTENTRNF,                      
                   QTEFETSERVPRI,                       
                   QTEFETSERVEQU)                       
            VALUES                               
                   (C_ETLDRO.CDFILIAL,                  
                   C_ETLDRO.CDEMPRESA,                  
                   C_ETLDRO.CDAREAGERE,                 
                   C_ETLDRO.CDSUPERVISOR,               
                   C_ETLDRO.CDSEGMER,                   
                   C_ETLDRO.CDGOPERAC,                  
                   V_ANO,                               
                   V_MES,                               
                   V_BIM,                               
                   V_TRI,                               
                   V_SEM,                               
                   C_DADOSAGRUDRO.CDGRUPPRODROP,        
                   C_DADOSAGRUDRO.CDSUBGRPRODROP,       
                   C_DADOSAGRUDRO.NMGRUPPROD,           
                   C_DADOSAGRUDRO.NMSUBGRPROD,          
                   V_VRTOTINVINIC,                      
                   V_VRTOTINVFINAL,                     
                   (C_DADOSAGRUDRO.VRCONSENTRA -        
                   C_DADOSAGRUDRO.VRCONSSAIDA),         
                   C_DADOSAGRUDRO.ENTRADAS_COMPRAS,     
                   C_DADOSAGRUDRO.OUTRAS_ENTRADAS,      
                   C_DADOSAGRUDRO.VRCONSSAIDA,          
                   C_DADOSAGRUDRO.SAIDAS_DEVOLUCAO,     
                   C_DADOSAGRUDRO.OUTRAS_SAIDAS,        
                   C_DADOSAGRUDRO.VRDESPESARET,
                   C_DADOSAGRUDRO.VRAJUSTE,
                   C_DADOSAGRUDRO.VRIMPLANTA,
                   V_VRPUETLDRO,
                   V_VRPUENTRADA,
                   V_NRDIAESTETLDRO,
                   C_DADOSAGRUDRO.PER_TOT_ENTRADAS_MED, 
                   C_DADOSAGRUDRO.PER_TOT_ENTRADAS_NF,
                   C_DADOSAGRUDRO.PER_ENTRADAS_COMP_MED,
                   C_DADOSAGRUDRO.PER_ENTRADAS_COMP_NF,
                   C_DADOSAGRUDRO.PER_OUT_ENTRADAS_MED,
                   C_DADOSAGRUDRO.PER_OUT_ENTRADAS_NF,
                   V_QTEFETSERVPRI,
                   V_QTEFETSERVEQU);
            --C�LCULO DO VALOR DO CONSUMO TOTAL, RESPEITANDO O TIPO DE PARAMETRO QUE O DEFINE 
            IF((V_IDRETIRADAROP ='P') OR (V_IDRETIRADAROP = 'E') OR (V_IDRETIRADAROP = 'A')) THEN
                  V_VRCONSUMOTOTAL  := V_VRCONSUMOTOTAL + C_DADOSAGRUDRO.VRDESPESARET;
            ELSE
                  IF(V_IDRETIRADAROP = 'C') THEN
                        V_VRCONSUMOTOTAL := V_VRCONSUMOTOTAL+ C_DADOSAGRUDRO.VRCONSENTRA;
                
                  ELSE
                       V_VRCONSUMOTOTAL  := V_VRCONSUMOTOTAL + V_VRTOTINVINIC + C_DADOSAGRUDRO.VRCONSENTRA - C_DADOSAGRUDRO.VRCONSSAIDA - V_VRTOTINVFINAL;
                  END IF;
            END IF;
         END LOOP; 
 
          
         CASE C_ETLDRO.CDTIPOFATUR 
           WHEN '001' THEN V_TIPOFATU := 'Gestao Direta'; 
           WHEN '002' THEN V_TIPOFATU := 'Gestao Mista'; 
           WHEN '003' THEN V_TIPOFATU := 'Mandato'; 
           WHEN '004' THEN V_TIPOFATU := 'Refeicoes e Servicos'; 
           WHEN '005' THEN V_TIPOFATU := 'Taxa Fixa'; 
           WHEN '006' THEN V_TIPOFATU := 'Gestao Hospitalar'; 
           WHEN '007' THEN V_TIPOFATU := 'Produtos e Servicos'; 
           WHEN '008' THEN V_TIPOFATU := 'Gestao Laser'; 
           WHEN '009' THEN V_TIPOFATU := 'Gestao Merenda'; 
           ELSE V_TIPOFATU := 'Sem Tipo Faturamento'; 
         END CASE;           

        /*Calculo das despesas e mao de obra, por dias uteis/realizados*/
         IF V_IDEXIBEDESPESAMOBRA <>'TOTAL_PERIODO' THEN
            V_DESPESASDIVER   := (V_DESPESASDIVER  / RETORNA_DIA_UTIL(C_ETLDRO.CDFILIAL,P_DTINI,LAST_DAY(V_DTFIM)))* RETORNA_DIAS_REALIZADOS(C_ETLDRO.CDFILIAL,V_DTINI,V_DTFIM);
            V_DESPESAENTRA    := (V_DESPESAENTRA   / RETORNA_DIA_UTIL(C_ETLDRO.CDFILIAL,P_DTINI,LAST_DAY(V_DTFIM)))* RETORNA_DIAS_REALIZADOS(C_ETLDRO.CDFILIAL,V_DTINI,V_DTFIM);
            V_DESPESACONTAPAG := (V_DESPESACONTAPAG/ RETORNA_DIA_UTIL(C_ETLDRO.CDFILIAL,P_DTINI,LAST_DAY(V_DTFIM)))* RETORNA_DIAS_REALIZADOS(C_ETLDRO.CDFILIAL,V_DTINI,V_DTFIM);
            V_DESPESAMAO      := (V_DESPESAMAO     / RETORNA_DIA_UTIL(C_ETLDRO.CDFILIAL,P_DTINI,LAST_DAY(V_DTFIM)))* RETORNA_DIAS_REALIZADOS(C_ETLDRO.CDFILIAL,V_DTINI,V_DTFIM);
         END IF;

         --ALTER TABLE ETLDRO ADD VRFATDIVERSOS DOUBLE PRECISION NULL

         INSERT INTO ETLDRO
         (CDFILIAL,
         CDEMPRESA,
         CDAREAGERE,
         CDSUPERVISOR,
         CDSEGMER,
         CDGOPERAC,
         DSTIPOFATGER,
         CDANOBI,
         CDMESBI,
         BIETLDRO,
         TRETLDRO,
         SEETLDRO,
         CDPAIS,
         NMPAIS,
         SGESTADO,
         NMESTADO,
         CDMUNICIPIO,
         NMMUNICIPIO,
         NMAREAGERE,
         CDPLANEJADORA,
         CDGUNIDADE,
         VRFATMEDETLDRO,
         VRFATLIQMEDDRO,
         VRIMPFATMEDDRO,
         VRCONSETLDRO,
         VRENTRADANF,
         VRSAIDANF,
         VRDESPETLDRO,
         VRMAOBETLDRO,
         VRNFFATETLDRO,
         VRFATLIQNFDRO,
         VRIMPFATNFDRO,
         QTTOTEFSERPRDRO,
         QTTOTEFEQPRIDRO,
         DTREFERENCIAETL,
         VRFATBRUETLDRO,
         VRFATLIQETLDRO,
         VRIMPOETLDRO,
         VRCREDIMPOS,
         VRSOBRELUCRO,
         VRDEPRECBENS,
         VRINVESTIMENTO,
         VRFATBRUORCADO,
         VRFATLIQORCADO,
         VRIMPOSTORCADO,
         VRCONSUMORCADO,
         VRDESPESORCADO,
         VRMAOBRAORCADO,
         VRCREDIMPORCADO,
         VRSOBRELUCORC,
         VRDEPRECBENSORC,
         VRINVESTORCADO, 
         NRDIAUTIL,
         NRDIAREALIZADO, 
         VRTXADMORCADO,
         VRTXADMNF,
         VRTXADMMED,
         VRVOLUMENEGOCIOETLDRO,
         VRFATDIVERSOS)
        VALUES
        (C_ETLDRO.CDFILIAL,
         C_ETLDRO.CDEMPRESA,
         C_ETLDRO.CDAREAGERE,
         C_ETLDRO.CDSUPERVISOR,
         C_ETLDRO.CDSEGMER,
         C_ETLDRO.CDGOPERAC,
         V_TIPOFATU,
         V_ANO,
         V_MES,
         V_BIM,
         V_TRI,
         V_SEM,
         C_ETLDRO.CDPAIS,
         C_ETLDRO.NMPAIS,
         C_ETLDRO.SGESTADO,
         C_ETLDRO.NMESTADO,
         C_ETLDRO.CDMUNICIPIO,
         C_ETLDRO.NMMUNICIPIO,
         C_ETLDRO.NMAREAGERE,
         C_ETLDRO.CDPLANEJADORA,
         C_ETLDRO.CDGUNIDADE,
         V_FATMEDICAO,
         V_FATLIQ_MEDICAO,
         (ABS(V_IMPOSTO_FAT_MED)),
         V_VRCONSUMOTOTAL,
         (V_ENTRADA - V_SAIDAS),
         V_SAIDAS,
         (V_DESPESASDIVER + V_DESPESAENTRA + V_DESPESACONTAPAG ),    
         V_DESPESAMAO,
         V_FATNOTAFISCAL,
         V_FATLIQ_NF,
         (ABS(V_IMPOSTO_FAT_NF)),
         (ROUND(V_QTEFETSERVPRI)),
         (ROUND(V_QTEFETSERVEQU)),
         (TO_DATE('01/'||V_MES||V_ANO,'DD/MM/YYYY')),
         (ROUND(V_FATMEDICAO + V_FATNOTAFISCAL ,2)),
         (ROUND(V_FATLIQ_MEDICAO + V_FATLIQ_NF ,2)),
         (ROUND(ABS(V_IMPOSTO_FAT_MED) + ABS(V_IMPOSTO_FAT_NF),2)),
         V_VRCREDIMPOS,
         V_VRSOBLUCRO,
         V_VRDEPREC,
         V_INVESTIMENTO,
         V_FATBRUT_ORCADO,
         V_FATLIQU_ORCADO,
         V_IMPOSTO_ORCADO,
         V_CONSUMO_ORCADO,
         V_DESPESA_ORCADO,
         V_MAOOBRA_ORCADO,
         V_IMPARECU_ORCADO,
         V_IMPSLUC_ORCADO,
         V_DEPREC_ORCADO,
         V_INVEST_ORCADO,
         RETORNA_DIA_UTIL(C_ETLDRO.CDFILIAL,V_DTINI,LAST_DAY(V_DTFIM)),
         RETORNA_DIAS_REALIZADOS(C_ETLDRO.CDFILIAL,V_DTINI,V_DTFIM),
         V_TX_ADM_ORCADO,
        (( DECODE(V_IDTIPOCALCTAXAADM,'FATURAMENTO_BRUTO',V_FATNOTAFISCAL,V_FATLIQ_NF) / 100 ) * V_VR_PERCENT_TX_ADM), 
         (( DECODE(V_IDTIPOCALCTAXAADM,'FATURAMENTO_BRUTO',V_FATMEDICAO,V_FATLIQ_MEDICAO) / 100) * V_VR_PERCENT_TX_ADM), 
         V_VOLUME_NEGOCIOS,
         V_VRLANCFATDIV);

 
         V_CONT := V_CONT + 1; 
         IF V_CONT >= 100 THEN 
            V_CONT := V_ZERO; 
            COMMIT; 
         END IF; 

         FOR C_VENDAS IN 
            (SELECT (LJ.CDLOJA||'-'||LJ.NMLOJA)LOJA, L.DTLANCROP, IT.QTITEMLANCROP, IT.VRITEMLANCROP, IT.VRACRITLANCROP, 
                    IT.VRDESITLANCROP, IT.VRIMPITLANCROP, IT.VRCUSTSEGPROD, L.NRPESLANCROP, L.NRCUPLANCROP 
            FROM ITLANCROPFILIAL IT, LANCROPFILIAL L, LOJA LJ 
            WHERE (L.CDFILIAL = C_ETLDRO.CDFILIAL) 
              AND (L.DTLANCROP BETWEEN V_DTINI AND V_DTFIM) 
              AND (IT.CDFILIAL = L.CDFILIAL) 
              AND (IT.NRROPFILIAL = L.NRROPFILIAL) 
              AND (IT.NRLANCROP = L.NRLANCROP) 
              AND (L.CDFILIAL = LJ.CDFILIAL) 
              AND (L.CDLOJA = LJ.CDLOJA) 
              AND (IT.CDFILIAL = LJ.CDFILIAL) 
              AND (L.IDTPLANCROP=S_FF) 
            )  
         LOOP 
             
            SELECT NVL(SUM(NRCUPLANCROP),0) NRCUPLANCROP 
              INTO V_NRCUPLANCROP 
            FROM LANCROPFILIAL L 
            WHERE L.CDFILIAL = C_ETLDRO.CDFILIAL 
              AND L.IDTPLANCROP = S_FF 
              AND L.DTLANCROP BETWEEN V_DTINI AND V_DTFIM; 
 
             
            V_DIA := TO_CHAR(C_VENDAS.DTLANCROP, 'D'); 
 
            CASE V_DIA 
            WHEN  '1' THEN V_DTVENDA := (C_VENDAS.DTLANCROP || '-DOM'); 
            WHEN  '2' THEN V_DTVENDA := (C_VENDAS.DTLANCROP || '-SEG'); 
            WHEN  '3' THEN V_DTVENDA := (C_VENDAS.DTLANCROP || '-TER'); 
            WHEN  '4' THEN V_DTVENDA := (C_VENDAS.DTLANCROP || '-QUA'); 
            WHEN  '5' THEN V_DTVENDA := (C_VENDAS.DTLANCROP || '-QUI'); 
            WHEN  '6' THEN V_DTVENDA := (C_VENDAS.DTLANCROP || '-SEX'); 
            WHEN  '7' THEN V_DTVENDA := (C_VENDAS.DTLANCROP || '-SAB'); 
            END CASE; 

            INSERT INTO DM_DRF 
                  (CDFILIAL, CDEMPRESA, CDANOBI, 
                   CDMESBI, NMPAIS, SGESTADO, 
                   NMMUNICIPIO, NMLOJA, DSDTVENDA, 
                   VRFATBRUTOVE, VRIMPOSTOVE, VRFATBRUTONF, 
                   VRIMPOSTONF, NRVENDAS, QTMETRAGEM, 
                   NRPESSOAS, NRCUPONS, VRACRESCIMO, 
                   VRDESCONTO, VRCMV 
                   ) 
            VALUES 
                  (C_ETLDRO.CDFILIAL, C_ETLDRO.CDEMPRESA, V_ANO, 
                   V_MES, C_ETLDRO.NMPAIS, C_ETLDRO.SGESTADO,  
                   C_ETLDRO.NMMUNICIPIO, C_VENDAS.LOJA,V_DTVENDA, 
                   C_VENDAS.VRITEMLANCROP, C_VENDAS.VRIMPITLANCROP, (ROUND(V_FATMEDICAO + V_FATNOTAFISCAL + V_FATBRUTO_FORSALE,2)), 
                   (ROUND(ABS(V_IMPOSTO_FAT_MED) + ABS(V_IMPOSTO_FAT_NF) + ABS(V_IMPOSTO_FORSALE),2)), C_VENDAS.QTITEMLANCROP, C_ETLDRO.NRMETROFILIAL, 
                   C_VENDAS.NRPESLANCROP, C_VENDAS.NRCUPLANCROP, C_VENDAS.VRACRITLANCROP, 
                   C_VENDAS.VRDESITLANCROP, C_VENDAS.VRCUSTSEGPROD 
                  ); 
            V_CONT := V_CONT + 1; 
            IF V_CONT >= 100 THEN 
               V_CONT := V_ZERO; 
               COMMIT; 
            END IF; 
         END LOOP; 
 
          
         FOR C_TIPORECE IN 
            (SELECT F.CDFILIAL, F.NMFILIAL, V.DTENTRVENDA,LJ.NMLOJA,CX.NMCAIXA, TP.NMTIPORECE RECEBIMENTO, SUM (MC.VRMOVIVEND) TOTAL 
             FROM MOVCAIXA MC, VENDA V, CAIXA CX, LOJA LJ, TIPORECE TP, FILIAL F 
             WHERE MC.CDFILIAL     =  C_ETLDRO.CDFILIAL 
               AND MC.CDFILIAL     =  F.CDFILIAL 
               AND MC.CDFILIAL     =  V.CDFILIAL 
               AND V.CDFILIAL      =  F.CDFILIAL 
               AND MC.NRSEQVENDA   =  V.NRSEQVENDA 
               AND MC.CDCAIXA      =  V.CDCAIXA 
               AND CX.CDCAIXA      =  MC.CDCAIXA 
               AND CX.CDFILIAL     =  MC.CDFILIAL 
               AND CX.CDLOJA       =  LJ.CDLOJA 
               AND LJ.CDFILIAL     =  V.CDFILIAL 
               AND LJ.CDFILIAL     =  F.CDFILIAL 
               AND LJ.CDLOJA       =  V.CDLOJA 
               AND V.DTENTRVENDA   BETWEEN V_DTINI AND V_DTFIM 
               AND TP.CDTIPORECE =  MC.CDTIPORECE 
             GROUP BY F.CDFILIAL, F.NMFILIAL, V.DTENTRVENDA, LJ.NMLOJA, CX.NMCAIXA, TP.NMTIPORECE 
            ) 
         LOOP 
 
             
            V_DIA := TO_CHAR(C_TIPORECE.DTENTRVENDA, 'D'); 
            CASE V_DIA 
            WHEN  '1' THEN V_DTRECEBE := (TO_CHAR(C_TIPORECE.DTENTRVENDA,'DD/MM/YYYY') || '-DOM'); 
            WHEN  '2' THEN V_DTRECEBE := (TO_CHAR(C_TIPORECE.DTENTRVENDA,'DD/MM/YYYY') || '-SEG'); 
            WHEN  '3' THEN V_DTRECEBE := (TO_CHAR(C_TIPORECE.DTENTRVENDA,'DD/MM/YYYY') || '-TER'); 
            WHEN  '4' THEN V_DTRECEBE := (TO_CHAR(C_TIPORECE.DTENTRVENDA,'DD/MM/YYYY') || '-QUA'); 
            WHEN  '5' THEN V_DTRECEBE := (TO_CHAR(C_TIPORECE.DTENTRVENDA,'DD/MM/YYYY') || '-QUI'); 
            WHEN  '6' THEN V_DTRECEBE := (TO_CHAR(C_TIPORECE.DTENTRVENDA,'DD/MM/YYYY') || '-SEX'); 
            WHEN  '7' THEN V_DTRECEBE := (TO_CHAR(C_TIPORECE.DTENTRVENDA,'DD/MM/YYYY') || '-SAB'); 
            END CASE; 
 
             
            INSERT INTO DM_DRFRECEBE 
               (CDEMPRESA, NMEMPRESA ,CDANOBI, 
                CDMESBI, CDFILIAL, NMFILIAL, 
                NMTIPORECEB, DSDTRECEB, NMLOJA, 
                NMCAIXA, VRMOVIVEND) 
            VALUES 
               (C_ETLDRO.CDEMPRESA, C_ETLDRO.NMEMPRESA, V_ANO, 
                V_MES, C_TIPORECE.CDFILIAL, C_TIPORECE.NMFILIAL, 
                C_TIPORECE.RECEBIMENTO, V_DTRECEBE, C_TIPORECE.NMLOJA, 
                C_TIPORECE.NMCAIXA, C_TIPORECE.TOTAL); 
            V_CONT := V_CONT + 1; 
            IF V_CONT >= 100 THEN 
               V_CONT := V_ZERO; 
               COMMIT; 
            END IF; 
         END LOOP; 
 
          
         FOR C_PRODUTO IN 
            (SELECT DISTINCT IT.CDITEMLANCROP AS CDPRODUTO, P.NMPRODUTO 
               FROM LANCROPFILIAL L, ITLANCROPFILIAL IT, PRODUTO P 
              WHERE L.CDFILIAL = C_ETLDRO.CDFILIAL 
                AND L.IDTPLANCROP IN (S_I1, S_PV,S_R2) 
                AND L.CDFILIAL = IT.CDFILIAL 
                AND L.NRROPFILIAL = IT.NRROPFILIAL 
                AND L.NRLANCROP = IT.NRLANCROP 
                AND P.CDPRODUTO = IT.CDITEMLANCROP 
                AND L.DTLANCROP BETWEEN V_DTINI AND V_DTFIM 
            ) 
         LOOP 
             
            SELECT 
               NVL(SUM(DECODE(L.IDTPLANCROP,s_I1,IT.QTITEMLANCROP,0)),0) AS QTTOTESTOQUE, 
               NVL(SUM(DECODE(L.IDTPLANCROP,s_R2,IT.QTITEMLANCROP,0)),0) AS QTCONSUMOCONS, 
               NVL(SUM(DECODE(L.IDTPLANCROP,s_I1,IT.VRITEMLANCROP,0)),0) AS VRTOTESTOQUE, 
               NVL(SUM(DECODE(L.IDTPLANCROP,s_FF,IT.QTITEMLANCROP,0)),0) AS QTVENDA, 
               NVL(SUM(DECODE(L.IDTPLANCROP,s_FF,IT.VRITEMLANCROP,0)),0) AS VRVENDA, 
               NVL(SUM(DECODE(L.IDTPLANCROP,s_FF,IT.VRIMPITLANCROP,0)),0) AS VRIMPOSTO 
               INTO V_QTTOTESTOQUE, V_QTCONSUMOCONS, V_VRTOTESTOQUE, 
                    V_QTVENDA, V_VRVENDA, V_VRIMPOSTOPROD 
               FROM ITLANCROPFILIAL IT, LANCROPFILIAL L 
               WHERE L.CDFILIAL = C_ETLDRO.CDFILIAL 
                 AND L.NRLANCROP = IT.NRLANCROP 
                 AND L.CDFILIAL = IT.CDFILIAL 
                 AND L.IDTPLANCROP IN (s_I1,s_FF,s_R2) 
                 AND L.DTLANCROP  BETWEEN V_DTINI AND V_DTFIM 
                 AND IT.CDITEMLANCROP = C_PRODUTO.CDPRODUTO; 
 
             
            INSERT INTO DM_DRFPRODUTO 
                  (CDANOBI, CDMESBI, CDFILIAL, 
                   NMFILIAL, CDEMPRESA, NMEMPRESA, 
                   CDPRODUTO, NMPRODUTO, NMPAIS, 
                   SGESTADO, NMMUNICIPIO, QTESTOQUE, 
                   QTCONSUMOEST, QTVENDA, VRVENDA, 
                   VRIMPOSTO 
                   ) 
            VALUES 
                  (V_ANO, V_MES, C_ETLDRO.CDFILIAL, 
                   C_ETLDRO.NMFILIAL, C_ETLDRO.CDEMPRESA, C_ETLDRO.NMEMPRESA, 
                   C_PRODUTO.CDPRODUTO, C_PRODUTO.NMPRODUTO, C_ETLDRO.NMPAIS, 
                   C_ETLDRO.SGESTADO, C_ETLDRO.NMMUNICIPIO, V_QTTOTESTOQUE, 
                   V_QTCONSUMOCONS, V_QTVENDA, V_VRVENDA, 
                   V_VRIMPOSTOPROD 
                   ); 
         END LOOP; 
      END LOOP;  
      COMMIT; 
      V_DTINI := ADD_MONTHS(V_DTINI,1); 
   END LOOP;   
END;
/

DECLARE V_IDIOMA VARCHAR2(03) NULL;
BEGIN
   SELECT NVL(MAX(DSINSTALLANGUAGE),'POR')
   INTO V_IDIOMA
   FROM PARAMGERAL;

   IF (V_IDIOMA = 'POR' OR V_IDIOMA = 'ING') THEN
      --FATOS--
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPOSINIETLDRO'   		,'Inv. Inicial'						,'Invent�rio Inicial de Estoque'							,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPOSFIMETLDRO'   		,'Inv. Final'						,'Invent�rio Final de Estoque'								,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRENTRETLDRO'   			,'Entradas por Compras'				,'Vr.Entradas por Compras'									,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRSAIDETLDRO'   			,'Sa�das'							,'Vr.Sa�das por NFs'										,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRBAIXAETLDRO'   		,'Retiradas'		    			,'Vr.Total de Retiradas'									,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRAJUETLDRO'   		    ,'Ajustes'		    				,'Vr. de ajustes'											,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRIMPETLDRO'   		    ,'Implanta��o'		    			,'Vr. Implanta��o'											,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPUETLDRO'   		    ,'Vr. de PU Sobre Retiradas'		,'Vr.PU:(Retiradas de Serv. Princ./Efetivos Serv. Princ.)'	,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPUENTRADA'   		    ,'Vr. de PU Sobre Compras' 			,'Vr.PU:(Consumo Compras/Efetivos Serv. Princ.)'			,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'NRDIAESTETLDRO'   		,'Dias de Estoque'					,'(Inv.Final/(Retiradas/dias realizados))'					,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPERCMPMED'   			,'Perc. Sobre Compras - MED'		,'(ENTRADAS*100/FATURAMENTO MEDI��O)'						,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPERCCMPNF'   			,'Perc. Sobre Compras - NFs'		,'(ENTRADAS*100/FATURAMENTO NFs)'							,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'QTEFETSERVPRI'   		,'Quant. de Efetivos Serv. Princ.'	,'Quant. de Efetivos Serv. Principais'						,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'QTEFETSERVEQU'   		,'Quant. de Efetivos Serv. Equiv.'	,'Quant. de Efetivos Serv. N�o Principais'					,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRO'			, 'VRFATMEDETLDRO'   		,'Faturamento por Medi��o'			,'Faturamento por Medi��o'									,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATLIQMEDDRO'   		,'Faturamento L�q. por Medi��o'		,'Faturamento L�quido por Medi��o'							,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRIMPFATMEDDRO'   		,'Imposto por Medi��o'				,'Imposto por Medi��o'										,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRNFFATETLDRO'   		,'Faturamento por NFs'				,'Faturamento por NFs'										,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATLIQNFDRO'   		,'Faturamento L�q. por NFs'			,'Faturamento L�quido por NFs'								,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRIMPFATNFDRO'   		,'Imposto por NFs'					,'Imoposto por NFs'											,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRCONSETLDRO'   			,'Consumo'							,'Retiradas de Estoque+Retiradas do Planejamento'			,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRENTRADANF'   			,'Entradas por Compras'				,'Entradas por NFs'											,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRSAIDANF'      			,'Sa�das'							,'Sa�das'													,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRDESPETLDRO'   			,'Despesas'							,'Depesas(MANUAIS+NF+PAG)'									,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRMAOBETLDRO'   			,'M�o de Obra'						,'M�o de Obra'												,'DRO');
      CRIA_FATOS('ETLDRO'			, 'QTTOTEFSERPRDRO'     ,'Efetivos Serv. Princ.'			,'Efetivos dos Servi�os Principais'							,'DRO');
      CRIA_FATOS('ETLDRO'			, 'QTTOTEFEQPRIDRO'   	,'Efetivos Serv. Equiv.'			,'Efetivos dos Servi�os N�o Principais' 					,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATBRUETLDRO'   		,'Faturamento Bruto'				,'Faturamento Bruto (MEDI��O+NFS)' 							,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATLIQETLDRO'   		,'Faturamento L�q. Total'			,'Faturamento L�quido Total (MEDI��O+NFS)' 					,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRIMPOETLDRO'   			,'Imposto Total'					,'Imposto Total (MEDI��O+NFS)' 								,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRCREDIMPOS'   			,'Cr�d. de Imp.'					,'Cr�dito de Imposto sobre Entradas' 						,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRDEPRECBENS'   			,'Vr. Deprec.'						,'Valor da deprecia��o de bens' 							,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRINVESTIMENTO'   		,'Vr. Invest.'						,'Valor de Investimentos' 									,'DRO');	
      CRIA_FATOS('ETLDRO'			, 'VRFATBRUORCADO'   		,'Faturamento Bruto Or�ado'			,'FATURAMENTO BRUTO OR�ADO (GOP)' 							,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATLIQORCADO'   		,'Faturamento L�q. Or�ado'			,'FATURAMENTO l�QUIDO OR�ADO (GOP)' 						,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRIMPOSTORCADO'   		,'Imposto Or�ado'					,'IMPOSTO OR�ADO (GOP)' 									,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRCONSUMORCADO'   		,'Consumo Or�ado'					,'CONSUMO OR�ADO (GOP)' 									,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRDESPESORCADO'   		,'Despesas Diversas Or�adas'		,'DESPESAS DIVERSAS OR�ADO (GOP)' 							,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRMAOBRAORCADO'   		,'M�o de Obra Or�ada'				,'M�O DE OBRA OR�ADO (GOP)' 								,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRCREDIMPORCADO'   		,'Cr�d. de Imp. or�ado'				,'Cr�dito de Imposto Or�ado (GOP)' 							,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRDEPRECBENSORC'   		,'Vr. Deprec. Or�ado'				,'Valor da Deprecia��o Or�ado (GOP)' 						,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRINVESTORCADO'   		,'Vr. Invest. Or�ado'				,'Valor de Investimentos Or�ado (GOP)' 						,'DRO');	
      CRIA_FATOS('DM_DRF'			, 'VRFATBRUTOVE'   			,'Faturamento FOS'					,'Faturamento FOS' 											,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRIMPOSTOVE'   			,'Imposto FOS'						,'Imposto FOS' 												,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRFATBRUTONF'   			,'Faturamento Total'				,'Faturamento Total(MEDIA��O+NFS+FOS)'						,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRIMPOSTONF'   			,'Imposto Total'					,'Imposto Total(MEDIA��O+NFS+FOS)'							,'DRF');
      CRIA_FATOS('DM_DRF'			, 'NRVENDAS'   				,'Quant. Produtos Vendidos'			,'Quantidade de Produtos Vendidos'							,'DRF');
      CRIA_FATOS('DM_DRF'			, 'QTMETRAGEM'   			,'Metragem da Filial'				,'Metragem da filial'										,'DRF');
      CRIA_FATOS('DM_DRF'			, 'NRPESSOAS'   			,'N�mero de Pessoas'				,'N�mero de Pessoas da Venda'								,'DRF');
      CRIA_FATOS('DM_DRF'			, 'NRCUPONS'   				,'N�mero de Cupons'					,'N�mero de Cupons'											,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRACRESCIMO'   			,'Acr�scimos da Venda'				,'Acr�scimos da Venda'										,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRDESCONTO'   			,'Descontos da Venda'				,'Descontos da venda'										,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRCMV'   				,'CMV'								,'Custo Mercadoria Vendida' 								,'DRF');	
      CRIA_FATOS('DM_DRFRECEBE'	, 'VRMOVIVEND'   			,'Valor Movimentado'				,'Valor Movimentado'		 				  ,'DRF � Recebimento');
      CRIA_FATOS('DM_DRFPRODUTO'	, 'QTESTOQUE'   			,'Quant. Tot. em Estoque'			,'QUANTIDADE TOTAL EM ESTOQUE'		 				  ,'DRF � Produto');
      CRIA_FATOS('DM_DRFPRODUTO'	, 'QTCONSUMOEST'   			,'Quant. Consumida - EST'			,'QUANTIDADE CONSUMIDA - EST'		 				  ,'DRF � Produto');
      CRIA_FATOS('DM_DRFPRODUTO'	, 'QTVENDA'   				,'Quant. Venda - FOS'				,'QUANTIDADE DE VENDA - FOS'		 				  ,'DRF � Produto');
      CRIA_FATOS('DM_DRFPRODUTO'	, 'QTIMPOSTO'   			,'Quant. Imposto'					,'IMPOSTOS POR PRODUTO - FOS'		 				  ,'DRF � Produto');	
      --FATOS DRILL--
      CRIA_FATOS_DRILL('ETLDROMAOBRADRILL'	,'VRITEMLANCROP'	,'Vr. da M�o de Obra'	,'Valor da M�o de obra');
      CRIA_FATOS_DRILL('ETLDRODESPDRILL'		,'VRITEMLANCROP'	,'Vr. da Despesa'		,'Valor da Despesa');
      --DIMENS�O--
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDFILIAL'				,'Filial'				   	,'FILIAL'			,'CDFILIAL'			,'NMFILIAL'			,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDAREAGERE'			,'Regional'				   	,'AREAGERE'			,'CDAREAGERE'		,'NMAREAGERE'		,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDSUPERVISOR'			,'Supervisor'		      	,'SUPERVISOR'		,'CDSUPERVISOR'		,'NMSUPERVISOR'		,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDGOPERAC'			,'Gerente Operacional'  	,'GOPERAC'			,'CDGOPERAC'		,'NMGOPERAC'		,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDEMPRESA'			,'Empresa'				   	,'EMPRESA'			,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDSEGMER'				,'Segmento de Mercado'		,'SEGMERCADO'		,'CDSEGMER'			,'DSSEGMER'			,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'DSGRUPPROD'			,'Grupo de Produtos'		,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'DSSUBGRPROD'			,'Sub Grupo de Produtos'   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDANOBI'				,'Ano'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDMESBI'				,'M�s'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('ETLDRO'			,'CDFILIAL'				,'Filial'				   	,'FILIAL'			,'CDFILIAL'			,'NMFILIAL'			,NULL);
      CRIA_DIME('ETLDRO'			,'CDAREAGERE'			,'Regional'				   	,'AREAGERE'			,'CDAREAGERE'		,'NMAREAGERE'		,NULL);
      CRIA_DIME('ETLDRO'			,'CDSUPERVISOR'			,'Supervisor'		      	,'SUPERVISOR'		,'CDSUPERVISOR'		,'NMSUPERVISOR'		,NULL);
      CRIA_DIME('ETLDRO'			,'CDGOPERAC'			,'Gerente Operacional'  	,'GOPERAC'			,'CDGOPERAC'		,'NMGOPERAC'		,NULL);
      CRIA_DIME('ETLDRO'			,'CDEMPRESA'			,'Empresa'				   	,'EMPRESA'			,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
      CRIA_DIME('ETLDRO'			,'CDSEGMER'				,'Segmento de Mercado'		,'SEGMERCADO'		,'CDSEGMER'			,'DSSEGMER'			,NULL);
      CRIA_DIME('ETLDRO'			,'CDANOBI'				,'Ano'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('ETLDRO'			,'CDMESBI'				,'M�s'					   	,NULL				,NULL				,NULL				,NULL);	
      CRIA_DIME('DM_DRF'			,'CDFILIAL'				,'Filial'				   	,'FILIAL'			,'CDFILIAL'			,'NMFILIAL'			,NULL);
      CRIA_DIME('DM_DRF'			,'CDEMPRESA'			,'Empresa'				   	,'EMPRESA'			,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
      CRIA_DIME('DM_DRF'			,'CDANOBI'				,'Ano'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'CDMESBI'				,'M�s'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'SGESTADO'				,'Estado'					,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'NMMUNICIPIO'			,'Munic�pio'			   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'NMLOJA'				,'Loja'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'DSDTVENDA'			,'Data da Venda'		   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'CDFILIAL'				,'Filial'				   	,'FILIAL'			,'CDFILIAL'			,'NMFILIAL'			,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'CDEMPRESA'			,'Empresa'				   	,'EMPRESA'			,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'CDANOBI'				,'Ano'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'CDMESBI'				,'M�s'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'NMLOJA'				,'Loja'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'NMCAIXA'				,'Caixa'					,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'NMTIPORECEB'			,'Tipo de Recebimento'		,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'DSDTRECEB'			,'Data do Recebimento'		,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'CDFILIAL'				,'Filial'				   	,'FILIAL'			,'CDFILIAL'			,'NMFILIAL'			,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'CDEMPRESA'			,'Empresa'				   	,'EMPRESA'			,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'CDANOBI'				,'Ano'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'CDMESBI'				,'M�s'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'NMPRODUTO'			,'Nome do Produto'			,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'SGESTADO'				,'Estado'					,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'NMMUNICIPIO'			,'Munic�pio'			   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'NMPAIS'				,'Pa�s'			   			,NULL				,NULL				,NULL				,NULL);
  
      --DIMENS�O DRILL--
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDFILIAL'		,'Filial'				,'FILIAL'		,'CDFILIAL'	 ,'NMFILIAL'	,NULL);
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDEMPRESA'	,'Empresa'				,'EMPRESA'		,'CDEMPRESA' ,'NMEMPRESA'	,NULL);
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDAREAGERE'	,'Regional'				,'AREAGERE'		,'CDAREAGERE','NMAREAGERE'	,NULL);    
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDSEGMER'		,'Segmento de Mercado'	,'SEGMERCADO'	,'CDSEGMER'	 ,'DSSEGMER'	,NULL);
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'DSDESPADMFAT'	,'M�o de Obra'			,NULL			,NULL		 ,NULL			,NULL);
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDANOBI'		,'Ano'					,NULL			,NULL		 ,NULL			,NULL);
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDMESBI'		,'M�s'					,NULL			,NULL 		 ,NULL			,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDFILIAL'		,'Filial'				,'FILIAL'		,'CDFILIAL'	 ,'NMFILIAL'	,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDEMPRESA'	,'Empresa'				,'EMPRESA'		,'CDEMPRESA' ,'NMEMPRESA'	,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDAREAGERE'	,'Regional'				,'AREAGERE'		,'CDAREAGERE','NMAREAGERE'	,NULL);    
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDSEGMER'		,'Segmento de Mercado'	,'SEGMERCADO'	,'CDSEGMER'	 ,'DSSEGMER'	,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'NMDESPDIV'	,'Despesa'				,NULL			,NULL		 ,NULL			,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDANOBI'		,'Ano'					,NULL			,NULL		 ,NULL			,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDMESBI'		,'M�s'					,NULL			,NULL 		 ,NULL			,NULL);
 
   ELSE

      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPOSINIETLDRO'   		,'Inv. Inicial'						,'Inventario Inicial de Stock'							,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPOSFIMETLDRO'   		,'Inv. Final'						,'Inventario Final de Stock'								,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRENTRETLDRO'   			,'Entradas por Compras'				,'Vr.Entradas por Compras'									,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRSAIDETLDRO'   			,'Salidas'							,'Vr.Salidas por Fs'										,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRBAIXAETLDRO'   		,'Retiradas'		    			,'Vr.Total de Retiradas'									,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRAJUETLDRO'   		    ,'Ajustes'		    				,'Vr. de ajustes'											,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRIMPETLDRO'   		    ,'Implantaci�n'		    			,'Vr. Implantaci�n'											,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPUETLDRO'   		    ,'Vr. de PU Sobre Retiradas'		,'Vr.PU:(Retiradas de Serv. Princ./Vtas.Rac. Serv. Princ.)'	,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPUENTRADA'   		    ,'Vr. de PU Sobre Compras' 			,'Vr.PU:(Consumo Compras/Efetivos Serv. Princ.)'			,'DRO Dados Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'NRDIAESTETLDRO'   		,'D�as de Stock'					,'(Inv.Final/(Retiradas/d�as realizados))'					,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPERCMPMED'   			,'Porc. Sobre Compras - MED'		,'(ENTRADAS*100/FACTURACI�N MEDICI�N)'						,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'VRPERCCMPNF'   			,'Porc. Sobre Compras - Fs'		,'(ENTRADAS*100/FACTURACI�N Fs)'							,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'QTEFETSERVPRI'   		,'Cantidad de Vtas. Rac. Serv. Princ.'	,'Cantidad de Vtas. Rac. Serv. Principales'						,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRODADOSAGRU', 'QTEFETSERVEQU'   		,'Cantidad de Vtas. Rac. Serv. Equiv.'	,'Cantidad de Vtas. Rac. Serv. No Principales'							,'DRO Datos Agrupados');
      CRIA_FATOS('ETLDRO'			, 'VRFATMEDETLDRO'   		,'Facturaci�n por Medici�n'			,'Facturaci�n por Medici�n'									,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRVOLUMENEGOCIOETLDRO','Vol. de Neg�cio','Vol. de Neg�cio','DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATLIQMEDDRO'   		,'Facturaci�n Net. por Medici�n'		,'Facturaci�n Neta por Medici�n'							,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRIMPFATMEDDRO'   		,'Impuesto por Medici�n'				,'Impuesto por Medici�n'										,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRNFFATETLDRO'   		,'Facturaci�n por Fs'				,'Facturaci�n por Fs'										,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATLIQNFDRO'   		,'Facturaci�n Net. por Fs'			,'Facturaci�n Neta por Fs'								,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRIMPFATNFDRO'   		,'Impuesto por Fs'					,'Impuesto por Fs'											,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRCONSETLDRO'   			,'Consumo'							,'Retiradas de Stock+Retiradas de Planificaci�n'			,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRENTRADANF'   			,'Entradas por Compras'				,'Entradas por Fs'											,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRSAIDANF'   			,'Salidas'							,'Salidas'													,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRDESPETLDRO'   			,'Gastos'							,'Gastos(MANUALES+Fs+PAG)'									,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRMAOBETLDRO'   			,'Mano de Obra'						,'Mano de Obra'												,'DRO');
      CRIA_FATOS('ETLDRO'			, 'QTTOTEFSERPRDRO'   		,'Vtas.Rac. Serv. Princ.'			,'Vtas.Rac. de Servicios Principales'							,'DRO');
      CRIA_FATOS('ETLDRO'			, 'QTTOTEFEQPRIDRO'   		,'Vtas.Rac. Serv. Equiv.'			,'Vtas.Rac. de Servicios No Principales' 					,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATBRUETLDRO'   		,'Facturaci�n Bruta'				,'Facturaci�n Bruta (MEDICI�N+FS)' 							,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATLIQETLDRO'   		,'Facturaci�n Net. Total'			,'Facturaci�n Neta Total (MEDICI�N+FS)' 					,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRIMPOETLDRO'   			,'Impuesto Total'					,'Impuesto Total (MEDICI�N+FS)' 								,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATBRUORCADO'   			,'Facturaci�n Bruta Presupuestada'		,'Facturaci�n Bruta Presupuestada (GOP)' 								,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRFATLIQORCADO'   			,'Facturaci�n Neta Presupuestada'		,'Facturaci�n Neta Presupuestada (GOP)' 								,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRIMPOSTORCADO'   			,'Impuesto Presupuestado'				,'Impuesto Presupuestado (GOP)' 								,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRCONSUMORCADO'   			,'Consumo Presupuestado'				,'Consumo Presupuestado (GOP)' 								,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRDESPESORCADO'   			,'Gastos Diversos Presupuestado'		,'Gastos Diversos Presupuestado (GOP)' 								,'DRO');
      CRIA_FATOS('ETLDRO'			, 'VRMAOBRAORCADO'   			,'Mano de Obra Presupuestada'			,'Mano de Obra Presupuestada (GOP)' 								,'DRO');
      CRIA_FATOS('DM_DRF'			, 'VRFATBRUTOVE'   			,'Facturaci�n FOS'					,'Facturaci�n FOS' 											,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRIMPOSTOVE'   			,'Impuesto FOS'						,'Impuesto FOS' 												,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRFATBRUTONF'   			,'Facturaci�n Total'				,'Facturaci�n Total(MEDIACI�N+FS+FOS)'						,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRIMPOSTONF'   			,'Impuesto Total'					,'Impuesto Total(MEDIACI�N+FS+FOS)'							,'DRF');
      CRIA_FATOS('DM_DRF'			, 'NRVENDAS'   				,'Cant. Productos Vendidos'			,'Cantidad de Productos Vendidos'							,'DRF');
      CRIA_FATOS('DM_DRF'			, 'QTMETRAGEM'   			,'Metraje del Site'				,'Metraje del Site'										,'DRF');
      CRIA_FATOS('DM_DRF'			, 'NRPESSOAS'   			,'N�mero de Personas'				,'N�mero de Personas'								,'DRF');
      CRIA_FATOS('DM_DRF'			, 'NRCUPONS'   				,'N�mero de Tickets'					,'N�mero de Tickets'											,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRACRESCIMO'   			,'Aumentos de Venta'				,'Aumentos de Venta'										,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRDESCONTO'   			,'Descuentos de la Venta'				,'Descuentos de la Venta'										,'DRF');
      CRIA_FATOS('DM_DRF'			, 'VRCMV'   				,'CMV'								,'Costo Mercanc�a Vendida' 								,'DRF');
      CRIA_FATOS('DM_DRFRECEBE'	, 'VRMOVIVEND'   			,'Valor Movido'				,'Valor Movido'		 				  ,'DRF � Recibimiento');
      CRIA_FATOS('DM_DRFPRODUTO'	, 'QTESTOQUE'   			,'Cant. Tot. en stock'				,'Cantidad Total en Stock'		 				  ,'DRF � Producto');
      CRIA_FATOS('DM_DRFPRODUTO'	, 'QTCONSUMOEST'   			,'Cant. Consumida - STO'			,'Cantidad consumida - STO'		 				  ,'DRF � Producto');
      CRIA_FATOS('DM_DRFPRODUTO'	, 'QTVENDA'   				,'Cant. venta - FOS'				,'Cantidad de venta - FOS'		 				  ,'DRF � Producto');
      CRIA_FATOS('DM_DRFPRODUTO'	, 'QTIMPOSTO'   			,'Cant. Impuesto'					,'Impuestos por producto - FOS'		 			  ,'DRF � Producto');

      --FATOS DRILL--
      CRIA_FATOS_DRILL('ETLDROMAOBRADRILL'	,'VRITEMLANCROP'	,'Vr. de Mano de Obra'	,'Valor de Mano de obra');
      CRIA_FATOS_DRILL('ETLDRODESPDRILL'		,'VRITEMLANCROP'	,'Vr. de Gasto'		,'Valor del Gasto');

      --DIMENS�O--
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDFILIAL'				,'Site'				   	,'FILIAL'			,'CDFILIAL'			,'NMFILIAL'			,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDAREAGERE'			,'Regional'				   	,'AREAGERE'			,'CDAREAGERE'		,'NMAREAGERE'		,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDSUPERVISOR'			,'Supervisor'		      	,'SUPERVISOR'		,'CDSUPERVISOR'		,'NMSUPERVISOR'		,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDGOPERAC'			,'Gerente Operacional'  	,'GOPERAC'			,'CDGOPERAC'		,'NMGOPERAC'		,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDEMPRESA'			,'Empresa'				   	,'EMPRESA'			,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDSEGMER'				,'Segmento de Mercado'		,'SEGMERCADO'		,'CDSEGMER'			,'DSSEGMER'			,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'DSGRUPPROD'			,'Grupo de Productos'		,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'DSSUBGRPROD'			,'Sub Grupo de Productos'   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDANOBI'				,'A�o'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('ETLDRODADOSAGRU'	,'CDMESBI'				,'Mes'					   	,NULL				,NULL				,NULL				,NULL);	
      CRIA_DIME('ETLDRO'			,'CDFILIAL'				,'Site'				   	,'FILIAL'			,'CDFILIAL'			,'NMFILIAL'			,NULL);
      CRIA_DIME('ETLDRO'			,'CDAREAGERE'			,'Regional'				   	,'AREAGERE'			,'CDAREAGERE'		,'NMAREAGERE'		,NULL);
      CRIA_DIME('ETLDRO'			,'CDSUPERVISOR'			,'Supervisor'		      	,'SUPERVISOR'		,'CDSUPERVISOR'		,'NMSUPERVISOR'		,NULL);
      CRIA_DIME('ETLDRO'			,'CDGOPERAC'			,'Gerente Operacional'  	,'GOPERAC'			,'CDGOPERAC'		,'NMGOPERAC'		,NULL);
      CRIA_DIME('ETLDRO'			,'CDEMPRESA'			,'Empresa'				   	,'EMPRESA'			,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
      CRIA_DIME('ETLDRO'			,'CDSEGMER'				,'Segmento de Mercado'		,'SEGMERCADO'		,'CDSEGMER'			,'DSSEGMER'			,NULL);
      CRIA_DIME('ETLDRO'			,'CDANOBI'				,'A�o'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('ETLDRO'			,'CDMESBI'				,'Mes'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'CDFILIAL'				,'Site'				   	,'FILIAL'			,'CDFILIAL'			,'NMFILIAL'			,NULL);
      CRIA_DIME('DM_DRF'			,'CDEMPRESA'			,'Empresa'				   	,'EMPRESA'			,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
      CRIA_DIME('DM_DRF'			,'CDANOBI'				,'A�o'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'CDMESBI'				,'Mes'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'SGESTADO'				,'Estado'					,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'NMMUNICIPIO'			,'Munic�pio'			   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'NMLOJA'				,'Tienda'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRF'			,'DSDTVENDA'			,'Fecha de la Venta'		   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'CDFILIAL'				,'Site'				   	,'FILIAL'			,'CDFILIAL'			,'NMFILIAL'			,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'CDEMPRESA'			,'Empresa'				   	,'EMPRESA'			,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'CDANOBI'				,'A�o'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'CDMESBI'				,'Mes'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'NMLOJA'				,'Tienda'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'NMCAIXA'				,'Caja'					,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'NMTIPORECEB'			,'Tipo de Recibimiento'		,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFRECEBE'	,'DSDTRECEB'			,'Fecha del Recibimiento'		,NULL				,NULL				,NULL				,NULL);  
      CRIA_DIME('DM_DRFPRODUTO'	,'CDFILIAL'				,'site'				   		,'FILIAL'			,'CDFILIAL'			,'NMFILIAL'			,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'CDEMPRESA'			,'Empresa'				   	,'EMPRESA'			,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'CDANOBI'				,'A�o'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'CDMESBI'				,'Mes'					   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'NMPRODUTO'			,'Nombre de Producto'		,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'SGESTADO'				,'Estado'					,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'NMMUNICIPIO'			,'Municipio'			   	,NULL				,NULL				,NULL				,NULL);
      CRIA_DIME('DM_DRFPRODUTO'	,'NMPAIS'				,'Pa�s'			   			,NULL				,NULL				,NULL				,NULL);
  
      --DIMENS�O DRILL--
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDFILIAL'		,'Site'				,'FILIAL'		,'CDFILIAL'	 ,'NMFILIAL'	,NULL);
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDEMPRESA'	,'Empresa'				,'EMPRESA'		,'CDEMPRESA' ,'NMEMPRESA'	,NULL);
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDAREAGERE'	,'Regional'				,'AREAGERE'		,'CDAREAGERE','NMAREAGERE'	,NULL);    
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDSEGMER'		,'Segmento de Mercado'	,'SEGMERCADO'	,'CDSEGMER'	 ,'DSSEGMER'	,NULL);
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'DSDESPADMFAT'	,'Mano de Obra'			,NULL			,NULL		 ,NULL			,NULL);
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDANOBI'		,'A�o'					,NULL			,NULL		 ,NULL			,NULL);
      CRIA_DIME_DRILL('ETLDROMAOBRADRILL'	,'CDMESBI'		,'Mes'					,NULL			,NULL 		 ,NULL			,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDFILIAL'		,'Site'				,'FILIAL'		,'CDFILIAL'	 ,'NMFILIAL'	,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDEMPRESA'	,'Empresa'				,'EMPRESA'		,'CDEMPRESA' ,'NMEMPRESA'	,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDAREAGERE'	,'Regional'				,'AREAGERE'		,'CDAREAGERE','NMAREAGERE'	,NULL);    
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDSEGMER'		,'Segmento de Mercado'	,'SEGMERCADO'	,'CDSEGMER'	 ,'DSSEGMER'	,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'NMDESPDIV'	,'Gasto'				,NULL			,NULL		 ,NULL			,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDANOBI'		,'A�o'					,NULL			,NULL		 ,NULL			,NULL);
      CRIA_DIME_DRILL('ETLDRODESPDRILL'	,'CDMESBI'		,'Mes'					,NULL			,NULL 		 ,NULL			,NULL);
   END IF;
END;
/

ALTER PROCEDURE APURAC_RESOPERFILI COMPILE
/
-- VERSAO --
BEGIN ATUVEROBJ('ETL_DRO','6.45.007'); END;
/
