采购订单(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.

你可能感兴趣的:(采购订单(ME21N/ME23N))