Views 252
Visitors 155

ZXMBCU08

Home 
| Top Page | Threads |
Previous  Next

*&---------------------------------------------------------------------*
*&  Include           ZXMBCU08                                         *
*&---------------------------------------------------------------------*
 
*"  TABLES
*"      TI_RKPF STRUCTURE  RKPF
*"      TI_RESB_NEW STRUCTURE  RESB
*"      TI_RESB_OLD STRUCTURE  RESB
*"      TI_DM07R STRUCTURE  DM07R
*"      TI_RESB_ADDED STRUCTURE  RESBN OPTIONAL
*"----------------------------------------------------------------------
 
** Purpose: Not allowed to change reservation document if it has been
**          fulfilled
DATA: LV_MODIFIED(3).
**  Add by Victwija
**  Clear memory yang dipake unk validasi werks & lgort
DELETE FROM MEMORY ID 'WRK'.
DELETE FROM MEMORY ID 'LGA'.
**  End Add by Victwija
 
IF SY-TCODE = 'MB22'.
** Jika sudah ada goods movement, tidak bisa change beberapa fields
LOOP AT TI_RESB_OLD WHERE ENMNG NE 0.
ENDLOOP.
IF SY-SUBRC = 0.
   LV_MODIFIED = 'YES'.
ELSE.
   LV_MODIFIED = 'NO'.
ENDIF.
 
IF LV_MODIFIED = 'YES'.
   LOOP AT TI_RESB_NEW.
     LOOP AT TI_RESB_OLD WHERE RSNUM = TI_RESB_NEW-RSNUM
                         AND   RSPOS = TI_RESB_NEW-RSPOS.
 
       IF TI_RESB_OLD-ERFMG NE TI_RESB_NEW-ERFMG.
         TI_RESB_NEW-ERFMG = TI_RESB_OLD-ERFMG.
         MESSAGE ID 'M7' TYPE 'E' NUMBER '901' WITH TI_RESB_NEW-RSNUM .
         EXIT.
       ENDIF.
 
       IF TI_RESB_OLD-BDMNG NE TI_RESB_NEW-BDMNG.
         TI_RESB_NEW-BDMNG = TI_RESB_OLD-BDMNG.
         MESSAGE ID 'M7' TYPE 'E' NUMBER '901' WITH TI_RESB_NEW-RSNUM .
         EXIT.
       ENDIF.
 
       IF TI_RESB_OLD-LGORT NE TI_RESB_NEW-LGORT.
         TI_RESB_NEW-LGORT = TI_RESB_OLD-LGORT.
         MESSAGE ID 'M7' TYPE 'E' NUMBER '901' WITH TI_RESB_NEW-RSNUM .
       ENDIF.
 
       IF TI_RESB_OLD-XWAOK NE TI_RESB_NEW-XWAOK.
         MOVE TI_RESB_OLD-XWAOK TO TI_RESB_NEW-XWAOK.
         MESSAGE ID 'M7' TYPE 'E' NUMBER '901' WITH TI_RESB_NEW-RSNUM .
       ENDIF.
 
*        IF TI_RESB_OLD-KZEAR = 'X'.
*          IF TI_RESB_OLD-KZEAR NE TI_RESB_NEW-KZEAR.
*            MOVE TI_RESB_OLD-KZEAR TO TI_RESB_NEW-KZEAR.
*MESSAGE ID 'M7' TYPE 'E' NUMBER '901' WITH TI_RESB_NEW-RSNUM .
*          ENDIF.
*        ENDIF.
 
*Cek Reservation apakah sudah Expired ato blm dari Table
*ZTA_WM_DEL_RSNUM
       DATA: LV_RSNUM LIKE TI_RESB_NEW-RSNUM.
       SELECT SINGLE RSNUM INTO LV_RSNUM
         FROM ZTA_WM_DEL_RSNUM
       WHERE
         RSNUM EQ TI_RESB_NEW-RSNUM
         AND EDATE <= SY-DATUM
         .
*****************************************************************
       IF TI_RESB_OLD-XLOEK NE TI_RESB_NEW-XLOEK  AND LV_RSNUM NE
       TI_RESB_NEW-RSNUM.
         MOVE TI_RESB_OLD-XLOEK TO TI_RESB_NEW-XLOEK.
         MESSAGE ID 'M7' TYPE 'E' NUMBER '901' WITH TI_RESB_NEW-RSNUM .
       ENDIF.
 
*   Original
*        IF ti_resb_old-xloek NE ti_resb_new-xloek.
*          MOVE ti_resb_old-xloek TO ti_resb_new-xloek.
*MESSAGE ID 'M7' TYPE 'E' NUMBER '901' WITH ti_resb_new-rsnum .
*        ENDIF.
 
 
     ENDLOOP.
   ENDLOOP.
ENDIF.
 
 
 
ENDIF.
 
*Jalankan Program utk mengupdate Final Issue berdasarkan table
*ZTA_WM_JOB_POST
IF SY-TCODE = 'MB21' OR SY-TCODE = 'MB22'.
 
TYPES: BEGIN OF LN_RSNUM,
          WERKS LIKE RESB-WERKS,
          LGORT LIKE RESB-LGORT,
          RSNUM LIKE RESB-RSNUM,
          RSPOS LIKE RESB-RSPOS,
        END OF LN_RSNUM.
DATA: OBJ_RSNUM TYPE STANDARD TABLE OF LN_RSNUM WITH HEADER LINE.
DATA: LV_COUNT TYPE I,
       LV_COUNT_RSNUM TYPE I.
 
 
*    Cek apakah SY-UNAME terdaftar sbg staf atau bukan.
SELECT COUNT(*) INTO LV_COUNT
FROM ZTA_WM_JOB_POST
WHERE
   STAFF EQ SY-UNAME AND
   WERKS EQ TI_RESB_NEW-WERKS AND
   LGORT EQ TI_RESB_NEW-LGORT.
 
 
*   Jika Staff maka LV_COUNT > 0
IF LV_COUNT > 0.
 
   IF TI_RESB_OLD-XWAOK = 'X' AND SY-TCODE = 'MB22'.
     SELECT COUNT(*) INTO LV_COUNT_RSNUM
     FROM RESB
     WHERE
       RSNUM = TI_RESB_OLD-RSNUM.
     IF LV_COUNT_RSNUM > 0.
       MESSAGE ID 'M7' TYPE 'E' NUMBER '904' WITH TI_RESB_NEW-RSNUM .
       LEAVE TO TRANSACTION 'MB23' AND SKIP FIRST SCREEN.
     ENDIF.
   ELSE.
     FREE MEMORY ID 'M_ZXMBCU08'.
 
     LOOP AT TI_RESB_NEW.
       OBJ_RSNUM-WERKS = TI_RESB_NEW-WERKS.
       OBJ_RSNUM-LGORT = TI_RESB_NEW-LGORT.
       OBJ_RSNUM-RSNUM = TI_RESB_NEW-RSNUM.
       OBJ_RSNUM-RSPOS = TI_RESB_NEW-RSPOS.
       APPEND OBJ_RSNUM.
     ENDLOOP.
*    Memory ini akan digunakan di program ZJB_WM004_UPDATING_FINAL_ISSUE
     EXPORT OBJ_RSNUM TO MEMORY ID 'M_ZXMBCU08'.
     BREAK ABAP08.
     EXPORT TI_RESB_NEW TO MEMORY ID 'M_ZXMBCU08_TI_RESB_NEW'.
     EXPORT TI_RESB_OLD TO MEMORY ID 'M_ZXMBCU08_TI_RESB_OLD'.
 
     SUBMIT ZIF_WM010_UPDATING_FINAL_ISSUE
     WITH PA_TCODE = SY-TCODE
     WITH PA_KOSTL = TI_RKPF-KOSTL
     AND RETURN.
   ENDIF.
ENDIF.
 
*    Cek apakah SY-UNAME terdaftar sbg Supervisor atau bukan.
FREE LV_COUNT.
SELECT COUNT(*) INTO LV_COUNT
FROM ZTA_WM_JOB_POST
WHERE
   SUPERVISOR EQ SY-UNAME AND
   WERKS EQ TI_RESB_NEW-WERKS AND
   LGORT EQ TI_RESB_NEW-LGORT.
*   Jika Supervisor maka LV_COUNT > 0
IF LV_COUNT > 0.
   FREE MEMORY ID 'M_ZXMBCU08'.
 
   LOOP AT TI_RESB_NEW.
     OBJ_RSNUM-WERKS = TI_RESB_NEW-WERKS.
     OBJ_RSNUM-LGORT = TI_RESB_NEW-LGORT.
     OBJ_RSNUM-RSNUM = TI_RESB_NEW-RSNUM.
     OBJ_RSNUM-RSPOS = TI_RESB_NEW-RSPOS.
     APPEND OBJ_RSNUM.
   ENDLOOP.
*    Memory ini akan digunakan di program ZJB_WM004_UPDATING_FINAL_ISSUE
   EXPORT OBJ_RSNUM TO MEMORY ID 'M_ZXMBCU08'.
   BREAK ABAP08.
   EXPORT TI_RESB_NEW TO MEMORY ID 'M_ZXMBCU08_TI_RESB_NEW'.
   EXPORT TI_RESB_OLD TO MEMORY ID 'M_ZXMBCU08_TI_RESB_OLD'.
 
   SUBMIT ZIF_WM010_UPDATING_FINAL_ISSUE
   WITH PA_TCODE = SY-TCODE
   WITH PA_KOSTL = TI_RKPF-KOSTL
   AND RETURN.
ENDIF.
MESSAGE S398(00) WITH 'Document' TI_RESB_NEW-RSNUM 'posted'.
 
ENDIF.
 
*--------------------------------------------------------------------*

User Threads | New Thread ( Only for Donators )

Threads Last Post Replies Views