Thursday, 29 December 2016

Function to convert Item quantity from one UOM to another UOM

Oracle Standard function APPS.INV_CONVERT.INV_UM_CONVERT can be used to convert quantity from one UOM to another UOM.
Eg:
To convert from primary UOM to Base UOM
DECLARE
   v_primary_uom    VARCHAR2 (25);
   v_uom_quantity   NUMBER;
   v_base_uom       VARCHAR2 (25);
   v_inv_item_id    NUMBER        := 164750;
   v_quantity       NUMBER        := 10;
BEGIN
   SELECT primary_uom_code
     INTO v_primary_uom
     FROM inv.mtl_system_items_b
    WHERE inventory_item_id = v_inv_item_id AND organization_id = 1381;

   SELECT b.uom_code
     INTO v_base_uom
     FROM mtl_units_of_measure a, mtl_units_of_measure b
    WHERE a.uom_code = v_primary_uom
      AND (b.uom_class = a.uom_class AND b.base_uom_flag = 'Y');

   SELECT apps.inv_convert.inv_um_convert (v_inv_item_id,  --Inventory Item Id
                                           NULL,                   --Precision
                                           NVL (v_quantity, 0),     --Quantity
                                           v_primary_uom,           --From UOM
                                           v_base_uom,                --To UOM
                                           NULL,               --From UOM Name
                                           NULL                 -- To UOM Name
                                          )
     INTO v_uom_quantity
     FROM DUAL;

   DBMS_OUTPUT.put_line ('Base Quantity is :' || v_uom_quantity);
END;

No comments:

Post a Comment