zoukankan      html  css  js  c++  java
  • 查找事物处理来源

    查找事物处理来源

    CREATE OR REPLACE FUNCTION cux_trans_source(p_trans_id NUMBERRETURN VARCHAR2 IS
       ln_type_id               NUMBER;
       ln_source_line_id        NUMBER;
       ln_trx_source_line_id    NUMBER;
       ln_source_type_id        NUMBER;
       ln_transaction_source_id NUMBER;
       ls_type_name             VARCHAR2(80);
       ls_result                VARCHAR2(80);
    BEGIN
       SELECT mmt.transaction_type_id,
              mmt.source_line_id,
              mtt.transaction_type_name,
              mmt.trx_source_line_id,
              mmt.transaction_source_type_id,
              mmt.transaction_source_id
         INTO ln_type_id,
              ln_source_line_id,
              ls_type_name,
              ln_trx_source_line_id,
              ln_source_type_id,
              ln_transaction_source_id
         FROM mtl_material_transactions mmt,
              mtl_transaction_types     mtt
        WHERE mmt.transaction_type_id = mtt.transaction_type_id
          AND mmt.transaction_id = p_trans_id;

       IF ln_source_type_id = 1 THEN
          IF ln_type_id = 18 THEN
             --接收入库
             SELECT '采购订单编号' || '.' || ph.segment1 ||
                    nvl(ph.comments, ' no comments')
               INTO ls_result
               FROM rcv_transactions rt,
                    po_headers_all   ph
              WHERE rt.transaction_id = ln_source_line_id
                AND rt.po_header_id = ph.po_header_id;
          END IF;
          IF ln_type_id = 71 THEN
             --交货调整
             SELECT '采购订单' || '.' || ph.segment1 ||
                    nvl(ph.comments, ' no comments')
               INTO ls_result
               FROM rcv_transactions rt,
                    po_headers_all   ph
              WHERE rt.transaction_id = ln_source_line_id
                AND rt.po_header_id = ph.po_header_id;
          END IF;
          IF ln_type_id = 36 THEN
             --退货
             SELECT '采购订单' || '.' || ph.segment1 ||
                    nvl(ph.comments, ' no comments')
               INTO ls_result
               FROM rcv_transactions rt,
                    po_headers_all   ph
              WHERE rt.transaction_id = ln_source_line_id
                AND rt.po_header_id = ph.po_header_id;
          END IF;
          IF ln_type_id = 74 THEN
             --转移至常规目的地
             ls_result := ls_type_name;
          END IF;
       END IF;

       IF ln_source_type_id = 2 THEN
          --销售订单来源 
          IF ln_type_id = 33 THEN
             --销售订单发运
             SELECT ott.name || '.' || ooh.order_number || '.' ||
                    nvl(ooh.cust_po_number, 'no cust po')
               INTO ls_result
               FROM oe_order_lines_all      ool,
                    oe_order_headers_all    ooh,
                    oe_transaction_types_tl ott
              WHERE ool.header_id = ooh.header_id
                AND ool.line_id = ln_trx_source_line_id
                AND ott.LANGUAGE = userenv('LANG')
                AND ooh.order_type_id = ott.transaction_type_id;
          END IF;
          IF ln_type_id = 52 THEN
             -- 销售订单挑库
             SELECT ott.name || '.' || ooh.order_number || '.' ||
                    nvl(ooh.cust_po_number, 'no cust po')
               INTO ls_result
               FROM oe_order_lines_all      ool,
                    oe_order_headers_all    ooh,
                    oe_transaction_types_tl ott
              WHERE ool.header_id = ooh.header_id
                AND ool.line_id = ln_trx_source_line_id
                AND ott.LANGUAGE = userenv('LANG')
                AND ooh.order_type_id = ott.transaction_type_id;
          END IF;
       END IF;
       IF ln_source_type_id = 3 THEN
          --Account
          IF ln_type_id = 1 THEN
             --Account issue
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 40 THEN
             --Account receipt
             ls_result := ls_type_name;
          END IF;
       END IF;

       IF ln_source_type_id = 4 THEN
          -- 物料搬运单 ln_type_id=63,64
          SELECT ls_type_name || '.' || H.REQUEST_NUMBER || '.' ||
                 NVL(H.DEscriptION, 'NO DESC')
            INTO ls_result
            FROM MTL_TXN_REQUEST_HEADERS_V H,
                 MTL_TXN_REQUEST_LINES_V   L
           WHERE H.HEADER_ID = l.HEADER_ID
             AND l.LINE_ID = ln_source_line_id;
       END IF;

       IF ln_source_type_id = 5 THEN
          --任务或计划 type id :17,25,35,38,43,44,48,55,56,57,58,90,91,92
          SELECT ls_type_name || '.' || wdj.WIP_ENTITY_NAME || '.' ||
                 NVL(wdj.ATTRIBUTE12, 'NO 机型'|| '.' ||
                 NVL(wdj.ATTRIBUTE1, 'NO 批次')
            INTO ls_result
            FROM WIP_DISCRETE_JOBS_V wdj
           WHERE wdj.WIP_ENTITY_ID = ln_transaction_source_id;
       END IF;

       IF ln_source_type_id = 6 THEN
          --帐户别名 type id :31,41
          SELECT mgd.concatenated_segments
            INTO ls_result
            FROM MTL_GENERIC_DISPOSITIONS_KFV mgd
           WHERE mgd.disposition_id = ln_transaction_source_id;
       END IF;

       IF ln_source_type_id = 7 THEN
          --内部申请
          IF ln_type_id = 61 THEN
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 72 THEN
             ls_result := ls_type_name;
          END IF;
       END IF;

       IF ln_source_type_id = 8 THEN
          --内部订单
          IF ln_type_id = 34 THEN
             --Internal order issue
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 50 THEN
             --Internal Order Xfer
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 53 THEN
             --Internal Order Pick
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 54 THEN
             --Int Order Direct Ship
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 62 THEN
             --Int Order Intr Ship
             ls_result := ls_type_name;
          END IF;
       END IF;

       IF ln_source_type_id = 9 THEN
          -- 周期盘点
          IF ln_type_id = 4 THEN
             --Cycle Count Adjust
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 5 THEN
             --Cycle Count Transfer
             ls_result := ls_type_name;
          END IF;
       
       END IF;

       IF ln_source_type_id = 10 THEN
          -- 实地盘点
          IF ln_type_id = 8 THEN
             --实地盘点调整
             ls_result := ls_type_name;
          END IF;
       
          IF ln_type_id = 9 THEN
             --实地盘点仓库转移
             ls_result := ls_type_name;
          END IF;
       END IF;

       IF ln_source_type_id = 11 THEN
          --标准成本更新
          IF ln_type_id = 24 THEN
             ls_result := ls_type_name;
          END IF;
       END IF;

       IF ln_source_type_id = 12 THEN
          -- RMA 退货 ln_type_id is 15,37
          IF ln_type_id = 15 THEN
             --RMA 接收
             SELECT ott.name || '.' || ooh.order_number || '.' ||
                    nvl(ooh.cust_po_number, 'no cust po')
               INTO ls_result
               FROM oe_order_lines_all      ool,
                    oe_order_headers_all    ooh,
                    oe_transaction_types_tl ott
              WHERE ool.header_id = ooh.header_id
                AND ool.line_id = ln_trx_source_line_id
                AND ott.LANGUAGE = userenv('LANG')
                AND ooh.order_type_id = ott.transaction_type_id;
          END IF;
          IF ln_type_id = 37 THEN
             --RMA 退货
             SELECT ott.name || '.' || ooh.order_number || '.' ||
                    nvl(ooh.cust_po_number, 'no cust po')
               INTO ls_result
               FROM oe_order_lines_all      ool,
                    oe_order_headers_all    ooh,
                    oe_transaction_types_tl ott
              WHERE ool.header_id = ooh.header_id
                AND ool.line_id = ln_trx_source_line_id
                AND ott.LANGUAGE = userenv('LANG')
                AND ooh.order_type_id = ott.transaction_type_id;
          END IF;
       END IF;

       IF ln_source_type_id = 13 THEN
          --库存
          IF ln_type_id = 2 THEN
             --子库存转移
             SELECT nvl(mmt1.transaction_reference, 'no reference')
               INTO ls_result
               FROM mtl_material_transactions mmt1
              WHERE mmt1.transaction_id = p_trans_id;
          END IF;
          IF ln_type_id = 3 THEN
             --组织间直接转移
             SELECT nvl(mmt.waybill_airbill, '无陆运单号')
               INTO ls_result
               FROM mtl_material_transactions mmt
              WHERE mmt.transaction_id = p_trans_id;
          END IF;
          IF ln_type_id = 12 THEN
             --Intransit Receipt
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 21 THEN
             --Intransit Shipment
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 42 THEN
             --杂项接收
             ls_result := ls_type_name;
          END IF;
       
          IF ln_type_id = 32 THEN
             --Miscellaneous issue
             ls_result := ls_type_name;
          END IF;
       
          IF ln_type_id = 51 THEN
             --Backflush Transfer
             ls_result := ls_type_name;
          END IF;
       
          IF ln_type_id = 66 THEN
             --Project Borrow
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 67 THEN
             --Project Transfer
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 68 THEN
             --Project Payback
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 70 THEN
             --Shipment Rcpt Adjust
             ls_result := ls_type_name;
          END IF;
       
          IF ln_type_id = 73 THEN
             --Planning Transfer
             ls_result := ls_type_name;
          END IF;
       
          IF ln_type_id = 75 THEN
             --Transfer to Consigned
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 80 THEN
             --平均成本更新
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 82 THEN
             --Inventory Lot Split
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 83 THEN
             --Inventory Lot Merge
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 84 THEN
             --Inventory Lot Translate
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 86 THEN
             --Cost Group Transfer
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 87 THEN
             --Container Pack
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 88 THEN
             --Container Unpack
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 89 THEN
             --Container Split
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 93 THEN
             --Field Service Usage
             ls_result := ls_type_name;
          END IF;
          IF ln_type_id = 94 THEN
             --Field Service Recovery
             ls_result := ls_type_name;
          END IF;
       END IF;

       IF ln_source_type_id = 14 THEN
          --Periodic Cost Update
          IF ln_type_id = 26 THEN
             --Periodic Cost Update
             ls_result := ls_type_name;
          END IF;
       
       END IF;

       IF ln_source_type_id = 15 THEN
          --Layer Cost Update
          IF ln_type_id = 28 THEN
             ls_result := ls_type_name;
          END IF;
       END IF;

       IF ln_source_type_id = 16 THEN
          --Project Contract
          IF ln_type_id = 77 THEN
             --ProjectContract Issue
             ls_result := ls_type_name;
          END IF;
       END IF;

       RETURN ls_result;
    EXCEPTION
       WHEN OTHERS THEN
          ls_result := '无来源';
          RETURN ls_result;
       
    END;
  • 相关阅读:
    ARC 066D Xor Sum AtCoder
    哈尔滨理工大学---沼跃鱼(待整理)
    C#从字符串获取文件路径
    蓝桥杯---机器人行走
    关于float和double的输入输出问题
    湖南多校对抗赛---Jerry's trouble
    湖南多校对抗赛---Good subsequence
    湖南多校对抗赛---Rectangle(01背包)
    蓝桥杯---公式解析
    蓝桥杯---砝码称重
  • 原文地址:https://www.cnblogs.com/benio/p/2382027.html
Copyright © 2011-2022 走看看