TRUNCATE TABLE CUSTOSUP
/
BEGIN
  FOR C_VALIDADE IN
    (SELECT
      ITEMCOLE.CDREGIAO,
      PRODUTO.CDPRODESTO,
      MAX(DTINIVALITM) AS MAXDATA
    FROM
      ITEMCOLE,
      PRODUTO
    WHERE
      ITEMCOLE.CDFILIAL = '0003'                   AND
      ITEMCOLE.IDITMLISPREC = 'S' AND
      ITEMCOLE.CDPRODUTO = PRODUTO.CDPRODUTO
    GROUP BY
      ITEMCOLE.CDREGIAO,
      PRODUTO.CDPRODESTO)
  LOOP
    FOR C_ITEMCOLE IN
      (SELECT
        ITEMCOLE.CDREGIAO,
        PRODUTO.CDPRODESTO,
        ITEMCOLE.DTINIVALITM,
        MIN(ITEMCOLE.VRPRECUNIITM/PRODUTO.VRFATOCONV) AS VRPRECUNIITM
      FROM
        PRODUTO,
        ITEMCOLE
      WHERE
        ITEMCOLE.IDITMLISPREC = 'S'                   AND
        ITEMCOLE.CDFILIAL     = '0003'                AND
        ITEMCOLE.DTINIVALITM  = C_VALIDADE.MAXDATA    AND
        ITEMCOLE.CDPRODUTO    = PRODUTO.CDPRODUTO     AND
        PRODUTO.CDPRODESTO    = C_VALIDADE.CDPRODESTO AND
        ITEMCOLE.CDREGIAO     = C_VALIDADE.CDREGIAO
      GROUP BY
        ITEMCOLE.CDREGIAO,
        PRODUTO.CDPRODESTO,
        ITEMCOLE.DTINIVALITM)
    LOOP
      FOR C_CUSTO IN
        (SELECT
           DISTINCT
           FILIAL.CDFILIAL,
           C_ITEMCOLE.CDPRODESTO,
           C_ITEMCOLE.VRPRECUNIITM
         FROM
           FILIAL
         WHERE
           FILIAL.CDREGIAO   = C_ITEMCOLE.CDREGIAO)
      LOOP
        INSERT INTO CUSTOSUP(CDFILIAL, CDPRODUTO, DTCUSTOSUP, VRCUSPRLISTP, VRCUSPRLISM1)
        VALUES(C_CUSTO.CDFILIAL, C_CUSTO.CDPRODESTO, TO_DATE('01/01/1900'), C_CUSTO.VRPRECUNIITM, C_CUSTO.VRPRECUNIITM);
        COMMIT;
      END LOOP;
    END LOOP;
  END LOOP;
END;
/