CREATE OR REPLACE PROCEDURE INSERT_PRODFILI_DIA
IS 
   V_CDNVPRODUTO        PRODUTO.CDNVPRODUTO%TYPE;
   V_IDREPLICPRODATIV   PARAMGERAL.IDREPLICPRODATIV%TYPE;
BEGIN
   SELECT COUNT(REGEXP_SUBSTR(CDPICTPROD,'[^.]+', 1, LEVEL)) AS TAMMASCARA
   INTO V_CDNVPRODUTO FROM PARAMGERAL
   CONNECT BY REGEXP_SUBSTR(CDPICTPROD, '[^.]+', 1, LEVEL) IS NOT NULL;

   SELECT DECODE(NVL(IDREPLICPRODATIV,'S'), 'S', 'A', 'I')
   INTO  V_IDREPLICPRODATIV
   FROM PARAMGERAL
   WHERE CDPARGERAL = '0001';

   FOR C_PROD IN (SELECT CDPRODUTO
                    FROM PRODUTO
                   WHERE DTULTATUPROD > TO_DATE(SYSDATE)
                     AND CDNVPRODUTO = V_CDNVPRODUTO) LOOP

      INSERT INTO PRODFILI
      (CDFILIAL, CDPRODUTO, IDCNTRESTOQ, IDUTCTRLLOTE, IDPRODATIV, DTULTATUPRFIL)
      (SELECT F.CDFILIAL, C_PROD.CDPRODUTO, P.IDCTRLESTQ, P.IDUTILLOTE, V_IDREPLICPRODATIV, SYSDATE
         FROM FILIAL F, PARAMFILIAL P
        WHERE F.CDFILIAL = P.CDFILIAL
          AND NVL(F.IDCNTRRESC,'N') = 'N'
          AND NOT EXISTS (SELECT CDFILIAL
                            FROM PRODFILI
                           WHERE PRODFILI.CDFILIAL  = F.CDFILIAL
                             AND PRODFILI.CDPRODUTO = C_PROD.CDPRODUTO));

   END LOOP;
   COMMIT;
END;
/


