CREATE OR REPLACE FUNCTION CALC_CUBAGEM_PROD
  (P_CDFILIAL     IN FILIAL.CDFILIAL%TYPE,
   P_NRPEDIDO    IN PEDIDO.NRPEDIDO%TYPE,
   P_CDPRODUTO    IN ITEMPEDIDO.CDPRODUTO%TYPE) RETURN
   FLOAT IS
   V_VRCUBAGEM FLOAT := 0;

BEGIN

/* CALCULO DA CUBAGEM */
  FOR C_PRODUTO IN (SELECT  P.VRALTURACUBO, P.VRLARGURACUBO, P.VRCOMPRICUBO, P.VRFATORCUBO
                       FROM ITEMPEDIDO IP, PRODUTO P
                      WHERE IP.CDFILIAL   = P_CDFILIAL
                        AND IP.NRPEDIDO = P_NRPEDIDO
                        AND P.CDPRODUTO  = P_CDPRODUTO) 
LOOP
      V_VRCUBAGEM := C_PRODUTO.VRALTURACUBO * C_PRODUTO.VRLARGURACUBO * C_PRODUTO.VRCOMPRICUBO;

END LOOP;
 RETURN V_VRCUBAGEM;
END;
/