CREATE OR REPLACE PROCEDURE ETL_PLADIA (P_DTINI  IN DATE,
                         P_DTFINA IN DATE)
IS
   V_COUNTER       NUMBER       NOT NULL := 0;
   V_COUNTERII     NUMBER       NOT NULL := 0;
   V_COUNTSERVICO  NUMBER       NOT NULL := 0;
   V_DTFIM         DATE;
   V_DTINI         DATE;
   V_DTINIANT      DATE;
   V_DATAFINAL     DATE;
   V_NRTIPOCUSTO1  NUMBER;
   V_NRTIPOCUSTO2  NUMBER;
   V_NRTIPOCUSTO3  NUMBER;
   V_VRCUSTPADR    FLOAT NOT NULL := 0;
   V_VRPRECVENDA   FLOAT NOT NULL := 0;
   V_ZERO          FLOAT := 0;
   V_CDSEQUENCIAL  VARCHAR2(20);
   V_CDCLIENTE     VARCHAR2(21) := NULL;
   V_MES           VARCHAR2(10);
   V_ANO           VARCHAR2(10);
   V_ANOANT        VARCHAR2(04);
   V_MESANT        VARCHAR2(02);
   V_BIM           VARCHAR2(10);
   V_TRI           VARCHAR2(10);
   V_SEM           VARCHAR2(10);
   V_DATACUSTOBI   VARCHAR2(01);
   V_VRCUSTPLANTOTAL1   FLOAT;
   V_VRCUSTPLANTOTAL2   FLOAT;
   V_VRCUSTPLANTOTAL3   FLOAT;
   V_VRPERCPLANTOTAL1   FLOAT;
   V_VRPERCPLANTOTAL2   FLOAT;
   V_VRPERCPLANTOTAL3   FLOAT;
   V_VRPERCREALTOTAL1   FLOAT;
   V_VRPERCREALTOTAL2   FLOAT;
   V_VRPERCREALTOTAL3	FLOAT;
   V_VRCUSTREALTOTAL1   FLOAT;
   V_VRCUSTREALTOTAL2   FLOAT;
   V_VRCUSTREALTOTAL3   FLOAT;
   V_VRTOTALCUSTOSTD    FLOAT;
   V_VRTOTFCPLAN1       FLOAT;
   V_VRTOTFCPLAN2       FLOAT;
   V_VRTOTFCPLAN3       FLOAT;
   V_VRTOTFCREAL1       FLOAT;
   V_VRTOTFCREAL2       FLOAT;
   V_VRTOTFCREAL3       FLOAT;
   V_VRTOTVENDSERV      FLOAT;
   V_VRTOTCUSTPADREST   FLOAT;
   V_VRTOTCUSTPADREFE   FLOAT;
   V_NMTIPOCUSTO1  TIPOCUSTO.NMTIPOCUSTO%TYPE;
   V_NMTIPOCUSTO2  TIPOCUSTO.NMTIPOCUSTO%TYPE;
   V_NMTIPOCUSTO3  TIPOCUSTO.NMTIPOCUSTO%TYPE;
   V_DTULTCOMEFE        DATE;
BEGIN
   V_MES  :=  TO_CHAR(P_DTINI,'MM');
   V_ANO  :=  TO_CHAR(P_DTINI,'YYYY');
   V_NMTIPOCUSTO1 := ' ';
   V_NMTIPOCUSTO2 := ' ';
   V_NMTIPOCUSTO3 := ' ';
  SELECT IDDATACUSTOBI INTO V_DATACUSTOBI
   FROM PARAMGERAL;
-----------------------------INICIO DA ROTINA DE DELE��O DE DADOS------------------------------------
   FOR C_DEL_SRV IN (SELECT ROWID REG_DEL
                       FROM DM_PLADIARIO
                       WHERE (CDANOBI||CDMESBI >= V_ANO||V_MES)
          )LOOP
        V_COUNTER := V_COUNTER +1;
       DELETE
        FROM DM_PLADIARIO
        WHERE C_DEL_SRV.REG_DEL = ROWID;
		IF V_COUNTER >= 1000 THEN
			COMMIT;
			V_COUNTER := 0;
        END IF;
   END LOOP;
	COMMIT;
  V_COUNTER := 0;
----------------------------------------FIM DA DELE��O DOS DADOS--------------------------------------
   V_DTINI := ADD_MONTHS(LAST_DAY(P_DTINI) + 1, -1);
   FOR C_NRTPCUS IN --> Seleciona 3 tipos de custo parametrizados
      (SELECT ROWNUM AS LINHA, NRTIPOCUSTO, NMTIPOCUSTO
         FROM(SELECT TO_NUMBER(CDTIPOCUSTO) NRTIPOCUSTO, NMTIPOCUSTO
                FROM TIPOCUSTO
               WHERE IDTPCUSTOGSC = 'S'
               ORDER BY NRTIPOCUSTO)
       )
   LOOP
      IF C_NRTPCUS.LINHA    = 1 THEN
         V_NRTIPOCUSTO1    := C_NRTPCUS.NRTIPOCUSTO;
         V_NMTIPOCUSTO1    := C_NRTPCUS.NMTIPOCUSTO;
      ELSIF C_NRTPCUS.LINHA = 2 THEN
         V_NRTIPOCUSTO2    := C_NRTPCUS.NRTIPOCUSTO;
         V_NMTIPOCUSTO2    := C_NRTPCUS.NMTIPOCUSTO;
      ELSIF C_NRTPCUS.LINHA = 3 THEN
         V_NRTIPOCUSTO3    := C_NRTPCUS.NRTIPOCUSTO;
         V_NMTIPOCUSTO3    := C_NRTPCUS.NMTIPOCUSTO;
      END IF;
   END LOOP;
   WHILE (V_DTINI  <=  P_DTFINA) LOOP
      V_DTFIM      :=   LAST_DAY( V_DTINI);
      V_MES        :=   TO_CHAR(V_DTFIM,'MM');
      V_ANO        :=   TO_CHAR(V_DTFIM,'YYYY');
      V_BIM        :=   TO_CHAR(TRUNC((V_MES - 1) / 2) + 1);
      V_TRI        :=   TO_CHAR(TRUNC((V_MES - 1) / 3) + 1);
      V_SEM        :=   TO_CHAR(TRUNC((V_MES - 1) / 6) + 1);
      FOR C_ETL IN
         (SELECT
                 FL.CDFILIAL        ,FL.NMFILIAL   ,FL.CDAREAGERE , NVL(FL.DTINICIALBI, TO_DATE('01/01/2023','DD/MM/YYYY')) DTINICIALBI,
                 FL.CDSUPERVISOR    ,FL.CDGOPERAC  ,FL.CDEMPRESA  ,EM.NMEMPRESA,
                 FL.CDSEGMER        ,P.DTPROCESSA  ,P.IDCOMCUSPERC, CDPLANEJADORA, CDGUNIDADE
           FROM
                 FILIAL FL, PARAMFILIAL P, EMPRESA EM
           WHERE P.CDFILIAL   = FL.CDFILIAL
             AND EM.CDEMPRESA = FL.CDEMPRESA
             AND FL.IDFUNCAOFILI IS NULL
            -- AND FL.DTINICIALBI  IS NOT NULL
         )
      LOOP
      -------------------------- INICIO VERIFICA CUSTO NA PARAMPLANEJA ---------------------------------
         IF V_NRTIPOCUSTO1 is null  THEN
             BEGIN
                 SELECT MAX(CDTIPOCUSTOPLA) INTO  V_NRTIPOCUSTO1
                 FROM PARAMPLANEJA
                 WHERE CDFILIAL = C_ETL.CDFILIAL;
             EXCEPTION
             WHEN OTHERS THEN
                 V_NRTIPOCUSTO1 := null ;
             END;
             BEGIN
                 SELECT CDTIPOCUSTOREA INTO  V_NRTIPOCUSTO2
                 FROM PARAMPLANEJA
                 WHERE CDFILIAL = C_ETL.CDFILIAL;
             EXCEPTION
             WHEN OTHERS THEN
                 V_NRTIPOCUSTO2 := null ;
             END;
         END IF;
       -------------------------- FIM VERIFICA CUSTO NA PARAMPLANEJA ---------------------------------
         IF ADD_MONTHS(LAST_DAY(C_ETL.DTINICIALBI) + 1, -1) <= V_DTINI THEN
            NOVO_CODIGO('CONSPLAN'||C_ETL.CDFILIAL, V_CDSEQUENCIAL,1);
            V_CDSEQUENCIAL := SUBSTR(V_CDSEQUENCIAL,11,10);
            --IF (TRUNC(C_ETL.DTPROCESSA - 1) <= TRUNC(V_DTFIM)) THEN  --> CONSIDERA UM DIA ANTES DA DATA DE PROCESSAMENTO
            --   V_DATAFINAL := TRUNC(C_ETL.DTPROCESSA - 1);
            --ELSE
               V_DATAFINAL := TRUNC(V_DTFIM);
           -- END IF;
            /*PREENCHE OS DADOS NECESS�RIOS PARA CUSTO PLANEJADO - TABELA CONSPLAN*/
            CONSUMO_PLANEJADO_PLA(
                                  C_ETL.CDFILIAL,
                                  'T',
                                  V_DTINI,
                                  V_DATAFINAL,
                                  'T',
                                  'CFP',
                                  'N',
                                   0,
                                  'N',
                                   V_CDSEQUENCIAL,
                                  '0',
                                  'zzzzzzzzzz',
                                  '', --> Nenhum operador ser� necess�rio aqui
                                  '_'||TO_CHAR(V_DTINI, 'YYYYMMDD')||'_',
                                  '_'||TO_CHAR(V_DATAFINAL, 'YYYYMMDD')||'_'
                                  );
            FOR C_SERVICO IN             /*DADOS EM N�VEL DE SERVI�O*/
               (SELECT SE.CDSERVFILI, SE.NMSERVICO, CA.DTCARDAPIO, SE.CDGRUPSERV,  SE.IDSERVPRINC, IDINDICADOR,
                      SUM(DECODE(C_ETL.IDCOMCUSPERC, 'C', CA.QTCLIESTICAR, CA.QTCOMESTICAR) ) AS QTCOMESTICAR,
                      SUM(DECODE(C_ETL.IDCOMCUSPERC, 'C', CA.QTCLIEFETCAR, CA.QTCOMEFETCAR) ) AS QTCOMEFETCAR
                FROM CARDADIA CA, SERVICO SE
                WHERE CA.CDFILIAL = C_ETL.CDFILIAL
                  AND CA.CDFILIAL = SE.CDFILIAL
                  AND CA.CDSERVFILI = SE.CDSERVFILI
                  AND CA.DTCARDAPIO BETWEEN V_DTINI AND V_DATAFINAL
                  GROUP BY SE.CDSERVFILI, SE.NMSERVICO, CA.DTCARDAPIO, SE.CDGRUPSERV, SE.IDSERVPRINC, IDINDICADOR
                  ORDER BY SE.CDSERVFILI, SE.NMSERVICO, CA.DTCARDAPIO, SE.CDGRUPSERV, SE.IDSERVPRINC
               ) LOOP
               --Verifica Data do �ltimo COMENSAIS EFETIVOS para o Servi�o--
               BEGIN
                  SELECT MAX(DTCARDAPIO) DTULTCOMEFE
                    INTO V_DTULTCOMEFE
                    FROM CARDADIA CA, SERVICO SE
                   WHERE CA.CDFILIAL = C_ETL.CDFILIAL
                     AND CA.CDFILIAL = SE.CDFILIAL
                     AND CA.CDSERVFILI = SE.CDSERVFILI
                     AND QTCOMEFETCAR > 0
                     AND CA.DTCARDAPIO BETWEEN V_DTINI AND V_DATAFINAL
                     AND SE.CDSERVFILI = C_SERVICO.CDSERVFILI
                    GROUP BY SE.CDSERVFILI;
                  EXCEPTION
                     WHEN OTHERS THEN
                        V_DTULTCOMEFE := '';
               END;
                  BEGIN
                     SELECT VRCUSTPADR INTO   V_VRCUSTPADR
                     FROM   CUSTPADR
                     WHERE  CDFILIAL     = C_ETL.CDFILIAL
                       AND  CDSERVFILI   = C_SERVICO.CDSERVFILI
                       AND  DTREFCUSPADR = V_DTINI;
                     EXCEPTION
                        WHEN OTHERS THEN
                           V_VRCUSTPADR := V_ZERO;
                  END;
                  BEGIN
                     SELECT CF.CDCLIENTE INTO   V_CDCLIENTE
                     FROM   CLIENFILIAL CF, CLIENTE B
                     WHERE  CF.CDFILIAL = C_ETL.CDFILIAL
                        AND CF.CDCLIENTE = B.CDCLIENTE
                        AND CF.IDCLIENPRIN = 'S';
                     EXCEPTION
                        WHEN OTHERS THEN
                          V_CDCLIENTE := NULL;
                  END;
                  /*Pre�o de Venda - Vem do �ltimo valor do hist�rico no m�dulo de faturamento*/
                  V_VRPRECVENDA := V_ZERO;
                  IF (V_CDCLIENTE IS NOT NULL) THEN
                      BEGIN
                         SELECT MAX(VRSERVFATHIS) VRPRECOVEND INTO V_VRPRECVENDA
                         FROM HISTSERVFATU
                         WHERE CDFILIAL     = C_ETL.CDFILIAL
                           AND CDSERVFILI   = C_SERVICO.CDSERVFILI
                           AND CDCLIENTE    = V_CDCLIENTE
                           AND DTSRVFATUHIS = (SELECT MAX(DTSRVFATUHIS)
                                                 FROM HISTSERVFATU
                                                WHERE CDFILIAL     = C_ETL.CDFILIAL
                                                  AND CDCLIENTE    = V_CDCLIENTE
                                                  AND CDSERVFILI   = C_SERVICO.CDSERVFILI
                                                  AND TRUNC(DTSRVFATUHIS) <= V_DATAFINAL);
                      EXCEPTION
                         WHEN OTHERS THEN
                           V_VRPRECVENDA := V_ZERO;
                      END;
                  END IF;
                  /*DADOS EM N�VEL DE PRODUTO*/
                  FOR C_PRODUTO IN
                     (
                     SELECT
                         PR.CDFILIAL, PR.CDSERVFILI,
                         SUM(PR.CUSTOPLAN1) AS CUSTOPLAN1,
                         SUM(PR.CUSTOPLAN2) AS CUSTOPLAN2,
                         SUM(PR.CUSTOREAL1) AS CUSTOREAL1,
                         SUM(PR.CUSTOREAL2) AS CUSTOREAL2,
                         SUM(PR.CUSTOREAL3) AS CUSTOREAL3,
                         GPS.CDGRUPSERV,  SE.IDSERVPRINC, PR.DTCARDAPIO
                      FROM
                         FILIAL FI, SERVICO SE, GRUPSERV GPS,
                         (SELECT
                            CDFILIAL, CDSERVFILI, DTCARDAPIO
                          FROM
                            CARDADIA
                          WHERE
                              CDFILIAL = C_ETL.CDFILIAL AND
                             (CDSERVFILI = C_SERVICO.CDSERVFILI) AND
                             (DTCARDAPIO = C_SERVICO.DTCARDAPIO)
                          GROUP BY
                            CDFILIAL, CDSERVFILI, DTCARDAPIO) CD,
                         (SELECT
                            CDFILIAL, CDSERVFILI, DTCARDAPIO,
                            SUM(CUSTOPLAN1) CUSTOPLAN1,
                            SUM(CUSTOPLAN2) CUSTOPLAN2,
                            SUM(CUSTOREAL1) CUSTOREAL1,
                            SUM(CUSTOREAL2) CUSTOREAL2,
                            SUM(CUSTOREAL3) CUSTOREAL3,
                            CDPRODUTO
                         FROM
                           (SELECT
                               CP.CDFILICPLA CDFILIAL, CP.CDSERVCPLA CDSERVFILI, CP.DTCONSPLAN DTCARDAPIO,
                               (CUSTO_PRODUTO(CP.CDFILICPLA, CP.CDPRODCPLA, V_NRTIPOCUSTO1,
                                              DECODE(V_DATACUSTOBI, '0', CD.DTREFECUSTMES, CP.DTCONSPLAN),
                                              SYSDATE) * CP.QTCONSPLAN) AS CUSTOPLAN1,
                               (CUSTO_PRODUTO(CP.CDFILICPLA, CP.CDPRODCPLA, V_NRTIPOCUSTO2,
                                              DECODE(V_DATACUSTOBI, '0', CD.DTREFECUSTMES, CP.DTCONSPLAN),
                                              SYSDATE) * CP.QTCONSPLAN) AS CUSTOPLAN2,
                               0 AS CUSTOREAL1, 0 AS CUSTOREAL2, 0 AS CUSTOREAL3, CP.CDPRODCPLA CDPRODUTO
                            FROM
                               CONSPLAN CP, PARAMGERAL PG,
                               (SELECT CD.CDFILIAL, CD.CDSERVFILI, CD.DTMESCARD, CD.DTCARDAPIO, MAX(CM.DTREFECUSTMES) AS DTREFECUSTMES
                                FROM CARDADIA CD, CARDAMES CM
                                WHERE (CD.CDFILIAL = C_ETL.CDFILIAL)
                                  AND (CD.CDSERVFILI = C_SERVICO.CDSERVFILI)
                                  AND (CD.DTCARDAPIO = C_SERVICO.DTCARDAPIO )
                                  AND (CD.CDFILIAL   = CM.CDFILIAL(+)     )
                                  AND (CD.CDSERVFILI = CM.CDSERVFILI(+)   )
                                  AND (CD.DTMESCARD  = CM.DTMESCARDAPIO(+))
                                GROUP BY CD.CDFILIAL, CD.CDSERVFILI, CD.DTMESCARD, CD.DTCARDAPIO) CD
                            WHERE
                               (CP.CDFILICPLA   = C_ETL.CDFILIAL)   AND
                               (CP.NRCONSPLAN   = V_CDSEQUENCIAL)   AND
                               (CD.CDFILIAL     = CP.CDFILICPLA)    AND
                               (CD.CDSERVFILI   = CP.CDSERVCPLA) AND
                               (PG.CDPARGERAL   = '0001')        AND
                               (CD.DTMESCARD    = ADD_MONTHS(LAST_DAY(CP.DTCONSPLAN) + 1, -1))
                            UNION ALL
                            SELECT
                               CD.CDFILIAL, CD.CDSERVFILI, CD.DTCARDAPIO,
                               DECODE(V_NRTIPOCUSTO1, NULL, 0, ROUND(CNE.VRPLANNESTO * (RNE.PERATENESTO/100) * (CD.QTCOMESTICAR/H.TOTCOMEN), 5)) AS CUSTOPLAN1,
                               DECODE(V_NRTIPOCUSTO2, NULL, 0, ROUND(CNE.VRPLANNESTO * (RNE.PERATENESTO/100) * (CD.QTCOMESTICAR/H.TOTCOMEN), 5)) AS CUSTOPLAN2,
         --                      DECODE(V_NRTIPOCUSTO3, NULL, 0, ROUND(CNE.VRPLANNESTO * (RNE.PERATENESTO/100) * (CD.QTCOMESTICAR/H.TOTCOMEN), 5)) AS CUSTOPLAN3,
                               0 AS CUSTOREAL1, 0 AS CUSTOREAL2, 0 AS CUSTOREAL3, CNE.CDPRODUTO AS CDPRODUTO
                            FROM
                               (SELECT
                                   DTMESCARD, CDSERVFILI, DTCARDAPIO,
                                   SUM(QTCOMESTICAR) AS TOTCOMEN
                                FROM
                                   CARDADIA
                                WHERE
                                   (CDFILIAL = C_ETL.CDFILIAL) AND
                                   (CDSERVFILI = C_SERVICO.CDSERVFILI) AND
                                   (DTCARDAPIO = C_SERVICO.DTCARDAPIO)
                                group by DTMESCARD, CDSERVFILI, DTCARDAPIO
                               ) H,
                               CARDADIA  CD, RATENESTO RNE, CUSTNESTO CNE,  DATA      DT
                            WHERE
                               (DT.DTDATA  = C_SERVICO.DTCARDAPIO)                            AND
                               (TO_CHAR(DT.DTDATA, 'MMYYYY') = TO_CHAR(CNE.DTCUSTNESTO, 'MMYYYY')) AND
                               (CNE.CDFILIAL     = C_ETL.CDFILIAL)                                AND
                               (RNE.CDSERVFILI = C_SERVICO.CDSERVFILI)                            AND
                               (CNE.CDPRODUTO    = RNE.CDPRODUTO)                                  AND
                               (CD.CDFILIAL      = RNE.CDFILIAL)                                   AND
                               (CD.CDSERVFILI    = RNE.CDSERVFILI)                                 AND
                               (CD.DTCARDAPIO    = DT.DTDATA)                                      AND
                               (H.DTMESCARD      = CD.DTMESCARD)                                   AND
                               (H.CDSERVFILI     = RNE.CDSERVFILI)                                 AND
                               (NOT H.TOTCOMEN IS NULL AND H.TOTCOMEN <> 0)
                            UNION ALL
                            SELECT
                               C.CDFILIAL, C.CDSERVFILI, C.DTCARDAPIO, 0 CUSTOPLAN1, 0 CUSTOPLAN2, 0 CUSTOPLAN3,
                               DECODE(V_NRTIPOCUSTO1, NULL, 0, (C.QTRETIRADA * CUSTO_PRODUTO(C.CDFILIAL, C.CDPRODUTO, V_NRTIPOCUSTO1, C.DTCARDAPIO, SYSDATE))) AS CUSTOREAL1,
                               DECODE(V_NRTIPOCUSTO2, NULL, 0, (C.QTRETIRADA * CUSTO_PRODUTO(C.CDFILIAL, C.CDPRODUTO, V_NRTIPOCUSTO2, C.DTCARDAPIO, SYSDATE))) AS CUSTOREAL2,
  --                             DECODE(V_NRTIPOCUSTO1, NULL, 0, (C.QTRETIRADA * CUSTO_PRODUTO(C.CDFILIAL, C.CDPRODUTO, V_NRTIPOCUSTO3, C.DTCARDAPIO, SYSDATE))) AS CUSTOREAL3,
                               C.CDPRODUTO
                            FROM
                               (SELECT
                                  CA.CDFILIAL, CA.CDSERVFILI, CA.DTCARDAPIO,
                                  SUM(IR.QTRETIRADA * PRA.VRFATOCONV) AS QTRETIRADA, PRB.CDPRODUTO
                               FROM
                                  CARDADIA CA, PRODUTO  PRA, PRODUTO  PRB, ITEMRETI IR
                               WHERE
                                  (PRB.CDPRODUTO = PRA.CDPRODESTO)                  AND
                                  (PRA.CDPRODUTO = IR.CDPRODUTO)                    AND
                                  (CA.CDFILIAL   = IR.CDFILIAL)                     AND
                                  (CA.CDFILIAL   = C_ETL.CDFILIAL )                 AND
                                  (CA.DTCARDAPIO = C_SERVICO.DTCARDAPIO)  AND
                                  (CA.CDSERVFILI = C_SERVICO.CDSERVFILI)            AND
                                   (CA.NRCARDAPIO = IR.NRCARDAPIO)
                               group by CA.CDFILIAL, CA.CDSERVFILI, CA.DTCARDAPIO, PRB.CDPRODUTO
                                                 ) C
                            UNION ALL
                            SELECT
                               RNE.CDFILIAL, RNE.CDSERVFILI, DT.DTDATA      AS DTCARDAPIO,
                               0 AS CUSTOPLAN1, 0 AS CUSTOPLAN2, 0 AS CUSTOPLAN3,
                               DECODE(V_NRTIPOCUSTO1, NULL, 0, ROUND(CNE.VRREALNESTO * (RNE.PERATENESTO/100) * (CA.QTCOMEFETCAR/TC.TOTCOMEN), 5)) AS CUSTOREAL1,
                               DECODE(V_NRTIPOCUSTO2, NULL, 0, ROUND(CNE.VRREALNESTO * (RNE.PERATENESTO/100) * (CA.QTCOMEFETCAR/TC.TOTCOMEN), 5)) AS CUSTOREAL2,
 --                              DECODE(V_NRTIPOCUSTO3, NULL, 0, ROUND(CNE.VRREALNESTO * (RNE.PERATENESTO/100) * (CA.QTCOMEFETCAR/TC.TOTCOMEN), 5)) AS CUSTOREAL3,
                               CNE.CDPRODUTO AS CDPRODUTO
                            FROM
                               (SELECT
                                   DTMESCARD, CDSERVFILI,
                                   DTCARDAPIO, SUM(QTCOMEFETCAR) AS TOTCOMEN
                                FROM
                                   CARDADIA
                                WHERE
                                   (CDFILIAL = C_ETL.CDFILIAL)                           AND
                                   (CDSERVFILI = C_SERVICO.CDSERVFILI)                   AND
                                   (DTCARDAPIO = C_SERVICO.DTCARDAPIO)
                                GROUP BY
                                   DTMESCARD, CDSERVFILI, DTCARDAPIO 
                                ) TC,
                               CARDADIA  CA, RATENESTO RNE, CUSTNESTO CNE, DATA      DT
                            WHERE
                               (DT.DTDATA = C_SERVICO.DTCARDAPIO)                       AND
                               (CNE.CDFILIAL    = C_ETL.CDFILIAL)                                 AND
                               (TO_CHAR(DT.DTDATA, 'MMYYYY') = TO_CHAR(CNE.DTCUSTNESTO, 'MMYYYY')) AND
                               (NOT CNE.VRREALNESTO IS NULL)                                       AND
                               (RNE.CDFILIAL    = C_ETL.CDFILIAL)                                 AND
                               (RNE.CDSERVFILI = C_SERVICO.CDSERVFILI)                            AND
                               (RNE.CDPRODUTO   = CNE.CDPRODUTO)                                   AND
                               (CA.CDFILIAL     = C_ETL.CDFILIAL)                                 AND
                               (CA.CDSERVFILI   = RNE.CDSERVFILI)                                  AND
                               (CA.DTCARDAPIO  = C_SERVICO.DTCARDAPIO)                    AND
                               (TC.DTMESCARD    = CA.DTMESCARD)                                    AND
                               (TC.CDSERVFILI   = CA.CDSERVFILI)                                   AND
                               (NOT TC.TOTCOMEN IS NULL AND TC.TOTCOMEN <> 0)
                            UNION ALL
                            SELECT
                               RNE.CDFILIAL, RNE.CDSERVFILI, DT.DTDATA       AS DTCARDAPIO,
                               0 AS CUSTOPLAN1, 0 AS CUSTOPLAN2, 0 AS CUSTOPLAN3,
                               DECODE(V_NRTIPOCUSTO1, NULL, 0, ROUND(TCN.VRTOTAITEM * (RNE.PERATENESTO/100) *
                                     (CA.QTCOMEFETCAR/TC.TOTCOMEN), 5)) AS CUSTOREAL1,
                               DECODE(V_NRTIPOCUSTO2, NULL, 0, ROUND(TCN.VRTOTAITEM * (RNE.PERATENESTO/100) *
                                     (CA.QTCOMEFETCAR/TC.TOTCOMEN), 5)) AS CUSTOREAL2,
--                              DECODE(V_NRTIPOCUSTO3, NULL, 0, ROUND(TCN.VRTOTAITEM * (RNE.PERATENESTO/100) *
--                                      (CA.QTCOMEFETCAR/TC.TOTCOMEN), 5)) AS CUSTOREAL3, 
                               TCN.CDPRODUTO CDPRODUTO
                            FROM
                               DATA        DT,  RATENESTO   RNE, CARDADIA    CA,
                               (SELECT
                                   DTMESCARD, CDSERVFILI, DTCARDAPIO,
                                   SUM(QTCOMEFETCAR) AS TOTCOMEN
                                FROM  CARDADIA
                                WHERE
                                   (CDFILIAL = C_ETL.CDFILIAL)                           AND
                                   (CDSERVFILI = C_SERVICO.CDSERVFILI)                   AND
                                   (DTCARDAPIO  = C_SERVICO.DTCARDAPIO)
                                GROUP BY DTMESCARD, CDSERVFILI, DTCARDAPIO
                                ) TC,
                                (SELECT
                                    TO_CHAR(NF.DTENTRSAID, 'MMYYYY') AS DTMESNF,
                                    IP.CDPRODUTO,
                                    SUM(IP.VRTOTAITEM) AS VRTOTAITEM
                                 FROM
                                    NOTAFISCAL  NF, ITEMPRODUTO IP
                                 WHERE
                                   (IP.CDFILIAL     = NF.CDFILIAL)                       AND
                                   (IP.NRLANCTONF   = NF.NRLANCTONF)                     AND
                                   (NF.CDFILIRECE   = C_ETL.CDFILIAL)                   AND
                                   (NF.IDENTRSAIDOP = 'E')                               AND
                                   (NF.DTENTRSAID = C_SERVICO.DTCARDAPIO)
                                 GROUP BY
                                    TO_CHAR(NF.DTENTRSAID, 'MMYYYY'),
                                    IP.CDPRODUTO
                               ) TCN
                            WHERE
                               (DT.DTDATA  = C_SERVICO.DTCARDAPIO)    AND
                               (TO_CHAR(DT.DTDATA, 'MMYYYY') = TCN.DTMESNF)   AND
                               (RNE.CDFILIAL    = C_ETL.CDFILIAL)             AND
                               (RNE.CDSERVFILI = C_SERVICO.CDSERVFILI)        AND
                               (CA.CDFILIAL     = C_ETL.CDFILIAL)             AND
                               (CA.CDSERVFILI   = RNE.CDSERVFILI)             AND
                               (CA.DTCARDAPIO   = DT.DTDATA)                  AND
                               (CA.DTCARDAPIO   = DT.DTDATA)                  AND
                               (TCN.CDPRODUTO   = RNE.CDPRODUTO)              AND
                               (TC.DTMESCARD    = CA.DTMESCARD)               AND
                               (TC.CDSERVFILI   = CA.CDSERVFILI)              AND
                               (NOT TC.TOTCOMEN IS NULL AND TC.TOTCOMEN <> 0) AND
                               (NOT EXISTS (SELECT CDFILIAL
                                            FROM CUSTNESTO
                                            WHERE
                                               CDFILIAL    = C_ETL.CDFILIAL    AND
                                               DTCUSTNESTO = DT.DTDATA          AND
                                               CDPRODUTO   = RNE.CDPRODUTO      AND
                                               NOT VRREALNESTO IS NULL))
                               )
                          GROUP BY
                            CDFILIAL,
                            CDSERVFILI,
                            DTCARDAPIO,
                            CDPRODUTO ) PR
                      WHERE
                         FI.CDFILIAL   = PR.CDFILIAL   AND
                         SE.CDFILIAL   = PR.CDFILIAL   AND
                         SE.CDSERVFILI = PR.CDSERVFILI AND
                         CD.CDFILIAL   = PR.CDFILIAL   AND
                         CD.CDSERVFILI = PR.CDSERVFILI AND
                         CD.DTCARDAPIO = PR.DTCARDAPIO AND
                         SE.CDGRUPSERV = GPS.CDGRUPSERV(+)
                      GROUP BY
                         PR.CDFILIAL,
                         PR.CDSERVFILI,
                         GPS.CDGRUPSERV,
                         PR.DTCARDAPIO,
                         SE.IDSERVPRINC
                      ) LOOP
                        --------------------------FATOS CALCULADOS----------------------------
                           BEGIN
                              IF C_SERVICO.QTCOMESTICAR > 0 THEN
								 /* PER CAPITA PLANEJADO TOTAL - (Custo Planejado/Comensais Estimados) */
                                 V_VRPERCPLANTOTAL1 := (C_PRODUTO.CUSTOPLAN1 / C_SERVICO.QTCOMESTICAR);
                                 V_VRPERCPLANTOTAL2 := (C_PRODUTO.CUSTOPLAN2 / C_SERVICO.QTCOMESTICAR);
                                 /* CUSTO PLANEJADO TOTAL - (Custo Planejado*Comensais Estimados) */
                                 V_VRCUSTPLANTOTAL1 := (C_PRODUTO.CUSTOPLAN1 * C_SERVICO.QTCOMESTICAR);
                                 V_VRCUSTPLANTOTAL2 := (C_PRODUTO.CUSTOPLAN2 * C_SERVICO.QTCOMESTICAR);
                                 IF V_VRPRECVENDA > 0 THEN
                                    /* PERCENTUAL FC PLAN - (Custo Planejado/Pre�o de venda*Comensais Estimados) */
                                    V_VRTOTFCPLAN1 := (C_PRODUTO.CUSTOPLAN1 / (V_VRPRECVENDA * C_SERVICO.QTCOMESTICAR));
                                    V_VRTOTFCPLAN2 := (C_PRODUTO.CUSTOPLAN2 / (V_VRPRECVENDA * C_SERVICO.QTCOMESTICAR));
                                 ELSE
                                   V_VRTOTFCPLAN1  := V_ZERO;
                                   V_VRTOTFCPLAN2  := V_ZERO;
                                   V_VRTOTFCPLAN3  := V_ZERO;
                                 END IF;
                              ELSE
                                 V_VRPERCPLANTOTAL1 := V_ZERO;
								         V_VRPERCPLANTOTAL2 := V_ZERO;
								         V_VRPERCPLANTOTAL3 := V_ZERO;
								         V_VRCUSTPLANTOTAL1 := V_ZERO;
                                 V_VRCUSTPLANTOTAL2 := V_ZERO;
                                 V_VRCUSTPLANTOTAL3 := V_ZERO;
                                 V_VRTOTFCPLAN1     := V_ZERO;
                                 V_VRTOTFCPLAN2     := V_ZERO;
                                 V_VRTOTFCPLAN3     := V_ZERO;
                              END IF;
                            IF (C_SERVICO.QTCOMEFETCAR > 0)  THEN
                               /*PER CAPITA REALIZADO TOTAL - (Custo Real/Efetivos)*/
                               V_VRPERCREALTOTAL1 := (C_PRODUTO.CUSTOREAL1 / C_SERVICO.QTCOMEFETCAR);
                               V_VRPERCREALTOTAL2 := (C_PRODUTO.CUSTOREAL2 / C_SERVICO.QTCOMEFETCAR);
                               V_VRPERCREALTOTAL3 := (C_PRODUTO.CUSTOREAL3 / C_SERVICO.QTCOMEFETCAR);
							          /* CUSTO REALIZADO TOTAL - (Custo Real*Efetivos)*/
                               V_VRCUSTREALTOTAL1 := (C_PRODUTO.CUSTOREAL1 * C_SERVICO.QTCOMEFETCAR);
                               V_VRCUSTREALTOTAL2 := (C_PRODUTO.CUSTOREAL2 * C_SERVICO.QTCOMEFETCAR);
                               V_VRCUSTREALTOTAL3 := (C_PRODUTO.CUSTOREAL3 * C_SERVICO.QTCOMEFETCAR);
                               IF V_VRPRECVENDA > 0 THEN
                               /* PERCENTUAL FC STD - (Custo Padr�o*efetivos/Pre�o de Venda*Efetivos)*/
                               V_VRTOTALCUSTOSTD := ((V_VRCUSTPADR * C_SERVICO.QTCOMEFETCAR) /
                                                    (V_VRPRECVENDA * C_SERVICO.QTCOMEFETCAR ));
                                /* PERCENTUAL FC REAL - (Custo Real/Pre�o de venda*Efetivos)*/
                                V_VRTOTFCREAL1 := (C_PRODUTO.CUSTOREAL1 / (V_VRPRECVENDA * C_SERVICO.QTCOMEFETCAR));
                                V_VRTOTFCREAL2 := (C_PRODUTO.CUSTOREAL2 / (V_VRPRECVENDA * C_SERVICO.QTCOMEFETCAR));
                                V_VRTOTFCREAL3 := (C_PRODUTO.CUSTOREAL3 / (V_VRPRECVENDA * C_SERVICO.QTCOMEFETCAR));
                             ELSE
                               V_VRTOTALCUSTOSTD := V_ZERO;
                               V_VRTOTFCREAL1    := V_ZERO;
                               V_VRTOTFCREAL2    := V_ZERO;
                               V_VRTOTFCREAL3    := V_ZERO;
                            END IF;
                          ELSE
                             V_VRPERCREALTOTAL1 := V_ZERO;
                             V_VRPERCREALTOTAL2 := V_ZERO;
                             V_VRPERCREALTOTAL3 := V_ZERO;
                             V_VRCUSTREALTOTAL1 := V_ZERO;
                             V_VRCUSTREALTOTAL2 := V_ZERO;
                             V_VRCUSTREALTOTAL3 := V_ZERO;
                             V_VRTOTALCUSTOSTD  := V_ZERO;
                             V_VRTOTFCREAL1     := V_ZERO;
                             V_VRTOTFCREAL2     := V_ZERO;
                             V_VRTOTFCREAL3     := V_ZERO;
                         END IF;
                        /* TOTAL DE VENDA POR SERVI�O - (Pre�o de Venda*Efetivos)*/
                           V_VRTOTVENDSERV := (V_VRPRECVENDA * C_SERVICO.QTCOMEFETCAR);
                        /* CUSTO PADRAO ESTIMADO - (Custo Padr�o*Comensais Estimados)*/
                        V_VRTOTCUSTPADREST := V_VRCUSTPADR * C_SERVICO.QTCOMESTICAR;
                        /* CUSTO PADRAO EFETIVO - (Custo Padr�o*Efetivos)*/
                        V_VRTOTCUSTPADREFE := V_VRCUSTPADR * C_SERVICO.QTCOMEFETCAR;
                        END;
                  INSERT INTO DM_PLADIARIO
                     (
                      CDFILIAL   ,NMFILIAL   ,CDAREAGERE ,CDSUPERVISOR,
                      CDGOPERAC  ,CDEMPRESA  ,NMEMPRESA  ,CDSEGMER,
                      CDPLANEJADORA, CDGUNIDADE,
					       CDGRUPSERV,     --> Grupo de Servi�o
					       CDFILISERVFILI, --> Servi�o
					       NMSERVICO,      --> Nome do Servi�o
                 IDINDICADOR,    --> Indica se o servico vai aparecer nos gr�ficos
                 CDANOBI, CDMESBI, DTCARDAPIO,
					       QTCOMESTSERV, --> Comensais Estimados
					       QTCOMEFESERV, --> Efetivos
                 VRCUSPADSERV, --> Custo Padr�o
					       DSDTPROCFILI, --> Data de Processamento
					       DSTPSERV, 	   --> Tipo de servi�o
                 VRCUSVNDSERV, --> Pre�o de Venda(FAI)
					       VRPERTOTCUSTSTD, --> STD:(custo padr�o*efetivos/pre�o de venda*efetivos)
                 VRTOTAVENDASERV, --> Total de pre�o de venda por servi�o(pre�o de venda*efetivos)
					       VRCUSPADEST,  --> Custo Padr�o Estimado(Custo Padr�o*Comensais estimados)
                 VRCUSPADEFE,  --> Custo Padr�o Efetivo(Custo Padr�o*Efetivos)
                      VRCUSPLASERV1		,VRCUSPLASERV2		,VRCUSPLASERV3,   --> Custo planejado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
                      VRCUSREASERV1		,VRCUSREASERV2		,VRCUSREASERV3,   --> Custo realizado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
                      VRPERCPLATOTSER1	,VRPERCPLATOTSER2	,VRPERCPLATOTSER3,--> Per C�pita total planejado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
					       VRPERCREATOTSER1	,VRPERCREATOTSER2	,VRPERCREATOTSER3,--> Per C�pita total realizado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
					       VRCUSPLATOTSER1	,VRCUSPLATOTSER2	,VRCUSPLATOTSER3, --> Total Custo Planejado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
                      VRCUSREATOTSER1	,VRCUSREATOTSER2	,VRCUSREATOTSER3, --> Total Custo Realizado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
                      VRPERFCPLANS1		,VRPERFCPLANS2		,VRPERFCPLANS3,	  --> Percentual FC Planejado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
					       VRPERFCPREALS1		,VRPERFCPREALS2		,VRPERFCPREALS3,  --> Percentual FC Realizado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
					       DSDTULTCOMEFE, --> Data do ultimo lan�amento de efetivos
                      NRFILIALSEMMOV --> Filial sem Movimenta��o Realizada
                     )
                  VALUES
                     (
                     C_ETL.CDFILIAL    ,C_ETL.NMFILIAL   ,C_ETL.CDAREAGERE ,C_ETL.CDSUPERVISOR,
                     C_ETL.CDGOPERAC   ,C_ETL.CDEMPRESA  ,C_ETL.NMEMPRESA  ,C_ETL.CDSEGMER,
                     C_ETL.CDPLANEJADORA, C_ETL.CDGUNIDADE,
                     C_SERVICO.CDGRUPSERV,--> Grupo de Servi�o
					      C_ETL.CDFILIAL||C_SERVICO.CDSERVFILI, --> Servi�o
					      C_SERVICO.NMSERVICO, --> Nome do Servi�o
                C_SERVICO.IDINDICADOR,
					      V_ANO, V_MES,  TO_CHAR(C_PRODUTO.DTCARDAPIO, 'DD/MM/YYYY'),
					      C_SERVICO.QTCOMESTICAR, -->Comensais Estimados
					      C_SERVICO.QTCOMEFETCAR, -->Efetivos
                     V_VRCUSTPADR, 			 -->Custo Padr�o
					      TO_CHAR(C_ETL.DTPROCESSA, 'DD/MM/YYYY'), -->Data de Processamento
                     DECODE(C_SERVICO.IDSERVPRINC,'S', 'Servi�o Principal','Outros Servi�os'),-->Tipo de servi�o
                     V_VRPRECVENDA,      -->Pre�o de Venda(FAI)
					      V_VRTOTALCUSTOSTD,  --> STD:(custo padr�o*efetivos/pre�o de venda*efetivos)
					      V_VRTOTVENDSERV,    --> Total de pre�o de venda por servi�o(pre�o de venda*efetivos)
					      V_VRTOTCUSTPADREST, --> Custo Padr�o Estimado(Custo Padr�o*Comensais estimados)
					      V_VRTOTCUSTPADREFE, --> Custo Padr�o Efetivo(Custo Padr�o*Efetivos)
                     C_PRODUTO.CUSTOPLAN1	,C_PRODUTO.CUSTOPLAN2	, 0, --> Custo planejado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
                     C_PRODUTO.CUSTOREAL1	,C_PRODUTO.CUSTOREAL2	, 0, --> Custo realizado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
                     V_VRPERCPLANTOTAL1   ,V_VRPERCPLANTOTAL2		, 0,   --> Per C�pita total planejado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
					      V_VRPERCREALTOTAL1   ,V_VRPERCREALTOTAL2		, 0,   --> Per C�pita total realizado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
					      V_VRCUSTPLANTOTAL1   ,V_VRCUSTPLANTOTAL2		, 0,   --> Total Custo Planejado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
                     V_VRCUSTREALTOTAL1   ,V_VRCUSTREALTOTAL2		, 0,   --> Total Custo Realizado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
                     V_VRTOTFCPLAN1			,V_VRTOTFCPLAN2			, 0,       --> Percentual FC Planejado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
					      V_VRTOTFCREAL1			,V_VRTOTFCREAL2			, 0,       --> Percentual FC Realizado(Tipo de custo 1�/2�/3� Parametrizado no CVI)
					      TO_CHAR(V_DTULTCOMEFE, 'DD/MM/YYYY'),--> Data do ultimo lan�amento de efetivos
                     DECODE(C_PRODUTO.CUSTOREAL1, 0, 0, 1)--> Filial sem Movimenta��o Realizada
                     );
                  END LOOP; --Fim do loop por produto
            END LOOP;   -- fim do loop por servico
            DELETE FROM CONSPLAN
             WHERE NRCONSPLAN = V_CDSEQUENCIAL;
         END IF;        -- Final da compara��o com data de BI
         COMMIT;        -- Commit para cada Filial
      END LOOP;         -- fim do loop por Filial
      COMMIT;           -- Commit para cada m�s
	  V_DTINI := ADD_MONTHS(V_DTINI,1);
   END LOOP;            -- loop por m�s
END;
/

DECLARE
   V_JOB NUMBER;
   L_JOB_EXISTS NUMBER;
BEGIN
   FOR C_JOBS IN
      (SELECT JOB
       FROM USER_JOBS
       WHERE WHAT LIKE '%ETL_PLADIA%'
   ) LOOP
      DBMS_JOB.REMOVE(C_JOBS.JOB);
   END LOOP;

   SELECT COUNT(*) INTO L_JOB_EXISTS
   FROM USER_SCHEDULER_JOBS
   WHERE JOB_NAME = 'JOB_ETL_PLADIA';

   IF L_JOB_EXISTS = 1 THEN
       DBMS_SCHEDULER.DROP_JOB(JOB_NAME => 'JOB_ETL_PLADIA');
   END IF;

   BEGIN
      DBMS_SCHEDULER.CREATE_JOB (
         JOB_NAME => 'JOB_ETL_PLADIA',
         JOB_TYPE => 'PLSQL_BLOCK',
         JOB_ACTION => 'BEGIN ETL_PLADIA(TRUNC(SYSDATE-90), TRUNC(SYSDATE+120) ); END;',
         START_DATE => SYSDATE,
         REPEAT_INTERVAL => 'FREQ=DAILY;BYHOUR=23;BYMINUTE=30',
         JOB_CLASS => '"DEFAULT_JOB_CLASS"',
         ENABLED => TRUE,
         AUTO_DROP => FALSE,
         COMMENTS => 'JOB PARA PREENCHER A TABELA DM_PLADIARIO');
   END;
   COMMIT;
END;
/

/*
BEGIN
	--FATOS DM_PLADIARIO--
	CRIA_FATOS('DM_PLADIARIO', 'QTCOMESTSERV'   		,'Come.Est.Di�rio'		,'Quantidade de Comensais Estimados'			   	,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'QTCOMEFESERV'   		,'Efetivos Di�rio'		,'Quantidade de Efetivos'					      ,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSPADSERV'   		,'Custo Padr�o Di�rio'		,'Custo Padr�o do Servi�o'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRPERTOTCUSTSTD'		,'VrSTD Di�rio'			,'(Custo Padr�o*Efetivos/Pre�o de Venda*Efetivos)'		,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSPADEST'   	      ,'Padr�o Est.Di�rio'		,'(Custo Padr�o*Come. Est.)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSPADEFE'        	,'Padr�o Efe.Di�rio'		,'(Custo Padr�o*Efetivos)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSPLASERV1'  		,'Custo Plan.1Di�rio'		,'Primeiro Tipo de Custo'						,'Planejamento');
      CRIA_FATOS('DM_PLADIARIO', 'VRCUSPLASERV2'  		,'Custo Plan.2Di�rio'		,'Segundo Tipo de Custo'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSPLASERV3'  		,'Custo Plan.3Di�rio'		,'Terceiro Tipo de Custo'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRPLAMESANT1'  	      ,'Custo Plan.1- M�s Ant.'	,'Primeiro Tipo de Custo'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSREASERV1'  		,'Custo Real.1Di�rio'		,'Primeiro Tipo de Custo'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSREASERV2'  		,'Custo Real.2Di�rio'		,'Segundo Tipo de Custo'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSREASERV3'  		,'Custo Real.3Di�rio'		,'Terceiro Tipo de Custo'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRREALMESANT1'  		,'Custo Real.1 -M�s Ant.'	,'Primeiro Tipo de Custo'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRPERCPLATOTSER1'    	,'PerCap.Plan1 Di�rio'		,'(Custo Plan.1/Come. Est.)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRPERCPLATOTSER2'    	,'PerCap. Plan2 Di�rio'		,'(Custo Plan.2/Come. Est.)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRPERCPLATOTSER3'    	,'PerCap. Plan3 Di�rio'		,'(Custo Plan.3/Come. Est.)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRPERCREATOTSER1'    	,'PerCap. Real1 Di�rio'		,'(Custo Real.1/Efetivos)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRPERCREATOTSER2'    	,'PerCap. Real2 Di�rio'		,'(Custo Real.2/Efetivos)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRPERCREATOTSER3'    	,'PerCap. Real3 Di�rio'		,'(Custo Real.3/Efetivos)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSPLATOTSER1'  		,'Tot. Plan.1 Di�rio'		,'(Custo Plan.1*Come. Est.)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSPLATOTSER2'  		,'Tot. Plan.2 Di�rio'		,'(Custo Plan.2*Come. Est.)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSPLATOTSER3'  		,'Tot. Plan.3 Di�rio'		,'(Custo Plan.3*Come. Est.)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSREATOTSER1'  		,'Tot. Real.1 Di�rio'		,'(Custo Real.1*Efetivos)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSREATOTSER2'  		,'Tot. Real.2 Di�rio'		,'(Custo Real.2*Efetivos)'						,'Planejamento');
	CRIA_FATOS('DM_PLADIARIO', 'VRCUSREATOTSER3'  		,'Tot. Real.3 Di�rio'		,'(Custo Real.3*Efetivos)'						,'Planejamento');
	--DIMENS�ES DM_PLADIARIO--
	CRIA_DIME('DM_PLADIARIO',  'CDFILIAL'			,'Filial'				,'FILIAL'		,'CDFILIAL'			,'NMFILIAL'			,NULL);
	CRIA_DIME('DM_PLADIARIO',  'CDAREAGERE'			,'Regional'				,'AREAGERE'		,'CDAREAGERE'		,'NMAREAGERE'		,NULL);
      CRIA_DIME('DM_PLADIARIO',  'CDREGIAO'			,'Regi�o'				,'REGIAO'		,'CDREGIAO'			,'NMREGIAO'			,NULL);
      CRIA_DIME('DM_PLADIARIO',  'CDSUPERVISOR'			,'Supervisor'		      ,'SUPERVISOR'	,'CDSUPERVISOR'		,'NMSUPERVISOR'		,NULL);
      CRIA_DIME('DM_PLADIARIO',  'CDGOPERAC'			,'Gerente Operacional'        ,'GOPERAC'		,'CDGOPERAC'		,'NMGOPERAC'		,NULL);
	CRIA_DIME('DM_PLADIARIO',  'CDEMPRESA'			,'Empresa'				,'EMPRESA'		,'CDEMPRESA'		,'NMEMPRESA'		,NULL);
	CRIA_DIME('DM_PLADIARIO',  'CDSEGMER'			,'Segmento de Mercado'   	,'SEGMERCADO'	,'CDSEGMER'			,'DSSEGMER'			,NULL);
	CRIA_DIME('DM_PLADIARIO',  'CDGRUPSERV'			,'Grupo de Servi�o'		,'GRUPSERV'		,'CDGRUPSERV'		,'NMGRUPSERV'		,NULL);
	CRIA_DIME('DM_PLADIARIO',  'NMSERVICO'	      	,'Nome Servi�o'		   	,NULL			,NULL				,NULL	            	,NULL);
	CRIA_DIME('DM_PLADIARIO',  'CDANOBI'			,'Ano'				,NULL			,NULL				,NULL				,NULL);
      CRIA_DIME('DM_PLADIARIO',  'CDMESBI'			,'M�s'				,NULL			,NULL				,NULL				,NULL);
      CRIA_DIME('DM_PLADIARIO',  'DTCARDAPIO'			,'DT.Card�pio'     		,NULL			,NULL				,NULL				,NULL);
	CRIA_DIME('DM_PLADIARIO',  'DSDTPROCFILI'			,'Data de Processamento'      ,NULL			,NULL				,NULL				,NULL);
	CRIA_DIME('DM_PLADIARIO',  'DSDTULTCOMEFE'		,'Data do ult. Efetivo'	      ,NULL			,NULL				,NULL				,NULL);
	CRIA_DIME('DM_PLADIARIO',  'DSTPSERV'			,'Tipo de Servi�o'		,NULL			,NULL				,NULL				,NULL);
	COMMIT;                                        
	EXCEPTION
           WHEN OTHERS THEN
              RAISE_APPLICATION_ERROR (-20001,'Falha no cadastro dos �tens de Estrutura do CVI');
END;
/
*/


-- VERSAO --
BEGIN ATUVEROBJ('ETL_PLADIA','6.45.007'); END;
/

