DATA_MODIFY

<< 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.