CREATE OR REPLACE FUNCTION VERIFICA_SETORCOZ_COZ(
        P_CDFILIAL IN VARCHAR2,
        P_CDTIPOPRAT IN VARCHAR2, 
        P_CDPRODUTO IN VARCHAR2)
    RETURN VARCHAR2
AS
    V_SETOR      VARCHAR2(2) ;
    V_CONSUMO    VARCHAR2(2) ;
    V_CDTIPOPRAT VARCHAR2(2) ;
    V_CDARVPROD  VARCHAR(20) ;
BEGIN
     SELECT CDARVPROD INTO V_CDARVPROD FROM PRODUTO WHERE CDPRODUTO = P_CDPRODUTO;
    IF P_CDTIPOPRAT = 'FF' THEN
         SELECT CDTPRCONSFIX
           INTO V_CDTIPOPRAT
           FROM PARAMPLANEJA
          WHERE CDFILIAL = P_CDFILIAL;
    ELSE
        IF P_CDTIPOPRAT = 'PP'THEN
             SELECT CDTPRCONSPER
               INTO V_CDTIPOPRAT
               FROM PARAMPLANEJA
              WHERE CDFILIAL = P_CDFILIAL;
        ELSE
            V_CDTIPOPRAT := P_CDTIPOPRAT;
        END IF;
    END IF;
    --Verifica se o produto possui excecao 
    BEGIN
         SELECT S.CDSETORCOZ
           INTO V_SETOR
           FROM SETOPRODCARD S, PRODUTO P
          WHERE(S.CDFILIAL = P_CDFILIAL)
            AND(S.CDTIPOPRAT = V_CDTIPOPRAT)
            AND(S.CDPRODUTO = P.CDPRODUTO)
            AND(INSTR(V_CDARVPROD, P.CDARVPROD) = 1)
            AND S.CDPRODUTO =
            (
                 SELECT MAX(S.CDPRODUTO)
                   FROM SETOPRODCARD S, PRODUTO P
                  WHERE(S.CDFILIAL = P_CDFILIAL)
                    AND(S.CDTIPOPRAT = V_CDTIPOPRAT)
                    AND(S.CDPRODUTO = P.CDPRODUTO)
                    AND(INSTR(V_CDARVPROD, P.CDARVPROD) = 1)
            ) ;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
        BEGIN
            V_SETOR := NULL;
        END;
    END;
    IF V_SETOR IS NULL THEN
        BEGIN
             SELECT RE.CDSETORCOZ 
               INTO V_SETOR
               FROM TIPOPRAT TP
            LEFT JOIN
                (
                     SELECT ST.CDFILIAL, ST.CDTIPOPRAT, ST.CDSETORCOZ,
                        SE.NMSETORCOZ
                       FROM SETOTIPOPRAT ST, SETORCOZ SE
                      WHERE ST.CDFILIAL = P_CDFILIAL
                        AND SE.CDFILIAL = ST.CDFILIAL
                        AND SE.CDSETORCOZ = ST.CDSETORCOZ
                )
                RE
                 ON RE.CDTIPOPRAT = TP.CDTIPOPRAT
              WHERE TP.CDTIPOPRAT = V_CDTIPOPRAT
           ORDER BY TP.CDTIPOPRAT;
        EXCEPTION
        WHEN NO_DATA_FOUND THEN
            BEGIN
                V_SETOR := NULL;
            END;
        END;
    END IF;
    RETURN(V_SETOR) ;
END;