CREATE OR REPLACE FUNCTION RETPRECOITEMDIA(P_IDTIPO IN VARCHAR,
                                           P_ACRDESC IN VARCHAR, 
                                           P_VRPRECITEM IN NUMBER,
                                           P_VRPRITEMCL IN NUMBER,
                                           P_VRPRECODIA IN NUMBER) RETURN NUMBER
AS
   V_RESULT NUMBER;
BEGIN
   V_RESULT := 0;
   IF P_IDTIPO = 'V' THEN
      IF P_ACRDESC = 'A' THEN
         V_RESULT := TRUNC((P_VRPRECITEM + P_VRPRITEMCL + P_VRPRECODIA), 2);
      ELSE
         V_RESULT := TRUNC((P_VRPRECITEM + P_VRPRITEMCL - P_VRPRECODIA), 2);
      END IF;
   ELSE
      V_RESULT := TRUNC((P_VRPRECODIA / 100) * (P_VRPRECITEM + P_VRPRITEMCL), 2);
      IF P_ACRDESC = 'A' THEN
         V_RESULT := TRUNC((V_RESULT + P_VRPRECITEM + P_VRPRITEMCL), 2);
      ELSE
         V_RESULT := TRUNC((P_VRPRECITEM + P_VRPRITEMCL) - V_RESULT, 2);
      END IF;
   END IF;
   RETURN V_RESULT;
END;
/