create or replace FUNCTION GET_ENCARGO_PED
   (P_CDFILIAL   IN PEDIDO.CDFILIAL%TYPE,
    P_NRPEDIDO   IN PEDIDO.NRPEDIDO%TYPE,
    P_CDENCARGO  IN ENCARGO.CDENCARGO%TYPE DEFAULT NULL ) RETURN NUMBER
AS
   V_VRENCARGO ENCARGOPED.VRENCARGOPED%TYPE;
BEGIN
       SELECT NVL(SUM(I.VRENCARGOPED),0)
        INTO V_VRENCARGO
        FROM ENCARGOPED I, ENCARGO E
       WHERE I.CDFILIAL   = P_CDFILIAL
         AND I.NRPEDIDO   = P_NRPEDIDO
         AND I.CDENCARGO = E.CDENCARGO
         AND E.CDENCARGONFE  = NVL(P_CDENCARGO,E.CDENCARGONFE);

   RETURN(V_VRENCARGO);
END;