Posted: Thu Feb 19, 2009 3:16 pm Post subject: Taxability of Wage Types
Code:
report zpy_wage_type_taxability line-count 65 line-size 132
no standard page heading.
***********************************************************************
* Description : Taxability of Wage Types
* AUTHOR : Clay Molinari
* DATE : 03/01/2007
* CREATED FOR HR EXPERT
* READERS ARE GRANTED RIGHTS TO USE THIS CODE AS IS OR TO
* EXPLOIT THE CODE IN ANY MANNER. THE AUTHOR DOES NOT EXTEND
* ANY WARRANTY AS TO THE RELIABILITY OF THIS CODE. IT IS
* PROVIDED AS AN ILLUSTRATION ONLY.
*----------------------------------------------------------------------
* DESCRIPTION :
* This program creates a report showing the taxability for each tax
* authority and tax type per wage type. This tool is used for validation
* and examination of the tax configuration.
***********************************************************************
* DESCRIPTION OF SELECTION SCREEN FIELDS
* 1. DATE: The effective date on which tables are read
* 2. WAGE TYPE: Limit selection by wage type
* 3. TAX CLASS: Limit selection by tax class
* 4. R/W/U: Limit selection by residence, work or unemployment taxes
* 5. TAX TYPE: Limit selection to certain tax types
* 6. TAX AUTHORITY: Limit selection by tax authority
* 7. TAX MODEL: Limit selection to certain tax models
* 8. TAX COMBO: Limit selection to certain tax type combos
* 9. HIDE LOCAL: Prevents local tax authorites (lower level than state)
* from being included in the output
*10. WT/TAXCLASS: This radio button group allows the user to choose a
* view of all wage types or a summarized view that shows only one
* entry per tax class because all wage types of that tax class will
* share common taxability.
*----------------------------------------------------------------------
* MODIFICATION LOG (latest change first):
*----------------------------------------------------------------------
************************************************************************
* AUTHOR :
* DATE :
* Description :
* :
************************************************************************
tables: t5ute, t5utm, t5uty, t512w, t512t, t52d2.
data: true type boolean value 'X',
false type boolean value ' ',
t_lgart like t512w-lgart,
this_lgart like t512w-lgart,
this_taxau like t5ute-taxau,
this_rswrk like t5utm-rswrk,
this_txbcl like t5utm-txbcl,
vklas like t512w-vklas,
pvalu like t52d2-prclv.
data: begin of lgart_table occurs 0,
lgart like t512w-lgart,
lgtxt like t512t-lgtxt,
taxau like t5ute-taxau,
rswrk like t5utm-rswrk,
txmod like t5utm-txmod,
txbmd like t5ute-txbmd,
txbcl like t5utm-txbcl,
tycmb like t5uty-tycmb,
taxty like t5uty-taxty,
txtxt like t512t-lgtxt,
txbl like t5uty-txbl,
end of lgart_table.
data: line1(150),
line2(150),
line3(150).
data: tab_stop like sy-linsz,
len like sy-linsz.
selection-screen begin of block b1 with frame title text-001.
parameters: p_begda type dats obligatory.
select-options s_lgart for t512w-lgart.
select-options s_prclv for t52d2-prclv.
select-options s_rswrk for t5utm-rswrk.
select-options s_taxty for t5uty-taxty.
select-options s_taxau for t5ute-taxau.
select-options s_txbmd for t5utm-txbmd.
select-options s_tycmb for t5utm-tycmb.
parameters: p_local as checkbox default 'X'.
parameters: p_wt radiobutton group r1 default 'X'.
parameters: p_pcl71 radiobutton group r1.
selection-screen end of block b1.
initialization.
p_begda = sy-datum.
top-of-page.
write p_begda mm/dd/yyyy to line1.
concatenate 'Rules Effective On'
line1
into line2 separated by space.
line1 = 'Wage Type Taxability Report'.
clear: line3.
if p_wt eq true.
perform select_by_wage_type.
else.
perform select_by_pcl71.
endif.
end-of-selection.
clear: this_lgart, this_taxau, this_rswrk.
if p_wt eq true.
sort lgart_table.
else.
sort lgart_table by taxau txbcl rswrk taxty.
endif.
loop at lgart_table.
if lgart_table-taxau eq 'FED' or
p_local ne true or
lgart_table-taxau+2(2) is initial.
if p_wt eq true.
if ( this_lgart ne lgart_table-lgart or
this_taxau ne lgart_table-taxau or
this_rswrk ne lgart_table-rswrk ) and
not this_lgart is initial.
skip.
endif.
else.
if ( this_taxau ne lgart_table-taxau or
this_txbcl ne lgart_table-txbcl ) and
not this_rswrk is initial.
skip.
endif.
endif.
write: / lgart_table-lgart,
7 lgart_table-lgtxt,
40 lgart_table-taxau,
50 lgart_table-rswrk,
60 lgart_table-txmod,
70 lgart_table-txbmd,
80 lgart_table-txbcl,
90 lgart_table-tycmb,
100 lgart_table-taxty,
103 lgart_table-txtxt.
endif.
this_lgart = lgart_table-lgart.
this_taxau = lgart_table-taxau.
this_txbcl = lgart_table-txbcl.
this_rswrk = lgart_table-rswrk.
endloop.
if sy-subrc ne 0.
write: / 'No Data Found'.
endif.
*&---------------------------------------------------------------------*
*& Form header
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(P_LINE1) text
* -->VALUE(P_LINE2) text
*----------------------------------------------------------------------*
form header using value(p_line1)
value(p_line2)
value(p_line3).
len = sy-linsz.
tab_stop = sy-linsz - 17.
write: at /(len) p_line1 centered.
write: 1 'System: ', sy-sysid, at tab_stop 'Page: ', sy-pagno.
write: at /(len) p_line2 centered.
write: 1 'Date : ', sy-datum, at tab_stop 'Time: ', sy-uzeit.
write: at /(len) p_line3 centered.
write: 1 'Program: ', sy-repid.
uline.
endform. " header
*&---------------------------------------------------------------------*
*& Form select_by_wage_type
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form select_by_wage_type.
select * from t512w
where molga eq '10'
and lgart in s_lgart
and endda ge p_begda
and begda le p_begda.
select * from t512t
where sprsl eq sy-langu
and molga eq t512w-molga
and lgart eq t512w-lgart.
lgart_table-lgtxt = t512t-lgtxt.
endselect.
** After-tax deductions will not affect taxable wages
** regardless of the value stored in PCL71
clear: vklas, pvalu.
call function 'HRGB_READ_T512W_VKLAS'
exporting
molga = '10'
lgart = t512w-lgart
endda = t512w-endda
pclas = '65'
importing
vklas = vklas
pvalu = pvalu
exceptions
lgart_not_found = 1
vklas_not_maintained = 2
others = 3.
if pvalu eq 'A'.
clear: pvalu.
else.
clear: vklas, pvalu.
call function 'HRGB_READ_T512W_VKLAS'
exporting
molga = '10'
lgart = t512w-lgart
endda = t512w-endda
pclas = '71'
importing
vklas = vklas
pvalu = pvalu
exceptions
lgart_not_found = 1
vklas_not_maintained = 2
others = 3.
endif.
check pvalu in s_prclv.
lgart_table-lgart = t512w-lgart.
lgart_table-txbcl = pvalu.
select * from t5utm
where txbcl eq pvalu
and endda ge p_begda
and begda le p_begda
and rswrk in s_rswrk
and txbmd in s_txbmd
and tycmb in s_tycmb.
lgart_table-txbmd = t5utm-txbmd.
lgart_table-rswrk = t5utm-rswrk.
lgart_table-txmod = t5utm-txmod.
lgart_table-tycmb = t5utm-tycmb.
select * from t5ute
where endda ge p_begda
and begda le p_begda
and taxau in s_taxau
and txbmd eq t5utm-txbmd.
lgart_table-taxau = t5ute-taxau.
select * from t5uty
where tycmb eq t5utm-tycmb
and endda ge p_begda
and begda le p_begda
and taxty in s_taxty.
check t5uty-txbl eq 'Y'.
lgart_table-taxty = t5uty-taxty.
lgart_table-txbl = t5uty-txbl.
t_lgart = '/4xx'.
t_lgart+2(2) = t5uty-taxty.
select * from t512t
where sprsl eq sy-langu
and molga eq t512w-molga
and lgart eq t_lgart.
lgart_table-txtxt = t512t-lgtxt.
endselect.
*&---------------------------------------------------------------------*
*& Form select_by_pcl71
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form select_by_pcl71.
select * from t52d2
where molga eq '10'
and prcls eq '71'.
clear: vklas, pvalu, lgart_table.
pvalu = t52d2-prclv.
check pvalu in s_prclv.
lgart_table-txbcl = pvalu.
select * from t5utm
where txbcl eq pvalu
and endda ge p_begda
and begda le p_begda
and rswrk in s_rswrk
and txbmd in s_txbmd
and tycmb in s_tycmb.
lgart_table-txbmd = t5utm-txbmd.
lgart_table-rswrk = t5utm-rswrk.
lgart_table-txmod = t5utm-txmod.
lgart_table-tycmb = t5utm-tycmb.
select * from t5ute
where endda ge p_begda
and begda le p_begda
and taxau in s_taxau
and txbmd eq t5utm-txbmd.
lgart_table-taxau = t5ute-taxau.
select * from t5uty
where tycmb eq t5utm-tycmb
and endda ge p_begda
and begda le p_begda
and taxty in s_taxty.
check t5uty-txbl eq 'Y'.
lgart_table-taxty = t5uty-taxty.
lgart_table-txbl = t5uty-txbl.
t_lgart = '/4xx'.
t_lgart+2(2) = t5uty-taxty.
select * from t512t
where sprsl eq sy-langu
and molga eq '10'
and lgart eq t_lgart.
lgart_table-txtxt = t512t-lgtxt.
endselect.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.