*&---------------------------------------------------------------------*
*& Report
ZMM_GP_PRINT
*&
*&---------------------------------------------------------------------*
*& Description: This is used to print gate pass
*& Author :
Hemalatha
*& Package :
ZRGPNRGP
*& Version :
V0
*&---------------------------------------------------------------------*
REPORT zmm_gp_print
MESSAGE-ID zmm_gp_msg.
INCLUDE zmm_gp_print_top. "DECLARATION"
INCLUDE zmm_gp_print_s01. "SELECTION SCREEN"
INCLUDE zmm_gp_print_m01. "FETCHING DATA"
INCLUDE zmm_gp_print_f01. "FORMS"
***************************************************************************************************************
*&---------------------------------------------------------------------*
*& Include ZMM_GP_PRINT_TOP
*&---------------------------------------------------------------------*
TYPES : BEGIN OF gty_zmm_gprh, "Structure for Gate
Pass Request header details
gpr_no TYPE
zzm_gpr_no,
"GPR Number
zyear TYPE
zzm_year,
"Year of Creation
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
released_by TYPE zzm_released_by, "Released By (HOD) - SAP Login
ID
END OF
gty_zmm_gprh,
BEGIN OF
gty_lfa1,
"Structure for Vendor Details
lifnr TYPE
lifnr,
"Account Number of Vendor or Creditor
land1 TYPE
land1,
"Country Key
name1 TYPE
name1_gp,
"Name1
ort01 TYPE
ort01_gp,
"City
pstlz TYPE
pstlz,
"Postal Code
regio TYPE
t005u-bland,
"Region (State, Province, County)
stras TYPE
stras_gp,
"House number and street
stcd1 TYPE
stcd1,
"Tax Number 1
stcd2 TYPE
stcd2,
"Tax Number 2
telf1 TYPE
telf1,
"First telephone number
telfx TYPE
telfx,
"Fax Number
stceg TYPE
stceg,
"VAT Registration Number
END OF
gty_lfa1,
BEGIN OF
gty_join_head_ot,
"Structure for header,item and other details
gp_no TYPE
zzm_gp_no,
"Gate Pass Number
zyear TYPE
zzm_year,
"Year of Creation
ref_id TYPE
zzm_ref_doc,
"Reference Document Number (either MBLNR or GPR)
ref_type TYPE
zzm_ref_type,
"Reference Type
sy_created_by TYPE zzm_crt_by, "Created By (SAP ID)
created_on TYPE
zzm_crt_dt,
"Creation Date
deleted TYPE
zzm_del_flag,
"Deleted Flag
gp_used TYPE
zzm_gp_used,
"Indicates if GP has been used in a RGP
matnr_rec_by TYPE zzm_matnr_rec_by, "Material Received By
reason TYPE
zzm_reason,
"reason code
text TYPE
zzm_text,
"Text
purchaser TYPE zzm_purchaser, "Purchaser
gate_entry_no TYPE
zzm_transno,
"Gate Entry Number
gate_entry_year TYPE zzm_gate_year, "Creation year
gpr_no TYPE
zzm_gpr_no,
"GPR Number
returnable TYPE zzm_returnable, "Returnable
exp_ret_date TYPE zzm_ret_date, "Expected Return Date
werks TYPE
werks_d,
"Plant
lifnr TYPE
lifnr,
"Account Number of Vendor or Creditor
name1 TYPE
zzm_name1,
"Vendor Name
stras TYPE
stras,
"Address
ort01 TYPE
ort01_gp,
"City
pstlz TYPE
pstlz,
"Postal Code
region TYPE
regio,
"Region (State, Province, County)
land1 TYPE
land1,
"Country Key
tel_number TYPE ad_tlnmbr1, "First telephone no.:
dialling code+number
tel_extn TYPE
ad_tlxtns1,
"First Telephone No.: Extension
fax_number TYPE ad_fxnmbr1, "First fax no.: dialling
code+number
fax_extn TYPE
ad_fxxtns1,
"First fax no.: extension
v_cst_no TYPE
j_1icstno,
"Central Sales Tax Number
v_gst_no TYPE
j_1icstno,
"Central Sales Tax Number
v_vat TYPE
stceg,
"VAT Registration Number
lrno TYPE
zzm_lr_no,
"Lorry Receipt Number
lr_date TYPE
zzm_lr_date, "LR
Date
trans TYPE
zzm_transporter,
"Transporter Name
mat_rec TYPE
zzm_mat_rec, "Material
Received By
freight TYPE
zzm_freight,
"Freight payer
insu_payer TYPE zzm_insu, "Insurance payer
octr_payer TYPE zzm_octr, "Octrio payer
veh_det TYPE
zzm_veh_det,
"Vehicle Details
no_cases TYPE
zzm_no_cases, "No
of Cases
apprx_weight TYPE zzm_apprx_weight, "Approximate Weight
posnr TYPE
zzm_posnr,
"Item number of the SD document
budat TYPE
budat,
"Posting Date in the Document
lgort TYPE
lgort_d,
"Storage Location
wo_ref TYPE
zzm_wo_ref,
"Work Order Reference
wo_ref_dt TYPE zzm_wo_ref_dt, "WO Reference Date
eicn_no TYPE
zzm_eicn,
"Excise invoice/challan No
eicn_date TYPE zzm_eicn_date, "Excise invoice/challan date
matnr TYPE
matnr,
"Material Number
quan_iss TYPE
zzm_quan_iss,
"Quantity Issued (Weight)
wt_unit TYPE
meins,
"Base Unit of Measure
apprx_value TYPE zzm_apprx_value, "Approximate Value
END OF
gty_join_head_ot,
BEGIN OF
gty_t001w,
"Structure for getting plant description
werks TYPE
werks_d,
"Plant
name1 TYPE
name1,
"Name
END OF
gty_t001w,
BEGIN OF
gty_t001l,
"Structure for getting storage location description
lgort TYPE
lgort_d,
"Storage Location
lgobe TYPE
lgobe,
"Description of Storage Location
END OF
gty_t001l,
BEGIN OF
gty_makt,
"Structure for getting material description
matnr TYPE
matnr,
"Material Number
maktx TYPE
maktx,
"Material Description (Short Text)
END OF
gty_makt,
BEGIN OF
gty_zmm_ge,
"Structure for getting Gate Entry Date
gate_trans_no TYPE
zzm_transno,
"Gate Entry Number
zyear TYPE
zzm_gate_year,
"Creation year
entry_crdt TYPE zzm_ge_date, "Gate Entry Date
END OF
gty_zmm_ge.
DATA : gi_zmm_gprh
TYPE TABLE OF gty_zmm_gprh,
"Internal Table for GPR Header data
gs_zmm_gprh
TYPE gty_zmm_gprh,
"Work Area for GPR Header data
gs_lfa1 TYPE gty_lfa1, "Work Area for Vendor
details
gi_zmm_head_ot TYPE TABLE OF gty_join_head_ot,
"Internal table for header,item and other data
li_zmm_head_ot TYPE TABLE OF gty_join_head_ot, "Temp Internal table
for header,item and other data
gs_zmm_head_ot TYPE gty_join_head_ot, "Internal table for header,item and other
data
gi_output TYPE TABLE OF
zmm_gp_output,
gs_output TYPE zmm_gp_output,
gi_fieldcat
TYPE slis_t_fieldcat_alv ,
"Internal Table for Fieldcatalog
gs_fieldcat
TYPE slis_fieldcat_alv ,
"Work Area For Fieldcatalog
gi_final TYPE zmm_gp_ttype, "Internal Table for table
fields in form
gs_final LIKE LINE OF gi_final, "Work Area for table fields
in form
s_struct TYPE zmm_gp_struct, "Structure for static
fields in form
gs_makt TYPE gty_makt, "Work Area for
material description
gi_makt TYPE TABLE OF gty_makt, "Internal Table for material
Description
gs_t001w TYPE gty_t001w, "Work Area for plant
details
gi_t001w TYPE TABLE OF gty_t001w, "Internal table for plant
details
gs_t001l TYPE gty_t001l, "Work Area for Storage
location details
gi_t001l TYPE TABLE OF gty_t001l, "Internal Table for Storage
location details
gs_zmm_ge TYPE gty_zmm_ge, "Work Area for Gate
Entry details
gi_zmm_ge TYPE TABLE OF gty_zmm_ge, "Internal table for Gate entry
details
gv_user_data
TYPE soudatai1,
"Declaration for reading User Details
gv_fullname(40) TYPE c,
i_user TYPE soudnamei1,
gs_tline TYPE tline, "Declaration for
reading long text
i_tline LIKE TABLE OF gs_tline,
e_header TYPE thead,
BEGIN OF
wa_tab,
tdline LIKE tline-tdline,
END OF
wa_tab,
td_tab LIKE STANDARD TABLE OF wa_tab,
str TYPE string, "Variable to hold
longext
var TYPE string,
wa_funcnm TYPE
funcname,
"Declaration for calling Adobe Form
fp_outputparams TYPE sfpoutputparams,
fp_docparams TYPE sfpdocparams,
fp_formoutput TYPE fpformoutput,
output_file TYPE string,
data_tab TYPE TABLE OF x255,
filename TYPE string,
path TYPE string,
fullpath TYPE string,
wt_file TYPE filetable,
default_extension TYPE string VALUE 'PDF',
lv_filelength
TYPE i,
lt_rawtab TYPE TABLE OF
char255,
wa_data_tab LIKE LINE OF lt_rawtab,
wa_data_tab1
TYPE xstring,
lo_fp TYPE REF TO if_fp VALUE IS INITIAL,
lo_fpex TYPE REF TO cx_fp_runtime VALUE IS
INITIAL,
lo_pdfobj TYPE REF TO
if_fp_pdf_object VALUE IS INITIAL,
pdf_data TYPE xstring,
xml_data TYPE xstring,
lt_xml_data TYPE STANDARD TABLE
OF xstring,
lv_xml_data_string TYPE string,
t_return TYPE STANDARD TABLE OF bapiret2,
t_per_info TYPE STANDARD TABLE
OF smum_xmltb,
tag_open TYPE tdsfflag,
v_gp_no TYPE zmm_gph-gp_no, "Gate Pass Number
v_zyear TYPE zzm_year, "Year of Creation
v_create TYPE zzm_crt_dt, "Creation Date
v_werks TYPE werks_d, "Plant
v_lgort TYPE t001l-lgort, "Storage Location
v_name TYPE string, "Vendor Name
v_name1 TYPE string, "Vendor Name
v_name2 TYPE string, "Vendor Name
v_stras TYPE string, "Address
v_stras1 TYPE string, "Street1
v_stras2 TYPE string, "Street2
v_stras3 TYPE string, "Street3
v_stras4 TYPE string, "Street4
v_stras5 TYPE string, "Street5
v_ort01 TYPE string, "City
v_pstlz TYPE string, "Postal Code
v_ortpstl TYPE string, "Reference Variable
to hold City and Postal Code
v_region TYPE string, "Region
v_land1 TYPE string, "Country Key
v_regland1 TYPE string, "Reference Variable
to hold Region and Country
gv_name TYPE t005t-landx, "To hold Country Name
gv_region_name TYPE
t005u-bezei, "To hold
Region Description
gv_land1 TYPE string, "Country
gv_region TYPE string, "Region
gv_ort01 TYPE string, "City
gv_pstlz TYPE string, "Postal Code
gv_ortpst TYPE string, "City&Postal
Code
gv_name1 TYPE string, "Country Name
gv_stras TYPE string, "Street
v_line1 TYPE string, "Address line1
v_line2 TYPE string, "Address line2
v_line3
TYPE string,
"Address line3
gv_apprx_value TYPE zzm_apprx_value, "For holding Sum of Apprx_Value
dd07v_tab_a TYPE TABLE OF
dd07v, "View on fixed
values and domain texts
dd_tab TYPE TABLE OF dd07v,
ds_tab TYPE dd07v.
CONSTANTS: c_gi_output
TYPE slis_tabname VALUE
'GI_OUTPUT', "Out put
internal table name
c_rgp_print_top TYPE
trdir-name VALUE
'ZMM_GP_PRINT_TOP', "Top Include name
c_struc_name TYPE
dd02l-tabname VALUE
'ZMM_GP_OUTPUT', "Output
structure name
c_sel(7) TYPE c VALUE 'GV_SEL', "Radio button field
c_pf_status TYPE
slis_formname VALUE 'PF_STATUS', "Status Bar name
c_inter TYPE
slis_formname VALUE 'INTER', "Interactive Subroutine
Name
c_print(7) TYPE c VALUE 'PRINT', "Print Button Name
c_menu(12) TYPE c VALUE 'ZMM_GP_MENU', "GUI status name
c_back(5) TYPE c VALUE 'BACK', "Back button name
c_z_gate like
e_header-tdobject VALUE 'Z_GATE',
"Object name for long text
c_znrg LIKE
e_header-tdid VALUE 'ZNRG', "Object id for long text
c_tilt TYPE c VALUE '~', "Symbol for splitting
c_sep TYPE c VALUE '-', "Symbol for concatination
c_coma TYPE c VALUE ',', "Symbol for
concatination
c_x TYPE c VALUE 'X', "
c_adobe TYPE fpname VALUE 'ZMM_GP_ADOBE', "Adobe Form name
c_ref_typ(3) TYPE c VALUE 'MDN', "Refernce type
c_s TYPE c VALUE 'S', "Message type for
success
c_e TYPE c VALUE 'E', "Message type for Error
c_10 TYPE c VALUE '/', "Symbol for concatination
c_accely TYPE c LENGTH
10 VALUE '0000000001', "Accely Vendor
c_frieght TYPE dd01l-domname VALUE 'YFREIGHT', "Freight payer
c_insu TYPE
dd01l-domname VALUE 'YINSU', "Insurance payer
c_octr TYPE
dd01l-domname VALUE 'Y0CTR'. "Octrio payer
FIELD-SYMBOLS: <fs_gi_output> like gi_output, "Field Symbol for output
internal table
<fs_gs_output> LIKE gs_output, "Field Symbol for output
workarea
<fs_table> LIKE
gi_fieldcat, "Field Symbol
for fieldcatalog internal table
<fs> LIKE
gs_fieldcat. "Field
Symbol for fieldcatalog workarea
**********************************************************************************************************************
*&---------------------------------------------------------------------*
*& Include ZMM_GP_PRINT_S01
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE
text-a00.
SELECT-OPTIONS:s_gp_no FOR
v_gp_no ,
s_zyear FOR v_zyear NO INTERVALS OBLIGATORY,
s_create FOR v_create,
s_werks FOR v_werks,
s_lgort FOR v_lgort.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN. "Validating Gate Pass
No,Year and Creation Date
SELECT gp_no FROM
zmm_gph INTO v_gp_no UP TO 1 ROWS WHERE gp_no IN s_gp_no
AND zyear IN s_zyear
AND created_on IN s_create.
ENDSELECT.
IF sy-subrc
<> 0.
MESSAGE e100
DISPLAY LIKE c_s.
ENDIF.
AT SELECTION-SCREEN ON s_werks. "Validating Plant
SELECT werks FROM
t001w INTO v_werks UP TO 1 ROWS WHERE werks IN s_werks.
ENDSELECT.
IF sy-subrc
<> 0.
MESSAGE e103
DISPLAY LIKE c_s.
ENDIF.
AT SELECTION-SCREEN ON s_lgort. "Validating Storage Location
SELECT lgort FROM
t001l INTO v_lgort UP TO 1 ROWS WHERE lgort IN s_lgort.
ENDSELECT.
IF sy-subrc
<> 0.
MESSAGE e104
DISPLAY LIKE c_s.
ENDIF.
************************************************************************
*&---------------------------------------------------------------------*
*& Include ZMM_GP_PRINT_M01
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM zmm_get_data_f01. "Fetching data
PERFORM zmm_combine_data_f02. "Moving data into a final internal
table
PERFORM zmm_display_data_f03. "Displaying
the data
********************************************************************************************************
*&---------------------------------------------------------------------*
*& Include ZMM_GP_PRINT_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form zmm_get_data_f01
*&---------------------------------------------------------------------*
* fetching data
*----------------------------------------------------------------------*
FORM zmm_get_data_f01 .
SELECT a~gp_no
a~zyear
a~ref_id
a~ref_type
a~sy_created_by
a~created_on
a~deleted
a~gp_used
a~matnr_rec_by
a~reason
a~text
a~purchaser
a~gate_entry_no
a~gate_entry_year
b~gpr_no
b~returnable
b~exp_ret_date
b~werks
b~lifnr
b~name1
b~stras
b~ort01
b~pstlz
b~region
b~land1
b~tel_number
b~tel_extn
b~fax_number
b~fax_extn
b~v_cst_no
b~v_gst_no
b~v_vat
b~lrno
b~lr_date
b~trans
b~mat_rec
b~freight
b~insu_payer
b~octr_payer
b~veh_det
b~no_cases
b~apprx_weight
c~posnr
c~budat
c~lgort
c~wo_ref
c~wo_ref_dt
c~eicn_no
c~eicn_date
c~matnr
c~quan_iss
c~wt_unit
c~apprx_value
INTO TABLE
gi_zmm_head_ot
FROM
zmm_gph AS a
INNER JOIN
zmm_gp_ot_det AS b
ON
b~gpr_no = a~gp_no
AND
b~zyear = a~zyear
INNER JOIN
zmm_gp_it_det AS c
ON
c~gpr_no = b~gpr_no
AND
c~zyear = b~zyear
WHERE a~gp_no IN s_gp_no
AND a~zyear IN s_zyear
AND a~created_on IN s_create
AND b~werks IN s_werks
AND c~lgort IN s_lgort.
IF sy-subrc
<> 0.
MESSAGE s105
DISPLAY LIKE c_e.
LEAVE
LIST-PROCESSING.
ENDIF.
IF gi_zmm_head_ot
IS NOT INITIAL.
SORT
gi_zmm_head_ot BY gp_no.
SELECT gpr_no
zyear
created_by
created_on
created_ph
released_by
FROM
zmm_gprh INTO TABLE gi_zmm_gprh
FOR ALL ENTRIES IN gi_zmm_head_ot
WHERE gpr_no = gi_zmm_head_ot-ref_id
AND zyear =
gi_zmm_head_ot-zyear.
SELECT gate_trans_no zyear entry_crdt FROM zmm_ge
INTO TABLE gi_zmm_ge
FOR ALL
ENTRIES IN gi_zmm_head_ot
WHERE
gate_trans_no = gi_zmm_head_ot-gate_entry_no
AND zyear
= gi_zmm_head_ot-gate_entry_year.
ENDIF.
IF gi_zmm_head_ot
IS NOT INITIAL.
li_zmm_head_ot =
gi_zmm_head_ot.
SORT
li_zmm_head_ot BY matnr.
DELETE ADJACENT
DUPLICATES FROM li_zmm_head_ot COMPARING matnr.
SELECT matnr
maktx FROM makt INTO TABLE gi_makt
FOR ALL
ENTRIES IN li_zmm_head_ot
WHERE
matnr = li_zmm_head_ot-matnr
AND
spras = sy-langu.
REFRESH
li_zmm_head_ot.
SELECT lgort
lgobe FROM t001l INTO TABLE gi_t001l.
SELECT werks
name1 FROM t001w INTO TABLE gi_t001w.
ENDIF.
ENDFORM.
" GET_DATA
*&---------------------------------------------------------------------*
*& Form
zmm_combine_data_f02
*&---------------------------------------------------------------------*
* Combine data
*----------------------------------------------------------------------*
FORM zmm_combine_data_f02.
SORT gi_t001l BY
lgort.
SORT gi_t001w BY
werks.
LOOP AT
gi_zmm_head_ot INTO gs_zmm_head_ot WHERE deleted NE c_x.
gs_output-gp_no =
gs_zmm_head_ot-gp_no.
gs_output-created_on =
gs_zmm_head_ot-created_on.
gs_output-created_by =
gs_zmm_head_ot-sy_created_by.
gs_output-ref_type =
gs_zmm_head_ot-ref_type.
gs_output-ref_id = gs_zmm_head_ot-ref_id.
gs_output-gp_used =
gs_zmm_head_ot-gp_used.
gs_output-matnr_rec_by =
gs_zmm_head_ot-matnr_rec_by.
gs_output-reason =
gs_zmm_head_ot-text.
gs_output-purchaser =
gs_zmm_head_ot-purchaser.
gs_output-gate_entry_no =
gs_zmm_head_ot-gate_entry_no.
gs_output-gate_entry_year =
gs_zmm_head_ot-gate_entry_year.
gs_output-lgort =
gs_zmm_head_ot-lgort.
READ TABLE
gi_t001l INTO gs_t001l WITH KEY lgort = gs_zmm_head_ot-lgort BINARY SEARCH.
IF sy-subrc = 0.
gs_output-lgobe =
gs_t001l-lgobe.
ENDIF.
gs_output-returnable =
gs_zmm_head_ot-returnable.
gs_output-werks = gs_zmm_head_ot-werks.
READ TABLE
gi_t001w INTO gs_t001w WITH KEY werks = gs_zmm_head_ot-werks BINARY SEARCH.
IF sy-subrc = 0.
gs_output-werks_desc =
gs_t001w-name1.
ENDIF.
gs_output-gv_sel =
icon_wd_radio_button_empty.
APPEND gs_output
TO gi_output.
CLEAR :
gs_output,gs_zmm_head_ot, gs_zmm_gprh,gs_t001l,gs_t001w.
ENDLOOP.
ENDFORM.
" COMBINE_DATA
*&---------------------------------------------------------------------*
*& Form
zmm_display_data_f03
*&---------------------------------------------------------------------*
* Display data
in ALV Grid
*----------------------------------------------------------------------*
FORM zmm_display_data_f03 .
DELETE ADJACENT
DUPLICATES FROM gi_output COMPARING gp_no.
CALL FUNCTION
'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname =
c_gi_output
i_structure_name =
c_struc_name
i_inclname = c_rgp_print_top
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 gs_fieldcat
TO <fs>.
SORT
<fs_table> BY fieldname.
READ TABLE
<fs_table> ASSIGNING <fs> WITH KEY fieldname = c_sel BINARY SEARCH.
IF sy-subrc = 0.
<fs>-hotspot = c_x.
<fs>-icon = c_x.
ENDIF.
READ TABLE
<fs_table> ASSIGNING <fs> WITH KEY fieldname = c_ref_typ BINARY
SEARCH.
if sy-subrc = 0.
<fs>-outputlen = '4'.
ENDIF.
SORT gi_output BY
gp_no.
CALL FUNCTION
'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program =
sy-repid
i_callback_pf_status_set = c_pf_status
i_callback_user_command = c_inter
it_fieldcat = gi_fieldcat
TABLES
t_outtab = gi_output
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.
" DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form inter
*&---------------------------------------------------------------------*
* user
interaction on output
*----------------------------------------------------------------------*
*
-->UCOMM Function code
that PAI triggered
*
-->SELFIELD Information
cursor position ALV
*----------------------------------------------------------------------*
FORM inter USING ucomm TYPE sy-ucomm
selfield TYPE slis_selfield.
IF sy-ucomm =
c_print.
EXIT.
ENDIF.
CASE
selfield-fieldname.
WHEN c_sel.
ASSIGN:
gi_output TO <fs_gi_output>,
gs_output TO <fs_gs_output>.
SORT
<fs_gi_output> BY gv_sel gp_no.
READ TABLE
<fs_gi_output> ASSIGNING <fs_gs_output> WITH KEY gv_sel =
icon_radiobutton BINARY SEARCH.
IF sy-subrc =
0.
<fs_gs_output>-gv_sel = icon_wd_radio_button_empty.
SORT
<fs_gi_output> BY gp_no.
READ TABLE
<fs_gi_output> ASSIGNING <fs_gs_output> INDEX selfield-tabindex.
IF sy-subrc =
0.
<fs_gs_output>-gv_sel = icon_radiobutton.
ENDIF.
ELSE.
READ TABLE
<fs_gi_output> ASSIGNING <fs_gs_output> INDEX selfield-tabindex.
IF sy-subrc =
0.
<fs_gs_output>-gv_sel = icon_radiobutton.
ENDIF.
ENDIF.
ENDCASE.
selfield-refresh =
c_x.
ENDFORM.
"user_command
*&---------------------------------------------------------------------*
*& Form PF_STATUS
*&---------------------------------------------------------------------*
* Buttons on
STATUS BAR
*----------------------------------------------------------------------*
*
-->UT_EXTAB Excluding Table
*----------------------------------------------------------------------*
FORM pf_status USING ut_extab TYPE slis_t_extab. "#EC CALLED
SET PF-STATUS
c_menu .
CASE sy-ucomm.
WHEN c_back.
LEAVE TO SCREEN
0.
WHEN c_print.
CLEAR:s_struct,gs_output,gs_zmm_head_ot,gs_zmm_ge,gs_zmm_gprh.
PERFORM
zmm_print_headdet_f08.
ENDCASE.
ENDFORM.
"PF_STATUS
*&---------------------------------------------------------------------*
*& Form zmm_sub_f04
*&---------------------------------------------------------------------*
* Moving data
to final form table
*----------------------------------------------------------------------*
*
-->P_1315 Item
*
-->P_GS_ZMM_GPIT_MATNR
Material
*
-->P_GS_ZMM_GPIT_WT_UNIT Base
Unit Of Measure
*
-->P_GS_ZMM_GPIT_QUAN_ISS
Quantity
*
-->P_GS_ZMM_GPH_REF_ID
Reference Id
*
-->P_GS_ZMM_GPIT_WO_REF Work
Order Reference
*
-->P_GS_ZMM_GPIT_EICN_NO
Excise invoice/challan No
*----------------------------------------------------------------------*
FORM zmm_sub_f04
USING value(p_1315)
p_gs_zmm_head_ot_matnr
p_gs_zmm_head_ot_wt_unit
p_gs_zmm_head_ot_quan_iss
p_gs_zmm_head_ot_ref_id
p_gs_zmm_head_ot_wo_ref
p_gs_zmm_head_ot_eicn_no.
gs_final-item_no =
p_1315.
gs_final-material = p_gs_zmm_head_ot_matnr.
gs_final-units =
p_gs_zmm_head_ot_wt_unit.
gs_final-quantity = p_gs_zmm_head_ot_quan_iss.
IF
gs_zmm_head_ot-ref_type = c_ref_typ.
IF
p_gs_zmm_head_ot_ref_id IS NOT INITIAL.
WRITE
p_gs_zmm_head_ot_ref_id TO gs_final-material_doc.
ENDIF.
ENDIF.
IF
p_gs_zmm_head_ot_wo_ref IS NOT INITIAL.
WRITE
p_gs_zmm_head_ot_wo_ref TO gs_final-wo_ref.
ENDIF.
IF p_gs_zmm_head_ot_eicn_no
IS NOT INITIAL.
WRITE
p_gs_zmm_head_ot_eicn_no TO gs_final-exc_inv_challan.
ENDIF.
APPEND gs_final TO
gi_final.
CLEAR gs_final.
ENDFORM.
" SUB2
*&---------------------------------------------------------------------*
*& Form ZMM_SUB1_F05
*&---------------------------------------------------------------------*
* To get
discription from domain level
*----------------------------------------------------------------------*
*
-->P_DOMAIN Domain name
* <--P_TAB View on fixed values and domain texts
*----------------------------------------------------------------------*
FORM zmm_sub1_f05
USING p_domain LIKE
dd01l-domname
p_dom
CHANGING p_tab TYPE dd07v.
CALL FUNCTION
'DD_DOMA_GET'
EXPORTING
domain_name = p_domain
TABLES
dd07v_tab_a = dd07v_tab_a
dd07v_tab_n = dd_tab
EXCEPTIONS
ILLEGAL_VALUE = 1
OP_FAILURE = 2
OTHERS = 3.
IF sy-subrc
<> 0.
ENDIF.
READ TABLE dd_tab
INTO p_tab WITH KEY domvalue_l = p_dom.
ENDFORM.
" ZMM_SUB1_F05
*&---------------------------------------------------------------------*
*& Form ZMM_PRINT_ACCELYDET_F06
*&---------------------------------------------------------------------*
* To get the
vendor details
*----------------------------------------------------------------------*
FORM zmm_print_accelydet_f06.
SELECT SINGLE
lifnr "This is for Accely Vendor
land1
name1
ort01
pstlz
regio
stras
stcd1
stcd2
telf1
telfx INTO gs_lfa1 FROM lfa1
WHERE lifnr = c_accely.
IF sy-subrc = 0.
CALL FUNCTION
'HRWPC_RFC_BLAND_TEXT_GET'
EXPORTING
land = gs_lfa1-land1 " eg: IN
bland = gs_lfa1-regio " eq: 06
langu = sy-langu
IMPORTING
bland_text =
gv_region_name.
IF sy-subrc = 0.
gv_region = gv_region_name.
ENDIF.
CALL FUNCTION
'DR_GET_COUNTRY_NAME'
EXPORTING
country = gs_lfa1-land1 " Country key
language =
sy-langu
IMPORTING
name = gv_name.
IF sy-subrc = 0.
gv_land1 = gv_name.
ENDIF.
gv_ort01 = gs_lfa1-ort01.
gv_pstlz = gs_lfa1-pstlz.
CONCATENATE
gv_ort01 gv_pstlz INTO gv_ortpst SEPARATED BY c_sep.
gv_name1 = gs_lfa1-name1.
CONCATENATE
gv_name1 gv_ort01 INTO v_line1 SEPARATED BY c_coma.
CONCATENATE
gv_land1 gv_region INTO v_line3 SEPARATED BY c_coma.
gv_stras = gs_lfa1-stras.
CONCATENATE
gv_stras gv_ortpst INTO v_line2 SEPARATED BY c_coma.
s_struct-address_line1 =
v_line1.
s_struct-address_line2 =
v_line2.
s_struct-address_line3 =
v_line3.
s_struct-tel_no = gs_lfa1-telf1.
s_struct-fax_no =
gs_lfa1-telfx.
s_struct-cst_no =
gs_lfa1-stcd1.
s_struct-lst_no =
gs_lfa1-stcd2.
s_struct-vat_no =
gs_lfa1-stceg.
ENDIF.
CLEAR:v_line2,v_line3,v_line1,gv_ortpst,gv_stras, gv_ortpst,
gv_land1
,gv_region,gv_name1 ,gv_ort01,gv_ort01 ,gv_pstlz,
gv_name,gv_region_name,gs_lfa1.
ENDFORM.
" ZMM_PRINT_ACCELYDET_F06
*&---------------------------------------------------------------------*
*& Form ZMM_PRINT_ITEMDAT_F07
*&---------------------------------------------------------------------*
* To maintain
Item level data in internal table
*----------------------------------------------------------------------*
FORM zmm_print_itemdat_f07 .
REFRESH gi_final[].
SORT gi_makt BY
matnr.
SORT gi_zmm_head_ot
BY posnr.
LOOP AT
gi_zmm_head_ot INTO gs_zmm_head_ot WHERE gpr_no = gs_output-gp_no.
gv_apprx_value =
gv_apprx_value + gs_zmm_head_ot-apprx_value.
READ TABLE
gi_makt INTO gs_makt WITH KEY matnr = gs_zmm_head_ot-matnr BINARY SEARCH.
PERFORM
zmm_sub_f04 USING space gs_zmm_head_ot-matnr gs_zmm_head_ot-wt_unit
gs_zmm_head_ot-quan_iss
gs_zmm_head_ot-ref_id gs_zmm_head_ot-wo_ref gs_zmm_head_ot-eicn_no.
PERFORM
zmm_sub_f04 USING gs_zmm_head_ot-posnr gs_makt-maktx space space
gs_zmm_head_ot-budat gs_zmm_head_ot-wo_ref_dt
gs_zmm_head_ot-eicn_date.
ENDLOOP.
s_struct-approx_value = gv_apprx_value.
CLEAR gv_apprx_value.
ENDFORM.
" ZMM_PRINT_ITEMDAT_F07
*&---------------------------------------------------------------------*
*& Form ZMM_PRINT_HEADDET_F08
*&---------------------------------------------------------------------*
* To Maintain Header level data.
*----------------------------------------------------------------------*
FORM zmm_print_headdet_f08 .
SORT gi_output BY
gv_sel.
READ TABLE
gi_output INTO gs_output WITH KEY gv_sel = icon_radiobutton BINARY SEARCH.
IF sy-subrc = 0.
PERFORM
zmm_header_data_f10.
PERFORM
zmm_longtext_f11.
PERFORM
zmm_main_head_f15.
PERFORM
zmm_print_accelydet_f06.
PERFORM
zmm_vendor_det_f12.
PERFORM
zmm_transport_det_f13.
PERFORM
zmm_get_uname_f14.
PERFORM
zmm_print_itemdat_f07.
PERFORM
zmm_call_fun_f09.
ELSE.
MESSAGE i106
DISPLAY LIKE c_s.
ENDIF.
ENDFORM.
" ZMM_PRINT_HEADDET_F08
*&---------------------------------------------------------------------*
*& Form ZMM_CALL_FUN_F09
*&---------------------------------------------------------------------*
* For calling
Adobe Form
*----------------------------------------------------------------------*
FORM zmm_call_fun_f09 .
CALL FUNCTION
'FP_FUNCTION_MODULE_NAME'
EXPORTING
i_name = c_adobe
IMPORTING
e_funcname =
wa_funcnm.
fp_outputparams-reqnew = c_x.
CALL FUNCTION
'FP_JOB_OPEN'
CHANGING
ie_outputparams
= fp_outputparams
EXCEPTIONS
cancel = 1
usage_error = 2
system_error = 3
internal_error = 4
OTHERS = 5.
IF sy-subrc
<> 0.
MESSAGE ID
sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
fp_docparams-langu = sy-langu.
fp_docparams-fillable = c_x.
fp_docparams-dynamic = c_x.
CALL FUNCTION
wa_funcnm
EXPORTING
/1bcdwb/docparams = fp_docparams
struct = s_struct
it_final = gi_final
IMPORTING
/1bcdwb/formoutput = fp_formoutput
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc
<> 0.
MESSAGE ID
sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION
'FP_JOB_CLOSE'
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error
= 3
OTHERS = 4.
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.
" ZMM_CALL_FUN_F09
*&---------------------------------------------------------------------*
*& Form ZMM_HEADER_DATA_F10
*&---------------------------------------------------------------------*
* Maintaining
Header data
*----------------------------------------------------------------------*
FORM zmm_header_data_f10 .
SORT gi_zmm_head_ot
BY gp_no.
READ TABLE
gi_zmm_head_ot INTO gs_zmm_head_ot WITH KEY gp_no = gs_output-gp_no BINARY
SEARCH.
IF sy-subrc = 0.
s_struct-gp_no =
gs_zmm_head_ot-gp_no.
s_struct-ref_type =
gs_zmm_head_ot-ref_type.
IF
gs_zmm_head_ot-created_on IS NOT INITIAL.
WRITE
gs_zmm_head_ot-created_on TO s_struct-gp_date.
ENDIF.
s_struct-gate_pass_created_by = gs_zmm_head_ot-sy_created_by.
s_struct-ge_no =
gs_zmm_head_ot-gate_entry_no.
ENDIF.
SORT gi_zmm_ge BY
gate_trans_no.
READ TABLE
gi_zmm_ge INTO gs_zmm_ge WITH KEY
gate_trans_no = gs_zmm_head_ot-gate_entry_no BINARY SEARCH.
IF sy-subrc = 0.
IF
gs_zmm_ge-entry_crdt IS NOT INITIAL.
WRITE
gs_zmm_ge-entry_crdt TO s_struct-ge_date.
ENDIF.
ENDIF.
SORT gi_zmm_gprh BY
gpr_no.
READ TABLE
gi_zmm_gprh INTO gs_zmm_gprh WITH KEY gpr_no = gs_zmm_head_ot-ref_id BINARY
SEARCH.
IF sy-subrc = 0.
s_struct-gpr_no =
gs_zmm_gprh-gpr_no.
s_struct-gpr_created_phone = gs_zmm_gprh-created_ph.
s_struct-gpr_created_by = gs_zmm_gprh-created_by.
IF
gs_zmm_gprh-created_on IS NOT INITIAL.
WRITE
gs_zmm_gprh-created_on TO s_struct-gpr_date.
ENDIF.
ELSE.
s_struct-gpr_no =
gs_zmm_head_ot-ref_id.
ENDIF.
ENDFORM. " ZMM_HEADER_DATA_F10
*&---------------------------------------------------------------------*
*& Form ZMM_LONGTEXT_F11
*&---------------------------------------------------------------------*
* to read the
long text
*----------------------------------------------------------------------*
FORM zmm_longtext_f11 .
REFRESH i_tline.
e_header-tdobject =
c_z_gate.
e_header-tdid =
c_znrg.
e_header-tdspras =
sy-langu.
e_header-tdlinesize
= 132.
e_header-tdname = gs_output-gp_no.
CALL FUNCTION
'READ_TEXT'
EXPORTING
client = sy-mandt
id = e_header-tdid
language = e_header-tdspras
name = e_header-tdname
object = c_z_gate
TABLES
lines = i_tline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
IF sy-subrc = 0.
LOOP AT i_tline
INTO gs_tline.
var = str.
CONCATENATE var
gs_tline-tdline INTO str.
ENDLOOP.
ENDIF.
s_struct-long_text
= str.
CLEAR str.
ENDFORM.
" ZMM_LONGTEXT_F11
*&---------------------------------------------------------------------*
*& Form ZMM_VENDOR_DET_F12
*&---------------------------------------------------------------------*
* Vendor
details
*----------------------------------------------------------------------*
FORM zmm_vendor_det_f12 .
s_struct-vendor =
gs_zmm_head_ot-lifnr.
v_name = gs_zmm_head_ot-name1.
SPLIT v_name AT
c_tilt INTO v_name1 v_name2.
s_struct-vendor_name1 =
v_name1.
s_struct-vendor_name2 =
v_name2.
v_stras = gs_zmm_head_ot-stras.
SPLIT v_stras AT
c_tilt INTO v_stras1 v_stras2 v_stras3 v_stras4 v_stras5.
s_struct-v_addrline1 = v_stras1.
s_struct-v_addrline2 =
v_stras2.
s_struct-v_addrline3 =
v_stras3.
s_struct-v_addrline4 =
v_stras4.
s_struct-v_addrline5 =
v_stras5.
v_ort01 = gs_zmm_head_ot-ort01.
v_pstlz = gs_zmm_head_ot-pstlz.
IF v_ort01 IS NOT
INITIAL AND v_pstlz IS NOT INITIAL.
CONCATENATE
v_ort01 v_pstlz INTO v_ortpstl SEPARATED BY c_sep.
ELSEIF v_ort01 IS
NOT INITIAL OR v_pstlz IS NOT INITIAL.
IF v_ort01 IS INITIAL.
v_ortpstl =
v_pstlz.
ELSEIF v_pstlz IS
INITIAL.
v_ortpstl =
v_ort01.
ENDIF.
ENDIF.
CALL FUNCTION
'HRWPC_RFC_BLAND_TEXT_GET'
EXPORTING
land = gs_zmm_head_ot-land1 " eg: IN
bland = gs_zmm_head_ot-region " eq: 06
langu = sy-langu
IMPORTING
bland_text =
gv_region_name.
IF sy-subrc = 0.
v_region = gv_region_name.
ENDIF.
CALL FUNCTION
'DR_GET_COUNTRY_NAME'
EXPORTING
country = gs_zmm_head_ot-land1 " Country key
language =
sy-langu
IMPORTING
name = gv_name.
IF sy-subrc = 0.
v_land1 = gv_name.
ENDIF.
s_struct-v_addrline6 =
v_ortpstl.
IF v_region IS NOT INITIAL AND v_land1 IS NOT
INITIAL.
CONCATENATE v_region v_land1 INTO v_regland1 SEPARATED BY
c_coma.
ELSEIF v_region IS NOT INITIAL OR v_land1 IS NOT
INITIAL.
IF v_region IS
INITIAL.
v_regland1 =
v_land1.
ELSEIF v_land1 IS
INITIAL.
v_regland1 =
v_region.
ENDIF.
ENDIF.
s_struct-v_addrline7 =
v_regland1.
CONCATENATE
gs_zmm_head_ot-tel_number gs_zmm_head_ot-tel_extn INTO s_struct-tel_extn SEPARATED BY c_10.
CONCATENATE
gs_zmm_head_ot-fax_number gs_zmm_head_ot-fax_extn INTO s_struct-fax_extn SEPARATED
BY c_10.
CLEAR :
v_regland1,v_region,v_land1,v_ortpstl,v_pstlz,v_ort01,gv_region_name,gv_name .
ENDFORM.
" ZMM_VENDOR_DET_F12
*&---------------------------------------------------------------------*
*& Form ZMM_TRANSPORT_DET_F13
*&---------------------------------------------------------------------*
* Transport
details
*----------------------------------------------------------------------*
FORM zmm_transport_det_f13 .
IF
gs_zmm_head_ot-exp_ret_date IS NOT INITIAL.
WRITE
gs_zmm_head_ot-exp_ret_date TO s_struct-exp_return_date.
ENDIF.
PERFORM
zmm_sub1_f05 USING c_frieght
gs_zmm_head_ot-freight
CHANGING ds_tab.
s_struct-freight =
ds_tab-ddtext.
CLEAR:ds_tab,dd_tab.
PERFORM
zmm_sub1_f05 USING c_insu
gs_zmm_head_ot-insu_payer
CHANGING ds_tab.
s_struct-insurance =
ds_tab-ddtext.
CLEAR:ds_tab,dd_tab.
PERFORM
zmm_sub1_f05 USING c_octr
gs_zmm_head_ot-octr_payer
CHANGING ds_tab.
s_struct-octroi =
ds_tab-ddtext.
CLEAR:ds_tab,dd_tab.
s_struct-vehicle_details =
gs_zmm_head_ot-veh_det.
s_struct-vendors_cst_no =
gs_zmm_head_ot-v_cst_no.
s_struct-vendors_lst_no =
gs_zmm_head_ot-v_gst_no.
s_struct-vendors_vat_no =
gs_zmm_head_ot-v_vat.
s_struct-no_of_cases =
gs_zmm_head_ot-no_cases.
s_struct-approx_weight =
gs_zmm_head_ot-apprx_weight.
s_struct-lr_no = gs_zmm_head_ot-lrno.
IF
gs_zmm_head_ot-lr_date IS NOT INITIAL.
WRITE
gs_zmm_head_ot-lr_date TO s_struct-lr_date.
ENDIF.
s_struct-transporter_name =
gs_zmm_head_ot-trans.
s_struct-material_received_by = gs_zmm_head_ot-mat_rec.
s_struct-reasom_for_mov =
gs_zmm_head_ot-text.
ENDFORM.
" ZMM_TRANSPORT_DET_F13
*&---------------------------------------------------------------------*
*& Form ZMM_GET_UNAME_F14
*&-------------------------------------------------------------------*
* To get user
name
*----------------------------------------------------------------------*
FORM zmm_get_uname_f14 .
i_user-sapname = gs_zmm_gprh-released_by.
CALL FUNCTION
'SO_USER_READ_API1'
EXPORTING
user = i_user
IMPORTING
user_data = gv_user_data
EXCEPTIONS
user_not_exist = 1
parameter_error
= 2
x_error = 3
OTHERS = 4.
IF sy-subrc
<> 0.
MESSAGE ID
sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH
sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF sy-subrc = 0.
gv_fullname = gv_user_data-fullname.
ENDIF.
s_struct-gpr_released_name = gv_fullname.
CLEAR:gv_fullname.
ENDFORM.
" ZMM_GET_UNAME_F14
*&---------------------------------------------------------------------*
*& Form ZMM_MAIN_HEAD_F15
*&---------------------------------------------------------------------*
* Maintaining
Header
*----------------------------------------------------------------------*
FORM zmm_main_head_f15 .
IF
gs_zmm_head_ot-returnable = c_x.
s_struct-returnable
= text-a01.
ELSE.
s_struct-returnable = text-a02.
ENDIF.
ENDFORM.
" ZMM_MAIN_HEAD_F15
INPUT:
OUTPUT:

No comments:
Post a Comment