CREATE OR REPLACE FUNCTION FILIAL_ANALISE_CUSTO(
   P_CDFILIAL IN FILIAL.CDFILIAL%TYPE,
   P_CDPRODUTO IN PRODUTO.CDPRODUTO%TYPE,
   P_NRTIPOCUSTO IN NUMBER)
RETURN VARCHAR AS
   V_CDFILIAL VARCHAR2(4);
BEGIN
   V_CDFILIAL := P_CDFILIAL;
   IF P_NRTIPOCUSTO IN (44, 45, 48, 59, 60, 61, 62) THEN
      SELECT MAX(P.CDFILIOPELOG)
         INTO V_CDFILIAL
      FROM PARAMPRODSUP P
      WHERE
         P.CDFILIAL  = P_CDFILIAL AND
         P.CDPRODUTO = P_CDPRODUTO;
      IF V_CDFILIAL IS NULL THEN
         V_CDFILIAL := P_CDFILIAL;
      END IF;
   END IF;
   RETURN(V_CDFILIAL);
END;
/