PO BADI增强
METHOD IF_EX_ME_PROCESS_PO_CUST~CHECK.
DATA: L_MEPOHEADER TYPE MEPOHEADER,
L_MEPOITEM TYPE MEPOITEM,
L_MENGE TYPE BAMNG,
L_PO TYPE BAMNG.
DATA: L_LINE TYPE PURCHASE_ORDER_ITEMS.
DATA : WA_LINE LIKE LINE OF L_LINE.
L_MEPOHEADER = IM_HEADER->GET_DATA( ).
L_LINE = IM_HEADER->GET_ITEMS( ).
LOOP AT L_LINE INTO WA_LINE.
L_MEPOITEM = WA_LINE-ITEM->GET_DATA( ).
IF L_MEPOITEM-BANFN IS NOT INITIAL
AND L_MEPOITEM-LOEKZ IS INITIAL.
SELECT SUM( MENGE ) INTO L_PO
FROM EKPO
WHERE BANFN = L_MEPOITEM-BANFN
AND BNFPO = L_MEPOITEM-BNFPO
AND LOEKZ = ''
AND EBELN NE L_MEPOHEADER-EBELN.
SELECT SINGLE MENGE INTO L_MENGE
FROM EBAN
WHERE BANFN = L_MEPOITEM-BANFN
AND BNFPO = L_MEPOITEM-BNFPO.
IF SY-SUBRC = 0.
L_MENGE = L_MENGE * 105 / 100 - L_PO.
IF L_MEPOITEM-MENGE > L_MENGE .
MESSAGE E000(ABAPDOCU) WITH 'PO不能超过PR数量的105%!此PR已转' L_PO.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
* ME29N/ME28 C7审批之后不能修改
IF L_MEPOHEADER-FRGKE = 'R'.
IF SY-UNAME = '12102000'.
ELSEIF SY-UNAME = 'INTERFACE'.
ELSE.
MESSAGE E000(ABAPDOCU) WITH '采购订单目前不允许修改,如有需求请联系管理员!' L_PO.
ENDIF.
ENDIF.
ENDMETHOD.