                                 CREATE OR REPLACE FUNCTION VALOR_PEDIDO_BRUTO(
   P_CDFILIAL     IN FILIAL.CDFILIAL%TYPE,
   P_NRPEDIDO     IN PEDIDO.NRPEDIDO%TYPE) RETURN NUMBER IS

   V_VRPEDIDO_BRUT NUMBER;
   V_VRITEM NUMBER;
   V_VRENCARGO NUMBER;
   V_VRIMPOSTO NUMBER;
BEGIN
   V_VRPEDIDO_BRUT := 0;
   SELECT NVL(SUM((I.QTITEMPED * ROUND(I.VRPREUNITPED,2))),0) VRITEM
     INTO V_VRITEM
     FROM ITEMPEDIDO I
    WHERE I.CDFILIAL = P_CDFILIAL
      AND I.NRPEDIDO = P_NRPEDIDO;

   SELECT NVL(SUM(CASE EN.IDENCARGO WHEN 'A' THEN NVL(E.VRENCARGOPED,0)
                                WHEN 'D' THEN (NVL(E.VRENCARGOPED,0) * -1)
                                ELSE 0 END),0) VRENCARGO
     INTO V_VRENCARGO
     FROM ENCARGOPED E, ENCARGO EN
    WHERE E.CDENCARGO = EN.CDENCARGO
      AND E.CDFILIAL = P_CDFILIAL
      AND E.NRPEDIDO = P_NRPEDIDO;

   SELECT NVL(SUM(NVL(IP.VRACREDESCITPED,0)),0) VRIMPOSTO
     INTO V_VRIMPOSTO
     FROM IMPOSTO IM, IMPITEMPEDIDO IP
    WHERE IP.CDIMPOSTO = IM.CDIMPOSTO
      AND IP.CDFILIAL = P_CDFILIAL
      AND IP.NRPEDIDO = P_NRPEDIDO;

   V_VRPEDIDO_BRUT := V_VRITEM + V_VRENCARGO + V_VRIMPOSTO;

   RETURN(V_VRPEDIDO_BRUT);
END;
/
-- VERSAO --
BEGIN ATUVEROBJ('VALOR_PEDIDO_BRUTO','6.25.XXX'); END;
/