UOM物料单位转换(同类型才能转换)

UOM物料单位转换(同类型才能转换)apps.mtl_units_of_measure物料單位表apps.mtl_uom_conversions物料單位進率轉換表CREATEORREPLACEFUNCTIONmtl_uom_conversion_

apps.mtl_units_of_measure   — 物料單位表

 

apps.mtl_uom_conversions   — 物料單位進率轉換表


 

CREATE OR REPLACE FUNCTION mtl_uom_conversion_func (p_from_uom IN VARCHAR2, — 要被轉換的 UOM
                                                                                               p_to_uom IN VARCHAR2,     — 將要轉換成的 UOM
                                                                                               p_unit IN number                      — 要被轉換的數量
)
   RETURN NUMBER
AS
   fr_base_uom   VARCHAR2 (10);
   to_base_uom   VARCHAR2 (10);
   conv1         NUMBER;
   conv2         NUMBER;
   result        NUMBER;
BEGIN

   — 判斷 被轉的UOM 與 將要轉成的UOM 是否一樣,若一樣的話,將原值返回
   IF UPPER (TRIM (p_from_uom)) = UPPER (TRIM (p_to_uom)) THEN     

          RETURN p_unit;
   END IF;

 

   — 判斷 被轉的UOM 是什麼類型
   SELECT UPPER (uom_code)
   INTO fr_base_uom
   FROM apps.mtl_units_of_measure
   WHERE base_uom_flag = ‘Y’
         AND uom_class = (SELECT uom_class
                          FROM apps.mtl_units_of_measure
                          WHERE UPPER (uom_code) = UPPER (TRIM (p_from_uom)));

 

   — 判斷 將要轉的UOM 是什麼類型
   SELECT UPPER (uom_code)
   INTO to_base_uom
   FROM apps.mtl_units_of_measure
   WHERE base_uom_flag = ‘Y’
         AND uom_class = (SELECT uom_class
                          FROM apps.mtl_units_of_measure
                          WHERE UPPER (uom_code) = UPPER (TRIM (p_to_uom)));

  — 判斷 將要被轉UOM  與 被轉的UOM 類型是否一致
  if (fr_base_uom <> to_base_uom) then
    return -1;  — -1表示類型不同,而不能進行單位轉換
  end if;          

           

   — 判斷 被轉的UOM  轉換率
   SELECT conversion_rate
   INTO conv1
   FROM apps.mtl_uom_conversions
   WHERE UPPER (uom_code) = UPPER (TRIM (p_from_uom));

 

   — 判斷 將要轉成的UOM  轉換率
   SELECT conversion_rate
   INTO conv2
   FROM apps.mtl_uom_conversions
   WHERE UPPER (uom_code) = UPPER (TRIM (p_to_uom));

 

   — 依據 兩個單位之間的進率進行公式轉換
   result   := (p_unit * conv1) / conv2;

   RETURN result;
EXCEPTION
   WHEN OTHERS
   THEN
      RETURN -1;
END;

今天的文章UOM物料单位转换(同类型才能转换)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/59760.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注