|
<< Click to Display Table of Contents >> Navigation: All About ABAP Technique > English > ABAP Tutorial > ABAP Workbench Tools > Enhancement > Business Add-Ins (BADI) > Business Add-Ins (BADI) Examples > ZMB_RESERVATION_BADI > DATA_MODIFY |
METHOD IF_EX_MB_RESERVATION_BADI~DATA_MODIFY .
* Cek apakah SY-UNAME terdaftar sbg staf atau bukan.
IF SY-TCODE = 'MB21' OR SY-TCODE = 'MB22'.
DATA: LV_NON_DISTRICT,
LV_COUNTER TYPE I,
LV_WERKS LIKE CS_RESB-WERKS,
LV_XWAOK LIKE CS_RESB-XWAOK.
FREE LV_COUNTER.
SELECT COUNT( * ) INTO LV_COUNTER
FROM ZTA_WM_JOB_POST
WHERE
STAFF EQ SY-UNAME AND
WERKS EQ CS_RESB-WERKS AND
LGORT EQ CS_RESB-LGORT.
* Jika Staff maka LV_COUNTER > 0
IF LV_COUNTER > 0.
SELECT SINGLE XWAOK INTO LV_XWAOK
FROM RESB
WHERE RSNUM = CS_RESB-RSNUM.
IF LV_XWAOK = 'X' AND SY-TCODE = 'MB22'.
LEAVE TO TRANSACTION 'MB23' AND SKIP FIRST SCREEN.
ELSE.
CS_RESB-XWAOK = ' '.
CS_RESB-KZEAR = 'X'.
ENDIF.
ENDIF.
ENDIF.
*****************************************************************
*Digunakan saat Satuannya menggunakan Satuan Unit of Issue
IF SY-TCODE = 'MB21' AND CS_RESB-BWART = '311' AND CS_RESB-ERFMG IS NOT INITIAL.
DATA : LV_MATNR TYPE MARA-MATNR,
LV_MEINS TYPE MARA-MEINS,
LV_AUSME TYPE MARC-AUSME,
LV_UMREZ TYPE MARM-UMREZ,
LV_UMREN TYPE MARM-UMREN.
BREAK SOL_BINTANG.
SELECT SINGLE MATNR MEINS INTO (LV_MATNR, LV_MEINS)
FROM MARA
WHERE
MATNR = CS_RESB-MATNR AND
MTART IN ('Z1RO', 'Z1VE').
IF sy-subrc = 0.
* SELECT SINGLE MEINS INTO LV_MEINS
* FROM MARA
* WHERE
* MATNR = CS_RESB-MATNR.
SELECT SINGLE AUSME INTO LV_AUSME
FROM MARC
WHERE
MATNR = CS_RESB-MATNR.
* IF LV_MEINS NE LV_AUSME AND LV_MEINS IS NOT INITIAL AND LV_AUSME IS NOT INITIAL.
IF ( LV_MEINS NE CS_RESB-ERFME ) AND ( CS_RESB-ERFME EQ LV_AUSME ).
SELECT SINGLE UMREZ UMREN
INTO (LV_UMREZ, LV_UMREN)
FROM MARM
WHERE
MATNR = CS_RESB-MATNR AND
UMREZ = LV_UMREZ.
CS_RESB-ERFMG = CS_RESB-ERFMG * ( LV_UMREZ * LV_UMREN ).
* CS_RESB-ERFME = LV_MEINS.
ENDIF.
ENDIF.
ENDIF.
*--------------------------------------------------------------------*
ENDMETHOD.