采购订单(ME21N/ME23N)

METHOD if_ex_me_process_po_cust~process_header .
  DATA:items TYPE purchase_order_items,
       item_obj TYPE  purchase_order_item.
  DATA:l_head TYPE mepoheader.
  DATA:l_item TYPE mepoitem.
  DATA:icount TYPE i .
  DATA: v_vkorg TYPE a304-vkorg .
  DATA: v_vbund TYPE lfa1-vbund .
  DATA: v_werks TYPE lfa1-werks .
  DATA: v_kbetr TYPE kbetr_kond.
  DATA: v_mgvgw TYPE plfh-mgvgw .
  DATA: v_kpein TYPE kpein.
  DATA: v_kmein TYPE kmein.
  DATA: im_conditions TYPE mmpur_tkomv .
  DATA: lw_komv TYPE  komv .
  DATA: v_clsever TYPE zefi_client-clsever .
  DATA: it_tkomv TYPE mmpur_tkomv,
        wa_tkomv LIKE LINE OF it_tkomv.
  data:lv_lifnr type ekko-lifnr .

  l_head = im_header->get_data( ).
  items = im_header->get_items( ) .
  IMPORT lv_LIFNR TO lv_lifnr FROM MEMORY ID 'ZLIFNR'.
  if lv_lifnr ne l_head-lifnr .
*------瓶盖控制bydev23--------on20091202------------------
  IF l_head-ekorg = '5101' AND
     ( l_head-ekgrp = '500' OR l_head-ekgrp = '501' ) .
    LOOP AT items INTO item_obj .
      l_item = item_obj-item->get_data(  ).
      icount  = icount + 1 .

      CLEAR : v_vbund , v_werks .
      SELECT SINGLE vbund werks INTO (v_vbund,v_werks)
        FROM lfa1
      WHERE lifnr = l_head-lifnr .
      IF sy-subrc = 0 .
        v_vkorg = v_vbund+2(4) .
      ELSE .
        CLEAR v_vkorg .
      ENDIF .

*-----判断哪个系统的供应商-------
*-----PRD/TST-----*
      IF ( sy-sysid = 'PRN' OR sy-sysid = 'TSN') AND v_werks < 2500.
        SELECT SINGLE clsever INTO v_clsever FROM zefi_client .
        CALL FUNCTION 'ZMM_GETZPR2' DESTINATION v_clsever
          EXPORTING
            vkorg = v_vkorg
            matnr = l_item-matnr
          IMPORTING
            kbetr = v_kbetr
            kpein = v_kpein
            kmein = v_kmein.
      ELSE .
        SELECT SINGLE kbetr kpein kmein INTO (v_kbetr,v_kpein,v_kmein)
          FROM a304 AS a INNER JOIN konp AS b
            ON a~knumh = b~knumh
        WHERE a~kappl = 'V' AND
              a~kschl = 'ZPR2' AND
              a~vkorg = v_vkorg AND
              a~vtweg = '20' AND
              a~matnr = l_item-matnr AND
              a~datbi >= sy-datum AND
              a~datab <= sy-datum .
      ENDIF .
      CLEAR: it_tkomv, v_mgvgw.
      CALL METHOD item_obj-item->get_conditions
        IMPORTING
          ex_conditions = it_tkomv.
      LOOP AT it_tkomv INTO lw_komv WHERE kntyp = 'H'  . "H基本价格
        lw_komv-kschl = 'PBXX' .
        lw_komv-kbetr = v_kbetr .
        lw_komv-kmein = v_kmein .
        lw_komv-kpein = v_kpein .
        MODIFY it_tkomv FROM lw_komv .
      ENDLOOP .
      item_obj-item->set_conditions( im_conditions = it_tkomv ).
    ENDLOOP.

  ENDIF .
endif .
  lv_lifnr = l_head-lifnr .
  EXPORT lv_lifnr FROM lv_lifnr TO MEMORY ID 'ZLIFNR'.

*-------瓶盖控制-------------
*1.表头为空,行项目不为空,直接退出程序

ENDMETHOD.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值