CREATE OR REPLACE PROCEDURE EXTRACT_BI_APT_PRODUTO(P_DTINI IN DATE, P_DTFINA IN DATE)
IS
V_COUNTER NUMBER;

BEGIN


  FOR C_DATA IN (SELECT TO_CHAR(DTMES,'DD/MM/YYYY') DIA, 
                         TO_CHAR(LAST_DAY(DTMES),'DD/MM/YYYY') ULTIMO_DIA, 
                         TO_CHAR(DTMES,'YYYYMM') YYYY_MM,
                         TO_CHAR(DTMES,'MM') CDMES,
                         TO_CHAR(DTMES,'MON/YYYY') MON_YYYY,
                         TO_CHAR(DTMES,'YYYY') CDANO
                    FROM DATA
                   WHERE DTDATA BETWEEN P_DTINI AND P_DTFINA
                   GROUP BY DTMES
                   ORDER BY DTMES)LOOP
      
      FOR C_INSERT_SRV IN (SELECT ROWID REG_DEL, DM_RAST_PRODUTO_PLANEJADO.*
                             FROM DM_RAST_PRODUTO_PLANEJADO
                            WHERE  CDANOBI||CDMESBI = C_DATA.YYYY_MM)LOOP
                            
            V_COUNTER := V_COUNTER +1;
            INSERT INTO DW_RATREABILIDADE_PRODUTO (DTPOSICAO, CDFILCENTPME, NMFILCENTPME, CDTIPOCARD, NMTIPOCARD, CDFILIAL, NMFILIAL, CDEMPRESA, NMEMPRESA, CDSERVFILI, NMSERVICO, IDSERVPRINC, DSMESCARD, CDPRODUTO, NMPRODUTO, CDSEGMERCADO, NMSEGMERCADO, CDAREAGERE, NMAREAGERE, CDGOPERAC, NMGOPERAC, CDSUPERVISOR, NMSUPERVISOR, CDPLANEJADORA, NMPLANEJADORA, CDGUNIDADE, NMGUNIDADE, VRCUST_PLAN1, VRCUST_PLAN2, VRCUST_PLAN3, QTPLANEJADA, QTSOLICITADA, VRCUST_ULT_COMPRA, VRCUST_ESTOQUE, VR_ENTRADAS_NF, QT_ENTRADAS, VR_ENTRADAS_NF_NAO_OK, QT_ENTRADAS_NAO_OK, VR_SAIDAS, QT_SAIDAS, VR_DEVOLUCOES, QT_DEVOLUCOES, VR_RETIRADAS, QT_RETIRADAS, QT_ESTOQUE_INICIAL, VR_ESTOQUE_INICIAL, QT_ESTOQUE_FINAL, VR_ESTOQUE_FINAL, CDANOBI, CDMESBI, CDMESBI_MMYYYY, DSMESBI_MMYYYY, DSBIMESTRE, DSTRIMESTRE, DSQUADIMESTRE, DSSEMESTRE)
                SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') DTPOSICAO, CDFILCENTPME, NMFILCENTPME, CDTIPOCARD, NMTIPOCARD, CDFILIAL, NMFILIAL, CDEMPRESA, NMEMPRESA, CDSERVFILI, NMSERVICO, IDSERVPRINC, DSMESCARD, CDPRODUTO, NMPRODUTO, CDSEGMERCADO, NMSEGMERCADO, CDAREAGERE, NMAREAGERE, CDGOPERAC, NMGOPERAC, CDSUPERVISOR, NMSUPERVISOR, CDPLANEJADORA, NMPLANEJADORA, CDGUNIDADE, NMGUNIDADE, VRCUST_PLAN1, VRCUST_PLAN2, VRCUST_PLAN3, QTPLANEJADA, QTSOLICITADA, VRCUST_ULT_COMPRA, VRCUST_ESTOQUE, VR_ENTRADAS_NF, QT_ENTRADAS, VR_ENTRADAS_NF_NAO_OK, QT_ENTRADAS_NAO_OK, VR_SAIDAS, QT_SAIDAS, VR_DEVOLUCOES, QT_DEVOLUCOES, VR_RETIRADAS, QT_RETIRADAS, QT_ESTOQUE_INICIAL, VR_ESTOQUE_INICIAL, QT_ESTOQUE_FINAL, VR_ESTOQUE_FINAL, CDANOBI, CDMESBI, CDMESBI_MMYYYY, DSMESBI_MMYYYY, DSBIMESTRE, DSTRIMESTRE, DSQUADIMESTRE, DSSEMESTRE 
                     FROM DM_RAST_PRODUTO_PLANEJADO
                    WHERE C_INSERT_SRV.REG_DEL = ROWID;
      
            IF V_COUNTER >= 2000 THEN
               COMMIT;
               V_COUNTER := 0;
            END IF;
         END LOOP;
         COMMIT;
         V_COUNTER := 0;
    END LOOP;
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('EXTRACT_BI_APT_PRODUTO','6.10.xxx'); END;
/