CREATE OR REPLACE FUNCTION USR_FORN_LISTAPRECO(
   P_CDFILIAL     IN FILIAL.CDFILIAL%TYPE,
   P_CDPRODUTO    IN PRODUTO.CDPRODUTO%TYPE,
   P_DTREFERENCIA IN DATE) RETURN VARCHAR2 IS
V_CDFORNECED FORNECEDOR.CDFORNECED%TYPE;
BEGIN
   SELECT NVL(MAX(CDFORNECACOR), MAX(CDFORNECLIST))
     INTO V_CDFORNECED
     FROM CUSTOSUP
    WHERE CDFILIAL   = P_CDFILIAL
      AND CDPRODUTO  = P_CDPRODUTO
      AND DTCUSTOSUP = (SELECT MAX(DTCUSTOSUP)
                          FROM CUSTOSUP
                         WHERE CDFILIAL  = P_CDFILIAL
                           AND CDPRODUTO = P_CDPRODUTO
                           AND VRCUSPRLISTP IS NOT NULL
                           AND DTCUSTOSUP <= P_DTREFERENCIA);
   RETURN (V_CDFORNECED);
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('USR_FORN_LISTAPRECO','5.09.xxx'); END;
/