GST Outward Report
GST Outward Report
REPORT ZGST_SALES_REPORT.
TABLES : vbrk , vbrp ,mara , knvv.
TYPE-POOLS : SLIS.
data : it_vbrk type TABLE OF vbrk,
wa_vbrk type vbrk,
it_vbrp type TABLE OF vbrp,
wa_vbrp type vbrp.
INCLUDE ZGST_OUT_TOP.
AT SELECTION-SCREEN.
PERFORM PAI_OF_SELECTION_SCREEN.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.
*AT SELECTION-SCREEN OUTPUT.
*if p_chk = 'X'.
* LOOP AT SCREEN.
* if screen-group1 = 'M1'.
* screen-active = 1.
* MODIFY SCREEN.
* endif.
* ENDLOOP.
*else.
* LOOP AT SCREEN.
* if screen-group1 = 'M1'.
* screen-active = 0.
* MODIFY SCREEN.
* endif.
* ENDLOOP.
*endif.
START-OF-SELECTION.
PERFORM get_Data.
PERFORM Fieldcatalog .
PERFORM display_alv.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form get_data .
if sy-tcode ne 'ZSD_CREDIT'.
PERFORM Check_authority.
endif.
select a~bukrs b~werks a~vkorg a~vtweg a~SPART a~KUNAG a~VBELN a~KURRF b~AUBEL
a~Fkdat a~BUPLA a~FKART a~knumv a~SFAKN a~WAERK b~POSNR b~MATNR b~ARKTX b~FKIMG
b~VRKME b~WKREG b~netwr b~charg b~VGBEL b~AUGRU_AUFT a~ZTERM "b~KURSK
INTO CORRESPONDING FIELDS OF TABLE it_vbrk_vbrp
from vbrk as a INNER JOIN vbrp as b
on a~vbeln = b~vbeln
where a~bukrs in p_bukrs
and a~kunag in p_kunnr
and a~fkdat in p_fkdat
and a~fkart in p_fkart
and a~VKORG IN p_VKORG
AND A~VTWEG IN p_VTWEG
AND A~BUPLA IN P_BUPLA
and b~werks in p_plant
and b~vbeln in p_vbeln
AND b~MATNR IN p_MATNR.
if it_vbrk_vbrp[] IS NOT INITIAL .
select * from kna1 INTO TABLE it_kna1 .
select * from t001w INTO TABLE it_T001w.
select * from j_1bbranch INTO TABLE it_bp.
select * from t005u INTO TABLE it_t005u where SPRAS = sy-langu.
select * from TVKOT INTO CORRESPONDING FIELDS OF TABLE It_TVKOT
where SPRAS = SY-LANGU.
SELECT * FROM TVTWT INTO CORRESPONDING FIELDS OF TABLE IT_TVTWT
WHERE SPRAS EQ 'EN' AND VTWEG IN p_VTWEG.
select * from TVAUT INTO CORRESPONDING FIELDS OF TABLE it_tvaut where SPRAS = sy-
langu.
select SINGLE BZIRK INTO wa_Data-BZIRK from knvv where KUNNR = wa_vbrk_vbrp-
kunag and VKORG = wa_vbrk_vbrp-vkorg and VTWEG = wa_vbrk_vbrp-VTWEG and SPART =
wa_vbrk_vbrp-SPART.
if wa_Data-BZIRK IS NOT INITIAL .
select SINGLE ZSUB_BRNCH INTO wa_Data-zsub_brnch from ZTSD_PLANT_SUBRG
where WERKS = wa_vbrk_vbrp-werks and BZIRK = wa_Data-BZIRK.
endif.
select SINGLE gst_REgio INTO lv_Regio from zgst_REgio where regio = wa_kna1-
regio.
READ TABLE it_t005u INTO wa_t005u with key LAND1 = wa_kna1-LAND1 BLAND =
wa_kna1-regio.
if sy-subrc = 0 .
* CONCATENATE wa_t005u-BEZEI '-' lv_Regio INTO wa_Data-statename SEPARATED
BY space.
CONCATENATE lv_Regio '-' wa_t005u-BEZEI INTO wa_Data-statename ."SEPARATED
BY space. "" Changed by Pratiksha ...29.06.2019
endif.
endif.
select single * from vbpa INTO wa_vbpa where VBELN = wa_vbrk_vbrp-VBELN and
PARVW = 'WE'.
if sy-subrc = 0.
wa_Data-ship_p = wa_vbpa-kunnr.
clear : wa_kna1.
READ TABLE it_kna1 INTO wa_kna1 with key kunnr = wa_vbpa-KUNNR.
if sy-subrc = 0.
wa_data-ship_pname = wa_kna1-name1.
wa_Data-COn_GSTNO = wa_kna1-STCD3.
select SINGLE gst_REgio INTO lv_Regio from zgst_REgio where regio =
wa_kna1-regio.
READ TABLE it_t005u INTO wa_t005u with key LAND1 = wa_kna1-LAND1 BLAND =
wa_kna1-regio.
if sy-subrc = 0 .
* CONCATENATE wa_t005u-BEZEI '-' lv_Regio INTO wa_Data-con_state SEPARATED
BY space.
CONCATENATE lv_Regio '-' wa_t005u-BEZEI INTO wa_Data-con_state. "
SEPARATED BY space."" Changed by Pratiksha ...29.06.2019
endif.
endif.
endif.
wa_data-VBELN = wa_vbrk_vbrp-VBELN .
wa_data-SFAKN = wa_vbrk_vbrp-SFAKN.
wa_data-POSNR = wa_vbrk_vbrp-POSNR .
wa_data-Fkdat = wa_vbrk_vbrp-Fkdat .
wa_data-FKART = wa_vbrk_vbrp-FKART .
READ TABLE IT_TVFKT WITH KEY FKART = wa_data-FKART
BINARY SEARCH.
IF SY-SUBRC = 0.
wa_Data-FKART_TEXT = IT_TVFKT-VTEXT.
ENDIF.
wa_data-MATNR = wa_vbrk_vbrp-MATNR .
SELECT SINGLE * FROM MARA INTO ST_MARA WHERE MATNR = wa_Data-MATNR.
wa_data-ARKTX = wa_vbrk_vbrp-ARKTX .
wa_Data-MATKL = ST_MARA-MATKL.
wa_Data-WRKST = ST_MARA-WRKST. "Added by Heli Patel 12.08.19
else.
wa_data-FKIMG = wa_vbrk_vbrp-FKIMG .
endif.
wa_Data-netwr = wa_vbrk_vbrp-netwr .
wa_data-VRKME = wa_vbrk_vbrp-VRKME .
************ENDED**************
wa_data-VAT_PER = lv_KBETR1.
wa_Data-VAT_AMT = lv_kwert1.
endif.
clear : lv_kbetr1 , lv_kwert1.
READ TABLE it_konv INTO wa_konv with key kschl = 'JADD'.
if sy-subrc = 0.
lv_KBETR1 = wa_konv-kbetr / 10.
if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'..
lv_kwert1 = '-1' * wa_KONV-KWERT.
else.
lv_KWERT1 = wa_KONV-KWERT.."( wa_Data-final_tax * lv_kbetr1 ) / 100.
endif.
wa_data-AVAT_PER = lv_KBETR1.
wa_Data-AVAT_AMT = lv_kwert1.
endif.
wa_Data-total_vat = wa_data-vat_amt + wa_Data-avat_amt.
clear : lv_kbetr1 , lv_kwert1.
READ TABLE it_konv INTO wa_konv with key kschl = 'JOCG'.
if sy-subrc = 0.
lv_KBETR1 = wa_konv-kbetr / 10.
if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'..
lv_kwert1 = '-1' * wa_KONV-KWERT.
else.
lv_KWERT1 = wa_KONV-KWERT.."( wa_Data-final_tax * lv_kbetr1 ) / 100.
endif.
wa_data-CGST_KBETR = lv_KBETR1.
wa_Data-CGST_KAWRT = lv_kwert1.
endif.
wa_data-SGST_KBETR = lv_kbetr3.
wa_data-SGST_KAWRT = lv_KWERT3.
endif.
READ TABLE it_konv INTO wa_konv with key kschl = 'JOIG'.
if sy-subrc = 0.
lv_KBETR2 = wa_konv-kbetr / 10.
if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'..
lv_kwert2 = '-1' * wa_KONV-KWERT.
else.
lv_KWERT2 = wa_KONV-KWERT.."( wa_Data-final_tax * lv_kbetr1 ) / 100.
endif.
wa_Data-IGST_KBETR = lv_KBETR2 .
wa_data-IGST_KAWRT = lv_KWERT2.
endif.
READ TABLE it_konv INTO wa_konv with key kschl = 'YOIG'.
CLEAR : LV_KBETR2,LV_KWERT2 .
if sy-subrc = 0.
lv_KBETR2 = wa_konv-kbetr / 10.
if wa_Data-fkart = 'ZIRE' or wa_Data-fkart = 'S1'.
lv_kwert2 = '-1' * wa_KONV-KWERT.
else.
lv_KWERT2 = wa_KONV-KWERT.."( wa_Data-final_tax * lv_kbetr1 ) / 100.
endif.
* *****************ended*********************
SELECT SINGLE * FROM MCH1 INTO CORRESPONDING FIELDS OF WA_MCH1
WHERE CHARG = wa_data-CHARG.
IF SY-SUBRC = 0.
IF WA_MCH1 IS NOT INITIAL.
wa_data-VFDAT = WA_MCH1-VFDAT.
wa_data-HSDAT = WA_MCH1-HSDAT.
ENDIF.
ENDIF.
* select SINGLE vgbel INTO wa_Data-vgbel from vbak where VBELN = wa_vbrk_vbrp-
aubel.
"Code For Reverse Document
SELECT SINGLE VK~VGBEL FROM VBRP AS VP
INNER JOIN VBAP AS VK "VBAK
ON VP~AUBEL EQ VK~VBELN AND VP~POSNR EQ VK~POSNR
INNER JOIN VBRK AS VB
ON VB~VBELN EQ VK~VGBEL
INTO WA_DATA-VGBEL
WHERE VP~VBELN EQ WA_DATA-VBELN
AND VK~MATNR EQ WA_DATA-MATNR
AND VK~POSNR EQ WA_DATA-POSNR.
wa_vbrk_vbrp-augru_auft = 'Z23'.
READ TABLE it_tvaut INTO wa_tvaut with key augru = wa_vbrk_vbrp-augru_auft .
if sy-subrc = 0 .
wa_Data-zbeZei = wa_tvaut-bezei.
endif.
else.
READ TABLE it_tvaut INTO wa_tvaut with key augru = wa_vbrk_vbrp-augru_auft .
if sy-subrc = 0 .
wa_Data-zbeZei = wa_tvaut-bezei.
endif.
endif.
if wa_Data-fkart = 'ZIRE'.
MOVE wa_data-VBELN TO M_VBELN .
CLEAR : T_LINE[].
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = 'Z008'
LANGUAGE = SY-LANGU
NAME = M_VBELN
OBJECT = 'VBBK'
TABLES
LINES = T_LINE
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 .
READ TABLE T_LINE INDEX 1.
MOVE T_LINE-TDLINE TO wa_Data-instru .
ENDIF.
endif.
wa_Data-term = wa_vbrk_vbrp-zterm.
lv_term = wa_Data-term+1(3).
CONCATENATE lv_term 'Days Credit' INTO wa_data-term_desc SEPARATED BY space.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-seltext_m = 'Plant'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'WERKS_NAME1'.
wa_fieldcat-seltext_m = 'Plant Name'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ZZONE'.
wa_fieldcat-seltext_m = 'Zone'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VKORG'.
wa_fieldcat-seltext_m = 'Sales Orgnization'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VTEXT'.
wa_fieldcat-seltext_m = 'Sales Orgnization Description'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VTWEG'.
wa_fieldcat-seltext_m = 'Dist Channel'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VTEXT_CH'.
wa_fieldcat-seltext_m = 'Distri.Channel Description'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TM_NAME'.
wa_fieldcat-seltext_m = 'Agent Disc.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ZM_NAME'.
wa_fieldcat-seltext_m = 'Zonal Manager Disc.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'GSTIN'.
wa_fieldcat-seltext_m = 'Company GSTNO'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'KUNAG'.
wa_fieldcat-seltext_m = 'Customer Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ZKUNAG'.
wa_fieldcat-seltext_m = 'Customer Code(Without Leading Zero)'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_m = 'Customer Name'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'STATENAME'.
wa_fieldcat-seltext_m = 'Customer State Name - Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'STCD3'.
wa_fieldcat-seltext_m = 'Customer GSTNO'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ORT01'.
wa_fieldcat-seltext_m = 'City'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BZTXT'.
wa_fieldcat-seltext_m = 'Territory Name'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BUPLA'.
wa_fieldcat-seltext_m = 'Business Place'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'NAME'.
wa_fieldcat-seltext_m = 'Business Place Name'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SHIP_P'.
wa_fieldcat-seltext_m = 'Consignee Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SHIP_PNAME'.
wa_fieldcat-seltext_m = 'Consignee Name'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CON_STATE'.
wa_fieldcat-seltext_m = 'Consginee State Name - Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CON_GSTNO'.
wa_fieldcat-seltext_m = 'Consignee GSTNO'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VBELN'.
wa_fieldcat-seltext_m = 'Invoice No.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VGBEL'.
wa_fieldcat-seltext_m = 'Reverse Ref.Doc.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'RDATE'.
wa_fieldcat-seltext_m = 'Rev.Ref.Doc.Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SFAKN'.
wa_fieldcat-seltext_m = 'Cancelled Ref.Doc.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'POSNR'.
wa_fieldcat-seltext_m = 'Item'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 7.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FKDAT'.
wa_fieldcat-seltext_m = 'Invoice Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'EWB_NO'.
wa_fieldcat-seltext_m = 'Eway Bill No.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 12.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'EWB_DATE'.
wa_fieldcat-seltext_m = 'Eway Bill Creation Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 12.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'EWB_TIME'.
wa_fieldcat-seltext_m = 'Eway Bill Creation Time'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 12.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FKART'.
wa_fieldcat-seltext_m = 'Type'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FKART_TEXT'.
wa_fieldcat-seltext_m = 'Billing Type Text'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_m = 'Material'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ARKTX'.
wa_fieldcat-seltext_m = 'Material Description'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 25.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'WRKST'.
wa_fieldcat-seltext_m = 'Standard Description'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 25.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'MATKL'.
wa_fieldcat-seltext_m = 'Material Group'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEZEI'.
wa_fieldcat-seltext_m = 'Brand Group'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEZEI1'.
wa_fieldcat-seltext_m = 'Material Group1'.
wa_fieldcat-col_pos = lv_cnt.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEZEI2'.
wa_fieldcat-seltext_m = 'Material Group3'.
wa_fieldcat-col_pos = lv_cnt.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEZEI3'.
wa_fieldcat-seltext_m = 'Material Group4'.
wa_fieldcat-col_pos = lv_cnt.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEZEI4'.
wa_fieldcat-seltext_m = 'Material Group5'.
wa_fieldcat-col_pos = lv_cnt.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'STEUC'.
wa_fieldcat-seltext_m = 'HSN Code'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'WAERK'.
wa_fieldcat-seltext_m = 'Curr.'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FKIMG'.
wa_fieldcat-seltext_m = 'Qty'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 25.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VRKME'.
wa_fieldcat-seltext_m = 'Unit'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'RATE'.
wa_fieldcat-seltext_m = 'Rate'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TAX_KAWRT'.
wa_fieldcat-seltext_m = 'Taxable Value'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TRADE_DISC'.
wa_fieldcat-seltext_m = 'Trade Discount'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SPL_DISC'.
wa_fieldcat-seltext_m = 'Special Discount'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SP_CD'.
wa_fieldcat-seltext_m = 'Special CD'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FINAL_TAX'.
wa_fieldcat-seltext_m = 'Final Taxable Value'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
*lv_cnt = lv_cnt + 1.
*wa_fieldcat-fieldname = 'VAT_PER'.
*wa_fieldcat-seltext_m = 'VAT %'.
*wa_fieldcat-col_pos = lv_cnt.
*wa_fieldcat-outputlen = 5.
*APPEND wa_fieldcat to it_fieldcat.
*clear : wa_fieldcat.
*
*lv_cnt = lv_cnt + 1.
*wa_fieldcat-fieldname = 'VAT_AMT'.
*wa_fieldcat-seltext_m = 'VAT Amount'.
*wa_fieldcat-col_pos = lv_cnt.
*wa_fieldcat-outputlen = 20.
*APPEND wa_fieldcat to it_fieldcat.
*clear : wa_fieldcat.
*
*lv_cnt = lv_cnt + 1.
*wa_fieldcat-fieldname = 'AVAT_PER'.
*wa_fieldcat-seltext_m = 'Add.VAT %'.
*wa_fieldcat-col_pos = lv_cnt.
*wa_fieldcat-outputlen = 5.
*APPEND wa_fieldcat to it_fieldcat.
*clear : wa_fieldcat.
*
*lv_cnt = lv_cnt + 1.
*wa_fieldcat-fieldname = 'AVAT_AMT'.
*wa_fieldcat-seltext_m = 'Add.VAT Amount'.
*wa_fieldcat-col_pos = lv_cnt.
*wa_fieldcat-outputlen = 20.
*APPEND wa_fieldcat to it_fieldcat.
*clear : wa_fieldcat.
*
*lv_cnt = lv_cnt + 1.
*wa_fieldcat-fieldname = 'TOTAL_VAT'.
*wa_fieldcat-seltext_m = 'Total VAT+Add.VAT'.
*wa_fieldcat-col_pos = lv_cnt.
*wa_fieldcat-outputlen = 20.
*APPEND wa_fieldcat to it_fieldcat.
*clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FRTVAL'.
wa_fieldcat-seltext_m = 'Freight Value'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TCSVAL'.
wa_fieldcat-seltext_m = 'TCS Value'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BEFORE_GST'.
wa_fieldcat-seltext_m = 'Before GST Amt'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'IGST_KBETR'.
wa_fieldcat-seltext_m = 'IGST (%)'.
wa_fieldcat-col_pos = lv_cnt..
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'IGST_KAWRT'.
wa_fieldcat-seltext_m = 'IGST Amt'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SGST_KBETR'.
wa_fieldcat-seltext_m = 'SGST (%)'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'SGST_KAWRT'.
wa_fieldcat-seltext_m = 'SGST Amt'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CGST_KBETR'.
wa_fieldcat-seltext_m = 'CGST (%)'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CGST_KAWRT'.
wa_fieldcat-seltext_m = 'CGST Amt'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CESS_KAWRT'.
wa_fieldcat-seltext_m = 'Cess'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 20.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'DIFF'.
wa_fieldcat-seltext_m = 'Rounding Off'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'NETWR_VAL'.
wa_fieldcat-seltext_m = 'Net Value'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'CHARG'.
wa_fieldcat-seltext_m = 'Batch'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'HSDAT'.
wa_fieldcat-seltext_m = 'Manuf. Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'VFDAT'.
wa_fieldcat-seltext_m = 'Mat.Expiry Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'FKIMG1'.
wa_fieldcat-seltext_m = 'Qty-Case'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ZBEZEI'.
wa_fieldcat-seltext_m = 'Other Reason'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BSTNK'.
wa_fieldcat-seltext_m = 'PO'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BSTDK'.
wa_fieldcat-seltext_m = 'PO Date'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 15.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'RMARK'.
wa_fieldcat-seltext_m = 'Remark'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 50.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'INSTRU'.
wa_fieldcat-seltext_m = 'Instruction'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 50.
APPEND wa_fieldcat to it_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TERM'.
wa_fieldcat-seltext_m = 'Payment Terms'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat to it_fieldcat.
clear : wa_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'TERM_DESC'.
wa_fieldcat-seltext_m = 'Pay.Terms Description'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 30.
APPEND wa_fieldcat to it_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'ZSUB_BRNCH'.
wa_fieldcat-seltext_m = 'Sub Region'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 5.
APPEND wa_fieldcat to it_fieldcat.
lv_cnt = lv_cnt + 1.
wa_fieldcat-fieldname = 'BZIRK'.
wa_fieldcat-seltext_m = 'Sales District'.
wa_fieldcat-col_pos = lv_cnt.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat to it_fieldcat.
wa_layout-colwidth_optimize = 'X'.
clear : wa_fieldcat.
endform. " FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form display_alv .
* if p_chk = 'X'.
* if p_bschl IS NOT INITIAL.
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* I_CALLBACK_PROGRAM = SY-REPID
* " I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE_SPLIT'
* " i_callback_user_command = 'UCOMM_FB03' "'USER_COMMAND'
* " I_DEFAULT = 'X'
* i_save = 'A'
* IT_FIELDCAT = IT_FIELDCAT[]
** IT_SORT = IT_SORT "CAN SUM SUB TOTAL
* TABLES
* T_OUTTAB = IT_data1.
* else.
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
* I_CALLBACK_PROGRAM = SY-REPID
* " I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE_SPLIT'
* " i_callback_user_command = 'UCOMM_FB03' "'USER_COMMAND'
* " I_DEFAULT = 'X'
* i_save = 'A'
* IT_FIELDCAT = IT_FIELDCAT[]
** IT_SORT = IT_SORT "CAN SUM SUB TOTAL
* TABLES
* T_OUTTAB = IT_data.
* endif.
* else.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
" I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE_SPLIT'
" i_callback_user_command = 'UCOMM_FB03' "'USER_COMMAND'
" I_DEFAULT = 'X'
i_save = 'A'
IS_LAYOUT = WA_LAYOUT
IS_VARIANT = G_VARIANT
IT_FIELDCAT = IT_FIELDCAT[]
* IT_SORT = IT_SORT "CAN SUM SUB TOTAL
TABLES
T_OUTTAB = IT_data.
* endif.
endform. " DISPLAY_ALV
FORM F4_FOR_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = G_VARIANT
I_SAVE = G_SAVE
IMPORTING
E_EXIT = G_EXIT
ES_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM. " F4_FOR_VARIANT
*&---------------------------------------------------------------------*
*& Form CHECK_AUTHORITY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form check_authority .
IF P_BUKRS IS NOT INITIAL.
SELECT BUKRS FROM T001 INTO CORRESPONDING FIELDS OF TABLE IT_COM
WHERE KTOPL EQ '9000' AND BUKRS IN P_BUKRS.
LOOP AT IT_COM INTO WA_COM.
AUTHORITY-CHECK OBJECT 'ZSD_BUKRS'
ID 'ACTVT' FIELD '03'
ID 'BUKRS' FIELD WA_COM-BUKRS.
IF SY-SUBRC <> 0.
MESSAGE 'No Authorization of Entered Company Code' TYPE 'S' DISPLAY
LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDLOOP.
ENDIF.
IF P_plant IS INITIAL.
MESSAGE 'Kindly specify the Plants requried' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
IF SY-SUBRC EQ 0.
P_plant-SIGN = 'I'.
P_plant-OPTION = 'EQ'.
P_plant-LOW = W_T001W1-WERKS.
APPEND P_plant.
ENDIF.
ENDLOOP.
IF P_plant[] IS INITIAL.
MESSAGE 'You are not Authoised for Any of Selected Plant ' TYPE 'S' DISPLAY
LIKE 'E' .
LEAVE LIST-PROCESSING.
ENDIF.
IF P_VTWEG[] IS INITIAL.
MESSAGE 'No Distribution Channel Specified' TYPE 'S' DISPLAY LIKE 'E' .
LEAVE LIST-PROCESSING.
ENDIF.
IF SY-SUBRC EQ 0.
P_VTWEG-SIGN = 'I'.
P_VTWEG-OPTION = 'EQ'.
P_VTWEG-LOW = W_TVTWT1-VTWEG.
APPEND P_VTWEG.
ENDIF.
ENDLOOP.
IF P_VTWEG[] IS INITIAL.
MESSAGE 'No Authorised Distribution channel found ' TYPE 'S' DISPLAY LIKE 'E' .
LEAVE LIST-PROCESSING.
ENDIF.
endform. " CHECK_AUTHORITY
FORM INITIALIZE_VARIANT.
G_SAVE = 'A'.
CLEAR G_VARIANT.
G_VARIANT-REPORT = REPNAME.
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
LAYOUT-GET_SELINFOS = 'X'.
LAYOUT-GROUP_CHANGE_EDIT = 'X'.
* LAYout_lvc-get_selinfos = 'X'.
* Layout_lvc-group_change_edit = 'X'.
ALV_PRINT-NO_PRINT_SELINFOS = 'X'.
ALV_PRINT-NO_COVERPAGE = 'X'.
ALV_PRINT-NO_PRINT_LISTINFOS = 'X'.
ALV_DETAIL_FUNC = 'REUSE_ALV_LIST_DISPLAY'.
ENDFORM. " INITIALIZE_VARIANT
FORM PAI_OF_SELECTION_SCREEN.
IF NOT P_VARI IS INITIAL.
MOVE G_VARIANT TO GX_VARIANT.
MOVE P_VARI TO GX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT.
G_VARIANT = GX_VARIANT.
ELSE.
PERFORM INITIALIZE_VARIANT.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN