CREATE OR REPLACE FUNCTION MAIOR_PROCESSO_APROVADO(
   P_CDFILIAL     IN PROCFABRICA.CDFILIAL%TYPE,
   P_CDPRODUTO    IN PROCFABRICA.CDPRODUTO%TYPE,
   P_CDPROCFABRIC IN PROCFABRICA.CDPROCFABRIC%TYPE)  RETURN VARCHAR IS

   V_CDPROCVERSAO VARCHAR2(10);
BEGIN

   SELECT P.CDPROCFABRIC
     INTO V_CDPROCVERSAO
     FROM PROCFABRICA P
    WHERE P.CDFILIAL = P_CDFILIAL
      AND P.CDPRODUTO = P_CDPRODUTO
      AND NVL(P.CDPROCORIGEM, P.CDPROCFABRIC)  = P_CDPROCFABRIC
      AND NVL(P.CDVERSAO, '0000000001') = (SELECT MAX(NVL(P1.CDVERSAO, '0000000001'))
                                             FROM PROCFABRICA P1, REVIPROCFABRIC R
                                            WHERE P.CDFILIAL = P1.CDFILIAL
                                              AND P.CDPRODUTO = P1.CDPRODUTO
                                              AND NVL(P.CDPROCORIGEM, P.CDPROCFABRIC) = NVL(P1.CDPROCORIGEM, P1.CDPROCFABRIC)
                                              AND P1.CDFILIAL = R.CDFILIAL(+)
                                              AND P1.CDPRODUTO = R.CDPRODUTO(+)
                                              AND P1.CDPROCFABRIC = R.CDPROCFABRIC(+)
                                              AND R.IDSITREVISAO(+) = 'A');


   RETURN(V_CDPROCVERSAO);
END;
/

-- VERSAO --
BEGIN ATUVEROBJ('MAIOR_PROCESSO_APROVADO','6.25.000'); END;
/