You are on page 1of 61

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

*& Include ZMMPURCHASE_REGISTER_FORM


*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form VALIDATE_BUKRS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_SO_BUKRS_LOW text
*----------------------------------------------------------------------*
FORM validate_bukrs USING p_so_bukrs_low TYPE bukrs.
DATA lv_bukrs TYPE bukrs.
SELECT SINGLE bukrs FROM t001
INTO lv_bukrs
WHERE bukrs EQ p_so_bukrs_low.
IF sy-subrc NE 0.
MESSAGE e165(f5) WITH p_so_bukrs_low.
EXIT.
ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data .

BREAK pwcabap.
IF so_kalsk[] IS NOT INITIAL.
SELECT lifnr kalsk
FROM lfm1
INTO TABLE gt_lfm1
WHERE kalsk IN so_kalsk[].
IF sy-subrc EQ 0.
SORT gt_lfm1.
DELETE ADJACENT DUPLICATES FROM gt_lfm1.
LOOP AT gt_lfm1 ASSIGNING <fs_lfm1>.
gs_lifnr-sign = 'I'.
gs_lifnr-option = 'EQ'.
gs_lifnr-low = <fs_lfm1>.
APPEND gs_lifnr TO gr_lifnr.
CLEAR gs_lifnr.
ENDLOOP.
ENDIF.
ENDIF.

IF so_regio[] IS NOT INITIAL.


SELECT lifnr regio
FROM lfa1
INTO TABLE gt_lfa11
WHERE regio IN so_regio[].
IF sy-subrc EQ 0.
SORT gt_lfa11.
DELETE ADJACENT DUPLICATES FROM gt_lfa11.
LOOP AT gt_lfa11 ASSIGNING <fs_lfa11>.
gs_lifnr-sign = 'I'.
gs_lifnr-option = 'EQ'.
gs_lifnr-low = <fs_lfa11>.
APPEND gs_lifnr TO gr_lifnr.
CLEAR gs_lifnr.
ENDLOOP.
ENDIF.
SORT gr_lifnr.
DELETE ADJACENT DUPLICATES FROM gr_lifnr.
ENDIF.
BREAK pwcabap.
IF gt_lfa11[] IS NOT INITIAL.
SELECT bland bezei
FROM t005u
INTO TABLE gt_t005u
FOR ALL ENTRIES IN gt_lfa11
WHERE spras = 'E'
AND land1 = 'IN'
AND bland = gt_lfa11-regio.
ENDIF.

SELECT ebeln
mandt_i
ebeln_i
ebelp_i
bukrs
bstyp
bsart
loekz
aedat
lifnr
zterm
ekorg
ekgrp
waers
wkurs
bedat
reswk
inco1
knumv
kalsm
exnum
aedat_i
matnr_i
bukrs_i
werks_i
ktmng_i
menge_i
meins_i
netpr_i
peinh_i
netwr_i
mwskz_i
pstyp_i
knttp_i
wepos_i
weunb_i
repos_i
lmein_i
**Begin of ADD Ananth M 14/09/2017.
packno_i
**End of ADD Ananth M 14/09/2017.
attyp_i "Maheb
FROM wb2_v_ekko_ekpo2
INTO CORRESPONDING FIELDS OF TABLE gt_ekko_ekpo
WHERE bukrs IN so_bukrs[]
AND ebeln IN so_ebeln[] " Added by chiru on 12-04-18 for
corrections
AND bsart IN so_bsart[] " Added by chiru on 12-04-18 for
corrections
AND werks_i IN so_werks[]
AND werks_i IN so_plant[]
AND lifnr IN so_lifnr[]
AND reswk IN so_reswk[]
AND matnr_i IN so_matnr[]
AND bedat IN so_budat[]
AND pstyp_i IN so_pstyp[]
AND bstyp EQ 'F'
.

*** Added on 09.04.2018


REFRESH gt_ekko_ekpo_gst_temp[].
gt_ekko_ekpo_gst_temp[] = gt_ekko_ekpo[].
SORT gt_ekko_ekpo_gst_temp BY bukrs.
DELETE ADJACENT DUPLICATES FROM gt_ekko_ekpo_gst_temp COMPARING bukrs.
IF gt_ekko_ekpo_gst_temp IS NOT INITIAL.
SELECT werks
j_1bbranch
FROM t001w
INTO TABLE it_t001w
FOR ALL ENTRIES IN gt_ekko_ekpo
WHERE werks = gt_ekko_ekpo-werks_i.
* IF sy-subrc = 0.
** SORT it_T001W by
* ENDIF.
ENDIF.

**Begin of ADD Ananth M 11/09/2017.


**Below Select query added for GST
**Select J_1BBRANCH
**** REFRESH gt_ekko_ekpo_gst_temp[].
**** gt_ekko_ekpo_gst_temp[] = gt_ekko_ekpo[].
**** SORT gt_ekko_ekpo_gst_temp BY bukrs.
**** DELETE ADJACENT DUPLICATES FROM gt_ekko_ekpo_gst_temp COMPARING bukrs.
**** IF gt_ekko_ekpo_gst_temp IS NOT INITIAL.
**** SELECT bukrs
**** branch
**** gstin
**** FROM j_1bbranch
**** INTO TABLE gt_j_1bbrancv
**** FOR ALL ENTRIES IN gt_ekko_ekpo_gst_temp
**** WHERE bukrs = gt_ekko_ekpo_gst_temp-bukrs.
**** IF sy-subrc EQ 0.
**** SORT gt_j_1bbrancv BY bukrs.
**** ENDIF.
**** ENDIF.
*BREAK-POINT.
IF gt_ekko_ekpo_gst_temp IS NOT INITIAL.
SELECT bukrs
branch
gstin
FROM j_1bbranch
INTO TABLE gt_j_1bbrancv
FOR ALL ENTRIES IN it_t001w
WHERE branch = it_t001w-j_1bbranch.
IF sy-subrc EQ 0.
SORT gt_j_1bbrancv BY bukrs.
ENDIF.
ENDIF.

**Select VBRP
IF gt_ekko_ekpo IS NOT INITIAL.
SELECT fkimg
aubel
aupos
auref
matnr
FROM vbrp
INTO TABLE gt_vbrp_gst
FOR ALL ENTRIES IN gt_ekko_ekpo
WHERE aubel = gt_ekko_ekpo-ebeln_i
* AND aupos = gt_ekko_ekpo-ebelp_i
AND matnr = gt_ekko_ekpo-matnr_i.

ENDIF.
IF sy-subrc EQ 0.
SORT gt_vbrp_gst BY aubel matnr."aupos
ENDIF.

**Select LFA1
**For Vendor Identification, GSTIN NO. OF Vendor
REFRESH gt_ekko_ekpo_gst_temp[].
gt_ekko_ekpo_gst_temp[] = gt_ekko_ekpo[].
SORT gt_ekko_ekpo_gst_temp BY lifnr.
DELETE ADJACENT DUPLICATES FROM gt_ekko_ekpo_gst_temp COMPARING lifnr.
IF gt_ekko_ekpo_gst_temp IS NOT INITIAL.
SELECT lifnr
land1
stcd3
ort01
regio
ven_class
FROM lfa1
INTO TABLE gtt_lfa11
FOR ALL ENTRIES IN gt_ekko_ekpo_gst_temp
WHERE lifnr = gt_ekko_ekpo_gst_temp-lifnr.
IF sy-subrc EQ 0.
SORT gtt_lfa11 BY lifnr.
ENDIF.
ENDIF.

*** Select EKBE


IF gt_ekko_ekpo IS NOT INITIAL.
SELECT ebeln
ebelp
zekkn
vgabe
gjahr
belnr
buzei
bewtp "Maheb
budat
menge
dmbtr
shkzg
xblnr
matnr
werks
mwskz "Maheb
FROM ekbe
INTO TABLE gtt_ekbe
FOR ALL ENTRIES IN gt_ekko_ekpo
WHERE ebeln = gt_ekko_ekpo-ebeln_i
AND ebelp = gt_ekko_ekpo-ebelp_i.
* AND vgabe IN ('1', '2').

**Select T001W
SELECT werks
name1
ort01
regio
FROM t001w
INTO TABLE gt_t001w_gst
FOR ALL ENTRIES IN gt_ekko_ekpo
WHERE werks = gt_ekko_ekpo-werks_i.
SORT gt_t001w_gst BY werks.

*Start of addition by sankeerthana


IF gt_t001w_gst IS NOT INITIAL.
SELECT bland
bezei
FROM t005u
INTO TABLE it_t005u
FOR ALL ENTRIES IN gt_t001w_gst
WHERE spras = 'E'
AND land1 = 'IN'
AND bland = gt_t001w_gst-regio.
ENDIF.

SORT it_t005u BY bland.


*End of changes by sankeerthana
***Select BSEG
SELECT bukrs
belnr
gjahr
buzid " added bby chiru
koart
shkzg " navya
mwskz
dmbtr
wrbtr
hkont " added by chiru on 12-04-18
kunnr
lifnr
ebeln
ebelp
zekkn
prctr
awkey
hsn_sac
FROM bseg
INTO TABLE gt_bseg
FOR ALL ENTRIES IN gt_ekko_ekpo
WHERE ebeln = gt_ekko_ekpo-ebeln_i
AND ebelp = gt_ekko_ekpo-ebelp_i
AND mwskz IN s_mwskz
AND prctr IN so_prctr.

**CHIRU ** ON 14-04-2018

SELECT bukrs
belnr
gjahr
buzid " added by chiru
koart
shkzg " navya
mwskz
dmbtr
wrbtr
hkont " added by chiru
kunnr
lifnr
ebeln
ebelp
zekkn
prctr
awkey
hsn_sac
FROM bseg
INTO TABLE gt_bseg1 " MODIFIED SELECT select kept for
all entires insetad of where only.
FOR ALL ENTRIES IN gt_bseg
WHERE belnr = gt_bseg-belnr
AND gjahr = gt_bseg-gjahr
AND bukrs = gt_bseg-bukrs
AND koart = 'K'
AND shkzg = 'H'.

*chiru on 13-04-18*
ENDIF.

LOOP AT gtt_ekbe INTO gss_ekbe.


CONCATENATE gss_ekbe-belnr gss_ekbe-gjahr INTO gss_ekbe-awkey_bkpf.
MODIFY gtt_ekbe FROM gss_ekbe TRANSPORTING awkey_bkpf ."gjahr1.
ENDLOOP.
CLEAR:gss_ekbe.
gtt_ekbe_2[] = gtt_ekbe[].
DELETE gtt_ekbe_2 WHERE vgabe NE '2'. " Deleting History table if not an invoice

**SELECT mkpf.
IF gtt_ekbe IS NOT INITIAL.
SELECT mblnr
mjahr
vgart
bldat
xblnr
frbnr
FROM mkpf
INTO TABLE gt_mkpf
FOR ALL ENTRIES IN gtt_ekbe
WHERE mblnr = gtt_ekbe-belnr
AND mjahr = gtt_ekbe-gjahr.

***Select BKPF
SELECT bukrs
belnr
gjahr
bldat
budat
xblnr
dbblg
stblg
stjah
awkey
xblnr_alt
awref_rev "Added by navya on 09.04.2018
xreversing "Added by chiru on 12.04.2018
xreversed "Added by navya on 10.04.2018
knumv
FROM bkpf
INTO TABLE gt_bkpf
FOR ALL ENTRIES IN gtt_ekbe
WHERE awkey = gtt_ekbe-awkey_bkpf
AND budat IN s_budat.
ENDIF.

**Select MSEG.
IF gtt_ekbe IS NOT INITIAL.
SELECT mblnr
mjahr
zeile
bwart
matnr
werks
charg
shkzg "Added by chiru on 12-04-18
ebeln
ebelp
lfbja
lfbnr
lfpos
sgtxt
grund
pprctr "Maheb
budat_mkpf
FROM mseg
INTO TABLE gtt_mseg
FOR ALL ENTRIES IN gtt_ekbe
* WHERE mblnr = gt_mkpf-mblnr
* AND mjahr = gt_mkpf-mjahr.
WHERE mblnr = gtt_ekbe-belnr
AND mjahr = gtt_ekbe-gjahr
AND charg = gtt_ekbe-charg
AND ebeln = gtt_ekbe-ebeln
AND ebelp = gtt_ekbe-ebelp
AND werks = gtt_ekbe-werks.
IF sy-subrc EQ 0.
SORT gtt_mseg BY mblnr mjahr charg ebeln ebelp werks.
ENDIF.
ENDIF.

IF sy-subrc EQ 0.
SORT gt_bkpf BY awkey.
ENDIF.
* BREAK-POINT.
***Select RBKP
*Header invoice
IF gtt_ekbe IS NOT INITIAL.
SELECT belnr
gjahr
blart
budat
vgart
xblnr
lifnr
rmwwr
stblg
ivtyp
sgtxt
FROM rbkp
INTO TABLE gtt_rbkp
FOR ALL ENTRIES IN gtt_ekbe
WHERE belnr = gtt_ekbe-belnr
AND gjahr = gtt_ekbe-gjahr
AND budat IN s_mirdat.
* AND vgart IN ( '1' , '2').
ENDIF.

**Select LFA1
REFRESH gtt_rbkp_gst_temp[].
gtt_rbkp_gst_temp[] = gtt_rbkp[].
SORT gtt_rbkp_gst_temp BY lifnr.
DELETE ADJACENT DUPLICATES FROM gtt_rbkp_gst_temp COMPARING lifnr.
IF gtt_rbkp_gst_temp IS NOT INITIAL.
SELECT lifnr
land1
stcd3
ort01
regio
ven_class
FROM lfa1
INTO TABLE gtt_lfa1
FOR ALL ENTRIES IN gtt_rbkp_gst_temp
WHERE lifnr = gtt_rbkp_gst_temp-lifnr.
IF sy-subrc EQ 0.
SORT gtt_lfa1 BY lifnr.
ENDIF.
ENDIF.

*Start of changes by sankeerthana

IF gtt_lfa1 IS NOT INITIAL.


SELECT bland
bezei
FROM t005u
APPENDING TABLE it_t005u1
FOR ALL ENTRIES IN gtt_lfa1
WHERE spras = 'E'
AND land1 = gtt_lfa1-land1 "'IN'
AND bland = gtt_lfa1-regio.
ENDIF.

SORT it_t005u1 BY bland.


*End of chnages by sankeerthana
**Select RSEG
**Item invoice
IF gtt_rbkp IS NOT INITIAL.
SELECT belnr
gjahr
buzei
ebeln
ebelp
zekkn
matnr
werks
mwskz
menge "Maheb
bklas
packno
introw
FROM rseg
INTO CORRESPONDING FIELDS OF TABLE gtt_rseg
FOR ALL ENTRIES IN gtt_rbkp
WHERE belnr = gtt_rbkp-belnr
AND gjahr = gtt_rbkp-gjahr.

ENDIF.

***Select MARC
REFRESH gt_ekko_ekpo_gst_temp[].
gt_ekko_ekpo_gst_temp[] = gt_ekko_ekpo[].
SORT gt_ekko_ekpo_gst_temp BY matnr_i werks_i.
DELETE ADJACENT DUPLICATES FROM gt_ekko_ekpo_gst_temp COMPARING matnr_i werks_i.
IF gtt_rseg[] IS NOT INITIAL.
SELECT matnr
werks
prctr
steuc
FROM marc
INTO TABLE gt_marc
*** FOR ALL ENTRIES IN GTT_RSEG
*** WHERE MATNR = GTT_RSEG-MATNR
*** AND WERKS = GTT_RSEG-WERKS
FOR ALL ENTRIES IN gt_ekko_ekpo_gst_temp
WHERE matnr = gt_ekko_ekpo_gst_temp-matnr_i
AND werks = gt_ekko_ekpo_gst_temp-werks_i
AND steuc IN s_steuc.
IF sy-subrc EQ 0.
SORT gt_marc BY matnr werks.
ENDIF.

***Select T007S
SELECT spras
kalsm
mwskz
text1
FROM t007s
INTO TABLE gt_t007s_gst
FOR ALL ENTRIES IN gtt_rseg
WHERE spras = 'EN'" sy-langu
AND kalsm = 'ZTAXIN'
AND mwskz = gtt_rseg-mwskz.
IF sy-subrc EQ 0.
SORT gt_t007s_gst BY mwskz.
ENDIF.
ENDIF.

**Select ESLL
REFRESH gt_ekko_ekpo_gst_temp[].
gt_ekko_ekpo_gst_temp[] = gt_ekko_ekpo[].
SORT gt_ekko_ekpo_gst_temp BY packno_i.
DELETE ADJACENT DUPLICATES FROM gt_ekko_ekpo_gst_temp COMPARING packno_i.
SELECT packno
introw
srvpos
PACKAGE
sub_packno
ktext1 "Maheb
FROM esll
INTO TABLE gt_esll
FOR ALL ENTRIES IN gt_ekko_ekpo_gst_temp
WHERE packno = gt_ekko_ekpo_gst_temp-packno_i.

REFRESH:gt_esll_temp.
gt_esll_temp = gt_esll.

**Select ESLL
IF gt_esll IS NOT INITIAL.
SELECT packno
introw
srvpos
PACKAGE
sub_packno
ktext1 "Maheb
FROM esll
INTO TABLE gt_esll_temp
FOR ALL ENTRIES IN gt_esll
WHERE packno = gt_esll-sub_packno.
* AND introw = '0000000002'.
ENDIF.

**Select ASMD
IF gt_esll_temp IS NOT INITIAL.
SELECT asnum
matkl
astyp
taxtariffcode
FROM asmd
INTO TABLE gt_asmd
FOR ALL ENTRIES IN gt_esll_temp
WHERE asnum = gt_esll_temp-srvpos.
IF sy-subrc EQ 0.
SORT gt_asmd BY asnum.
ENDIF.
ENDIF.

**Select ASMDT
IF gt_asmd IS NOT INITIAL.
SELECT asnum
asktx
FROM asmdt
INTO TABLE gt_asmdt
FOR ALL ENTRIES IN gt_asmd
WHERE asnum = gt_asmd-asnum.
IF sy-subrc EQ 0.
SORT gt_asmdt BY asnum.
ENDIF.
ENDIF.

***Select MBEW
IF gt_marc IS NOT INITIAL.
SELECT matnr
bwkey
bklas
FROM mbew
INTO TABLE gt_mbew
FOR ALL ENTRIES IN gt_marc
WHERE matnr = gt_marc-matnr.
IF sy-subrc EQ 0.
SORT gt_mbew BY matnr.
ENDIF.

***Select MARD
* IF gt_ekko_ekpo IS NOT INITIAL.
* REFRESH gt_ekko_ekpo_gst_temp[].
* gt_ekko_ekpo_gst_temp[] = gt_ekko_ekpo[].
* SORT gt_ekko_ekpo_gst_temp BY matnr_i werks_i.
* DELETE ADJACENT DUPLICATES FROM gt_ekko_ekpo_gst_temp COMPARING matnr_i werks_i.
* IF gt_ekko_ekpo_gst_temp IS NOT INITIAL.
SELECT matnr
werks
lgort
FROM mard
INTO TABLE gt_mard
FOR ALL ENTRIES IN gt_marc
WHERE matnr = gt_marc-matnr
AND werks = gt_marc-werks.
* AND werks = gt_ekko_ekpo-lgort_i.
IF sy-subrc EQ 0.
SORT gt_mard BY matnr werks.
ENDIF.
ENDIF.

***Added by Maheb
IF gt_ekko_ekpo IS NOT INITIAL.
SELECT matnr matkl FROM mara INTO TABLE gt_mara FOR ALL ENTRIES IN gt_ekko_ekpo
WHERE matnr = gt_ekko_ekpo-matnr_i.
ENDIF.
***Ended by Maheb

***Select T010
REFRESH gt_mbew_temp[].
gt_mbew_temp[] = gt_mbew[].
SORT gt_mbew_temp BY bklas.
DELETE ADJACENT DUPLICATES FROM gt_mbew_temp COMPARING bklas.
IF gt_mbew_temp IS NOT INITIAL.
SELECT ktopl
ktosl
bklas
konts
FROM t030
INTO TABLE gt_t030
FOR ALL ENTRIES IN gt_mbew
WHERE ktopl = '1000'
AND ktosl = 'BSX'
AND bklas = gt_mbew-bklas.
IF sy-subrc EQ 0.
SORT gt_t030 BY bklas."ktopl ktosl bklas.
ENDIF.
ENDIF.

* REFRESH gt_ekko_ekpo_gst[].
* gt_ekko_ekpo_gst[] = gt_ekko_ekpo[] .
REFRESH gt_bkpf_temp .
gt_bkpf_temp = gt_bkpf.
CLEAR:gs_bkpf_temp.
SORT gt_bkpf_temp BY belnr gjahr.
SORT gt_bseg BY ebeln ebelp. "bukrs belnr gjahr."
SORT gtt_ekbe BY ebeln ebelp.
SORT gt_esll BY packno.
SORT gtt_rbkp BY belnr ."xblnr."gjahr.
SORT gtt_rseg BY belnr gjahr.
SORT gt_mkpf BY mblnr mjahr.
**End of ADD Ananth M 11/09/2017.

IF gt_lfa11[] IS INITIAL.
SELECT lifnr land1 regio j_1ilstno
FROM lfa1
INTO TABLE gt_lfa11
FOR ALL ENTRIES IN gt_ekko_ekpo
WHERE lifnr = gt_ekko_ekpo-lifnr.
IF gt_lfa11[] IS NOT INITIAL.
SELECT bland bezei
FROM t005u
INTO TABLE gt_t005u
FOR ALL ENTRIES IN gt_lfa11
WHERE spras = 'E'
AND land1 = gt_lfa11-land1 "'IN'
AND bland = gt_lfa11-regio.
ENDIF.
ENDIF.
*** IF sy-subrc EQ 0.
IF gr_lifnr IS NOT INITIAL.
SORT gt_ekko_ekpo BY lifnr.
DELETE gt_ekko_ekpo WHERE lifnr NOT IN gr_lifnr.
ENDIF.
REFRESH gt_temp.
SORT gt_ekko_ekpo BY ebeln ebeln_i ebelp_i.
gt_temp = gt_ekko_ekpo.
SORT gt_temp BY ebeln.
DELETE ADJACENT DUPLICATES FROM gt_temp COMPARING ebeln.
IF gt_temp IS NOT INITIAL.
SELECT ebeln
bukrs
lifnr
dppct
dpamt
dpdat
zzlicty
zzlicenseno FROM ekko
INTO TABLE gt_ekko
FOR ALL ENTRIES IN gt_temp
WHERE ebeln EQ gt_temp-ebeln
AND bukrs EQ gt_temp-bukrs
AND lifnr EQ gt_temp-lifnr.
* AND bedat IN so_budat[]
* AND reswk IN so_reswk[].

IF sy-subrc EQ 0.
SORT gt_ekko BY ebeln.

* SELECT ebeln
* ebelp
* matnr
* bukrs
* werks
* menge
* meins
* netpr
* peinh
* netwr
* mwskz
* pstyp
* knttp
* lmein
* FROM ekpo
* INTO CORRESPONDING FIELDS OF TABLE gt_ekpo
* FOR ALL ENTRIES IN gt_ekko
* WHERE ebeln EQ gt_ekko-ebeln
* AND pstyp IN so_pstyp[].
* IF sy-subrc EQ 0.
* SORT gt_ekpo BY ebeln ebelp.
* LOOP AT gt_ekpo ASSIGNING <fs_ekpo>.
* UNASSIGN <fs_ekko>.
* READ TABLE gt_ekko ASSIGNING <fs_ekko> WITH KEY ebeln = <fs_ekpo>-ebeln
* BINARY SEARCH.
* IF sy-subrc EQ 0.
* <fs_ekpo>-bstyp = <fs_ekko>-bstyp .
* <fs_ekpo>-bsart = <fs_ekko>-bsart .
* <fs_ekpo>-aedat = <fs_ekko>-aedat .
* <fs_ekpo>-lifnr = <fs_ekko>-lifnr .
* <fs_ekpo>-zterm = <fs_ekko>-zterm .
* <fs_ekpo>-ekgrp = <fs_ekko>-ekgrp .
* <fs_ekpo>-waers = <fs_ekko>-waers .
* <fs_ekpo>-wkurs = <fs_ekko>-wkurs .
* <fs_ekpo>-bedat = <fs_ekko>-bedat .
* <fs_ekpo>-inco1 = <fs_ekko>-inco1 .
* <fs_ekpo>-knumv = <fs_ekko>-knumv .
* <fs_ekpo>-dppct = <fs_ekko>-dppct .
* <fs_ekpo>-dpamt = <fs_ekko>-dpamt .
* <fs_ekpo>-dpdat = <fs_ekko>-dpdat .
* <fs_ekpo>-zzlicty = <fs_ekko>-zzlicty .
* <fs_ekpo>-zzlicenseno = <fs_ekko>-zzlicenseno.
* <fs_ekpo>-kposn = <fs_ekpo>-ebelp.
* ENDIF.
*
* gs_matnr-sign = 'I'.
* gs_matnr-option = 'EQ'.
* gs_matnr-low = <fs_ekpo>-ebeln.
* APPEND gs_matnr TO gr_matnr.
* CLEAR gs_matnr.
*
* gs_lifnr-sign = 'I'.
* gs_lifnr-option = 'EQ'.
* gs_lifnr-low = <fs_ekpo>-ebeln.
* APPEND gs_lifnr TO gr_lifnr.
* CLEAR gs_lifnr.
*
* AT END OF ebeln.
* gs_ebeln-sign = 'I'.
* gs_ebeln-option = 'EQ'.
* gs_ebeln-low = <fs_ekpo>-ebeln.
* APPEND gs_ebeln TO gr_ebeln.
* CLEAR gs_ebeln.
* ENDAT.
*
* ENDLOOP.
*
* SORT gr_matnr by low.
* SORT gr_lifnr by low.
* DELETE ADJACENT DUPLICATES FROM gr_matnr COMPARING low.
* DELETE ADJACENT DUPLICATES FROM gr_lifnr COMPARING low.

REFRESH : gt_temp.
* gt_temp = gt_ekko_ekpo.
LOOP AT gt_ekko_ekpo ASSIGNING <fs_ekko_ekpo>.
* APPEND INITIAL LINE TO gt_temp.
<fs_ekko_ekpo>-kposn = <fs_ekko_ekpo>-ebelp_i.
READ TABLE gt_ekko ASSIGNING <fs_ekko> WITH KEY ebeln = <fs_ekko_ekpo>-
ebeln.
IF sy-subrc EQ 0 AND <fs_ekko> IS ASSIGNED.
<fs_ekko_ekpo>-dppct = <fs_ekko>-dppct .
<fs_ekko_ekpo>-dpamt = <fs_ekko>-dpamt .
<fs_ekko_ekpo>-dpdat = <fs_ekko>-dpdat .
<fs_ekko_ekpo>-zzlicty = <fs_ekko>-zzlicty .
<fs_ekko_ekpo>-zzlicenseno = <fs_ekko>-zzlicenseno.
ENDIF.
ENDLOOP.
REFRESH gt_temp.
gt_temp = gt_ekko_ekpo.
SORT gt_temp BY knumv kposn.
DELETE ADJACENT DUPLICATES FROM gt_temp COMPARING knumv kposn.
IF gt_temp IS NOT INITIAL.
SELECT knumv
kposn
kschl
kbetr
waers
kwert
FROM prcd_elements
INTO TABLE gt_prcd
FOR ALL ENTRIES IN gt_temp
WHERE knumv EQ gt_temp-knumv
AND kposn EQ gt_temp-kposn.
* and kstat eq ' '.
IF sy-subrc EQ 0.
SORT gt_prcd BY knumv kposn.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*******
REFRESH : gt_temp.
gt_temp = gt_ekko_ekpo.
SORT gt_temp BY bukrs werks_i.
DELETE ADJACENT DUPLICATES FROM gt_temp COMPARING bukrs werks_i.
IF gt_temp[] IS NOT INITIAL.
SELECT bukrs
werks
j_1icstno " CST No.
j_1ilstno " VAT No.
FROM j_1imocomp
INTO TABLE gt_1imocomp
FOR ALL ENTRIES IN gt_temp
WHERE bukrs = gt_temp-bukrs
AND werks = gt_temp-werks_i.
ENDIF.
*******

LOOP AT gt_ekko_ekpo ASSIGNING <fs_ekko_ekpo>.


IF <fs_ekko_ekpo>-lifnr IS INITIAL.
CONCATENATE 'Z' <fs_ekko_ekpo>-reswk INTO <fs_ekko_ekpo>-lifnr .
ENDIF.
ENDLOOP.

REFRESH : gt_temp.
gt_temp = gt_ekko_ekpo.
SORT gt_temp BY lifnr.
DELETE ADJACENT DUPLICATES FROM gt_temp COMPARING lifnr.
DELETE gt_temp WHERE lifnr IS INITIAL.
IF gt_temp IS NOT INITIAL.
SELECT a~lifnr
a~land1
a~name1
b~landx50 " Added by ananth M 16/10/2017
a~ven_class
a~ort01
a~regio
* b~landx50 " Commented by Ananth M 16/10/2017
FROM lfa1 AS a
INNER JOIN t005t AS b
ON b~spras EQ sy-langu
AND b~land1 EQ a~land1
INTO TABLE gt_lfa1
FOR ALL ENTRIES IN gt_temp
WHERE lifnr EQ gt_temp-lifnr.
IF sy-subrc EQ 0.
SORT gt_lfa1 BY lifnr.
ENDIF.

** added by sankeerthana
LOOP AT gt_ekko_ekpo ASSIGNING <fs_ekko_ekpo>.
CONCATENATE 'Z' <fs_ekko_ekpo>-reswk INTO fs_ekko_ekpo1-lifnr .
APPEND fs_ekko_ekpo1 TO gt_ekko_ekpo_gst_temp1.
CLEAR fs_ekko_ekpo1.
ENDLOOP.

IF gt_ekko_ekpo IS NOT INITIAL.

SELECT a~lifnr
a~land1
a~name1
b~landx50 " Added by ananth M 16/10/2017
a~ven_class
a~ort01
a~regio
* b~landx50 " Commented by Ananth M 16/10/2017
FROM lfa1 AS a
INNER JOIN t005t AS b
ON b~spras EQ sy-langu
AND b~land1 EQ a~land1
INTO TABLE lt_lfa1
FOR ALL ENTRIES IN gt_ekko_ekpo_gst_temp1
WHERE lifnr EQ gt_ekko_ekpo_gst_temp1-lifnr.
* SELECT lifnr
* stcd3
* ort01
* regio
* ven_class
* FROM lfa1
* INTO TABLE Lt_lfa1
* FOR ALL ENTRIES IN gt_ekko_ekpo_gst_temp1
* WHERE lifnr = gt_ekko_ekpo_gst_temp1-LIFNR.
* IF sy-subrc EQ 0.
* SORT gtt_lfa11 BY lifnr.
* ENDIF.
ENDIF.
IF lt_lfa1[] IS NOT INITIAL.
SELECT bland bezei
FROM t005u
APPENDING TABLE gt_t005u
FOR ALL ENTRIES IN lt_lfa1
WHERE spras = sy-langu
AND land1 = lt_lfa1-land1
AND bland = lt_lfa1-regio.
ENDIF.
** ended by sankeerthana
SELECT lifnr
j_1iexcd
j_1iexrn
j_1iexdi
FROM j_1imovend
INTO TABLE gt_movend
FOR ALL ENTRIES IN gt_temp
WHERE lifnr EQ gt_temp-lifnr
.
IF sy-subrc EQ 0.
SORT gt_movend BY lifnr.
ENDIF.
ENDIF.

REFRESH : gt_temp.
gt_temp = gt_ekko_ekpo.
SORT gt_temp BY matnr_i.
DELETE ADJACENT DUPLICATES FROM gt_temp COMPARING matnr_i.
DELETE gt_temp WHERE matnr_i IS INITIAL.
IF gt_temp IS NOT INITIAL.
SELECT matnr spras maktx FROM makt
INTO TABLE gt_makt
FOR ALL ENTRIES IN gt_temp
WHERE matnr EQ gt_temp-matnr_i
AND spras EQ sy-langu
.
IF sy-subrc EQ 0.
SORT gt_makt BY matnr.
ENDIF.

SELECT matnr werks j_1ichid


FROM j_1imtchid
INTO TABLE gt_mtchid
FOR ALL ENTRIES IN gt_temp
WHERE matnr EQ gt_temp-matnr_i
AND werks EQ gt_temp-werks_i.
IF sy-subrc EQ 0.
SORT gt_mtchid BY matnr werks.
ENDIF.
ENDIF.

SELECT ebeln
ebelp
vgabe
gjahr
belnr
buzei
budat
menge
dmbtr
FROM ekbe
INTO TABLE gt_grref
FOR ALL ENTRIES IN gt_ekko_ekpo
WHERE ebeln EQ gt_ekko_ekpo-ebeln_i
AND ebelp EQ gt_ekko_ekpo-ebelp_i
AND vgabe IN ('1', '2').
IF sy-subrc EQ 0.
SORT gt_grref BY ebeln ebelp vgabe.
REFRESH gt_reftemp.
gt_reftemp = gt_grref.
DELETE gt_reftemp WHERE vgabe NE '1'.
SELECT werks
lgort_sid
bukrs
meins
menge
budat
gjahr
mblnr
mjahr
zeile
ebeln
ebelp
belnr
bwart
matnr
lifnr
lfbja
lfbnr
lfpos
sjahr
smbln
smblp
pprctr "Maheb
FROM matdoc
INTO CORRESPONDING FIELDS OF TABLE gt_matdoc
* FOR ALL ENTRIES IN gt_grref
FOR ALL ENTRIES IN gt_reftemp
WHERE ebeln EQ gt_reftemp-ebeln
AND ebelp EQ gt_reftemp-ebelp
.
IF sy-subrc EQ 0.
* DELETE gt_matdoc WHERE lgort_sid IS INITIAL. "Commented by Maheb
SORT gt_matdoc BY ebeln ebelp.
gt_matdoc_rev[] = gt_matdoc[].
* DELETE gt_matdoc WHERE bwart = '102'. "Commented by navya on 09.04.2018
DELETE gt_matdoc_rev WHERE bwart NE '102'. " Deleting materail documents
other than reversal
ENDIF.

* START OF CHNAGES BY CHIRU ON 13-04-2018


IF gtt_ekbe[] IS NOT INITIAL.

SELECT rldnr
rbukrs
gjahr
belnr
docln
awref
xreversing
xreversed
xtruerev
awtyp_rev
aworg_rev
awref_rev
budat
bldat
buzei
rebzj
rebzz
ebeln
ebelp
sgtxt
koart
FROM acdoca
INTO TABLE gt_acdoca

FOR ALL ENTRIES IN gtt_ekbe


WHERE awREF EQ gtt_ekbe-belnr
AND gjahr EQ gtt_ekbe-gjahr.
ENDIF.
* end of changes by chiru on 13-04-18
IF gt_reftemp IS NOT INITIAL.
* SELECT mblnr
* mjahr
* zeile
* ebeln
* ebelp
* lfbja
* FROM mseg
* INTO CORRESPONDING FIELDS OF TABLE gt_mseg
* FOR ALL ENTRIES IN gt_reftemp
* WHERE ebeln EQ gt_reftemp-ebeln
* AND ebelp EQ gt_reftemp-ebelp
* .
* IF sy-subrc EQ 0.
* SORT gt_mseg BY mblnr mjahr zeile.
* LOOP AT gt_mseg ASSIGNING <fs_mseg>.
* <fs_mseg>-ryear = <fs_mseg>-mjahr.
* ENDLOOP.
IF gt_matdoc IS NOT INITIAL.
LOOP AT gt_matdoc ASSIGNING <fs_matdoc>.
<fs_matdoc>-ryear = <fs_matdoc>-mjahr.
ENDLOOP.
SELECT docno
exnum
exdat
rdoc
ryear
FROM j_1iexchdr
INTO TABLE gt_exchdr
FOR ALL ENTRIES IN gt_matdoc
WHERE rdoc EQ gt_matdoc-mblnr
AND ryear EQ gt_matdoc-ryear.
IF sy-subrc EQ 0.
SORT gt_exchdr BY docno.
ENDIF.
ENDIF.
* ENDIF.
ENDIF.

REFRESH gt_irref.
gt_irref = gt_grref.
DELETE gt_irref WHERE vgabe NE '2'.
SORT gt_irref BY belnr gjahr.
IF gt_irref IS NOT INITIAL.
LOOP AT gt_irref ASSIGNING <fs_ekbe>.
APPEND INITIAL LINE TO gt_rseg_temp ASSIGNING <fs_rseg>.
<fs_rseg>-belnr = <fs_ekbe>-belnr.
<fs_rseg>-gjahr = <fs_ekbe>-gjahr.
<fs_rseg>-buzei = <fs_ekbe>-buzei.
<fs_rseg>-ebeln = <fs_ekbe>-ebeln.
<fs_rseg>-ebelp = <fs_ekbe>-ebelp.
ENDLOOP.
BREAK pwcabap.
IF gt_rseg_temp IS NOT INITIAL.
SELECT belnr
gjahr
buzei
ebeln
ebelp
spgrt
lfbnr
lfgja
lfpos
mwskz
menge "Maheb
hsn_sac "Navya
FROM rseg
INTO TABLE gt_rseg
FOR ALL ENTRIES IN gt_rseg_temp
*** WHERE belnr EQ gt_rseg_temp-belnr
*** AND gjahr EQ gt_rseg_temp-gjahr
*** AND buzei EQ gt_rseg_temp-buzei.
WHERE ebeln EQ gt_rseg_temp-ebeln
AND ebelp EQ gt_rseg_temp-ebelp.
IF sy-subrc EQ 0.
SORT gt_rseg BY lfbnr lfgja lfpos.
SORT gt_rseg_temp.
ENDIF.
ENDIF.
SELECT belnr
gjahr
budat
xblnr
bukrs
lifnr
waers
beznk
zterm
FROM rbkp
INTO TABLE gt_rbkp
FOR ALL ENTRIES IN gt_rseg "gt_irref
WHERE belnr EQ gt_rseg-belnr "gt_irref-belnr
AND gjahr EQ gt_rseg-gjahr "gt_irref-gjahr
.
IF sy-subrc EQ 0.
SORT gt_rbkp.
ENDIF.
ENDIF.
ENDIF.

REFRESH gt_temp.
gt_temp = gt_ekko_ekpo.
SORT gt_temp BY mwskz_i.
DELETE ADJACENT DUPLICATES FROM gt_temp COMPARING mwskz_i.
IF gt_temp IS NOT INITIAL.
SELECT spras " added by ananth m 16/10/2017
kalsm
mwskz
text1
FROM t007s
INTO TABLE gt_t007
FOR ALL ENTRIES IN gt_temp
WHERE spras EQ sy-langu
AND kalsm EQ 'ZTAXIN'
AND mwskz EQ gt_temp-mwskz_i.
IF sy-subrc EQ 0.
SORT gt_t007.
ENDIF.
ENDIF.

IF so_werks[] IS NOT INITIAL.


SELECT werks name1 FROM t001w
INTO TABLE gt_t001w
WHERE werks IN so_werks.
ELSE.
SELECT werks name1 FROM t001w
INTO TABLE gt_t001w
FOR ALL ENTRIES IN gt_ekko_ekpo
WHERE werks = gt_ekko_ekpo-werks_i.
ENDIF.

IF sy-subrc EQ 0.
SORT gt_t001w.
ENDIF.
*** ENDIF.

REFRESH gt_temp.
gt_temp = gt_ekko_ekpo.
SORT gt_temp BY reswk.
DELETE ADJACENT DUPLICATES FROM gt_temp COMPARING reswk.
IF gt_temp IS NOT INITIAL.
SELECT werks name1 FROM t001w
INTO TABLE gt_t001w_reswk
FOR ALL ENTRIES IN gt_temp
WHERE werks EQ gt_temp-reswk.
IF sy-subrc EQ 0.
SORT gt_t001w_reswk.
ENDIF.
ENDIF.

SELECT * FROM t163y


INTO TABLE gt_t163y
WHERE spras EQ sy-langu.
IF sy-subrc EQ 0.
SORT gt_t163y.
ENDIF.
* ENDIF.
*** Added by navya on 10.04.2018
* BREAK-POINT.
SELECT bukrs
belnr
gjahr
buzei
shkzg
hwbas
fwbas
kschl
kbetr
FROM bset
INTO TABLE it_bset1
FOR ALL ENTRIES IN gt_bkpf
WHERE bukrs = gt_bkpf-bukrs
AND belnr = gt_bkpf-belnr
AND gjahr = gt_bkpf-gjahr
AND shkzg = 'S'.

*** GET THE CST, VAT AND ST CONDITIONS FROM SET


REFRESH : gr_tmp.
PERFORM get_ranges TABLES gr_tmp
USING 'CST_CONDITION' .
APPEND LINES OF gr_tmp TO gr_cst.

REFRESH : gr_tmp.
PERFORM get_ranges TABLES gr_tmp
USING 'VAT_CONDITION' .
APPEND LINES OF gr_tmp TO gr_vat.

REFRESH : gr_tmp.
PERFORM get_ranges TABLES gr_tmp
USING 'ST_CONDITION' .
APPEND LINES OF gr_tmp TO gr_st.

REFRESH : gr_tmp.
PERFORM get_ranges TABLES gr_tmp
USING 'EXCISE_CONDITION' .
APPEND LINES OF gr_tmp TO gr_exc.

REFRESH : gr_tmp.
PERFORM get_ranges TABLES gr_tmp
USING 'EXCISE_CONDITION' .
APPEND LINES OF gr_tmp TO gr_del.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form GET_RANGES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_R_TMP text
* -->P_0966 text
*----------------------------------------------------------------------*
FORM get_ranges TABLES r_tmp
USING p_setname TYPE c.

TYPES : BEGIN OF ty_range_kond,


sign TYPE c LENGTH 1,
option TYPE c LENGTH 2,
low TYPE kschl,
high TYPE kschl,
END OF ty_range_kond.

DATA : lv_setid TYPE sethier-setid,


lt_setval TYPE TABLE OF rgsbv,
ls_range TYPE ty_range_kond.

FIELD-SYMBOLS : <fs_setval> TYPE rgsbv.


REFRESH r_tmp[].

CALL FUNCTION 'G_SET_GET_ID_FROM_NAME'


EXPORTING
client = sy-mandt
shortname = p_setname
IMPORTING
new_setid = lv_setid
EXCEPTIONS
no_set_found = 1
no_set_picked_from_popup = 2
wrong_class = 3
wrong_subclass = 4
table_field_not_found = 5
fields_dont_match = 6
set_is_empty = 7
formula_in_set = 8
set_is_dynamic = 9
OTHERS = 10.

IF sy-subrc = 0.
CALL FUNCTION 'G_SET_FETCH'
EXPORTING
setnr = lv_setid
no_setid_conversion = 'X'
TABLES
set_lines_basic = lt_setval
EXCEPTIONS
no_authority = 1
set_is_broken = 2
set_not_found = 3
OTHERS = 4.

IF sy-subrc = 0.
LOOP AT lt_setval ASSIGNING <fs_setval>.
CLEAR ls_range.
ls_range-sign = 'I'.
ls_range-option = 'EQ'.
ls_range-low = <fs_setval>-from.
APPEND ls_range TO r_tmp.
ENDLOOP.
ENDIF.
ENDIF.

ENDFORM. " GET_RANGES

*&---------------------------------------------------------------------*
*& Form PROCESS_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_data.
DATA : lv_tabix TYPE i,
lv_tabix1 TYPE i,
lv_tabix2 TYPE i,
lv_qnty TYPE bstmg,
lv_curr TYPE waers.
**Begin of Add by Ananth M 10/11/2017
DATA: lv_taxrate TYPE string,
lv_taxrate1 TYPE string.
**End of Add by Ananth M 10/11/2017

DATA lv_lifnr TYPE lifnr.


CLEAR : lv_tabix, lv_tabix1, lv_tabix2.
lv_tabix = 1.
lv_tabix1 = 1.

SORT : gtt_rbkp BY belnr gjahr,


gt_prcd BY knumv kposn.
*BREAK-POINT.
BREAK pwcabap.
LOOP AT gt_ekko_ekpo ASSIGNING <fs_ekko_ekpo>.

* APPEND INITIAL LINE TO gt_purreg ASSIGNING gs_purreg.


gs_purreg-bukrs = <fs_ekko_ekpo>-bukrs.
gs_purreg-werks = <fs_ekko_ekpo>-werks_i.
gs_purreg-ebeln = <fs_ekko_ekpo>-ebeln.
gs_purreg-ebelp = <fs_ekko_ekpo>-ebelp_i.
gs_purreg-aedat = <fs_ekko_ekpo>-aedat.
gs_purreg-bedat = <fs_ekko_ekpo>-bedat.
gs_purreg-lifnr = <fs_ekko_ekpo>-lifnr.

SELECT SINGLE taxnum FROM dfkkbptaxnum


INTO gs_purreg-taxnum
WHERE partner EQ gs_purreg-lifnr.

SELECT SINGLE akont FROM lfb1


INTO gs_purreg-akont
WHERE lifnr EQ gs_purreg-lifnr
AND bukrs EQ gs_purreg-bukrs.

gs_purreg-zterm = <fs_ekko_ekpo>-zterm.
gs_purreg-mwskz = <fs_ekko_ekpo>-mwskz_i.
gs_purreg-mwskz_gst1 = <fs_ekko_ekpo>-mwskz_i. " PO TAX CODE
gs_purreg-ekgrp = <fs_ekko_ekpo>-ekgrp.
gs_purreg-waers = <fs_ekko_ekpo>-waers.
gs_purreg-wkurs = <fs_ekko_ekpo>-wkurs.
gs_purreg-inco1 = <fs_ekko_ekpo>-inco1.
gs_purreg-dppct = <fs_ekko_ekpo>-dppct.
gs_purreg-dpamt = <fs_ekko_ekpo>-dpamt.
gs_purreg-dpdat = <fs_ekko_ekpo>-dpdat.
gs_purreg-zzlicty = <fs_ekko_ekpo>-zzlicty.
gs_purreg-zzlicenseno = <fs_ekko_ekpo>-zzlicenseno.
gs_purreg-matnr = <fs_ekko_ekpo>-matnr_i.
SELECT SINGLE steuc FROM marc
INTO gs_purreg-steuc
WHERE matnr EQ gs_purreg-matnr
AND werks EQ gs_purreg-werks.

gs_purreg-menge = <fs_ekko_ekpo>-menge_i.
gs_purreg-meins = <fs_ekko_ekpo>-meins_i.
gs_purreg-netpr = <fs_ekko_ekpo>-netpr_i.
gs_purreg-netwr = <fs_ekko_ekpo>-netwr_i.
gs_purreg-pstyp = <fs_ekko_ekpo>-pstyp_i.
gs_purreg-knttp = <fs_ekko_ekpo>-knttp_i.
gs_purreg-lmein = <fs_ekko_ekpo>-lmein_i.
IF gs_purreg-lmein IS INITIAL.
gs_purreg-lmein = <fs_ekko_ekpo>-meins_i.
ENDIF.
gs_purreg-bsart = <fs_ekko_ekpo>-bsart.
gs_purreg-ekorg = <fs_ekko_ekpo>-ekorg.

*DATA I_EBELN TYPE EBELN.


*DATA I_EBELP TYPE EBELP.
*DATA I_NMENG TYPE MENGE_D.
*DATA I_DATUM TYPE SY-DATUM.
*DATA KSCHL TYPE KSCHL.
*DATA C_NETWR TYPE BWERT.
*DATA C_NETPR TYPE BWERT.
*DATA T_KOMV TYPE STANDARD TABLE OF KOMV.
*DATA T_TAXN TYPE STANDARD TABLE OF KOMV.
UNASSIGN <fs_t001w>.
READ TABLE gt_t001w ASSIGNING <fs_t001w> WITH KEY werks = <fs_ekko_ekpo>-
werks_i.
IF sy-subrc EQ 0 AND <fs_t001w> IS ASSIGNED.
gs_purreg-plan_name = <fs_t001w>-name1.
ENDIF.
READ TABLE gt_lfa1 ASSIGNING <fs_lfa1> WITH KEY lifnr = <fs_ekko_ekpo>-lifnr.
IF sy-subrc EQ 0 AND <fs_lfa1> IS ASSIGNED.
gs_purreg-vend_name = <fs_lfa1>-name1.
gs_purreg-landx50 = <fs_lfa1>-landx50.
IF <fs_lfa1>-ven_class EQ ''.
gs_purreg-ven_class = 'Registered'.
ELSEIF <fs_lfa1>-ven_class EQ '0'.
gs_purreg-ven_class = 'Not Registered'.
ELSEIF <fs_lfa1>-ven_class EQ '1'.
gs_purreg-ven_class = 'Compunding Scheme'.
ELSEIF <fs_lfa1>-ven_class EQ '2'.
gs_purreg-ven_class = 'Special Economic Zone'.
ELSEIF <fs_lfa1>-ven_class EQ '3'.
gs_purreg-ven_class = 'PSU/Government Organization'.
ENDIF.
* gs_purreg-STCEG = <fs_lfa1>-STCEG.

ENDIF.
*****

UNASSIGN <fs_lfa1>.
READ TABLE gt_lfa11 ASSIGNING <fs_lfa11> WITH KEY lifnr = <fs_ekko_ekpo>-lifnr.
IF sy-subrc EQ 0 AND <fs_lfa11> IS ASSIGNED.
gs_purreg-j_1ilstno_1 = <fs_lfa11>-j_1ilstno_1.
READ TABLE gt_t005u ASSIGNING <fs_t005u> WITH KEY bland = <fs_lfa11>-regio.
IF sy-subrc EQ 0 AND <fs_t005u> IS ASSIGNED.
gs_purreg-bland = <fs_t005u>-bland.
gs_purreg-bezei = <fs_t005u>-bezei.
ENDIF.
ENDIF.
*****
READ TABLE gt_movend ASSIGNING <fs_movend> WITH KEY lifnr = <fs_ekko_ekpo>-
lifnr.
IF sy-subrc EQ 0 AND <fs_movend> IS ASSIGNED.
gs_purreg-j_1iexcd = <fs_movend>-j_1iexcd.
gs_purreg-j_1iexrn = <fs_movend>-j_1iexrn.
gs_purreg-j_1iexdi = <fs_movend>-j_1iexdi.
ENDIF.

UNASSIGN <fs_1imocomp>.
READ TABLE gt_1imocomp ASSIGNING <fs_1imocomp> WITH KEY bukrs = <fs_ekko_ekpo>-
bukrs
werks = <fs_ekko_ekpo>-
werks_i.
IF sy-subrc EQ 0 AND <fs_1imocomp> IS ASSIGNED.
gs_purreg-j_1icstno = <fs_1imocomp>-j_1icstno.
gs_purreg-j_1ilstno = <fs_1imocomp>-j_1ilstno.
ENDIF.

* UNASSIGN <fs_matdoc>.
* READ TABLE gt_matdoc ASSIGNING <fs_matdoc> WITH KEY ebeln = <fs_ekko_ekpo>-
ebeln_i
* ebelp = <fs_ekko_ekpo>-
ebelp_i
* BINARY SEARCH.
* IF sy-subrc EQ 0 AND <fs_matdoc> IS ASSIGNED.
* gs_purreg-mblnr = <fs_matdoc>-mblnr.
* gs_purreg-mjahr = <fs_matdoc>-mjahr.
* gs_purreg-zeile = <fs_matdoc>-zeile.
* gs_purreg-menge = <fs_matdoc>-menge.
* UNASSIGN <fs_exchdr>.
* READ TABLE gt_exchdr ASSIGNING <fs_exchdr> WITH KEY rdoc = <fs_matdoc>-mblnr
* ryear = <fs_matdoc>-
ryear
* .
* IF sy-subrc EQ 0 AND <fs_exchdr> IS ASSIGNED.
* gs_purreg-docno = <fs_exchdr>-docno.
* gs_purreg-exnum = <fs_exchdr>-exnum.
* gs_purreg-exdat = <fs_exchdr>-exdat.
* ENDIF.
* ENDIF.
* UNASSIGN <fs_ekbe>.
* READ TABLE gt_irref ASSIGNING <fs_ekbe> WITH KEY ebeln = <fs_ekko_ekpo>-
ebeln_i
* ebelp = <fs_ekko_ekpo>-
ebelp_i
* BINARY SEARCH.
* IF sy-subrc EQ 0 AND <fs_ekbe> IS ASSIGNED .
* READ TABLE gt_rbkp ASSIGNING <fs_rbkp> WITH KEY belnr = <fs_ekbe>-belnr
* gjahr = <fs_ekbe>-gjahr
* BINARY SEARCH.
* IF sy-subrc EQ 0 AND <fs_rbkp> IS ASSIGNED .
* gs_purreg-belnr = <fs_rbkp>-belnr.
* gs_purreg-gjahr = <fs_rbkp>-gjahr.
* gs_purreg-budat = <fs_rbkp>-budat.
* gs_purreg-xblnr = <fs_rbkp>-xblnr.
* gs_purreg-beznk = <fs_rbkp>-beznk.
* ENDIF.
* ENDIF.

UNASSIGN <fs_makt>.
READ TABLE gt_makt ASSIGNING <fs_makt> WITH KEY matnr = <fs_ekko_ekpo>-matnr_i.
IF sy-subrc EQ 0 AND <fs_makt> IS ASSIGNED .
gs_purreg-maktx = <fs_makt>-maktx.
ENDIF.
UNASSIGN <fs_mtchid>.
READ TABLE gt_mtchid ASSIGNING <fs_mtchid> WITH KEY matnr = <fs_ekko_ekpo>-
matnr_i
werks = <fs_ekko_ekpo>-
werks_i.
IF sy-subrc EQ 0 AND <fs_mtchid> IS ASSIGNED .
gs_purreg-j_1ichid = <fs_mtchid>-j_1ichid.
ENDIF.
UNASSIGN <fs_t007>.
READ TABLE gt_t007 ASSIGNING <fs_t007> WITH KEY kalsm = 'ZTAXIN'
mwskz = <fs_ekko_ekpo>-mwskz_i.
IF sy-subrc EQ 0 AND <fs_t007> IS ASSIGNED .
gs_purreg-text1 = <fs_t007>-text1.
gs_purreg-mwskz_taxdesc = <fs_t007>-text1. ."TAX DESCRIPTION
ENDIF.

***BEGIN OF ADD ANANTH M 12/09/2017.


READ TABLE gt_vbrp_gst INTO gs_vbrp_gst WITH KEY aubel = <fs_ekko_ekpo>-ebeln_i
matnr = <fs_ekko_ekpo>-matnr_i
BINARY SEARCH.
* gs_purreg-gst_inbound_qty = gs_vbrp_gst-fkimg."GST Inbound Invoice Qty
"Commented by navya on 11.04.2018
IF sy-subrc EQ 0.
ENDIF.

READ TABLE gt_t001w_gst INTO gs_t001w_gst WITH KEY werks = <fs_ekko_ekpo>-


werks_i BINARY SEARCH.
IF sy-subrc EQ 0.

* gs_purreg-revstatename = gs_t001w_gst-ort01."Receiving STATE Name "


commented by sankeerthana
gs_purreg-revstatecode = gs_t001w_gst-regio."Receiving STATE CODE
ENDIF.
*Start of changes by sankeerthana
READ TABLE it_t005u INTO wa_t005u WITH KEY bland = gs_t001w_gst-regio BINARY
SEARCH.
IF sy-subrc EQ 0.
gs_purreg-revstatename = wa_t005u-bezei."Receiving STATE Name

ENDIF.

*End of changes by sankeerthana


READ TABLE it_t001w INTO wa_t001w WITH KEY werks = <fs_ekko_ekpo>-werks_i.
IF sy-subrc = 0.
* READ TABLE gt_j_1bbrancv INTO gs_j_1bbrancv WITH KEY bukrs = <fs_ekko_ekpo>-
bukrs werks = <fs_ekko_ekpo>-werks_i.
READ TABLE gt_j_1bbrancv INTO gs_j_1bbrancv WITH KEY bukrs = <fs_ekko_ekpo>-
bukrs branch = wa_t001w-j_1bbranch.
IF sy-subrc EQ 0.
gs_purreg-gstin = gs_j_1bbrancv-gstin."GSTIN No. of Receiving plant
ENDIF.
ENDIF.

READ TABLE gtt_lfa11 INTO gss_lfa11 WITH KEY lifnr = <fs_ekko_ekpo>-lifnr


BINARY SEARCH.
IF sy-subrc EQ 0.
gs_purreg-stcd3_gst = gss_lfa11-stcd3."GSTIN NO. OF Vendor
gs_purreg-ort01_gst = gss_lfa11-ort01."Vendor STATE NAME
gs_purreg-regio_gst = gss_lfa11-regio."Vendor STATE CODE
IF gss_lfa11-ven_class EQ ' '.
gs_purreg-ven_class_gst = 'Registered'.
ELSEIF gss_lfa11-ven_class EQ '0'.
gs_purreg-ven_class_gst = 'Not Registered'.
ELSEIF gss_lfa11-ven_class EQ '1'.
gs_purreg-ven_class_gst = 'Compunding Scheme'.
ELSEIF gss_lfa11-ven_class EQ '2'.
gs_purreg-ven_class_gst = 'Special Economic Zone'.
ELSEIF gss_lfa11-ven_class EQ '3'.
gs_purreg-ven_class_gst = 'PSU/Government Organization'.
ENDIF.
ENDIF.
CLEAR: gss_lfa11.
* Added by sankeerthana
IF <fs_ekko_ekpo>-bsart = 'UB' OR <fs_ekko_ekpo>-bsart = 'ZUB'.
CONCATENATE 'Z' <fs_ekko_ekpo>-reswk INTO lv_lifnr.
READ TABLE lt_lfa1 INTO ls_lfa1 WITH KEY lifnr = lv_lifnr . "<fs_ekko_ekpo>-
reswk.
IF sy-subrc EQ 0.
READ TABLE gt_t005u ASSIGNING <fs_t005u> WITH KEY bland = ls_lfa1-regio.
IF sy-subrc EQ 0 AND <fs_t005u> IS ASSIGNED.
gs_purreg-bland = <fs_t005u>-bland.
gs_purreg-bezei = <fs_t005u>-bezei.
ENDIF.
gs_purreg-lifnr = ls_lfa1-lifnr."GSTIN NO. OF Vendor
gs_purreg-vend_name = ls_lfa1-name1.
gs_purreg-ort01_gst = ls_lfa1-ort01."Vendor STATE NAME
gs_purreg-regio_gst = ls_lfa1-regio."Vendor STATE CODE
IF ls_lfa1-ven_class EQ ' '.
gs_purreg-ven_class = 'Registered'.
ELSEIF ls_lfa1-ven_class EQ '0'.
gs_purreg-ven_class = 'Not Registered'.
ELSEIF ls_lfa1-ven_class EQ '1'.
gs_purreg-ven_class = 'Compunding Scheme'.
ELSEIF ls_lfa1-ven_class EQ '2'.
gs_purreg-ven_class = 'Special Economic Zone'.
ELSEIF ls_lfa1-ven_class EQ '3'.
gs_purreg-ven_class = 'PSU/Government Organization'.
ENDIF.
IF ls_lfa1-ven_class EQ ' '.
gs_purreg-ven_class_gst = 'Registered'.
ELSEIF ls_lfa1-ven_class EQ '0'.
gs_purreg-ven_class_gst = 'Not Registered'.
ELSEIF ls_lfa1-ven_class EQ '1'.
gs_purreg-ven_class_gst = 'Compunding Scheme'.
ELSEIF ls_lfa1-ven_class EQ '2'.
gs_purreg-ven_class_gst = 'Special Economic Zone'.
ELSEIF ls_lfa1-ven_class EQ '3'.
gs_purreg-ven_class_gst = 'PSU/Government Organization'.
ENDIF.
ENDIF.
ENDIF.
CLEAR: gss_lfa11.
* Ended by sankeerthana
READ TABLE gtt_ekbe INTO gss_ekbe WITH KEY ebeln = <fs_ekko_ekpo>-ebeln_i
ebelp = <fs_ekko_ekpo>-ebelp_i
BINARY SEARCH."belnr = gss_mseg-belnr
IF sy-subrc EQ 0.
* gs_purreg-xblnr_bill_no = gss_ekbe-xblnr. " Bill of Entry No.
* gs_purreg-awkey_gst = gss_ekbe-awkey_bkpf." FI MIGO Doc No.
awkey+gjahr "Object Key (new name) "Added by Maheb "Commented by navya on
09.04.2018
gs_purreg-budat_gst = gs_bkpf-budat. "FI MIGO Doc Date
"Posting Date(new name) " Added by Maheb
ENDIF.

READ TABLE gt_bseg INTO gs_bseg WITH KEY ebeln = <fs_ekko_ekpo>-ebeln_i


ebelp = <fs_ekko_ekpo>-ebelp_i
BINARY SEARCH .
IF sy-subrc EQ 0.
** GS_PURREG-MWSKZ_GST =GS_BSEG-MWSKZ. "MIRO TAX CODE
gs_purreg-zekkn = gs_bseg-zekkn.
gs_purreg-hsn_sac = gs_bseg-hsn_sac. "HSN/SAC CODE
* gs_purreg-tottax_baseamount = gs_bseg-wrbtr. "Total tax base amount
* gs_purreg-migodoc_valbseg = gs_bseg-dmbtr. "FI MIGO Doc Value '
comment by chiru on 13-04-18
* gs_purreg-invoicetotal_konv = gs_bseg-dmbtr. "Invoice Total "Commented
by navya on 10.04.2018
ENDIF.

READ TABLE gt_mkpf INTO gs_mkpf WITH KEY mblnr = gss_ekbe-belnr


mjahr = gss_ekbe-gjahr BINARY
SEARCH .
IF sy-subrc EQ 0.
gs_purreg-frbnr_bill_no = gs_mkpf-frbnr. " Bill of Entry No.
gs_purreg-xblnr_mkpf_gst = gs_mkpf-xblnr."DELIVERY NOTE NUMBER

ENDIF.

* READ TABLE gt_bkpf INTO gs_bkpf WITH KEY awkey = gss_ekbe-awkey_bkpf BINARY
SEARCH . "Commented by Maheb
READ TABLE gt_bkpf INTO gs_bkpf WITH KEY belnr = gs_bseg-belnr. " awkey =
gss_ekbe-awkey_bkpf BINARY SEARCH . " Added by Maheb
IF sy-subrc EQ 0.
* gs_purreg-gjahr_gst = gs_bkpf-gjahr. "GRN Item No.
* gs_purreg-belnr_gst = gs_bkpf-belnr. "Commented by navya on
11.04.2018
* gs_purreg-budat_fimiro_gst = gs_bkpf-budat. " MIRO FI reversal Doc date
"Commented by navya on 11.04.2018
** gs_purreg-bldat_gst = gs_bkpf-bldat. " GST INBOUND INV Date
"Commented by navya on 11.04.2018
gs_purreg-xblnr_gst = gs_bkpf-xblnr. " GST INBOUND INV No.
* gs_purreg-awkey_gst = gs_bkpf-awkey." FI MIGO Doc No. awkey+gjahr
"Object Key (new name) "Commented by Maheb
* gs_purreg-budat_gst = gs_bkpf-budat. "FI MIGO Doc Date
"Posting Date(new name)"Commented by Maheb " comment by chiru on 13-04-18
* gs_purreg-budat_fi_rev = gs_bkpf-budat. " FI MIGO Reversal Doc Date.
"Commented by navya on 10.04.2018
* gs_purreg-xblnr_alt = gs_bkpf-xblnr_alt ."ODN Doc No. "Commented by
navya on 10.04.2018
* gs_purreg-awkey_gst = gs_bkpf-belnr." FI MIGO Doc No. awkey+gjahr
"Object Key (new name) "comment by chiru 12-042018
** gs_purreg-stblg_belnr = gs_bkpf-belnr. " FI MIGO Reversal Doc No.
BKPF-BELNR "Commented by navya on 09.04.2018
ENDIF.
* BREAK-POINT.
*** Added by navya on 10.04.2018
* READ TABLE gtt_ekbe INTO gss_ekbe1 WITH KEY ebeln = <fs_ekko_ekpo>-ebeln_i
* ebelp = <fs_ekko_ekpo>-ebelp_i
* shkzg = 'H'
* bewtp = 'Q' BINARY SEARCH."belnr
= gss_mseg-belnr
* IF sy-subrc EQ 0.
** Comment by chiru on 13-04-18
* DATA : lv_awkey TYPE char15.
** LOOP AT gtt_ekbe INTO gss_ekbe1 WHERE ebeln = <fs_ekko_ekpo>-ebeln_i
** AND ebelp = <fs_ekko_ekpo>-
ebelp_i
** AND shkzg = 'H'
** AND bewtp = 'Q'.
** CLEAR lv_awkey.
** CONCATENATE gss_ekbe1-belnr gss_ekbe1-gjahr INTO lv_awkey .
** comment by chiru
* LOOP AT gt_bkpf INTO gs_bkpf4 WHERE awkey = lv_awkey
* AND gjahr = gss_ekbe1-gjahr.
** AND xreversed = 'X'.
*
* gs_purreg-miro_fi_rev = gs_bkpf4-belnr.
* IF gs_purreg-miro_fi_rev IS NOT INITIAL .
** gs_purreg-budat_fi_rev = gs_bkpf4-budat. " FI MIGO Reversal Doc
Date. "11.04.2018
* gs_purreg-budat_fimiro_gst = gs_bkpf4-budat. " MIRO FI reversal Doc
date
* ENDIF.
* ENDLOOP.
** comment by chiru
* added chiru

**** *** code for FI MIRO DOC NUMBER OR ACCOUNTING DOC NUMBER
*** CLEAR gss_ekbe_1.
*** READ TABLE gtt_ekbe INTO gss_ekbe_1 WITH KEY belnr = <fs_matdoc>-mblnr
*** bewtp = 'Q'
*** shkzg = 'S'.
***
***
*** CLEAR:gs_bkpf_c2.
*** READ TABLE gt_bkpf INTO gs_bkpf_c2 WITH KEY awkey = gss_ekbe_1-
awkey_bkpf
*** gjahr = gss_ekbe_1-gjahr.
***
*** IF sy-subrc IS INITIAL .
*** gs_purreg-acc_doc_no = gs_bkpf_c2-belnr. " Accounting document
number or MIRO FI DOCUMENT NUMBER
*** gs_purreg-budat_rbkp = gs_bkpf_c2-budat. " Accounting document
date or MIRO FI DOCUMENT DATE
*** ENDIF.
*** CLEAR:gss_ekbe_1,gs_bkpf_c2.
***
*** CLEAR:gs_bkpf_c2.
*** READ TABLE gt_bkpf INTO gs_bkpf_c2 WITH KEY awkey = gss_ekbe1-
awkey_bkpf
*** gjahr = gss_ekbe1-gjahr.
***
*** IF sy-subrc IS INITIAL .
*** gs_purreg-miro_fi_rev = gs_bkpf_c2-belnr. " FI MIRO REVERSAL
DOCUMENT NUMBER
*** gs_purreg-budat_fimiro_gst = gs_bkpf_c2-budat. " FI MIRO
REVERSAL DOCUMENT DATE
*** ENDIF.
*** CLEAR:gss_ekbe1,gs_bkpf_c2.

*** ENDLOOP.
** Comment by chiru on 13-04-18
* ENDIF.

CLEAR:lv_taxrate ,
lv_taxrate1.
READ TABLE gtt_mseg INTO gss_mseg WITH KEY mblnr = gss_ekbe-belnr
mjahr = gss_ekbe-gjahr
charg = gss_ekbe-charg
ebeln = gss_ekbe-ebeln
ebelp = gss_ekbe-ebelp
werks = gss_ekbe-werks. "BINARY
SEARCH.

**COMMENT BY CHIRU ON 12-04-18


* READ TABLE gt_bkpf INTO gs_bkpf1 WITH KEY awref_rev = gss_mseg-mblnr. "
belnr = gs_bseg-belnr
* IF sy-subrc = 0.
* gs_purreg-stblg_belnr = gs_bkpf-belnr. " FI MIGO Reversal Doc No. BKPF-
BELNR "Added by navya on 09.04.2018
* ENDIF.
*END OF CHANGES BY CHIRU ON 12-04-18**
IF sy-subrc EQ 0.
gs_purreg-bwart_gst = gss_mseg-bwart. "Movement type
* gs_purreg-zeile_gst = gss_mseg-zeile. "GRN Item No. "Commented by
Maheb

**COMMENT BY CHIRU ON 12-04-18


* gs_purreg-migo_revvalue = gss_mseg-grund. "FI MIGO Reversal Doc Value
gs_purreg-migo_revtext = gss_mseg-sgtxt. "MIGO Reversal TEXT
gs_purreg-migo_text = gss_mseg-sgtxt. "MIGO TEXT
*END OF CHANGES BY CHIRU ON 12-04-18**
***Added by Maheb
IF gss_mseg-bwart = '101'.
gs_purreg-pprctr = gss_mseg-pprctr. "MIGO TEXT
ENDIF.
***ENnded by Maheb
*In mseg pass -matnr-plant -batch & po number, po line item no and bwart=102 then
u will get the reversal docu number
IF gss_mseg-bwart = '102'.
gs_purreg-mblnr_gst_rev = gss_mseg-mblnr. "MM-MIGO Reversal
Doc no.
gs_purreg-budat_mkpf_gst_rev = gss_mseg-budat_mkpf. " MM-MIGO
Reversal Doc Date
ELSE.
gs_purreg-mblnr_gst = gss_mseg-mblnr. "MM-MIGO Doc no.
gs_purreg-budat_mkpf_gst = gss_mseg-budat_mkpf. " MM-MIGO Doc
Date

ENDIF.
ENDIF.

CLEAR : gss_ekbe_2.
READ TABLE gtt_ekbe_2 INTO gss_ekbe_2 WITH KEY ebeln = <fs_ekko_ekpo>-ebeln_i
ebelp = <fs_ekko_ekpo>-ebelp_i.
IF sy-subrc EQ 0.

ENDIF.
DATA : lv_acc TYPE char15.
* read table gtt_rbkp into gss_rbkp with key belnr = gss_ekbe-belnr BINARY
SEARCH. "Commented by Nagendra
READ TABLE gtt_rbkp INTO gss_rbkp WITH KEY belnr = gss_ekbe_2-belnr
gjahr = gss_ekbe_2-gjahr BINARY
SEARCH.
IF sy-subrc EQ 0.
* RBKP pass belnr and vgart=rs the u will get the cancell docum number
IF gss_rbkp-vgart = 'RS'.
* gs_purreg-canceldoc_rbkp = gss_rbkp-belnr. " MIRO Reversal Doc No. "
comment by chiru on 13-4-2018
gs_purreg-odnrev_rbkp = gss_rbkp-belnr. "ODN Reversal Doc No.
ENDIF.
* comment by chiru on 13-04-18
* IF gss_rbkp-ivtyp = '5'.
* gs_purreg-budat_rbkp_rev = gss_rbkp-budat."MIRO Reversal Posting
Date
* ENDIF.
* end of chnags :comment by chiru
" RBKP pass belnr and vgart=rs the u will get the cancell docum number

IF gss_rbkp-vgart = 'RD' AND gss_rbkp-stblg = ' '.


* gs_purreg-belnr_rbkp = gss_rbkp-belnr."Vendor INV. NO. "Commented
by navya on 09.04.2018
gs_purreg-belnr_rbkp = gss_rbkp-xblnr."Vendor INV. NO. "Added by
navya on 09.04.2018
ENDIF.

* gs_purreg-budat_rbkp = gss_rbkp-budat. " MIRO Posting Date "


comment by chiru 0n 13-04-18
gs_purreg-sgtxt_rbkp = gss_rbkp-sgtxt. "MIRO Text
* gs_purreg-invoicetotal_konv = gss_rbkp-rmwwr. "Invoice Total
CLEAR lv_acc.

ENDIF.

"" Added by navya on 09.04.2018


CLEAR gss_rbkp.
READ TABLE gtt_rbkp INTO gss_rbkp WITH KEY belnr = gss_ekbe_2-belnr
gjahr = gss_ekbe_2-gjahr BINARY
SEARCH.
CONCATENATE gss_rbkp-belnr gss_rbkp-gjahr INTO lv_acc. "Added by navya on
09.04.2018
READ TABLE gt_bkpf INTO gs_bkpf2 WITH KEY awkey = lv_acc.

IF sy-subrc = 0.
* gs_purreg-acc_doc_no = gs_bkpf2-belnr. "Acc Doc No. "commeny chiru
READ TABLE gt_bkpf INTO gs_bkpf3 WITH KEY belnr = gs_bkpf2-belnr..
gs_purreg-xblnr_alt = gs_bkpf3-xblnr_alt ."ODN Doc No.

* READ TABLE gt_bseg INTO gs_bseg1 WITH KEY belnr = gs_bkpf2-belnr


* koart = 'K'
* shkzg = 'H' BINARY SEARCH .
LOOP AT gt_bseg1 INTO gs_bseg1 WHERE belnr = gs_bkpf2-belnr.
* AND koart = 'K'
* AND shkzg = 'H'.

gs_purreg-invoicetotal_konv = gs_bseg1-dmbtr. "Invoice Total


"Commented by navya on 10.04.2018
ENDLOOP.
ENDIF.
READ TABLE gtt_lfa1 INTO gss_lfa1 WITH KEY lifnr = gss_rbkp-lifnr BINARY
SEARCH.
IF sy-subrc EQ 0.
gs_purreg-ort01_gst = gss_lfa1-ort01."Vendor STATE NAME
gs_purreg-regio_gst = gss_lfa1-regio."Vendor STATE CODE
* gs_purreg-stcd3_gst = gss_lfa1-stcd3."GSTIN NO. OF Vendor
* gs_purreg-ven_class_gst = gss_lfa1-ven_class."Vendor Identification
ENDIF.
*Start of changes by sankeerthana
READ TABLE it_t005u1 INTO wa_t005u1 WITH KEY bland = gss_lfa1-regio BINARY
SEARCH.
IF sy-subrc EQ 0.
gs_purreg-ort01_gst = wa_t005u1-bezei."Receiving STATE Name
ENDIF.

READ TABLE gtt_rseg INTO gss_rseg WITH KEY belnr = gss_rbkp-belnr


gjahr = gss_rbkp-gjahr BINARY
SEARCH .
IF sy-subrc EQ 0.
*** GS_PURREG-MWSKZ_GST1 = GSS_RSEG-MWSKZ. " PO TAX CODE
gs_purreg-buzei_gst = gss_rseg-buzei. " MIRO Doc No."INV. ITEM NO.

ENDIF.

READ TABLE gt_t030 INTO gs_t030 WITH KEY bklas = gss_rseg-bklas BINARY SEARCH.
* ktopl = ' '
* ktosl = 'BSX'
IF sy-subrc EQ 0.
gs_purreg-konts_gst = gs_t030-konts ."GL A/c assigned to Material/Service
ENDIF.

***Added by Maheb
"Added by chiru on 10.04.2018
CLEAR:gs_bseg2.
READ TABLE gt_bseg INTO gs_bseg2 WITH KEY belnr = gs_bseg-belnr
bukrs = gs_bseg-bukrs
gjahr = gs_bseg-gjahr
buzid = 'M'.
IF gs_purreg-konts_gst IS INITIAL AND <fs_ekko_ekpo>-bsart = 'ZSER' AND
gs_bseg2-buzid = 'M'.
* gs_purreg-konts_gst = gs_bseg-lifnr. " commmented by chiru on 12-04-2018
gs_purreg-konts_gst = gs_bseg2-hkont. " added chiru 12-04-18
ENDIF.
***Ended by Maheb

READ TABLE gt_t007s_gst INTO gs_t007s_gst WITH KEY mwskz = gss_rseg-mwskz


BINARY SEARCH.
IF sy-subrc EQ 0.
** GS_PURREG-MWSKZ_TAXDESC = GS_T007S_GST-TEXT1 ."TAX DESCRIPTION
ENDIF.

READ TABLE gt_esll INTO gs_esll WITH KEY packno = <fs_ekko_ekpo>-packno_i


BINARY SEARCH.
IF sy-subrc EQ 0.
READ TABLE gt_esll_temp INTO gs_esll_temp WITH KEY packno = gs_esll-
sub_packno BINARY SEARCH.
IF sy-subrc EQ 0.
gs_purreg-srvpos_gst = gs_esll_temp-srvpos. " Activity No.
**Added by Maheb
IF <fs_ekko_ekpo>-bsart = 'ZSER' AND gs_purreg-maktx IS INITIAL .
gs_purreg-maktx = gs_esll_temp-ktext1.
ENDIF.
**Added by Maheb
ENDIF.
ENDIF.
*BREAK-POINT.
READ TABLE gt_asmd INTO gs_asmd WITH KEY asnum = gs_esll_temp-srvpos BINARY
SEARCH.
IF sy-subrc EQ 0 .
gs_purreg-matkl_gst = gs_asmd-matkl."Material Group
gs_purreg-astyp_gst = gs_asmd-astyp. "Material Category
gs_purreg-steuc = gs_asmd-taxtariffcode. "Tax Tariff Code
ENDIF.

***Added by Maheb

IF <fs_ekko_ekpo>-bsart <> 'ZSER' AND gs_purreg-astyp_gst IS INITIAL..


gs_purreg-astyp_gst = <fs_ekko_ekpo>-attyp_i.
ENDIF.

READ TABLE gt_mara INTO gs_mara WITH KEY matnr = <fs_ekko_ekpo>-matnr_i.


IF sy-subrc = 0.
IF gs_purreg-matkl_gst IS INITIAL.
gs_purreg-matkl_gst = gs_mara-matkl.
ENDIF.
ENDIF.
***Ended by Maheb

READ TABLE gt_asmdt INTO gs_asmdt WITH KEY asnum = gs_asmd-asnum BINARY SEARCH.
IF sy-subrc EQ 0 .
gs_purreg-asktx = gs_asmdt-asktx."Activity Decription
ENDIF.

READ TABLE gt_marc INTO gs_marc WITH KEY matnr = <fs_ekko_ekpo>-matnr_i


"GSS_RSEG-MATNR
werks = <fs_ekko_ekpo>-werks_i BINARY
SEARCH. "GSS_RSEG-WERKS BINARY SEARCH.
IF sy-subrc EQ 0.
gs_purreg-prctr = gs_marc-prctr."Profit center
* gs_purreg-steuc_hsn = gs_marc-steuc."MIRO HSN/SAC code "Commented by navya
on 10.04.2018
ENDIF.

READ TABLE gt_mbew INTO gs_mbew WITH KEY matnr = <fs_ekko_ekpo>-matnr_i BINARY
SEARCH. "gs_marc-matnr Commented by Nagendra

IF sy-subrc EQ 0.
gs_purreg-bklas_gst = gs_mbew-bklas. "gs_t030-bklas ."Valuation class
"Commented by nagendra
ENDIF.

READ TABLE gt_mard INTO gs_mard WITH KEY matnr = gs_marc-matnr


werks = gs_marc-werks BINARY SEARCH.
IF sy-subrc EQ 0.
gs_purreg-lgort = gs_mard-lgort."Storage Location
ENDIF.

CLEAR:gs_mard, gs_mbew, gs_marc,


gs_asmdt,gs_esll,gs_t007s_gst,gs_t030,gss_rseg,gss_lfa1,
gss_rbkp,gss_mseg,gs_bkpf_temp,gs_bkpf,gs_j_1bbrancv,
gss_ekbe,gs_bseg,gs_vbrp_gst,gs_bseg2.

**END OF ADD ANANTH M 12/09/2017.

IF <fs_ekko_ekpo>-bsart EQ 'UB'.
gs_purreg-reswk = <fs_ekko_ekpo>-reswk.
UNASSIGN <fs_t001w>.
READ TABLE gt_t001w_reswk ASSIGNING <fs_t001w> WITH KEY werks =
<fs_ekko_ekpo>-reswk.
IF sy-subrc EQ 0 AND <fs_t001w> IS ASSIGNED.
gs_purreg-supp_name = <fs_t001w>-name1.
ENDIF.
ENDIF.
UNASSIGN <fs_t163y>.
READ TABLE gt_t163y ASSIGNING <fs_t163y> WITH KEY spras = sy-langu
pstyp = <fs_ekko_ekpo>-
pstyp_i.
IF sy-subrc EQ 0.
gs_purreg-ptext = <fs_t163y>-ptext.
ENDIF.

IF <fs_ekko_ekpo>-bstyp = 'K'.
lv_qnty = <fs_ekko_ekpo>-ktmng_i.
ELSE.
lv_qnty = <fs_ekko_ekpo>-menge_i.
ENDIF.
*BREAK-POINT.
*******Added by navya on 10.04.2018
LOOP AT gt_bkpf INTO gs_bkpf2 WHERE awkey = lv_acc.
LOOP AT it_bset1 INTO wa_bset1 WHERE belnr = gs_bkpf2-belnr.
IF wa_bset1-kschl = 'ZICG'.
gs_purreg-cgstrate_konv = wa_bset1-kbetr / 10. "CGSTRate"
gs_purreg-taxbase_amount_cgst = wa_bset1-fwbas. "CGst Base amount.
gs_purreg-cgstamount_konv = ( gs_purreg-cgstrate_konv / 100 ) *
gs_purreg-taxbase_amount_cgst .""CGSTAmount"
ELSEIF wa_bset1-kschl = 'ZISG'.
gs_purreg-sgstrate_konv = wa_bset1-kbetr / 10. "SSTRate"
gs_purreg-taxbase_amount_sgst = wa_bset1-fwbas. "SGST Base amount.
gs_purreg-sgstamount_konv = ( gs_purreg-sgstrate_konv / 100 ) *
gs_purreg-taxbase_amount_sgst. "SGST Amount
ELSEIF wa_bset1-kschl = 'ZIIG'.
gs_purreg-igstrate_konv = wa_bset1-kbetr / 10. "IGSTRate"
gs_purreg-taxbase_amount_igst = wa_bset1-fwbas. "IGST Base amount.
gs_purreg-igstamount_konv = ( gs_purreg-igstrate_konv / 100 ) *
gs_purreg-taxbase_amount_igst. "IGST Amount
ENDIF.

IF gs_purreg-igstamount_konv IS NOT INITIAL.


gs_purreg-tottax_baseamount = gs_purreg-taxbase_amount_igst. " Total tax
amount
ELSE.
gs_purreg-tottax_baseamount = gs_purreg-taxbase_amount_sgst ."+
gs_purreg-taxbase_amount_cgst. " Total tax amount
ENDIF.
ENDLOOP.
ENDLOOP.
***********************************************************************
REFRESH : gt_komv, gt_taxn.
CALL FUNCTION 'ZMM_CALCULATE_TAX'
EXPORTING
i_ebeln = <fs_ekko_ekpo>-ebeln_i
i_ebelp = <fs_ekko_ekpo>-ebelp_i
i_nmeng = lv_qnty
i_datum = <fs_ekko_ekpo>-aedat
TABLES
t_komv = gt_komv
t_taxn = gt_taxn.

CLEAR lv_curr.
LOOP AT gt_komv ASSIGNING <fs_komv>.
***Begin of Add BY Ananth M 23/10/2017.

* IF <fs_komv>-waers = 'INR'.
IF <fs_komv>-kschl = 'ZICG'.
* gs_purreg-cgstrate_konv = <fs_komv>-kbetr / 10. "CGSTRate"
* gs_purreg-cgstamount_konv = <fs_komv>-kwert. ""CGSTAmount"
gs_purreg-taxrate_konv_cgst = <fs_komv>-kbetr / 10. "TAX RATE
*Start of changes by sankeerthana
* gs_purreg-taxbase_amount_cgst = <fs_komv>-kwert. "CGst Base amount.
* gs_purreg-taxbase_amount_cgst = <fs_komv>-kawrt. "CGst Base amount.
gs_purreg-tax_type = 'CGST'.
*End of changes by sankeerthana
* CONCATENATE gs_purreg-taxrate_konv '%' INTO gs_purreg-taxrate_konv1.
* CONDENSE gs_purreg-taxrate_konv1 NO-GAPS.

ELSEIF <fs_komv>-kschl = 'ZISG'.


* gs_purreg-sgstrate_konv = <fs_komv>-kbetr / 10. "SSTRate"
* gs_purreg-sgstamount_konv = <fs_komv>-kwert. ""SGSTAmount"
gs_purreg-taxrate_konv_sgst = <fs_komv>-kbetr / 10. "TAX RATE
*Start of changes by sankeerthana
* gs_purreg-taxbase_amount_sgst = <fs_komv>-kwert. "SGST Base amount.
* gs_purreg-taxbase_amount_sgst = <fs_komv>-kawrt. "SGST Base amount.
gs_purreg-tax_type = 'SGST'.
*End of changes by sankeerthana
gs_purreg-taxrate_konv = gs_purreg-taxrate_konv_cgst + gs_purreg-
taxrate_konv_sgst .
CONCATENATE gs_purreg-taxrate_konv '%' INTO gs_purreg-taxrate_konv1.
CONDENSE gs_purreg-taxrate_konv1 NO-GAPS.
CLEAR:gs_purreg-taxrate_konv_cgst,
gs_purreg-taxrate_konv_sgst.

ELSEIF <fs_komv>-kschl = 'ZIIG'.


* gs_purreg-igstrate_konv = <fs_komv>-kbetr / 10. "IGSTRate"
* gs_purreg-igstamount_konv = <fs_komv>-kwert. ""IGSTAmount"
gs_purreg-taxrate_konv = <fs_komv>-kbetr / 10. "TAX RATE
*Start of changes by sankeerthana
* gs_purreg-taxbase_amount_igst = <fs_komv>-kwert. "IGST Base amount.
* gs_purreg-taxbase_amount_igst = <fs_komv>-kawrt. "IGST Base amount.
gs_purreg-tax_type = 'IGST'.
*End of changes by sankeerthana
CONCATENATE gs_purreg-taxrate_konv '%' INTO gs_purreg-taxrate_konv1.
CONDENSE gs_purreg-taxrate_konv1 NO-GAPS.
ELSEIF <fs_komv>-kschl = 'ZIIN'.
gs_purreg-igstrate_konv = <fs_komv>-kbetr / 10. "IGSTRate"
gs_purreg-igstamount_konv = <fs_komv>-kwert. ""IGSTAmount"
gs_purreg-taxrate_konv = <fs_komv>-kbetr / 10. "TAX RATE
*Start of changes by sankeerthana
* gs_purreg-taxbase_amount_igst = <fs_komv>-kwert. "IGST Base amount.
gs_purreg-taxbase_amount_igst = <fs_komv>-kawrt. "IGST Base amount.
gs_purreg-tax_type = 'IGST'.
*End of changes by sankeerthana
CONCATENATE gs_purreg-taxrate_konv '%' INTO gs_purreg-taxrate_konv1.
CONDENSE gs_purreg-taxrate_konv1 NO-GAPS.

ELSEIF <fs_komv>-kschl = 'BASB'.


gs_purreg-condition_value = <fs_komv>-kwert.
ENDIF.

IF gs_purreg-igstamount_konv IS NOT INITIAL.


gs_purreg-taxtotal_konv = gs_purreg-igstamount_konv. "TAX TOTAL
* gs_purreg-tottax_baseamount = gs_purreg-igstamount_konv.. "Total tax
base amount
ELSE.
gs_purreg-taxtotal_konv = gs_purreg-cgstamount_konv + gs_purreg-
sgstamount_konv .
* gs_purreg-tottax_baseamount = gs_purreg-cgstamount_konv +
gs_purreg-sgstamount_konv . "Total tax base amount
ENDIF.

IF <fs_komv>-kschl EQ 'ZCCS' ." OR gs_bset-kschl EQ 'ZCIS' ).


gs_purreg-cess_amount = <fs_komv>-kwert. " CESS AMOUNT
* gs_purreg-tax_type = 'GST Comp. cess'.
ENDIF.

********************************************************************************
***End of Add BY Ananth M 23/10/2017.
IF <fs_komv>-waers IS NOT INITIAL.
lv_curr = <fs_komv>-waers.
ENDIF.
IF <fs_komv>-kschl IN gr_vat.
PERFORM get_perc USING <fs_komv>
<fs_ekko_ekpo>-meins_i
CHANGING gs_purreg-vat_amt.
IF gs_purreg-vat_amt IS NOT INITIAL.
gs_purreg-vat_cur = lv_curr.
ENDIF.
ELSEIF <fs_komv>-kschl IN gr_cst.
PERFORM get_perc USING <fs_komv>
<fs_ekko_ekpo>-meins_i
CHANGING gs_purreg-cst_amt.
IF gs_purreg-cst_amt IS NOT INITIAL.
gs_purreg-cst_cur = lv_curr.
ENDIF.
ELSEIF <fs_komv>-kschl IN gr_st.
PERFORM get_perc USING <fs_komv>
<fs_ekko_ekpo>-meins_i
CHANGING gs_purreg-st_amt.
IF gs_purreg-st_amt IS NOT INITIAL.
gs_purreg-st_cur = lv_curr.
ENDIF.
ELSEIF <fs_komv>-kschl IN gr_exc.
PERFORM get_perc USING <fs_komv>
<fs_ekko_ekpo>-meins_i
CHANGING gs_purreg-ed_amt.
IF gs_purreg-ed_amt IS NOT INITIAL.
gs_purreg-ed_cur = lv_curr.
ENDIF.
* ELSEIF <fs_komv>-kschl IN gr_del.
* PERFORM get_perc USING <fs_komv>
* <fs_ekko_ekpo>-meins_i
* CHANGING gs_purreg-at_amt.
ENDIF.
ENDLOOP.

gs_purreg-waers_i = lv_curr.
CLEAR lv_curr.
UNASSIGN <fs_prcd>.
READ TABLE gt_prcd ASSIGNING <fs_prcd> WITH KEY knumv = <fs_ekko_ekpo>-knumv
kposn = <fs_ekko_ekpo>-kposn.
IF sy-subrc = 0 AND <fs_prcd> IS ASSIGNED.
lv_tabix = sy-tabix.
UNASSIGN <fs_prcd>.
LOOP AT gt_prcd ASSIGNING <fs_prcd> FROM lv_tabix.
IF <fs_ekko_ekpo>-knumv <> <fs_prcd>-knumv
OR <fs_ekko_ekpo>-kposn <> <fs_prcd>-kposn.
* LV_TABIX = SY-TABIX.
EXIT.
ELSE.
CASE <fs_prcd>-kschl.
WHEN 'JCV5' OR 'JCV4' OR 'JCV3' OR 'JCV2' OR 'JCV1'.
gs_purreg-cvd_amt = gs_purreg-cvd_amt + <fs_prcd>-kwert.
* if <fs_prcd>-waers is NOT INITIAL.
* gs_purreg-cvd_cur = <fs_prcd>-waers.
* ENDIF.
WHEN 'JCDB'.
gs_purreg-cd_amt = gs_purreg-cd_amt + <fs_prcd>-kwert.
* if <fs_prcd>-waers is NOT INITIAL.
* gs_purreg-cd_cur = <fs_prcd>-waers.
* ENDIF.
WHEN 'ZADC'.
gs_purreg-sad_amt = gs_purreg-sad_amt + <fs_prcd>-kwert.
* if <fs_prcd>-waers is NOT INITIAL.
* gs_purreg-sad_cur = <fs_prcd>-waers.
* ENDIF.
* Added by sankeerthana
WHEN 'FPF1' OR 'FQF1' OR 'FRA1' OR 'FRA2' OR 'FRB1' OR 'FRB2' OR 'FRC1'
OR 'FRC2' OR 'FVF1' OR 'TRAV' OR
'TRNL' OR 'TRNQ' OR 'TRNT' OR 'ZTRC'.
gs_purreg-freight_charges = gs_purreg-freight_charges + <fs_prcd>-
kwert.
WHEN 'PBXX'.
gs_purreg-basic_price = gs_purreg-basic_price + <fs_prcd>-kwert.
WHEN 'OTHR'.
gs_purreg-other_charges = gs_purreg-other_charges + <fs_prcd>-kwert.
WHEN 'ZOTV'.
gs_purreg-other_charges = gs_purreg-other_charges + <fs_prcd>-kwert.
* Ended by sankeerthana
WHEN 'PB00' OR 'PBXX' OR 'ZPB0' OR 'ZPBX' OR 'PBXX' OR 'P000' OR
'P001'.
* gs_purreg-tot_amt = gs_purreg-tot_amt + <fs_prcd>-kwert.
gs_purreg-base_amt = gs_purreg-base_amt + <fs_prcd>-kwert.
lv_curr = <fs_prcd>-waers.

CALL FUNCTION 'ROUND'


EXPORTING
decimals = 2
input = <fs_prcd>-kbetr
sign = '+'
IMPORTING
output = gs_purreg-base_rate
EXCEPTIONS
input_invalid = 1
overflow = 2
type_invalid = 3
OTHERS = 4.

WHEN 'ZPF1' OR 'ZPF2' OR 'ZPF3' OR 'LOAD' OR 'TRNT' OR 'TRNL' OR 'FRC1'


OR 'ROYL'.
gs_purreg-bt_amt = gs_purreg-bt_amt + <fs_prcd>-kwert.
* if <fs_prcd>-waers is NOT INITIAL.
* gs_purreg-bt_cur = <fs_prcd>-waers.
* ENDIF.
WHEN 'ZPF4' OR 'ZPF5' OR 'ZPF6'.
gs_purreg-at_amt = gs_purreg-at_amt + <fs_prcd>-kwert.
* if <fs_prcd>-waers is NOT INITIAL.
* gs_purreg-at_cur = <fs_prcd>-waers.
* ENDIF.

WHEN OTHERS.
ENDCASE.
ENDIF.
CLEAR <fs_prcd>-kwert.
* UNASSIGN <fs_prcd>.
ENDLOOP.
ENDIF.

IF gs_purreg-at_amt IS NOT INITIAL.


gs_purreg-at_cur = lv_curr.
ENDIF.
IF gs_purreg-bt_amt IS NOT INITIAL.
gs_purreg-bt_cur = lv_curr.
ENDIF.
IF gs_purreg-cvd_amt IS NOT INITIAL.
gs_purreg-cvd_cur = lv_curr.
ENDIF.
IF gs_purreg-sad_amt IS NOT INITIAL.
gs_purreg-sad_cur = lv_curr.
ENDIF.
IF gs_purreg-cd_amt IS NOT INITIAL.
gs_purreg-cd_cur = lv_curr.
ENDIF.
gs_purreg-tot_amt = gs_purreg-base_amt + gs_purreg-cvd_amt + gs_purreg-cst_amt
+ gs_purreg-ed_amt + gs_purreg-at_amt + gs_purreg-bt_amt
+ gs_purreg-st_amt + gs_purreg-vat_amt + gs_purreg-cd_amt.

BREAK pwcabap.
CLEAR : lv_tabix1, gs_matdoc, lv_tabix2.
READ TABLE gt_matdoc INTO gs_matdoc WITH KEY ebeln = <fs_ekko_ekpo>-ebeln_i
ebelp = <fs_ekko_ekpo>-ebelp_i
BINARY SEARCH.
***Added by Maheb
***Added by Maheb
gs_purreg-zeile_gst = gs_matdoc-zeile. "GRN Item No. "Added by Maheb
IF gs_purreg-prctr IS INITIAL AND <fs_ekko_ekpo>-bsart = 'ZSER'.
gs_purreg-prctr = gs_matdoc-pprctr."Profit center
ENDIF.
***Ended by Maheb
**Ended by Maheb
IF sy-subrc EQ 0.
lv_tabix1 = sy-tabix.
LOOP AT gt_matdoc ASSIGNING <fs_matdoc> FROM lv_tabix1.
IF <fs_matdoc>-ebeln NE <fs_ekko_ekpo>-ebeln_i
OR <fs_matdoc>-ebelp NE <fs_ekko_ekpo>-ebelp_i.
EXIT.
ELSE.
* ***Start of changes by chiru on 28-03-2018 # for correcting PGI doc
number
IF <fs_matdoc>-bwart = 641.
IF gs_purreg-pgi_doc IS INITIAL.
gs_purreg-pgi_doc = <fs_matdoc>-mblnr.
gs_purreg-bwart_gst = <fs_matdoc>-bwart. " ADDED BY Chiru on 29-03-
18 for moment type display on report
ENDIF.

ELSE.
gs_purreg-mblnr = <fs_matdoc>-mblnr.
gs_purreg-mblnr_gst = <fs_matdoc>-mblnr.
gs_purreg-bwart_gst = <fs_matdoc>-bwart. " ADDED BY Chiru on 29-03-18
for moment type display on report
ENDIF.
* ***End of changes by chiru on 28-03-2018 # for correcting PGI doc number
gs_purreg-mjahr = <fs_matdoc>-mjahr.
gs_purreg-zeile = <fs_matdoc>-zeile.
gs_purreg-menge_i = <fs_matdoc>-menge.
gs_purreg-budat = <fs_matdoc>-budat.
gs_purreg-budat_mkpf_gst = <fs_matdoc>-budat.
gs_purreg-lgort = <fs_matdoc>-lgort_sid.

***Added by Maheb
CLEAR gss_ekbe_1.
READ TABLE gtt_ekbe INTO gss_ekbe_1 WITH KEY belnr = <fs_matdoc>-mblnr
bewtp = 'E'. "Changed by
chiru on 12-04 ."BINARY SEARCH."belnr = gss_mseg-belnr
** gs_purreg-awkey_gst = gss_ekbe_1-awkey_bkpf." FI MIGO Doc No.
awkey+gjahr "Object Key (new name) "Added by Maheb "Commented by navya on
09.4.2018
* gs_purreg-budat_gst = gss_ekbe_1-budat. "FI MIGO Doc Date
"Posting Date(new name) " Added by Maheb " COMMNET BY CHIRU
**Ended by Maheb
* **start of changes by chiru on 12-04-2018
* only for FI DOCUMENTS BEWTP IF E = MIGO DOC OR Q = MIRO DOCS.

IF gss_ekbe_1-bewtp = 'E'.
CLEAR:gs_bkpf_c.
READ TABLE gt_bkpf INTO gs_bkpf_c WITH KEY awkey = gss_ekbe_1-
awkey_bkpf.

IF sy-subrc IS INITIAL.
gs_purreg-awkey_gst = gs_bkpf_c-belnr. "FI MIGO DOCUMENT NO.
gs_purreg-budat_gst = gs_bkpf_c-budat. " FI MIGO DOC DATE

CLEAR :gs_bseg2.
READ TABLE gt_bseg INTO gs_bseg2 WITH KEY belnr = gs_bkpf_c-belnr
bukrs = gs_bkpf_c-bukrs
gjahr = gs_bkpf_c-gjahr
buzid = 'M'
shkzg = 'S'.
IF sy-subrc IS INITIAL.
gs_purreg-migodoc_valbseg = gs_bseg2-dmbtr. " FI MIGO
Doc Value
ENDIF.

CLEAR:gs_bkpf_c2.
READ TABLE gt_bkpf INTO gs_bkpf_c2 WITH KEY awkey = gs_bkpf_c-awkey
xreversing = 'X'.
IF sy-subrc IS INITIAL.
gs_purreg-stblg_belnr = gs_bkpf_c2-belnr. " FI MIGO Reversal
Doc No
gs_purreg-budat_fi_rev = gs_bkpf_c2-budat. " FI MIGO Reversal
Doc No DATE

CLEAR:gs_bseg2.
READ TABLE gt_bseg INTO gs_bseg2 WITH KEY belnr = gs_bkpf_c2-belnr
bukrs = gs_bkpf_c2-bukrs
gjahr = gs_bkpf_c2-gjahr
buzid = 'M'
shkzg = 'H'.
IF sy-subrc IS INITIAL.
gs_purreg-migo_revvalue = gs_bseg2-dmbtr. " FI
MIGO Reversal Doc Value

ENDIF.
CLEAR:gs_bseg2.
ENDIF.
ENDIF.
ENDIF.

*chiru ,***
* IF gss_ekbe_1-bewtp = '
* ENDIF.
**ENDOF CHANGES BY CHIRU ****
UNASSIGN <fs_matdoc_rev>.
READ TABLE gt_matdoc_rev ASSIGNING <fs_matdoc_rev> WITH KEY sjahr =
<fs_matdoc>-mjahr
smbln = <fs_matdoc>-
mblnr
smblp = <fs_matdoc>-
zeile.
IF <fs_matdoc_rev> IS ASSIGNED.
gs_purreg-mblnr_gst_rev = <fs_matdoc_rev>-mblnr. "MM-MIGO
Reversal Doc no.
gs_purreg-budat_mkpf_gst_rev = <fs_matdoc_rev>-budat. " MM-MIGO
Reversal Doc Date
gs_purreg-migo_revtext = <fs_matdoc_rev>-sgtxt. "MIGO Reversal TEXT
ENDIF.
UNASSIGN <fs_exchdr>.
READ TABLE gt_exchdr ASSIGNING <fs_exchdr> WITH KEY rdoc = <fs_matdoc>-
mblnr
ryear = <fs_matdoc>-
ryear
.
IF sy-subrc EQ 0 AND <fs_exchdr> IS ASSIGNED.
gs_purreg-docno = <fs_exchdr>-docno.
gs_purreg-exnum = <fs_exchdr>-exnum.
gs_purreg-exdat = <fs_exchdr>-exdat.
ENDIF.

*** Added by navya on 10.04.2018


UNASSIGN <fs_rseg>.
READ TABLE gt_rseg ASSIGNING <fs_rseg> WITH KEY ebeln = <fs_ekko_ekpo>-
ebeln
ebelp = <fs_ekko_ekpo>-
ebelp_i.
IF sy-subrc = 0.
gs_purreg-steuc_hsn = <fs_rseg>-hsn_sac."MIRO HSN/SAC code "Added by
navya on 10.04.2018
ENDIF.
** End of addition by navya on 10.04.2018

UNASSIGN <fs_rseg>.
READ TABLE gt_rseg ASSIGNING <fs_rseg> WITH KEY lfbnr = <fs_matdoc>-mblnr
lfgja = <fs_matdoc>-mjahr
lfpos = <fs_matdoc>-
zeile.
IF sy-subrc EQ 0 AND <fs_rseg> IS ASSIGNED.
lv_tabix2 = sy-tabix.
LOOP AT gt_rseg ASSIGNING <fs_rseg> FROM lv_tabix2.
IF <fs_rseg>-lfbnr <> <fs_matdoc>-mblnr
OR <fs_rseg>-lfgja <> <fs_matdoc>-mjahr
OR <fs_rseg>-lfpos <> <fs_matdoc>-zeile.
EXIT.
ELSE.
gs_purreg-mwskz_gst = <fs_rseg>-mwskz. "MIRO TAX CODE
UNASSIGN <fs_rbkp>.
READ TABLE gt_rbkp ASSIGNING <fs_rbkp> WITH KEY belnr = <fs_rseg>-
belnr
gjahr = <fs_rseg>-
gjahr
BINARY SEARCH.
IF sy-subrc EQ 0 AND <fs_rbkp> IS ASSIGNED .
gs_purreg-belnr = <fs_rbkp>-belnr.
gs_purreg-gjahr = <fs_rbkp>-gjahr.
gs_purreg-budat_i = <fs_rbkp>-budat.
gs_purreg-xblnr = <fs_rbkp>-xblnr.
gs_purreg-beznk = <fs_rbkp>-beznk.
gs_purreg-buzei = <fs_rseg>-buzei.

gs_purreg-mblnr = <fs_matdoc>-mblnr.
gs_purreg-mjahr = <fs_matdoc>-mjahr.
gs_purreg-zeile = <fs_matdoc>-zeile.
gs_purreg-menge_i = <fs_matdoc>-menge.
gs_purreg-budat = <fs_matdoc>-budat.
IF <fs_exchdr> IS ASSIGNED .
gs_purreg-docno = <fs_exchdr>-docno.
gs_purreg-exnum = <fs_exchdr>-exnum.
gs_purreg-exdat = <fs_exchdr>-exdat.
ENDIF.
***chiru
* *** start of changes by chiru on 13-04-2018
.

CLEAR :gs_acdoca.
READ TABLE gt_acdoca INTO gs_acdoca WITH KEY awref = <fs_rbkp>-belnr
gjahr = <fs_rbkp>-gjahr.

IF sy-subrc IS INITIAL .
****** code for FI MIRO DOC NUMBER OR ACCOUNTING DOC NUMBER

gs_purreg-acc_doc_no = gs_acdoca-belnr. " Accounting document number or


MIRO FI DOCUMENT NUMBER
gs_purreg-budat_rbkp = gs_acdoca-budat. " Accounting document date or
MIRO FI DOCUMENT DATE

ENDIF.
* *** code for FI MIRO REVERSAL DOC NUMBER

CLEAR :gs_acdoca.
READ TABLE gt_acdoca INTO gs_acdoca WITH KEY awref_rev = <fs_rbkp>-belnr
gjahr = <fs_rbkp>-gjahr
* koart = 'K'
rbukrs = <fs_rbkp>-bukrs
XREVERSING = 'X'.
IF sy-subrc is INITIAL.

gs_purreg-miro_fi_rev = gs_acdoca-belnr. " FI MIRO REVERSAL


DOCUMENT NUMBER
gs_purreg-budat_fimiro_gst = gs_acdoca-budat. " FI MIRO REVERSAL
DOCUMENT DATE
gs_purreg-budat_rbkp_rev = gs_acdoca-budat. "MIRO Reversal Posting Date
ENDIF.
**logic for MIRO Reversal Doc No.
CLEAR :gs_acdoca.
READ TABLE gt_acdoca INTO gs_acdoca WITH KEY awref = <fs_rbkp>-belnr
gjahr = <fs_rbkp>-gjahr
rbukrs = <fs_rbkp>-bukrs
XREVERSED = 'X'.
IF sy-subrc is INITIAL.
gs_purreg-canceldoc_rbkp = gs_acdoca-awref_rev. " MIRO Reversal Doc No.

endif.
*** chiru

*** APPEND gs_purreg TO gt_purreg. " Commented by Sridhar/Pavan on


11/04/2018
*---- Begin of change by Sridhar/pavan on 11/04/2018.
" Exclud movement type documents
* IF gs_purreg-bwart_gst <> 102.
APPEND gs_purreg TO gt_purreg.
* ENDIF.
*---- End of Change by Sridhar/pavan on 11/04/2018
* CLEAR gs_purreg.
* ***Start of changes by chiru on 28-03-2018 #
CLEAR: gs_purreg-pgi_doc.
* ***end of changes by chiru on 28-03-2018 #
ENDIF.
ENDIF.
ENDLOOP.
** APPEND gs_purreg TO gt_purreg. " Commented by Sridhar/Pavan on
11/04/2018
*---- Begin of change by Sridhar/pavan on 11/04/2018.
" Exclud movement type documents
* IF gs_purreg-bwart_gst <> 102.
* APPEND gs_purreg TO gt_purreg. " commented by chiru on 12-04-2018
for changes
* ENDIF.
*---- End of Change by Sridhar/pavan on 11/04/2018
**** Added by navya on 10.04.2018
*** BREAK-POINT.
** SORT gt_purreg BY ebeln ebelp.
** DELETE ADJACENT DUPLICATES FROM gt_purreg COMPARING ebeln ebelp.
* SORT gt_purreg BY mblnr
* mjahr
* zeile .
* DELETE ADJACENT DUPLICATES FROM gt_purreg COMPARING mblnr
* mjahr
* zeile .

** End of addition by navya on 10.04.2018


ELSE.
***Added by Maheb

UNASSIGN <fs_rseg>.
READ TABLE gt_rseg ASSIGNING <fs_rseg> WITH KEY ebeln =
<fs_ekko_ekpo>-ebeln
ebelp = <fs_ekko_ekpo>-
ebelp_i.
IF sy-subrc = 0.
gs_purreg-belnr = <fs_rseg>-belnr.
gs_purreg-steuc_hsn = <fs_rseg>-hsn_sac."MIRO HSN/SAC code "Added
by navya on 10.04.2018

UNASSIGN <fs_rbkp>.
READ TABLE gt_rbkp ASSIGNING <fs_rbkp> WITH KEY belnr = <fs_rseg>-
belnr
gjahr = <fs_rseg>-
gjahr
BINARY SEARCH.
IF sy-subrc EQ 0 AND <fs_rbkp> IS ASSIGNED .
gs_purreg-belnr = <fs_rbkp>-belnr.
gs_purreg-gjahr = <fs_rbkp>-gjahr.
gs_purreg-budat_i = <fs_rbkp>-budat.
gs_purreg-xblnr = <fs_rbkp>-xblnr.
gs_purreg-beznk = <fs_rbkp>-beznk.
gs_purreg-buzei = <fs_rseg>-buzei.
ENDIF.
ENDIF.

READ TABLE gtt_rseg INTO gss_rseg WITH KEY ebeln = <fs_ekko_ekpo>-


ebeln "gt_rseg
ebelp =
<fs_ekko_ekpo>-ebelp_i.
CLEAR gss_ekbe.
READ TABLE gtt_ekbe INTO gss_ekbe WITH KEY belnr = gss_rseg-belnr.
"<fs_rseg>-belnr.
IF gss_ekbe-bewtp = 'Q' OR gss_ekbe-bewtp = 'RE-L'.
gs_purreg-mwskz_gst = gss_ekbe-mwskz.
gs_purreg-menge_i = gss_rseg-menge.
ENDIF.
***Ended by Maheb

*** APPEND gs_purreg TO gt_purreg. " Commented by Sridhar/Pavan on


11/04/2018
*---- Begin of change by Sridhar/pavan on 11/04/2018.
" Exclud movement type documents
* IF gs_purreg-bwart_gst <> 102.
APPEND gs_purreg TO gt_purreg.
* ENDIF.
*---- End of Change by Sridhar/pavan on 11/04/2018
* CLEAR gs_purreg.
* * ***Start of changes by chiru on 28-03-2018 #
CLEAR: gs_purreg-pgi_doc.
**** Added by navya on 10.04.2018
*** BREAK-POINT.
** SORT gt_purreg BY ebeln ebelp.
** DELETE ADJACENT DUPLICATES FROM gt_purreg COMPARING ebeln ebelp.
** SORT gt_purreg BY mblnr
** mjahr
** zeile .
** DELETE ADJACENT DUPLICATES FROM gt_purreg COMPARING mblnr
* mjahr
* zeile .
** End of addition by navya on 10.04.2018
* ***end of changes by chiru on 28-03-2018 #
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
** APPEND gs_purreg TO gt_purreg. " Commented by Sridhar/Pavan on 11/04/2018
*---- Begin of change by Sridhar/pavan on 11/04/2018.
" Exclud movement type documents
* IF gs_purreg-bwart_gst <> 102.
APPEND gs_purreg TO gt_purreg.
* ENDIF.
*---- End of Change by Sridhar/pavan on 11/04/2018
CLEAR gs_purreg.
ENDIF.
CLEAR gs_purreg.
ENDLOOP.

IF gt_purreg IS NOT INITIAL.


SORT gt_purreg BY bukrs werks ebeln ebelp aedat mblnr mjahr zeile.
ENDIF.
ENDFORM.

FORM get_perc USING is_komv TYPE komv


* p_taxty TYPE c
p_meins TYPE ekpo-meins
CHANGING "p_perc TYPE string
p_amt TYPE vfprc_element_value.
"p_text TYPE string.

* DATA : lv_perc TYPE string,


* lv_meins TYPE string,
* lv_kpein TYPE string.
* CLEAR : p_amt,
* p_text.

CASE is_komv-krech.
WHEN 'A'.
* lv_perc = is_komv-kbetr / 10.
p_amt = p_amt + is_komv-kwert.
* p_perc = p_perc + lv_perc.
* MOVE p_perc TO lv_perc.
* CONCATENATE p_taxty lv_perc
* '%' INTO p_text SEPARATED BY space.
WHEN 'C'.
* lv_perc = is_komv-kbetr.
p_amt = p_amt + is_komv-kwert.
* p_perc = p_perc + lv_perc.
* MOVE p_perc TO lv_perc.
* MOVE p_meins TO lv_meins.
* MOVE is_komv-kpein TO lv_kpein.
* CONCATENATE p_taxty lv_perc
* 'per' lv_kpein lv_meins INTO p_text SEPARATED BY space.
ENDCASE.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_data .
DATA : lv_count TYPE i.
CLEAR lv_count.
PERFORM : build_fcat TABLES gt_fieldcat
USING lv_count 'BUKRS' 'GT_PURREG' 'COMPANY CODE' '20' ' ' 'BUKRS'
'T001' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'WERKS' 'GT_PURREG' 'PLANT' '15' ' ' 'WERKS' 'T001W' ''
'',
build_fcat TABLES gt_fieldcat
USING lv_count 'PLAN_NAME' 'GT_PURREG' 'Plant Name' '20' ' ' ' ' ' '
'' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'LIFNR' 'GT_PURREG' 'Vendor No.' '20' '' ' ' ' ' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'VEND_NAME' 'GT_PURREG' 'Vendor Name' '30' ' ' '' '' ''
'',
build_fcat TABLES gt_fieldcat
USING lv_count 'VEN_CLASS' 'GT_PURREG' 'Vendor Tax Classification'
'30' ' ' '' '' '' '',
* build_fcat TABLES gt_fieldcat
* USING lv_count 'TAXNUM' 'GT_PURREG' 'GSTIN/UIN of Supplier' '20' '' '
' ' ' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'STEUC' 'GT_PURREG' 'HSN/SAC Code' '20' '' ' ' ' ' ''
'',
build_fcat TABLES gt_fieldcat
USING lv_count 'AKONT' 'GT_PURREG' 'Recon A/C' '20' '' ' ' ' ' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'RESWK' 'GT_PURREG' 'Supplying Plant' '20' ' ' ' ' ' '
'' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'SUPP_NAME' 'GT_PURREG' 'Supplying Plant Name' '30' ' '
'' '' '' '',

** Begin of comment ANANTH M 18/09/2017.


** build_fcat TABLES gt_fieldcat
** USING lv_count 'LANDX50' 'GT_PURREG' 'Vendor Country' '30' ' ' ' ' '
' '' '',
** build_fcat TABLES gt_fieldcat
** USING lv_count 'J_1IEXCD' 'GT_PURREG' 'ECC No.' '20' ' ' '' '' ''
'',
** build_fcat TABLES gt_fieldcat
** USING lv_count 'J_1IEXRN' 'GT_PURREG' 'Excise Reg No.' '20' ' ' ' '
' ' '' '',
** build_fcat TABLES gt_fieldcat
** USING lv_count 'J_1IEXDI' 'GT_PURREG' 'Excise Division' '20' ' ' ' '
' ' '' '',
** End of comment ANANTH M 18/09/2017.

build_fcat TABLES gt_fieldcat


USING lv_count 'BSART' 'GT_PURREG' 'PO Doc. Type' '15' ' ' '' '' ''
'',
build_fcat TABLES gt_fieldcat
USING lv_count 'EBELN' 'GT_PURREG' 'PO Number' '15' 'X' 'EBELN' 'EKKO'
'' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'EBELP' 'GT_PURREG' 'PO Line Item' '10' ' ' 'EBELP'
'EKPO' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'BEDAT' 'GT_PURREG' 'PO DOC. Date' '30' ' ' 'BEDAT'
'EKKO' '' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'AEDAT' 'GT_PURREG' 'PO Date' '30' ' ' 'AEDAT' 'EKKO'
'' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'EKGRP' 'GT_PURREG' 'Purchasing Group' '20' ' ' 'EKGRP'
'EKKO' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'BLAND' 'GT_PURREG' 'Vendor Region No' '10' ' ' 'BLAND'
'T005U' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'BEZEI' 'GT_PURREG' 'Vendor State' '15' ' ' '' '' ''
'',
build_fcat TABLES gt_fieldcat
USING lv_count 'ZTERM' 'GT_PURREG' 'Payment Term Code' '25' ' '
'ZTERM' 'EKKO' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'INCO1' 'GT_PURREG' 'Inco Term' '20' ' ' 'INCO1' 'EKKO'
'' '',
** Begin of comment ANANTH M 18/09/2017.
** build_fcat TABLES gt_fieldcat
** USING lv_count 'ZZLICTY' 'GT_PURREG' 'License Type' '25' ' ' ' ' ' '
'' '',
** build_fcat TABLES gt_fieldcat
** USING lv_count 'ZZLICENSENO' 'GT_PURREG' 'License No.' '30' ' ' ' '
' ' '' '',
** End of comment ANANTH M 18/09/2017.
build_fcat TABLES gt_fieldcat
USING lv_count 'KNTTP' 'GT_PURREG' 'AAC' '20' ' ' ' ' ' ' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'PTEXT' 'GT_PURREG' 'Item Category' '20' ' ' ' ' ' ' ''
'',
build_fcat TABLES gt_fieldcat
USING lv_count 'MATNR' 'GT_PURREG' 'Material Code' '20' ' ' 'MATNR'
'EKPO' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'MAKTX' 'GT_PURREG' 'Material Description' '30' ' ' ''
'' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'MENGE' 'GT_PURREG' 'PO Quantity' '20' ' ' 'MENGE'
'EKPO' '' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'LMEIN' 'GT_PURREG' 'PO UOM' '15' ' ' 'LMEIN' 'EKPO' ''
'',
** Begin of comment ANANTH M 18/09/2017.
**If client executing the report after 1st july then we needs to Hide the below
fields .
build_fcat TABLES gt_fieldcat
USING lv_count 'BASE_RATE' 'GT_PURREG' 'PO Base Rate' ' ' ' ' '' '' ''
'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'MWSKZ' 'GT_PURREG' 'Tax Code' '15' ' ' 'MWSKZ' 'EKPO'
'' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'TEXT1' 'GT_PURREG' 'TC Description' '30' ' ' '' '' ''
'',
** build_fcat TABLES gt_fieldcat
** USING lv_count 'VAT_AMT' 'GT_PURREG' 'VAT Amount' ' ' ' ' '' '' ''
'',
** build_fcat TABLES gt_fieldcat
** USING lv_count 'VAT_CUR' 'GT_PURREG' 'VAT Currency' ' ' ' ' '' '' ''
'',
build_fcat TABLES gt_fieldcat
USING lv_count 'ST_AMT' 'GT_PURREG' 'ST Amount' ' ' ' ' '' '' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'ST_CUR' 'GT_PURREG' 'ST Currency' ' ' ' ' '' '' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'CST_AMT' 'GT_PURREG' 'CST Amount' ' ' ' ' '' '' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'CST_CUR' 'GT_PURREG' 'CST Currency' ' ' ' ' '' '' ''
'',
build_fcat TABLES gt_fieldcat
USING lv_count 'ED_AMT' 'GT_PURREG' 'Exc.Duty Amount' ' ' ' ' '' '' ''
'',
build_fcat TABLES gt_fieldcat
USING lv_count 'ED_CUR' 'GT_PURREG' 'Exc.Duty Currency' ' ' ' ' '' ''
'' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'BT_AMT' 'GT_PURREG' 'Del. Charges (BT)' ' ' ' ' '' ''
'' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'BT_CUR' 'GT_PURREG' 'BT Currency' ' ' ' ' '' '' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'AT_AMT' 'GT_PURREG' 'Del. Charges (AT)' ' ' ' ' '' ''
'' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'AT_CUR' 'GT_PURREG' 'AT Currency' ' ' ' ' '' '' '' '',
** End of comment ANANTH M 18/09/2017.

** Begin of comment ANANTH M 18/09/2017.


** build_fcat TABLES gt_fieldcat
** USING lv_count 'CVD_AMT' 'GT_PURREG' 'CVD Amount' '' ' ' '' '' ''
'',
** build_fcat TABLES gt_fieldcat
** USING lv_count 'CVD_CUR' 'GT_PURREG' 'CVD Currency' ' ' ' ' '' '' ''
'',
** build_fcat TABLES gt_fieldcat
** USING lv_count 'CD_AMT' 'GT_PURREG' 'CD Amount' '' ' ' '' '' '' '',
** build_fcat TABLES gt_fieldcat
** USING lv_count 'CD_CUR' 'GT_PURREG' 'CD Currency' ' ' ' ' '' '' ''
'',
** build_fcat TABLES gt_fieldcat
** USING lv_count 'SAD_AMT' 'GT_PURREG' 'SAD Amount' '' ' ' '' '' ''
'',
* build_fcat TABLES gt_fieldcat
* USING lv_count 'SAD_CUR' 'GT_PURREG' 'SAD Currency' ' ' ' ' '' '' ''
'',

build_fcat TABLES gt_fieldcat


USING lv_count 'TOT_AMT' 'GT_PURREG' 'PO Total Amount' '' ' ' '' '' ''
'',

** End of comment ANANTH M 18/09/2017.


build_fcat TABLES gt_fieldcat
USING lv_count 'WAERS_I' 'GT_PURREG' 'Currency' '15' ' ' '' '' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'WKURS' 'GT_PURREG' 'PO Exc Rate' '' ' ' 'WKURS' 'EKKO'
'' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'WAERS' 'GT_PURREG' 'Exc Rate Currency' '20' ' '
'WAERS' 'EKKO' '' '',
* ***Start of changes by chiru on 28-03-2018 # duplicate migo doc repeat
* BUILD_FCAT TABLES GT_FIELDCAT
* USING LV_COUNT 'MBLNR' 'GT_PURREG' 'MM Migo Doc No.' '15' 'X' 'MBLNR'
'MATDOC' '' '',
***end of changes by chiru on 28-03-2018 # duplicate migo doc repeat
build_fcat TABLES gt_fieldcat
USING lv_count 'PGI_DOC' 'GT_PURREG' 'PGI Doc No.' '15' 'X' '' '' ''
'',
build_fcat TABLES gt_fieldcat
USING lv_count 'MJAHR' 'GT_PURREG' 'Material Doc Year' '20' ' '
'MJAHR' 'MATDOC' '' 'X',
** * ***Start of changes by chiru on 28-03-2018 # duplicate migo
doc repeat
* BUILD_FCAT TABLES GT_FIELDCAT
* USING LV_COUNT 'BUDAT' 'GT_PURREG' 'GR Posting Date' '20' ' ' 'BUDAT'
'MATDOC' '' 'X',
* * ***end of changes by chiru on 28-03-2018 # duplicate migo doc
repeat
build_fcat TABLES gt_fieldcat
USING lv_count 'ZEILE' 'GT_PURREG' 'GR Line iten' '15' ' ' 'ZEILE'
'MATDOC' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'MENGE_I' 'GT_PURREG' 'GR Quantity' '15' ' ' 'MENGE'
'MATDOC' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'MEINS' 'GT_PURREG' 'GR UoM' '10' ' ' 'MEINS' 'MATDOC'
'' '',

build_fcat TABLES gt_fieldcat


USING lv_count 'J_1ICHID' 'GT_PURREG' 'Chapter ID' '15' ' '
'J_1ICHID' 'J_1IMTCHID' '' '',
** Begin of comment ANANTH M 18/09/2017.
*If client executing the report after 1st july then we needs to Hide the below
fields .
build_fcat TABLES gt_fieldcat
USING lv_count 'EXNUM' 'GT_PURREG' 'Excise Inv No.' '20' ' ' 'EXNUM'
'J_1IEXCHDR' '' '', " 20
build_fcat TABLES gt_fieldcat
USING lv_count 'EXDAT' 'GT_PURREG' 'Excise Inv Date' '15' ' ' 'EXDAT'
'J_1IEXCHDR' '' 'X', " 20
build_fcat TABLES gt_fieldcat
USING lv_count 'DOCNO' 'GT_PURREG' 'Exc. Internal No.' '20' ' '
'DOCNO' 'J_1IEXCHDR' '' 'X', " 20
build_fcat TABLES gt_fieldcat
USING lv_count 'J_1ICSTNO' 'GT_PURREG' 'CST No.' '40' ' ' 'J_1ICSTNO'
'J_1IMOCOMP' '' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'J_1ILSTNO' 'GT_PURREG' 'LST No.' '40' ' ' 'J_1ILSTNO'
'J_1IMOCOMP' '' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'J_1ILSTNO_1' 'GT_PURREG' 'Vendor TIN No.' '40' ' '
'J_1ILSTNO' 'LFA1' '' 'X',
** End of comment ANANTH M 18/09/2017.

build_fcat TABLES gt_fieldcat


USING lv_count 'BELNR' 'GT_PURREG' 'MM MIRO Doc No.' '15' ' '
'BELNR' 'RBKP' '' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'GJAHR' 'GT_PURREG' 'Account Doc Year' '20' ' '
'GJAHR' 'RBKP' '' 'X',
* build_fcat TABLES gt_fieldcat
* USING lv_count 'BUDAT_I' 'GT_PURREG' 'Acc. Doc. Poting Date'
'20' ' ' 'BUDAT' 'RBKP' '' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'BUDAT_I' 'GT_PURREG' 'Vendor Invoice Date ' '20'
' ' '' '' '' 'X',

**Begin of comment ANANTH M 18/09/2017.


* *If client executing the report after 1st july then we needs to Hide the below
fields .
build_fcat TABLES gt_fieldcat
USING lv_count 'BEZNK' 'GT_PURREG' 'UnPlanned Del.' '15' ' ' ''
'' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'DPPCT' 'GT_PURREG' 'PO Down payment %' '15' ' '
'DPPCT' 'EKKO' '' '',
build_fcat TABLES gt_fieldcat
USING lv_count 'DPAMT' 'GT_PURREG' 'PO Down payment Amount' '25'
' ' 'DPAMT' 'EKKO' '' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'DPDAT' 'GT_PURREG' 'Due Date For DP' '15' ' '
'DPDAT' 'EKKO' '' 'X',
** End of comment ANANTH M 18/09/2017.

** Begin of ADD ANANTH M 15/09/2017.


*** BUILD_FCAT TABLES GT_FIELDCAT
*** USING LV_COUNT 'VEN_CLASS_GST' 'GT_PURREG' 'Vendor Identification' '20' ' '
'C(30)' ' ' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'GSTIN' 'GT_PURREG' 'GSTIN No. of Receiving plant' '30' ' '
'GSTIN' 'J_1BBRANCHV' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'STCD3_GST' 'GT_PURREG' 'GSTIN NO OF Vendor' '30' ' ' 'STCD3'
'LFA1' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'PRCTR' 'GT_PURREG' 'Profit center' '20' ' ' 'PRCTR' 'MARC' ''
'X',

*** BUILD_FCAT TABLES GT_FIELDCAT


*** USING LV_COUNT 'WERKS' 'GT_PURREG' 'Receiving PLANT CODE' '30' ' ' 'WERKS'
'T001W' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'LGORT' 'GT_PURREG' 'Storage Location' '30' ' ' 'LGORT' 'MARD' ''
'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'REVSTATECODE' 'GT_PURREG' 'Receiving STATE CODE' '30' ' ' '' ''
'' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'REVSTATENAME' 'GT_PURREG' 'Receiving STATE NAME' '30' ' ' '' ''
'' 'X',

* build_fcat TABLES gt_fieldcat


* USING lv_count 'ORT01_GST' 'GT_PURREG' 'Vendor STATE NAME' '30' ' ' 'ORT01'
'LFA1' '' 'X',

**start of changes by chiru on 29-03-2018 chnaged from Vendor STATE NAME to Vendor
City
* BUILD_FCAT TABLES GT_FIELDCAT
* USING LV_COUNT 'ORT01_GST' 'GT_PURREG' 'Vendor STATE NAME' '30' ' ' '' '' ''
'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'ORT01_GST' 'GT_PURREG' 'Vendor City' '30' ' ' '' '' '' 'X',
**end of changes by chiru on 29-03-2018 chnaged from Vendor STATE NAME to Vendor
City
build_fcat TABLES gt_fieldcat
USING lv_count 'REGIO_GST' 'GT_PURREG' 'Vendor STATE CODE' '30' ' ' 'REGIO'
'LFA1' '' ' ',

* build_fcat TABLES gt_fieldcat


* USING lv_count 'HSN_SAC' 'GT_PURREG' 'HSN/SAC CODE' '20' ' '
'HSN_SAC' 'BSEG' '' 'X',

*
* build_fcat TABLES gt_fieldcat
* USING lv_count 'MWSKZ_GST1' 'GT_PURREG' 'PO TAX CODE' '20' ' ' 'MWSKZ' 'RSEG'
'' 'X',

* build_fcat TABLES gt_fieldcat


* USING lv_count 'KONTS_GST' 'GT_PURREG' 'GL A/c assigned to Material/Service'
'60' ' ' 'SAKNR' 'T030' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'KONTS_GST' 'GT_PURREG' 'G/L Account' '30' ' ' '' '' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'BKLAS_GST' 'GT_PURREG' 'Valuation class' '20' ' ' 'BKLAS' 'MBEW'
'' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'SRVPOS_GST' 'GT_PURREG' 'Activity No.' '20' ' ' 'SRVPOS' 'ESLL'
'' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'ASKTX' 'GT_PURREG' 'Activity Decription.' '30' ' ' 'ASKTX'
'ASMDT' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'MATKL_GST' 'GT_PURREG' 'Material Group' '20' ' ' 'ASKTX' 'ASMD'
'' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'ASTYP_GST' 'GT_PURREG' 'Material Category' '25' ' ' 'ASKTX'
'ASMD' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'BWART_GST' 'GT_PURREG' 'Movement type.' '20' ' ' 'BWART' 'MSEG'
'' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'ZEILE_GST' 'GT_PURREG' 'GRN Item No.' '20' ' ' 'ZEILE' 'MSEG' ''
' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'MBLNR_GST' 'GT_PURREG' 'MM-MIGO Doc no.' '20' ' ' 'MBLNR' 'MSEG'
'' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'BUDAT_MKPF_GST' 'GT_PURREG' 'MM-MIGO Doc Date' '30' ' '
'BUDAT_MKPF' 'MSEG' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'AWKEY_GST' 'GT_PURREG' 'FI MIGO Doc No' '20' ' ' 'AWKEY' 'BKPF'
'' 'X',"FI MIGO Doc No."Object Key

build_fcat TABLES gt_fieldcat


USING lv_count 'BUDAT_GST' 'GT_PURREG' 'FI MIGO Doc Date' '25' ' ' 'BUDAT'
'BKPF' '' 'X', "FI MIGO Doc Date Posting Date

build_fcat TABLES gt_fieldcat


USING lv_count 'CESS_AMOUNT' 'GT_PURREG' 'Cess Amount' '10' ' ' 'HWSTE' 'BSET'
'' ' ', "CESS Amount

build_fcat TABLES gt_fieldcat


USING lv_count 'MIGODOC_VALBSEG' 'GT_PURREG' 'FI MIGO Doc Value' '25' ' '
'DMBTR' 'BSEG' '' 'X', "FI MIGO Doc Value

build_fcat TABLES gt_fieldcat


USING lv_count 'MIGO_TEXT' 'GT_PURREG' 'MIGO TEXT' '15' ' ' 'SGTXT' 'MSEG' ''
'X', "MIGO TEXT

build_fcat TABLES gt_fieldcat


USING lv_count 'MBLNR_GST_REV' 'GT_PURREG' 'MM-MIGO Reversal Doc no.' '40' ' '
'MBLNR' 'MSEG' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'BUDAT_MKPF_GST_REV' 'GT_PURREG' 'MM-MIGO Reversal Doc Date' '50'
' ' 'BUDAT_MKPF' 'MSEG' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'STBLG_BELNR' 'GT_PURREG' 'FI MIGO Reversal Doc No' '40' ' '
'BELNR_D' 'BKPF' '' ' ', "FI MIGO Reversal Doc No

build_fcat TABLES gt_fieldcat


USING lv_count 'BUDAT_FI_REV' 'GT_PURREG' 'FI MIGO Reversal Doc Date' '40' ' '
'BUDAT' 'BKPF' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'MIGO_REVVALUE' 'GT_PURREG' 'FI MIGO Reversal Doc Value' '40' ' '
'GRUND' 'MSEG' '' ' ',"FI MIGO Reversal Doc Value
build_fcat TABLES gt_fieldcat
USING lv_count 'MIGO_REVTEXT' 'GT_PURREG' 'MIGO Reversal TEXT' '25' ' ' 'SGTXT'
'MSEG' '' 'X', "MIGO Reversal TEXT

build_fcat TABLES gt_fieldcat


USING lv_count 'BELNR_RBKP' 'GT_PURREG' 'Vendor INV. NO.' '30' ' ' 'BELNR'
'RBKP' '' 'X',

* build_fcat TABLES gt_fieldcat


* USING lv_count 'BUZEI_GST' 'GT_PURREG' 'MIRO Doc No.' '30' ' ' 'BUZEI' 'RSEG'
'' 'X',

build_fcat TABLES gt_fieldcat


* USING lv_count 'BUZEI_GST' 'GT_PURREG' 'Accounting Document No .' '30' ' ' ''
'' '' 'X', "Commented by navya on 09.04.2018
USING lv_count 'ACC_DOC_NO' 'GT_PURREG' 'Accounting Document No .' '30' ' ' ''
'' '' 'X', "Added by navya on 09.04.2018

build_fcat TABLES gt_fieldcat


USING lv_count 'BUDAT_RBKP' 'GT_PURREG' 'MIRO Posting Date' '30' ' ' 'BUDAT'
'RBKP' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'XBLNR_ALT' 'GT_PURREG' 'ODN Doc No ' '30' ' ' 'XBLNR_ALT' 'BKPF'
'' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'BUZEI_GST' 'GT_PURREG' 'INV. ITEM NO.' '30' ' ' 'BUZEI' 'RSEG'
'' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'STEUC_HSN' 'GT_PURREG' 'MIRO HSN/SAC code' '30' ' ' 'STEUC'
'MARC' '' 'X',

* build_fcat TABLES gt_fieldcat


* USING lv_count 'MWSKZ_GST' 'GT_PURREG' 'MIRO TAX CODE' '15' ' ' 'MWSK' 'BSEG'
'' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'MWSKZ_GST' 'GT_PURREG' 'MIRO TAX CODE' '15' ' ' '' '' '' 'X',

* build_fcat TABLES gt_fieldcat


* USING lv_count 'MWSKZ_GST1' 'GT_PURREG' 'PO TAX CODE' '13' ' ' 'MWSKZ' 'RSEG'
'' 'X',
build_fcat TABLES gt_fieldcat
USING lv_count 'MWSKZ_GST1' 'GT_PURREG' 'PO TAX CODE' '13' ' ' '' '' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'MWSKZ_TAXDESC' 'GT_PURREG' 'Tax Descriptions' '20' ' ' 'TEXT1'
'T007S' '' 'X',

* build_fcat TABLES gt_fieldcat


* USING lv_count 'TAXRATE_KONV1' 'GT_PURREG' 'TAX RATE' '10' ' ' 'KBETR' 'KONV'
'' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'TAXRATE_KONV1' 'GT_PURREG' 'TAX RATE' '10' ' ' '' '' '' 'X',

* build_fcat TABLES gt_fieldcat


* USING lv_count 'CGSTRATE_KONV' 'GT_PURREG' 'CGSTRate' '10' ' ' 'KBETR' 'BSET'
'' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'CGSTRATE_KONV' 'GT_PURREG' 'CGSTRate' '10' ' ' '' '' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'CGSTAMOUNT_KONV' 'GT_PURREG' 'CGSTAmount' '11' ' ' '' '' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'TAXBASE_AMOUNT_CGST' 'GT_PURREG' 'CGST Base Amount' '20' ' ' ''
'' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'SGSTRATE_KONV' 'GT_PURREG' 'SGSTRate' '10' ' ' '' '' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'SGSTAMOUNT_KONV' 'GT_PURREG' 'SGSTAmount' '11' ' ' '' '' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'TAXBASE_AMOUNT_SGST' 'GT_PURREG' 'SGST Base Amount' '20' ' ' ''
'' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'IGSTRATE_KONV' 'GT_PURREG' 'IGSTRate' '10' ' ' '' '' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'IGSTAMOUNT_KONV' 'GT_PURREG' 'IGSTAmount' '11' ' ' '' '' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'TAXBASE_AMOUNT_IGST' 'GT_PURREG' 'IGST Base Amount' '20' ' ' ''
'' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'TAX_TYPE' 'GT_PURREG' 'TAX Type' '20' ' ' '' '' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'CONDITION_VALUE' 'GT_PURREG' 'Condition Value' '20' ' ' 'KWERT'
'KONV' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'TAXTOTAL_KONV' 'GT_PURREG' 'TAXTOTAL' '10' ' ' 'WRBTR' 'BSET' ''
' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'TOTTAX_BASEAMOUNT' 'GT_PURREG' 'Total Tax Base Amt' '20' ' '
'WRBTR' 'BSEG' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'INVOICETOTAL_KONV' 'GT_PURREG' 'INVOICE TOTAL' '15' ' ' 'RMWWR'
'RBKP' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'SGTXT_RBKP' 'GT_PURREG' 'MIRO Text' '10' ' ' 'SGTXT' 'RBKP' ''
'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'CANCELDOC_RBKP' 'GT_PURREG' 'MIRO Reversal Doc No.' '30' ' '
'BELNR_D' 'RBKP' '' ' ',
build_fcat TABLES gt_fieldcat
USING lv_count 'BUDAT_RBKP_REV' 'GT_PURREG' 'MIRO Reversal Posting Date' '30' '
' 'BUDAT' 'RBKP' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'MIRO_FI_REV' 'GT_PURREG' 'MIRO FI reversal Doc no.' '30' ' '
'BELNR_D' 'BKPF' '' ' ',
* USING lv_count 'BELNR_GST' 'GT_PURREG' 'MIRO FI reversal Doc no.' '30' ' '
'BELNR_D' 'BKPF' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'BUDAT_FIMIRO_GST' 'GT_PURREG' 'MIRO FI reversal Doc date' '40' '
' 'BUDAT' 'BKPF' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'ODNREV_RBKP' 'GT_PURREG' 'ODN Reversal Doc No.' '20' ' ' 'BELNR'
'RBKP' '' ' ',"ODN Reversal Doc No.

build_fcat TABLES gt_fieldcat


USING lv_count 'XBLNR_GST' 'GT_PURREG' 'GST INBOUND INV No.' '20' ' ' 'XBLNR'
'BKPF' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'BLDAT_GST' 'GT_PURREG' 'GST INBOUND INV Date' '25' ' ' 'BLDAT'
'BKPF' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'BELNR_GST' 'GT_PURREG' 'GST Inbound Invoice Value' '35' ' '
'BELNR_D' 'BKPF' '' ' ', "GST Inbound Invoice Value

build_fcat TABLES gt_fieldcat


USING lv_count 'GST_INBOUND_QTY' 'GT_PURREG' 'GST Inbound Invoice Qty' '35' ' '
'FKIMG' 'VBRP' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'BUDAT_FIMIRO_GST' 'GT_PURREG' 'INV. DUE DATE OF INVOICE PAYMENT'
'40' ' ' 'BUDAT' 'BKPF' '' 'X',""INV. DUE DATEOF INVOICE PAYMENT"

build_fcat TABLES gt_fieldcat


USING lv_count 'XBLNR_MKPF_GST' 'GT_PURREG' 'Delivery Note Number' '23' ' '
'XBLNR1' 'MKPF' '' ' ',

build_fcat TABLES gt_fieldcat


USING lv_count 'FRBNR_BILL_NO' 'GT_PURREG' 'Bill of Entry No' '16' ' ' '' '' ''
'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'BASIC_PRICE' 'GT_PURREG' 'Basic Price' '16' ' ' '' '' '' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'FREIGHT_CHARGES' 'GT_PURREG' 'Frieght Charges' '16' ' ' '' ''
'' 'X',

build_fcat TABLES gt_fieldcat


USING lv_count 'OTHER_CHARGES' 'GT_PURREG' 'Other Charges' '16' ' ' '' '' ''
'X'.

* build_fcat TABLES gt_fieldcat


*USING lv_count ' ' 'GT_PURREG' 'Shipping Bill No.' '30' ' ' 'XBLNR' 'EKBE' ''
'X'."Shipping Bill No.

** End of ADD ANANTH M 15/09/2017.

CLEAR gs_layout.
gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.

* REFRESH : GT_SORT.
* CLEAR GS_SORT.
* GS_SORT-SPOS = '1'.
* GS_SORT-FIELDNAME = 'WERKS'.
* GS_SORT-TABNAME = 'GT_PURREG'.
* GS_SORT-UP = 'X'.
* APPEND GS_SORT TO GT_SORT.
* CLEAR GS_SORT.
*
* GS_SORT-SPOS = '2'.
* GS_SORT-FIELDNAME = 'EBELN'.
* GS_SORT-TABNAME = 'GT_PURREG'.
* GS_SORT-UP = 'X'.
* APPEND GS_SORT TO GT_SORT.
* CLEAR GS_SORT.
*
* GS_SORT-SPOS = '3'.
* GS_SORT-FIELDNAME = 'EBELP'.
* GS_SORT-TABNAME = 'GT_PURREG'.
* GS_SORT-UP = 'X'.
* APPEND GS_SORT TO GT_SORT.
* CLEAR GS_SORT.

**Begin of ADD Ananth M 19/09/2017.


DATA: lv_datee TYPE char8.
lv_datee = '20170701'.
REFRESH gt_purreg_gst.
gt_purreg_gst = gt_purreg.
REFRESH gt_purreg.

REFRESH :gt_fieldcat_gst.
gt_fieldcat_gst = gt_fieldcat.
REFRESH :gt_fieldcat.
* DATA: gv_flag(1).
LOOP AT gt_purreg_gst INTO gs_purreg.
IF gs_purreg-bedat > lv_datee.":'20170701'.
* '20170801
CLEAR: gs_purreg-st_amt,"ST Amount
gs_purreg-st_cur, "ST Currency
gs_purreg-cst_amt,
gs_purreg-cst_cur,
gs_purreg-ed_amt,
gs_purreg-ed_cur,
gs_purreg-exnum,
gs_purreg-exdat,
gs_purreg-docno,
gs_purreg-j_1icstno,"CST NO
gs_purreg-j_1ilstno, "LST NO
gs_purreg-base_rate, "PO Base Rate'
gs_purreg-bt_amt, "Del. Charges (BT)
gs_purreg-bt_cur, "BT Currency
gs_purreg-at_amt, "Del. Charges (AT)
gs_purreg-at_cur, "AT Currency
gs_purreg-tot_amt, "PO Total Amount
gs_purreg-beznk, "UnPlanned Del
gs_purreg-dppct, "PO Down payment %
gs_purreg-dpamt, "PO Down payment Amount
gs_purreg-dpdat, "Due Date For DP
gs_purreg-j_1ilstno_1 . "Vendor Tin no
* gs_purreg-
ENDIF.
** APPEND gs_purreg TO gt_purreg. " Commented by Sridhar/Pavan on 11/04/2018
*---- Begin of change by Sridhar/pavan on 11/04/2018.
" Exclude movement type 102 documents
* IF gs_purreg-bwart_gst <> 102.,
APPEND gs_purreg TO gt_purreg.
* ENDIF.
*---- End of Change by Sridhar/pavan on 11/04/2018
CLEAR:gs_purreg.
ENDLOOP.
LOOP AT gt_fieldcat_gst INTO gs_fieldcat.
IF so_budat-low > lv_datee OR so_budat-high > lv_datee.":'20170701'.
IF ( gs_fieldcat-fieldname = 'ST_AMT' OR gs_fieldcat-fieldname = 'ST_CUR' OR
gs_fieldcat-fieldname = 'CST_AMT' OR gs_fieldcat-fieldname = 'CST_CUR'
OR gs_fieldcat-fieldname = 'ED_AMT' OR gs_fieldcat-fieldname = 'ED_CUR' OR
gs_fieldcat-fieldname = 'EXNUM' OR gs_fieldcat-fieldname = 'EXDAT'
OR gs_fieldcat-fieldname = 'DOCNO' OR gs_fieldcat-fieldname = 'J_1ICSTNO' OR
gs_fieldcat-fieldname = 'J_1ILSTNO' OR gs_fieldcat-fieldname = 'BASE_RATE'
OR gs_fieldcat-fieldname = 'BT_AMT' OR gs_fieldcat-fieldname = 'BT_CUR' OR
gs_fieldcat-fieldname = 'AT_AMT' OR gs_fieldcat-fieldname = 'AT_CUR'
OR gs_fieldcat-fieldname = 'TOT_AMT' OR gs_fieldcat-fieldname = 'BEZNK' OR
gs_fieldcat-fieldname = 'DPPCT' OR gs_fieldcat-fieldname = 'DPAMT'
OR gs_fieldcat-fieldname = 'DPDAT' OR gs_fieldcat-fieldname = 'J_1ILSTNO_1'
).
CLEAR:
gs_fieldcat-fieldname,
gs_fieldcat-seltext_l,
gs_fieldcat-seltext_m ,
gs_fieldcat,
gs_fieldcat-seltext_s .
* ELSEIF ( gs_fieldcat-fieldname = 'EXNUM' OR gs_fieldcat-fieldname = 'EXDAT'
OR gs_fieldcat-fieldname = 'DOCNO' OR gs_fieldcat-fieldname = 'J_1ICSTNO' OR
gs_fieldcat-fieldname = 'J_1ILSTNO' ).
* CLEAR:
* gs_fieldcat-fieldname ,
* gs_fieldcat-seltext_l,
* gs_fieldcat-seltext_m ,
* gs_fieldcat,
* gs_fieldcat-seltext_s .
ENDIF.
ENDIF.
IF gs_fieldcat IS NOT INITIAL.
APPEND gs_fieldcat TO gt_fieldcat.
ENDIF.
CLEAR:gs_fieldcat .
ENDLOOP.
**End of ADD Ananth M 19/09/2017.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
i_callback_program = sy-repid
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
is_layout = gs_layout
it_fieldcat = gt_fieldcat
* IT_SORT = GT_SORT
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT = IS_VARIANT
TABLES
t_outtab = gt_purreg
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.

*&---------------------------------------------------------------------*
*& Form BUILD_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_1846 text
* -->P_1847 text
* -->P_1848 text
* -->P_1849 text
* -->P_1850 text
* -->P_1851 text
*----------------------------------------------------------------------*

FORM build_fcat TABLES lt_fieldcat TYPE tt_fieldcat


USING VALUE(iv_col) TYPE i
VALUE(iv_fname) TYPE any
VALUE(iv_tabname) TYPE any
VALUE(iv_fdesc) TYPE any
VALUE(iv_outlen) TYPE any
VALUE(iv_hotspot) TYPE any
VALUE(iv_ref) TYPE any
VALUE(iv_reftab) TYPE any
VALUE(iv_sum) TYPE any
VALUE(iv_zero) TYPE any
.
iv_col = iv_col + 1.
gs_fieldcat-col_pos = iv_col.
gs_fieldcat-fieldname = iv_fname.
gs_fieldcat-tabname = iv_tabname.
gs_fieldcat-seltext_l = iv_fdesc.
gs_fieldcat-seltext_m = iv_fdesc.
gs_fieldcat-seltext_s = iv_fdesc.
gs_fieldcat-outputlen = iv_outlen.
gs_fieldcat-hotspot = iv_hotspot.
gs_fieldcat-ref_fieldname = iv_ref.
gs_fieldcat-ref_tabname = iv_reftab.
gs_fieldcat-do_sum = iv_sum.
gs_fieldcat-no_zero = iv_zero.
APPEND gs_fieldcat TO lt_fieldcat.
CLEAR gs_fieldcat.

ENDFORM.

FORM top_of_page.

DATA : lv_date TYPE char10,


lv_time TYPE char08,
lv_temp TYPE char20,
lv_butxt TYPE butxt.

REFRESH : gt_header.
CLEAR: gs_header, lv_butxt.
gs_header-typ = 'H'.
gs_header-info = 'Purchase Register'.
APPEND gs_header TO gt_header.
CLEAR gs_header.

SELECT SINGLE butxt INTO lv_butxt


FROM t001
WHERE bukrs EQ so_bukrs-low.
IF sy-subrc EQ 0.
CLEAR gs_header.
gs_header-typ = 'H'.
CONCATENATE so_bukrs-low ':' lv_butxt INTO
gs_header-info SEPARATED BY space." = 'Purchase Register'.
APPEND gs_header TO gt_header.
CLEAR gs_header.
ENDIF.

gs_header-typ = 'S'.
CONCATENATE sy-datum+6(2) sy-datum+4(2) sy-datum+0(4) INTO lv_date
SEPARATED BY '.'.
CONCATENATE 'Report Date' ':' lv_date INTO gs_header-info SEPARATED BY space.
APPEND gs_header TO gt_header.
CLEAR gs_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'


EXPORTING
it_list_commentary = gt_header.

ENDFORM.

FORM user_command USING r_ucomm LIKE sy-ucomm


rs_selfield TYPE slis_selfield.
BREAK pwcabap.
IF r_ucomm EQ '&IC1'.
CLEAR gs_purreg.
READ TABLE gt_purreg INTO gs_purreg INDEX rs_selfield-tabindex.
IF sy-subrc EQ 0.
CASE rs_selfield-fieldname.
WHEN 'EBELN'.
SET PARAMETER ID 'BES' FIELD gs_purreg-ebeln.
SET PARAMETER ID 'BSP' FIELD gs_purreg-ebelp.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
WHEN 'MBLNR'.
SET PARAMETER ID 'MBN' FIELD gs_purreg-mblnr.
SET PARAMETER ID 'MJA' FIELD gs_purreg-mjahr.
SET PARAMETER ID 'BUK' FIELD gs_purreg-bukrs.
CALL FUNCTION 'MIGO_DIALOG'
EXPORTING
i_action = 'A04'
i_refdoc = 'R02'
i_notree = 'X'
i_skip_first_screen = 'X'
i_okcode = 'OK_GO'
i_mblnr = gs_purreg-mblnr
i_mjahr = gs_purreg-mjahr
i_zeile = gs_purreg-zeile "2144020
EXCEPTIONS
illegal_combination = 0
OTHERS = 0.
WHEN OTHERS.
ENDCASE.

ENDIF.

ENDIF.

ENDFORM.

You might also like