Вы находитесь на странице: 1из 8

*&---------------------------------------------------------------------*

*& Report ZFM001_DOC_PARK


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zfm001_doc_park
MESSAGE-ID zf.
*--------------------------sgp-----------------------------------------*
*
MODULE
: FI
*---------------------------------------------------------------------*
*
Objective :..........................................
*
*
Program : Updates Tables ( )
Downloads data ( )
*
Outputs List ( )
*
*
Functional Specifications :
*
Technical Spec No
:
*
Functional Consultant
: Padmanabhan
*
Date Created
:
*
Developer
: Siva Krishna
*
Client
: Sandesh ltd Ahmedabad
*
Company
: Invenio Business Solutions
*---------------------------------------------------------------------*
*
External Dependencies
*
*---------------------------------------------------------------------*
*
*
*---------------------------------------------------------------------*
*
Amendment History
*---------------------------------------------------------------------*
* Who
Change ID
Reason
*
*
*
* XXXXXXXXX AADDMMYYYY Where XXXX = Developers Name................. *
*
AA- Developers Initial ................................. *
*
........................................................ *
*
........................................................ *
*---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
CONTROLS
*&---------------------------------------------------------------------*
CONTROLS : tc TYPE TABLEVIEW USING SCREEN 0100.
*&---------------------------------------------------------------------*
*&
TABLES
*&---------------------------------------------------------------------*
TABLES: zfm_feature_mstr.",zfm_feature_park.
*&---------------------------------------------------------------------*
*&
TYPES
Begin with ty_
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_tc,
sel(1),
lifnr TYPE zfm_feature_mstr-lifnr,
name TYPE zfm_feature_mstr-name,
valid_from(10)," TYPE zfm_feature_mstr-valid_from,
valid_to(10)," TYPE zfm_feature_mstr-valid_to,
park_date(10),

articles TYPE zfm_feature_mstr-articles,


price_art TYPE zfm_feature_mstr-price_art,
edit(1),
price TYPE zfm_feature_mstr-price_art,
code(3),
page(10),
supplement(20),
edition(10),
END OF ty_tc.
*&---------------------------------------------------------------------*
*&
INTERNAL TABLES
Begin with gt_
*&---------------------------------------------------------------------*
DATA: gt_tc TYPE TABLE OF ty_tc.
DATA: gt_feature TYPE TABLE OF zfm_feature_mstr.
DATA: gt_park TYPE TABLE OF zfm_feature_park.
DATA: gt_park1 TYPE TABLE OF zfm_feature_park.
*&---------------------------------------------------------------------*
*&
WORK AREAS
Begin with gs_
*&---------------------------------------------------------------------*
DATA: gs_tc TYPE ty_tc.
DATA: gs_feature TYPE zfm_feature_mstr.
DATA: gs_park TYPE zfm_feature_park.
DATA: gs_park1 TYPE zfm_feature_park.
DATA: gs_park2 TYPE zfm_feature_park.
DATA: gs_park3 TYPE zfm_feature_park.
**Dropdown List Parameters**
DATA: gv_param TYPE vrm_id,
gv_values
TYPE vrm_values,
gv_value LIKE LINE OF gv_values.
*&---------------------------------------------------------------------*
*&
DATA DECLARATION
*&---------------------------------------------------------------------*
DATA: gv_belnr TYPE belnr_d.
DATA: date TYPE sy-datum.
DATA: date1 TYPE sy-datum.
DATA: date2 TYPE sy-datum.
*&---------------------------------------------------------------------*
*&
S T A R T - O F - S E L E C T I O N
*&---------------------------------------------------------------------*
START-OF-SELECTION.
CALL SCREEN 0100.
*&---------------------------------------------------------------------*
*&
Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'ZPF_0100'.
SET TITLEBAR 'ZPF_0100'.
gv_param = 'GS_TC-CODE'.
REFRESH gv_values.
PERFORM drop_down_list USING '001' 'Falgun Sir'.
PERFORM drop_down_list USING '002' 'Rita Madam'.

PERFORM drop_down_list USING '003' 'Parthiv Sir'.


PERFORM drop_down_list USING '004' 'Sameer Sir'.
PERFORM drop_down_list USING '005' 'Editorial Dept'.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id
= gv_param
values
= gv_values
EXCEPTIONS
id_illegal_name = 1
OTHERS
= 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
DESCRIBE TABLE gt_tc LINES tc-lines.
ENDMODULE.
" STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
DATA: lv_first TYPE sy-datum,
lv_last TYPE sy-datum.
CASE sy-ucomm.
WHEN 'PARK'.
LOOP AT gt_tc INTO gs_tc WHERE sel = 'X'.
READ TABLE gt_feature INTO gs_feature WITH KEY lifnr = gs_tc-lifnr.
gs_park-mandt = sy-mandt.
gs_park-lifnr = gs_tc-lifnr.
gs_park-name = gs_tc-name.
gs_park-park_date = gs_tc-park_date.
gs_park-articles = gs_tc-articles.
gs_park-price = gs_tc-price.
gs_park-code = gs_tc-code.
gs_park-zpage = gs_tc-page.
gs_park-supplement = gs_tc-supplement.
gs_park-edition = gs_tc-edition.
gs_park-valid_from = gs_tc-valid_from.
gs_park-valid_to = gs_tc-valid_to.
IF gs_park-lifnr IS NOT INITIAL.
*
AND gs_park-price <> 0.
CALL FUNCTION 'OIL_MONTH_GET_FIRST_LAST'
EXPORTING
*
i_month
= gs_park-park_date+2(02)
*
i_year
= gs_park-park_date+0(04)
i_date
= gs_park-park_date
IMPORTING
e_first_day = lv_first
e_last_day = lv_last
EXCEPTIONS
wrong_date = 1
OTHERS
= 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
SELECT SINGLE *

*
*
*

*
*
*

FROM zfm_feature_park CLIENT SPECIFIED


INTO gs_park1
WHERE mandt = sy-mandt
AND lifnr = gs_tc-lifnr
AND park_date BETWEEN lv_first AND lv_last.
IF sy-subrc <> 0.
APPEND gs_park TO gt_park.
INSERT INTO zfm_feature_park VALUES gs_park.
MESSAGE 'Selected Documents Are Parked Successfully' TYPE 'S'.
DELETE TABLE gt_tc FROM gs_tc.
MESSAGE 'Selected Documents Are Already Parked For This Month'
TYPE 'S'
DISPLAY LIKE 'E'.
ELSE.
UPDATE zfm_feature_park FROM gs_park.
MESSAGE 'Selected Documents Are Parked Successfully' TYPE 'S'.
DELETE TABLE gt_tc FROM gs_tc.
ENDIF.
ELSE.
MESSAGE s001 WITH gs_tc-lifnr DISPLAY LIKE 'E'.
LEAVE SCREEN.
ENDIF.
CLEAR: gs_park,gs_tc.
ENDLOOP.

*
WHEN 'POST'.
**Call Bapi To Post The Document**
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'GET'.
REFRESH gt_tc.
IF gt_tc IS INITIAL.
PERFORM get_data.
IF gt_feature IS NOT INITIAL.
PERFORM prepare_data.
ELSE.
REFRESH gt_tc.
MESSAGE 'No Data Exists' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDIF.
WHEN 'ENTER'.
WHEN 'SALL'.
LOOP AT gt_tc INTO gs_tc.
gs_tc-sel = 'X'.
MODIFY gt_tc FROM gs_tc INDEX sy-tabix TRANSPORTING sel.
ENDLOOP.
WHEN 'DALL'.
LOOP AT gt_tc INTO gs_tc.
gs_tc-sel = ' '.
MODIFY gt_tc FROM gs_tc INDEX sy-tabix TRANSPORTING sel.
ENDLOOP.
WHEN 'EDIT'.
ENDCASE.
ENDMODULE.
" USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*&
Module GET_RECORD OUTPUT
*&---------------------------------------------------------------------*

*
text
*----------------------------------------------------------------------*
MODULE get_record OUTPUT.
* DATA: lv_tfill TYPE sy-tfill.
* DESCRIBE TABLE gt_tc LINES lv_tfill.
* IF tc-current_line LE lv_tfill.
READ TABLE gt_tc INTO gs_tc INDEX tc-current_line.
READ TABLE gt_feature INTO gs_feature INDEX tc-current_line.
IF gs_feature-max_month = 0.
LOOP AT SCREEN.
IF screen-name = 'GS_TC-ARTICLES'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
IF gs_tc-edit = 'X'.
LOOP AT SCREEN.
IF screen-name = 'GS_TC-PRICE'.
screen-input = 1.
MODIFY SCREEN.
ELSEIF screen-name = 'GS_TC-PAGE'.
screen-input = 1.
MODIFY SCREEN.
ELSEIF screen-name = 'GS_TC-SUPPLEMENT'.
screen-input = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
* IF gs_tc-lifnr IS INITIAL.
*
LOOP AT SCREEN.
*
CHECK screen-group1 = 'GRP'.
*
screen-input = 0.
*
MODIFY SCREEN.
*
ENDLOOP.
* ENDIF.
ENDMODULE.

" GET_RECORD OUTPUT

*&---------------------------------------------------------------------*
*&
Module SAVE_RECORD INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE save_record INPUT.
DATA: lv_netwr TYPE p LENGTH 15 DECIMALS 4."netwr.
gs_tc-code = gs_tc-code.
IF NOT gs_tc-articles IS INITIAL
AND gs_tc-price_art IS NOT INITIAL.
READ TABLE gt_feature INTO gs_feature WITH KEY lifnr = gs_tc-lifnr
valid_from = gs_tc-valid_from
valid_to = gs_tc-valid_to.
IF gs_tc-articles LE gs_feature-max_month.
IF gs_feature-articles = 0.
gs_feature-articles = 1.
ENDIF.
lv_netwr = gs_feature-price_art / gs_feature-articles.
gs_tc-price_art = gs_tc-articles * lv_netwr.

IF gs_tc-edit = ' '.


gs_tc-price = gs_tc-price_art.
ENDIF.
ELSE.
MESSAGE e000 WITH gs_feature-max_month.
ENDIF.
ENDIF.
MODIFY gt_tc FROM gs_tc INDEX tc-current_line.
IF sy-subrc <> 0.
APPEND gs_tc TO gt_tc.
ENDIF.
ENDMODULE.
" SAVE_RECORD INPUT
*&---------------------------------------------------------------------*
*&
Module BACK INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE back INPUT.
IF sy-ucomm = 'EXIT'.
*
REFRESH gt_tc.
LEAVE TO SCREEN 0.
ELSEIF sy-ucomm = 'BACK'.
LEAVE TO SCREEN 0.
ENDIF.
ENDMODULE.
" BACK INPUT
*&---------------------------------------------------------------------*
*&
Form DROP_DOWN_LIST
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_0102 text
*
-->P_0103 text
*----------------------------------------------------------------------*
FORM drop_down_list USING
p_key
p_text.
gv_value-key = p_key.
gv_value-text = p_text.
APPEND gv_value TO gv_values.
CLEAR gv_value.
ENDFORM.
" DROP_DOWN_LIST
*&---------------------------------------------------------------------*
*&
Form PREPARE_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM prepare_data .
LOOP AT gt_feature INTO gs_feature.
CLEAR gs_park3.
SELECT SINGLE *
FROM zfm_feature_park CLIENT SPECIFIED
INTO gs_park3
WHERE mandt = sy-mandt
AND lifnr = gs_feature-lifnr
AND post_date BETWEEN date1 AND date2.

IF sy-subrc <> 0.
READ TABLE gt_park1 INTO gs_park2 WITH KEY lifnr = gs_feature-lifnr.
IF sy-subrc = 0.
gs_tc-lifnr = gs_park2-lifnr.
gs_tc-name = gs_park2-name.
gs_tc-valid_from = gs_park2-valid_from.
gs_tc-valid_to = gs_park2-valid_to.
*
IF gs_park2-articles = 0.
gs_tc-price = gs_park2-price.
*
gs_tc-price = gs_park2-price_art.
*
ENDIF.
gs_tc-edit = ' '.
gs_tc-code = gs_park-code.
*
gs_tc-articles = gs_feature-articles.
gs_tc-price_art = gs_feature-price_art.
gs_tc-page = gs_park2-zpage.
gs_tc-supplement = gs_park2-supplement.
gs_tc-edition = gs_park2-edition.
gs_tc-park_date = gs_park2-park_date.
*
gs_tc-articles = gs_feature-articles.
ELSE.
gs_tc-lifnr = gs_feature-lifnr.
gs_tc-name = gs_feature-name.
gs_tc-valid_from = gs_feature-valid_from.
gs_tc-valid_to = gs_feature-valid_to.
IF gs_feature-articles = '0'.
gs_tc-price_art = gs_feature-price_art.
gs_tc-price = gs_feature-price_art.
ELSE.
*
gs_tc-articles = gs_feature-articles.
gs_tc-price_art = gs_feature-price_art.
*
gs_tc-price = gs_feature-price_art.
ENDIF.
gs_tc-edit = ' '.
gs_tc-code = ' '.
gs_tc-page = gs_feature-zpage.
gs_tc-supplement = gs_feature-supplement.
gs_tc-edition = gs_feature-edition.
gs_tc-park_date = sy-datum.
*
gs_tc-valid_from = gs_feature-valid_from.
*
gs_tc-valid_to = gs_feature-valid_to.
ENDIF.
APPEND gs_tc TO gt_tc.
CLEAR: gs_feature, gs_tc.
ENDIF.
ENDLOOP.
ENDFORM.
" PREPARE_DATA
*&---------------------------------------------------------------------*
*&
Form GET_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data .
REFRESH gt_feature.
* IF date1 IS INITIAL.
*
SELECT *

*
FROM zfm_feature_mstr CLIENT SPECIFIED
*
INTO TABLE gt_feature
*
WHERE mandt = sy-mandt.
* ELSEIF date IS NOT INITIAL.
SELECT *
FROM zfm_feature_mstr CLIENT SPECIFIED
INTO TABLE gt_feature
WHERE mandt = sy-mandt
AND valid_from LE date2
AND valid_to GE date1.
SELECT *
FROM zfm_feature_park CLIENT SPECIFIED
INTO TABLE gt_park1
WHERE mandt = sy-mandt
AND park_date BETWEEN date1 AND date2
AND post_date = '00000000'.
* ENDIF.
ENDFORM.
" GET_DATA

Вам также может понравиться