ZMM_GPR_RELEASE
*&---------------------------------------------------------------------*
*& Report ZMM_GPR_RELEASE
*&
*&---------------------------------------------------------------------*
*& Description: This
is used to Release Gate Pass Request
*& Developer : Raju Janagama
*& Package : ZRGPNRGP
*&---------------------------------------------------------------------*
REPORT zmm_gpr_release NO STANDARD PAGE HEADING
MESSAGE-ID ZMM_GPR_RELEASE_MESG.
INCLUDE
zmm_gpr_release_top. " Data
declerations
INCLUDE
zmm_gpr_release_s01. "
Selection-Screen
INCLUDE
zmm_gpr_release_m01. " Main
Program
INCLUDE
zmm_gpr_release_f01. " Form
routines
**********************************************************************************************************************************
*&---------------------------------------------------------------------*
*& Include ZMM_GPR_RELEASE_TOP
*&---------------------------------------------------------------------*
DATA: gv_gpr_no TYPE zmm_gprh-gpr_no, "GPR Number
gv_zyear TYPE zmm_gprh-zyear, "Year of Creation
gv_created_on TYPE zmm_gprh-created_on, "Creation Date
gv_werks TYPE werks_d, "Plant
gv_lgort TYPE t001l-lgort. "Storage Location
TYPES: BEGIN OF gty_gpr1, "Structure for Gate Pass Request header details
gpr_no TYPE zzm_gpr_no, "GPR Number
zyear TYPE zzm_year, "Year of Creation
sy_created_by TYPE
zzm_crt_by, "Created By (System fills the field) - SAP Login ID
created_by TYPE
zzm_usr_crt_by, "Created By (user fills it)
created_on TYPE zzm_crt_dt, "Creation Date
created_ph TYPE
zzm_crt_ph, "Phone
number of the person
to_release_by TYPE
zzm_to_release, "To Be
Released by (Email-id)
released TYPE zzm_released, "Released Status
released_by TYPE
zzm_released_by, "Released By (HOD) - SAP Login ID
hod_comment TYPE
zzm_hod_comment, "HOD
Comments
returnable TYPE zzm_returnable, "Returnable
werks TYPE werks_d, "Plant
END OF
gty_gpr1.
TYPES: BEGIN OF gty_gpr3,
"Structure for getting storage location
gpr_no TYPE zzm_gpr_no, "GPR Number
lgort TYPE t001l-lgort, "Storage Location
END OF
gty_gpr3.
CONSTANTS:
c_menu(15) TYPE c VALUE
'ZMM_GPR_RELEASE', "GUI status
name
c_x TYPE c VALUE 'X',
c_s TYPE c VALUE ' '.
DATA: gi_gpr1
TYPE TABLE OF gty_gpr1,
"Internal Table for Gate Pass Request header details
gi_gpr2 TYPE TABLE OF zmm_gprh_merge, "Internal Table for final table
gi_gpr3 TYPE TABLE OF gty_gpr3, "Internal Table for
storage location
gi_zmm_gprh TYPE TABLE OF
zmm_gprh,
gi_fieldcat TYPE
slis_t_fieldcat_alv,
"Internal Table for Fieldcatalog
gw_gpr1 TYPE gty_gpr1, "Work Area for
Gate Pass Request header details
gw_gpr2 TYPE zmm_gprh_merge, ""Work Area for
final table
gw_gpr3 TYPE gty_gpr3, "Work Area for
getting storage location
gw_zmm_gprh TYPE zmm_gprh,
gw_user TYPE soudnamei1,
gw_user_data
TYPE soudatai1,
"Declaration for reading User Details
gw_fieldcat TYPE
slis_fieldcat_alv. "Work Area For Fieldcatalog
FIELD-SYMBOLS: <fs_table> LIKE gi_fieldcat, "Field Symbol for
fieldcatalog internal table
<fs> LIKE
gw_fieldcat, "Field
Symbol for fieldcatalog workarea
<gi_gpr2> LIKE gi_gpr2, "Field Symbol for
output internal table
<gw_gpr2> LIKE
gw_gpr2. "Field
Symbol for output workarea.
**********************************************************************************************************************************
*&---------------------------------------------------------------------*
*& Include ZMM_GPR_RELEASE_S01
*&---------------------------------------------------------------------*
SELECTION-SCREEN:BEGIN OF BLOCK b3 WITH FRAME.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE
text-a22.
SELECT-OPTIONS: s_gpr_no FOR gv_gpr_no,
s_year FOR gv_zyear NO INTERVALS
OBLIGATORY,
s_date FOR gv_created_on,
s_werks FOR gv_werks,
s_lgort FOR gv_lgort.
SELECTION-SCREEN: END OF BLOCK b1.
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE
text-a23.
PARAMETERS: rad1 RADIOBUTTON GROUP g1,
rad2
RADIOBUTTON GROUP g1,
rad3
RADIOBUTTON GROUP g1.
SELECTION-SCREEN: END OF BLOCK b2.
SELECTION-SCREEN:END OF BLOCK b3.
AT SELECTION-SCREEN ON s_gpr_no. "Validating
Gate Pass No
SELECT gpr_no
FROM zmm_gprh
INTO gv_gpr_no
UP TO
1 ROWS
WHERE
gpr_no IN s_gpr_no.
ENDSELECT.
IF sy-subrc
<> 0.
MESSAGE e000
DISPLAY LIKE text-a24.
ENDIF.
AT SELECTION-SCREEN ON s_year . "Validating
Year
SELECT zyear
FROM zmm_gprh
INTO gv_zyear
UP
TO 1 ROWS
WHERE gpr_no IN s_gpr_no AND
zyear IN s_year .
ENDSELECT.
IF sy-subrc
<> 0.
MESSAGE e001
DISPLAY LIKE text-a24.
ENDIF.
AT SELECTION-SCREEN ON s_date . "Validating
Creation Date
SELECT created_on
FROM zmm_gprh
INTO gv_created_on
UP TO 1 ROWS
WHERE gpr_no IN s_gpr_no AND
created_on IN s_date .
ENDSELECT.
IF sy-subrc
<> 0.
MESSAGE e002
DISPLAY LIKE text-a24.
ENDIF.
AT SELECTION-SCREEN ON s_werks. "Validating
Plant
SELECT werks
FROM t001w
INTO gv_werks
UP TO
1 ROWS
WHERE
werks IN s_werks.
ENDSELECT.
IF sy-subrc
<> 0.
MESSAGE e003
DISPLAY LIKE text-a24.
ENDIF.
AT SELECTION-SCREEN ON s_lgort. "Validating
Storage Location
SELECT lgort
FROM t001l
INTO gv_lgort
UP TO
1 ROWS
WHERE
lgort IN s_lgort.
ENDSELECT.
IF sy-subrc
<> 0.
MESSAGE e004
DISPLAY LIKE text-a24.
ENDIF.
*************************************************************************************
*&---------------------------------------------------------------------*
*& Include ZMM_GPR_RELEASE_M01
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM
zmm_gpr_read.
END-OF-SELECTION.
IF rad1 = c_x.
SORT gi_gpr3 BY
gpr_no.
LOOP AT gi_gpr1 INTO gw_gpr1 WHERE released NE c_x.
READ TABLE
gi_gpr3 INTO gw_gpr3 WITH KEY gpr_no = gw_gpr1-gpr_no BINARY SEARCH.
PERFORM
zmm_gpr_process.
IF
gw_gpr2-returnable = c_x.
gw_gpr2-returnable = text-a11.
ELSE.
gw_gpr2-returnable = text-a10.
ENDIF.
gw_gpr2-released = text-a04.
gw_gpr2-status = text-a02.
APPEND gw_gpr2
TO gi_gpr2 .
CLEAR gw_gpr2.
ENDLOOP.
PERFORM
ZMM_GPR_callfunction_f01.
LOOP AT
<fs_table> ASSIGNING <fs>.
IF
<fs>-fieldname = text-a27.
<fs>-no_out = c_x.
ENDIF.
ENDLOOP.
PERFORM
zmm_gpr_callfunction1_f02.
ENDIF.
IF rad2 = c_x.
SORT gi_gpr3 BY
gpr_no.
LOOP AT gi_gpr1 INTO gw_gpr1 WHERE released EQ c_x.
READ TABLE
gi_gpr3 INTO gw_gpr3 WITH KEY gpr_no = gw_gpr1-gpr_no BINARY SEARCH.
PERFORM
zmm_gpr_process.
IF
gw_gpr2-returnable = c_x.
gw_gpr2-returnable = text-a11.
ELSE.
gw_gpr2-returnable = text-a10.
ENDIF.
gw_gpr2-released = text-a03.
gw_gpr2-status = text-a01.
APPEND gw_gpr2
TO gi_gpr2 .
CLEAR gw_gpr2.
ENDLOOP.
PERFORM
ZMM_GPR_callfunction_f01.
PERFORM
zmm_gpr_callfunction1_f02.
ENDIF.
IF rad3 = c_x.
SORT gi_gpr3 BY
gpr_no.
LOOP AT gi_gpr1 INTO gw_gpr1.
READ TABLE
gi_gpr3 INTO gw_gpr3 WITH KEY gpr_no = gw_gpr1-gpr_no BINARY SEARCH.
PERFORM
zmm_gpr_process.
IF
gw_gpr2-returnable = c_x.
gw_gpr2-returnable = text-a11.
ELSE.
gw_gpr2-returnable = text-a10.
ENDIF.
IF
gw_gpr1-released = c_x.
gw_gpr2-released = text-a03.
gw_gpr2-status = text-a01.
ELSE.
gw_gpr2-released = text-a04.
gw_gpr2-status = text-a02.
ENDIF.
APPEND gw_gpr2
TO gi_gpr2 .
CLEAR gw_gpr2.
ENDLOOP.
PERFORM
ZMM_GPR_callfunction_f01.
PERFORM
zmm_gpr_callfunction1_f02.
ENDIF.
*************************************************************************************
*&---------------------------------------------------------------------*
*& Include ZMM_GP_PRINT_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form zmm_gpr_read.
*&---------------------------------------------------------------------*
* fetching data
*----------------------------------------------------------------------*
FORM zmm_gpr_read.
SELECT zmm_gprh~gpr_no
zmm_gprh~zyear
zmm_gprh~sy_created_by
zmm_gprh~created_by
zmm_gprh~created_on
zmm_gprh~created_ph
zmm_gprh~to_release_by
zmm_gprh~released
zmm_gprh~released_by
zmm_gprh~hod_comment
zmm_gp_ot_det~returnable
zmm_gp_ot_det~werks FROM zmm_gprh INNER JOIN zmm_gp_ot_det
ON zmm_gprh~gpr_no = zmm_gp_ot_det~gpr_no
INTO TABLE
gi_gpr1
WHERE
zmm_gprh~gpr_no IN s_gpr_no AND
zmm_gprh~zyear IN s_year
AND
zmm_gprh~created_on IN
s_date AND
zmm_gp_ot_det~werks IN s_werks.
IF sy-subrc = 0.
IF gi_gpr1 IS NOT INITIAL.
SORT gi_gpr1 BY
gpr_no.
SELECT gpr_no
lgort FROM zmm_gp_it_det
INTO TABLE gi_gpr3
FOR ALL ENTRIES IN gi_gpr1
WHERE gpr_no = gi_gpr1-gpr_no.
ENDIF.
ELSE.
MESSAGE e010
DISPLAY LIKE text-a24.
ENDIF.
ENDFORM.
" READ_ZMM_GPRH_F01
*&---------------------------------------------------------------------*
*& Form zmm_gpr_process
*&---------------------------------------------------------------------*
* Combine data
*----------------------------------------------------------------------*
FORM zmm_gpr_process.
MOVE:gw_gpr1-gpr_no
TO gw_gpr2-gpr_no ,
gw_gpr1-zyear TO gw_gpr2-zyear ,
gw_gpr1-sy_created_by TO gw_gpr2-sy_created_by,
gw_gpr1-created_by TO gw_gpr2-created_by,
gw_gpr1-created_on TO gw_gpr2-created_on ,
gw_gpr1-created_ph TO gw_gpr2-created_ph,
gw_gpr1-to_release_by TO gw_gpr2-to_release_by,
gw_gpr1-released_by TO gw_gpr2-released_by,
gw_gpr3-lgort TO gw_gpr2-lgort,
gw_gpr1-werks TO gw_gpr2-werks.
ENDFORM. "PROCESS_ZMM_GPRH_F04
*&---------------------------------------------------------------------*
*& Form zmm_gpr_second_page
*&---------------------------------------------------------------------*
* user
interaction on output
*----------------------------------------------------------------------*
*
-->F_CODE Function code
that PAI triggered
*
-->F_FIELD Information
cursor position ALV
*----------------------------------------------------------------------*
FORM zmm_gpr_second_page USING f_code TYPE sy-ucomm "#EC CALLED
f_field TYPE
slis_selfield. "#EC NEEDED
DATA i_grid TYPE
REF TO cl_gui_alv_grid.
ASSIGN gi_gpr2 TO
<gi_gpr2>.
ASSIGN gw_gpr2 TO
<gw_gpr2>.
REFRESH gi_fieldcat[].
IF i_grid IS
INITIAL.
CALL FUNCTION
'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid =
i_grid.
ENDIF.
IF NOT i_grid IS
INITIAL.
CALL METHOD
i_grid->check_changed_data.
ENDIF.
IF sy-ucomm =
text-a32.
SORT
<gi_gpr2> BY checkk released.
READ TABLE
<gi_gpr2> INTO <gw_gpr2>
WITH KEY checkk = c_x released = text-a03 BINARY SEARCH.
IF sy-subrc = 0.
MESSAGE i005
DISPLAY LIKE text-a24.
ELSE.
LOOP AT
<gi_gpr2> ASSIGNING <gw_gpr2> WHERE checkk = c_x.
<gw_gpr2>-status =
text-a01.
<gw_gpr2>-checkk = c_s
.
f_field-refresh = c_x.
<gw_gpr2>-released_by = sy-uname.
CALL FUNCTION
'SO_USER_READ_API1'
EXPORTING
user = gw_user
IMPORTING
user_data
= gw_user_data.
gw_zmm_gprh-released_by = gw_user_data-fullname.
MOVE-CORRESPONDING <gw_gpr2> TO gw_zmm_gprh.
gw_zmm_gprh-released = c_x.
APPEND gw_zmm_gprh TO gi_zmm_gprh.
<gw_gpr2>-released = text-a03.
CLEAR :
gw_zmm_gprh .
ENDLOOP.
IF sy-subrc =
0.
LOOP AT gi_zmm_gprh INTO gw_zmm_gprh .
UPDATE
zmm_gprh SET released =
gw_zmm_gprh-released
released_by =
gw_zmm_gprh-released_by
WHERE gpr_no = gw_zmm_gprh-gpr_no AND zyear = gw_zmm_gprh-zyear .
CLEAR
gw_zmm_gprh .
ENDLOOP.
* UPDATE
zmm_gprh FROM TABLE gi_zmm_gprh .
IF sy-subrc =
0.
MESSAGE
i006.
ENDIF.
ELSE.
MESSAGE e011
DISPLAY LIKE text-a24.
ENDIF.
ENDIF.
ELSEIF sy-ucomm =
text-a33.
SORT
<gi_gpr2> BY checkk released.
READ TABLE
<gi_gpr2> ASSIGNING <gw_gpr2> WITH KEY checkk = c_x released =
text-a04 BINARY SEARCH.
IF sy-subrc = 0.
MESSAGE e007
DISPLAY LIKE text-a24.
ELSE.
LOOP AT
<gi_gpr2> ASSIGNING <gw_gpr2> WHERE checkk = c_x.
<gw_gpr2>-status
= text-a02.
<gw_gpr2>-checkk = c_s.
f_field-refresh = c_x.
<gw_gpr2>-released = c_s.
<gw_gpr2>-released_by = c_s.
MOVE-CORRESPONDING <gw_gpr2> TO gw_zmm_gprh.
APPEND
gw_zmm_gprh TO gi_zmm_gprh.
<gw_gpr2>-released = text-a04 .
CLEAR :
gw_zmm_gprh .
ENDLOOP.
IF sy-subrc =
0.
LOOP
AT gi_zmm_gprh INTO gw_zmm_gprh .
UPDATE
zmm_gprh SET released =
gw_zmm_gprh-released
released_by =
gw_zmm_gprh-released_by
WHERE gpr_no = gw_zmm_gprh-gpr_no AND zyear = gw_zmm_gprh-zyear .
CLEAR
gw_zmm_gprh .
ENDLOOP.
* UPDATE
zmm_gprh FROM TABLE gi_zmm_gprh .
IF sy-subrc =
0.
MESSAGE
i008.
ENDIF.
ELSE.
MESSAGE e011
DISPLAY LIKE text-a24.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
"SECOND_PAGE
*&---------------------------------------------------------------------*
*& Form zmm_gpr_menu_paint
*&---------------------------------------------------------------------*
* Buttons on
STATUS BAR
*----------------------------------------------------------------------*
*
-->L_FCODE Excluding Table
*----------------------------------------------------------------------*
FORM zmm_gpr_menu_paint USING l_fcode TYPE
slis_t_extab. "#EC CALLED
"#EC NEEDED
SET PF-STATUS
c_menu.
ENDFORM.
"MENU_PAINT
*&---------------------------------------------------------------------*
*& Form zmm_gpr_top_page
*&---------------------------------------------------------------------*
* Display data
in Top page
*----------------------------------------------------------------------*
FORM zmm_gpr_top_page. "#EC
CALLED
DATA: gi_header
TYPE slis_t_listheader,
gw_header
TYPE slis_listheader,
lv_date
TYPE char10.
gw_header-typ = text-a12.
gw_header-info =
text-a13.
APPEND gw_header TO
gi_header.
gw_header-typ = text-a14.
gw_header-key = text-a20.
gw_header-info =
sy-uname.
APPEND gw_header TO
gi_header.
gw_header-typ = text-a14.
gw_header-key = text-a16.
gw_header-info =
text-a19.
WRITE sy-datum TO
lv_date.
MOVE lv_date TO
gw_header-info.
APPEND gw_header TO
gi_header.
gw_header-typ = text-a15.
gw_header-info =
text-a17.
APPEND gw_header TO
gi_header.
gw_header-typ = text-a15.
gw_header-info =
text-a18.
APPEND gw_header TO
gi_header.
CALL FUNCTION
'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gi_header.
ENDFORM.
"TOP_PAGE
*&---------------------------------------------------------------------*
*& Form zmm_gpr_callfunction_f01
*&---------------------------------------------------------------------*
* Display data
in ALV Grid
*----------------------------------------------------------------------*
FORM zmm_gpr_callfunction_f01.
CALL FUNCTION
'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_structure_name = text-a28
i_client_never_display = c_x
i_inclname = sy-repid
i_bypassing_buffer = c_x
CHANGING
ct_fieldcat =
gi_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc
<> 0.
MESSAGE ID
sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ASSIGN gi_fieldcat
TO <fs_table>.
ASSIGN gw_fieldcat
TO <fs>.
SORT
<fs_table> BY fieldname.
READ TABLE
<fs_table> ASSIGNING <fs> WITH KEY fieldname = text-a06 BINARY
SEARCH.
IF sy-subrc = 0.
<fs>-checkbox = c_x.
<fs>-edit = c_x.
ENDIF.
ENDFORM.
" CALLFUNCTION_F02
*&---------------------------------------------------------------------*
*& Form zmm_gpr_callfunction1_f02
*&---------------------------------------------------------------------*
* Display data
in ALV Grid
*----------------------------------------------------------------------*
FORM zmm_gpr_callfunction1_f02 .
CALL FUNCTION
'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program =
sy-repid
i_callback_pf_status_set = text-a29
i_callback_user_command =
text-a30
i_callback_top_of_page =
text-a31
it_fieldcat = gi_fieldcat
TABLES
t_outtab = gi_gpr2
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc
<> 0.
MESSAGE ID
sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
" CALLFUNCTION1_F03
*****************************************************************************************************************************
INPUT:
OUTPUT:
INPUT:
OUTPUT:
INPUT:
OUTPUT:



No comments:
Post a Comment