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.

posted @ 2014-10-14 15:07  SAP小学徒  阅读(1369)  评论(0编辑  收藏  举报