PROGRAM YLWMM005 MESSAGE-ID YL.
*-----------------------------------------------------------------------
* maintain additional fields on table t336 - difference indicators
* written by sheila titchener
*-----------------------------------------------------------------------
TABLES: T336,                          " Difference indicators
        T300T,                         " Warehouse description
        T336T.                         " Difference indicator text


DATA: OK_CODE(4),
      OK_CODE2(4),
      W_ERR_FLAG.
DATA: BEGIN OF XT336  OCCURS 1,
       X  LIKE T336,
       DTEXT LIKE T336T-DTEXT,
      END OF XT336.
DATA  C LIKE SY-INDEX.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
*                       Warehouse must not be space.
  CHECK T336-LGNUM NE ' '.

  CASE OK_CODE.
    WHEN 'SAVE'.
      PERFORM SAVE_T336.
    WHEN 'DISP'.
      PERFORM DISPLAY_T336.
    WHEN 'LIST'.
      C = 0.
      PERFORM LIST_T336.
    WHEN OTHERS.
      PERFORM DISPLAY_T336.
  ENDCASE.
  CLEAR OK_CODE.
ENDMODULE.                             " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'AMEND'.
  SET TITLEBAR '100'.
ENDMODULE.                             " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Form  SAVE_T336
*&---------------------------------------------------------------------*
*       Save screen details
*&---------------------------------------------------------------------*
FORM SAVE_T336.
* reread record to make sure key is for last record read
* but store new value of ZZNOTO first
  DATA: W_ZZNOTO LIKE T336-ZZNOTO.
  W_ZZNOTO = T336-ZZNOTO.
  SELECT SINGLE * FROM  T336
         WHERE  LGNUM       = T336-LGNUM
         AND    KZDIF       = T336-KZDIF     .
  IF SY-SUBRC = 0.
    T336-ZZNOTO = W_ZZNOTO.
    UPDATE T336.
    MESSAGE I018 WITH 'T336'.
    COMMIT WORK.
  ELSE.
    MESSAGE I029 WITH T336-LGNUM T336-KZDIF.
    W_ERR_FLAG = 'Y'.
  ENDIF.
*
  CLEAR OK_CODE.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_LOC
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
FORM DISPLAY_T336.
  W_ERR_FLAG = 'N'.
*
  SELECT SINGLE * FROM T336
     WHERE LGNUM = T336-LGNUM
       AND    KZDIF = T336-KZDIF.
  IF SY-SUBRC NE 0.
    MESSAGE I065.
    W_ERR_FLAG = 'Y'.
  ENDIF.
  CLEAR T300T-LNUMT.
  SELECT SINGLE * FROM  T300T
         WHERE  SPRAS       = SY-LANGU
         AND    LGNUM       = T336-LGNUM.

  SELECT SINGLE * FROM  T336T
         WHERE  SPRAS       = SY-LANGU
         AND    LGNUM       = T336-LGNUM
         AND    KZDIF       = T336-KZDIF.

*                             Abort if no warehouse
  CHECK W_ERR_FLAG = 'N'.
*

ENDFORM.
*&---------------------------------------------------------------------*
*&      Module  EXIT_COMMAND  INPUT
*&---------------------------------------------------------------------*
*       exit commands are processed before validation                  *
*----------------------------------------------------------------------*
MODULE EXIT_COMMAND INPUT.

  CASE OK_CODE.
    WHEN 'EXIT'. CLEAR OK_CODE. SET SCREEN 0. LEAVE SCREEN.
    WHEN 'CANC'. CLEAR OK_CODE. SET SCREEN 0. LEAVE SCREEN.
    WHEN 'BACK'. CLEAR OK_CODE. SET SCREEN 0. LEAVE SCREEN.
  ENDCASE.
ENDMODULE.                             " EXIT_COMMAND  INPUT
*&---------------------------------------------------------------------*
*&      Form  READ_T336
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM LIST_T336.
  DATA: T336-DTEXT_ST LIKE T336T-DTEXT.


  T336-DTEXT_ST = T336T-DTEXT.
  SELECT * FROM T336 INTO TABLE XT336
         WHERE LGNUM = T336-LGNUM.

  LOOP AT XT336.

    SELECT SINGLE * FROM  T336T
           WHERE  SPRAS       = 'E'
           AND    LGNUM       = T336-LGNUM
           AND    KZDIF       = XT336-X-KZDIF.
    XT336-DTEXT = T336T-DTEXT.
    MODIFY XT336.
  ENDLOOP.
  T336T-DTEXT = T336-DTEXT_ST.
  CLEAR OK_CODE. SET SCREEN 200. LEAVE SCREEN.

ENDFORM.                               " LIST_T336
*&---------------------------------------------------------------------*
*&      Module  EXIT_COMMAND_200  INPUT
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
MODULE EXIT_COMMAND_200 INPUT.

  CASE OK_CODE2.
    WHEN 'EXIT'. CLEAR OK_CODE2. SET SCREEN 0. LEAVE SCREEN.
    WHEN 'CANC'. CLEAR OK_CODE2. SET SCREEN 0. LEAVE SCREEN.
    WHEN 'BACK'. CLEAR OK_CODE2. SET SCREEN 100. LEAVE SCREEN.
  ENDCASE.
ENDMODULE.                             " EXIT_COMMAND_200  INPUT
*&---------------------------------------------------------------------*
*&      Module  STATUS_0200  OUTPUT
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
  SET PF-STATUS 'POPUP'.
*  SET TITLEBAR 'xxx'.
  IF T300T-LGNUM NE T336-LGNUM.

    SELECT SINGLE * FROM  T300T
           WHERE  SPRAS       = SY-LANGU
           AND    LGNUM       = T336-LGNUM     .
  ENDIF.
ENDMODULE.                             " STATUS_0200  OUTPUT