Sal Proj Statement r3
Sal Proj Statement r3
ratan kumar 203 posts since May 20, 2010 Salary Projection Report Sep 11, 2012 7:18 AM
Dear Experts,
Regards Ratan
Jayanti Venkata Ramana 871 posts since Oct 7, 2006 Re: Salary Projection Report Sep 11, 2012 8:01 AM
Hello Ratan
Please check these SAP note which contain the information:1571064 1629322 1699389
ratan kumar 203 posts since May 20, 2010 Re: Salary Projection Report Sep 11, 2012 10:49 AM
Hi Ramana,
Regards Ratan
Jayanti Venkata Ramana 871 posts since Oct 7, 2006 Re: Salary Projection Report Sep 11, 2012 10:59 AM
Hello Ratan
Jaguar Wild 6 posts since Sep 10, 2012 Re: Salary Projection Report Sep 11, 2012 8:03 AM
HI,
Regards Ratan
Venkata Manikanth 1,360 posts since Jun 26, 2012 Re: Salary Projection Report Sep 11, 2012 12:20 PM
Hi Ratan
You can develop in R/3 and enclosing one sample report which was delivered in my previous project, The logic you need to take care is when the report is selected period * remaining months for the tax year against period or till date RT and remaining months of regular WT is your projected.
i.e CRT data + Project wage components ( to determine projected wage type you need to lookinto V_512w_d and check the wage type is regular or not)
Also some wage type entered at IT0015 for the current month but not processed then you need to define the logic and project values.
Regarding exemption also you can read Ee tax tables and can develop the logic accordingly.
ratan kumar 203 posts since May 20, 2010 Re: Salary Projection Report Sep 11, 2012 12:45 PM
Dear Manikath,
Thank you
Reagards Ratan
VIJAY M P 225 posts since Dec 1, 2005 Re: Salary Projection Report Sep 12, 2012 7:32 AM
Dear Mr Venkata
The same requirement in our orgnisation also so can you send abap coding details of report so we can use the same so our work will reduce.
Regards Vijay
Venkata Manikanth 1,360 posts since Jun 26, 2012 Re: Salary Projection Report Sep 12, 2012 9:15 AM
Hi
Below is the code , Hope this will be helpful to other HR Frens Kindly check the LGART of your Customer and change them accordingly,
*----------------------------------------------------------------------* * TABLE *
*----------------------------------------------------------------------* * INFOTYPES *
*----------------------------------------------------------------------*
*Internal table for Exemptions data DATA : IT_EXEMP TYPE ZHR_EXEMP OCCURS 0 WITH HEADER LINE, *Internal table for perks IT_PERKS TYPE ZHR_EXEMP OCCURS 0 WITH HEADER LINE, *Internal table for other income data IT_EARN_OT TYPE ZHR_EXEMP OCCURS 0 WITH HEADER LINE, *Internal table for section 80, 80c and 80d data IT_DEDU_80 TYPE ZHR_EXEMP OCCURS 0 WITH HEADER LINE, IT_DEDU_80C TYPE ZHR_EXEMP OCCURS 0 WITH HEADER LINE.
*Internal table to store data of infotype 0585 DATA : BEGIN OF IT_0585 OCCURS 0, PERNR TYPE PA0585-PERNR, SBSEC TYPE PA0585-SBS01, SBDIV TYPE PA0585-SBD01, PCNTR TYPE PA0585-PCN01, ACNTR TYPE PA0585-ACN01, END OF IT_0585. "Personnel No "Sub section code "Sub section division number "Proposed contribution "Actual contribution amount
*Internal table to store data of infotype 0586 DATA : BEGIN OF IT_0586 OCCURS 0, PERNR TYPE PA0586-PERNR, ICODE TYPE PA0586-ITC01, PINVT TYPE PA0586-PIN01, AINVT TYPE PA0586-AIN01, END OF IT_0586. "Personnel No "Investment code "Proposed investment "Actual investment amount
*Internal table for Wagetype details DATA : IT_T511 TYPE T511 OCCURS 0 WITH HEADER LINE, *Interna1 table to store Paycomponents IT_FINAL TYPE ZHR_PAYSLIP_40 OCCURS 0 WITH HEADER LINE, *Internal tables used for data processing IT_FINAL_RT TYPE ZHR_PAYSLIP_40 OCCURS 0 WITH HEADER LINE, IT_FINAL_RT_SUM TYPE ZHR_PAYSLIP_40 OCCURS 0 WITH HEADER LINE, *Internal table to store wagetype texts IT_T512T TYPE T512T OCCURS 0 WITH HEADER LINE, *Internal table to get texts of section 80, 80C and 80D exemptions IT_T7INI8 TYPE T7INI8 OCCURS 0 WITH HEADER LINE, IT_T7INI3 TYPE T7INI3 OCCURS 0 WITH HEADER LINE,
*Internal table for storing Income tax details IT_ZHR_INCCOMP TYPE ZHR_INCCOMP OCCURS 0 WITH HEADER LINE, *Internal table for employee data IT_ZHR_PERNR TYPE ZHR_PERNR OCCURS 0 WITH HEADER LINE.
*Internla tables used for converting the smartform output to PDF format DATA : PDF_TAB LIKE PC408 OCCURS 0 WITH HEADER LINE, TAB_OTF_FINAL TYPE ITCOO OCCURS 0 WITH HEADER LINE.
*Internal table to download data in excel format. DATA : BEGIN OF IT_DOWNLOAD OCCURS 0, PERNR TYPE CHAR08, ENAME TYPE PA0001-ENAME, COL1 TYPE CHAR40, COL2 TYPE CHAR25, COL3 TYPE CHAR18, COL4 TYPE CHAR18, END OF IT_DOWNLOAD.
*----------------------------------------------------------------------* * VARIABLES *
*----------------------------------------------------------------------* DATA : V_BETPE TYPE BETPE, C_FMNAME TYPE RS38L_FNAM, V_BEGDA TYPE PA0000-BEGDA, V_ENDDA TYPE PA0000-ENDDA, V_ABRJ_CAL TYPE T549Q-PABRJ. "Projection Factor "Smartform Name "Begin date "End date "Year
*For income form other sources DATA : V_LETVL_0584 TYPE MAXBT, V_BSPFT_0584 TYPE MAXBT, V_CPGLN_0584 TYPE MAXBT, V_CPGLS_0584 TYPE MAXBT, V_CPGNS_0584 TYPE MAXBT, V_DVDND_0584 TYPE MAXBT, V_INTRS_0584 TYPE MAXBT, V_UNSPI_0584 TYPE MAXBT, *Medical Exemption amount V_MDA_AMOUNT TYPE MAXBT, V_EXMP_TOTAL TYPE MAXBT. "Exemption total "House Property "Business profits "Long Term Capital Gains "Long Term Capital Gains "Short Term Capital Gains "Income from Dividend "Income from Interest "Other Income (Unspecified)
DATA : V_SBSEC TYPE PIN_SBSEC, V_SBSDV TYPE PIN_SBDIV, V_PCNTR TYPE PIN_PCNTR, V_ACNTR TYPE PIN_ACNTR, V_ICODE TYPE PIN_ICODE, V_PINVT TYPE PIN_PINVT, V_AINVT TYPE PIN_AINVT, V_EEPF TYPE MAXBT.
"Sub section code "Sub section division number "Proposed contribution "Actual contribution "Investment code "Proposed investment "Actual investment amount "Employee PF
*Used for converting Smartform output to PDF DATA : CPARAM TYPE SSFCTRLOP, OUTOP TYPE SSFCOMPOP, FILE_SIZE TYPE I, MY_TABIX TYPE SY-TABIX, BIN_FILESIZE TYPE I, TAB_OTF_DATA TYPE SSFCRESCL.
*For path where the fiel should be stored DATA : V_STRING TYPE STRING, *To reject the employee no's who data does not exists. V_FLAG TYPE C, V_TEMP TYPE C.
*Employee details DATA : V_LOC TYPE ZZLOC, V_PLSTX TYPE PLSTX, V_ORGTX TYPE ORGTX, V_ICNUM TYPE IDNUM. "Loaction "Position text "Organiztion unit text "Pan Number
*For excel download DATA : V_EARN_SUM TYPE MAXBT, V_DEDU_SUM TYPE MAXBT, V_TOTAL TYPE MAXBT, V_PERKS TYPE MAXBT, V_PERIOD TYPE FAPER, V_FILE TYPE RLGRAP-FILENAME.
*----------------------------------------------------------------------* * INCLUDES *
*----------------------------------------------------------------------* *INTERNATIONAL INCLUDE INCLUDE RPC2CD09. "Cluster CD data definition INCLUDE RPC2CA00. "Cluster CA Data-Definition INCLUDE RPPPXD00. "Data Definition buffer PCL1/PCL2 Buffer INCLUDE RPPPXD10. "Common part buffer PCL1/PCL2 INCLUDE RPPPXM00. "Buffer Handling routine *COUNTRY SPECIFIC INCLUDE INCLUDE PC2RXIN0. "Cluster IN data definition INCLUDE RPC2RX09. *INCLUDE RPC2R1X9.
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001. PARAMETERS: ABKR_CAL LIKE T569V-ABKRS OBLIGATORY. PARAMETERS: PCURPERC TYPE TIMRA9 AS LISTBOX VISIBLE LENGTH 23.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(28) TEXT-002 FOR FIELD ABRP_CAL. SELECTION-SCREEN POSITION POS_LOW. PARAMETERS: ABRP_CAL LIKE T549Q-PABRP MODIF ID PE1, ABRJ_CAL LIKE T549Q-PABRJ MODIF ID PE1. SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE. SELECTION-SCREEN COMMENT 1(28) TEXT-003 FOR FIELD BEGCALSH MODIF ID PA4. SELECTION-SCREEN POSITION POS_LOW. PARAMETERS: BEGCALSH LIKE T549Q-BEGDA MODIF ID PE4. SELECTION-SCREEN COMMENT (1) TEXT-199 FOR FIELD ENDCALSH MODIF ID PE4.
*----------------------------------------------------------------------* AT SELECTION-SCREEN OUTPUT. *To make the selection screen fields in display mode only LOOP AT SCREEN. IF SCREEN-GROUP1 = 'PE4'. SCREEN-INPUT = '0'. MODIFY SCREEN. ENDIF.
*----------------------------------------------------------------------* AT SELECTION-SCREEN.
*To get the current payroll period IF PCURPERC IS INITIAL. IF ABRP_CAL IS INITIAL OR ABRJ_CAL IS INITIAL. MESSAGE E000 WITH 'Enter Period'(004). ELSE. CALL FUNCTION 'PA03_PERIODDATES_GET' EXPORTING F_ABKRS IMPORTING = ABKR_CAL
= BEGCALSH = ENDCALSH
= ABRP_CAL = ABRJ_CAL
=1
ABKRS_DOES_NOT_EXIST = 2 PERIOD_DOES_NOT_EXIST = 3 OTHERS IF SY-SUBRC <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. = 4.
ENDIF. ENDIF.
ABRJ_CAL. CALL FUNCTION 'PA03_PERIODDATES_GET' EXPORTING F_ABKRS IMPORTING F_CURRENT_BEGDA F_CURRENT_ENDDA CHANGING F_CURRENT_PERIOD F_CURRENT_YEAR EXCEPTIONS PCR_DOES_NOT_EXIST =1 = ABRP_CAL = ABRJ_CAL = BEGCALSH = ENDCALSH = ABKR_CAL
ABKRS_DOES_NOT_EXIST = 2 PERIOD_DOES_NOT_EXIST = 3 OTHERS IF SY-SUBRC <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDIF. = 4.
IF ABRP_CAL > '12'. MESSAGE E000 WITH 'Enter a valid Period'(005). ENDIF.
*----------------------------------------------------------------------* START-OF-SELECTION.
GET PERNR.
*----------------------------------------------------------------------* END-OF-SELECTION.
*Earning details LOOP AT IT_FINAL WHERE PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = IT_FINAL-LGTXT. IT_DOWNLOAD-COL2 = IT_FINAL-EARN. IT_DOWNLOAD-COL3 = IT_FINAL-DEDU. IT_DOWNLOAD-COL4 = IT_FINAL-EARN + IT_FINAL-DEDU. V_EARN_SUM = V_EARN_SUM + IT_FINAL-EARN. V_DEDU_SUM = V_DEDU_SUM + IT_FINAL-DEDU.
IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Total Income1'(026). IT_DOWNLOAD-COL2 = V_EARN_SUM. IT_DOWNLOAD-COL3 = V_DEDU_SUM. IT_DOWNLOAD-COL4 = V_EARN_SUM + V_DEDU_SUM. V_TOTAL = V_EARN_SUM + V_DEDU_SUM. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
*Exemptions IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Exemptions under section 10'(027). APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
LOOP AT IT_EXEMP WHERE PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = IT_EXEMP-STEXT. IT_DOWNLOAD-COL4 = IT_EXEMP-AMTEX. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD. ENDLOOP.
*Exemptions total CLEAR IT_ZHR_INCCOMP. READ TABLE IT_ZHR_INCCOMP WITH KEY PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Total1'(028). IT_DOWNLOAD-COL4 = IT_ZHR_INCCOMP-V_EXEMP_10. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
*Income after deducting exemptions IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Total Income2'(029). IT_DOWNLOAD-COL4 = V_TOTAL - IT_ZHR_INCCOMP-V_EXEMP_10. V_TOTAL = V_TOTAL - IT_ZHR_INCCOMP-V_EXEMP_10. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
*Perks IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Perks'(030). APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
IT_DOWNLOAD-COL1 = IT_PERKS-STEXT. IT_DOWNLOAD-COL4 = IT_PERKS-AMTEX. V_PERKS = V_PERKS + IT_PERKS-AMTEX. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD. ENDLOOP.
*Perks total IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Total2'(031). IT_DOWNLOAD-COL4 = V_PERKS. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
*Income after adding perks IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Total Income3'(032). IT_DOWNLOAD-COL4 = V_TOTAL + V_PERKS.
*Professional Tax IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Professional Tax'(033). IT_DOWNLOAD-COL4 = IT_ZHR_INCCOMP-V_PROF_TAX. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
*Income after deducting Professional Tax IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Total Income4'(034). IT_DOWNLOAD-COL4 = V_TOTAL - IT_ZHR_INCCOMP-V_PROF_TAX. V_TOTAL = V_TOTAL - IT_ZHR_INCCOMP-V_PROF_TAX. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
*Income form other sources IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Income from other sources'(035). APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
LOOP AT IT_EARN_OT WHERE PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = IT_EARN_OT-STEXT. IT_DOWNLOAD-COL4 = IT_EARN_OT-AMTEX. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD. ENDLOOP.
IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Total3'(036). IT_DOWNLOAD-COL4 = IT_ZHR_INCCOMP-V_INCO_OTH. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
*Income after adding Income form other sources IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Total Income5'(037). IT_DOWNLOAD-COL4 = V_TOTAL + IT_ZHR_INCCOMP-V_INCO_OTH. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
*Deductions under section 80 IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Deductions under section 80 & 80C'(038). APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
LOOP AT IT_DEDU_80 WHERE PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = IT_DEDU_80-STEXT. IT_DOWNLOAD-COL4 = IT_DEDU_80-AMTEX. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD. ENDLOOP.
LOOP AT IT_DEDU_80C WHERE PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = IT_DEDU_80C-STEXT. IT_DOWNLOAD-COL4 = IT_DEDU_80C-AMTEX. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD. ENDLOOP.
*Aggregate chapter 6 IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Total4'(039). IT_DOWNLOAD-COL4 = IT_ZHR_INCCOMP-V_AGGR_CH6. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
*Taxable income IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Taxable Income'(040). IT_DOWNLOAD-COL4 = V_TOTAL - IT_ZHR_INCCOMP-V_AGGR_CH6. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Tax on total Income'(041). IT_DOWNLOAD-COL4 = IT_ZHR_INCCOMP-V_TAX_INCO.
IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Surcharge payable'(042). IT_DOWNLOAD-COL4 = IT_ZHR_INCCOMP-V_SURG_INC. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Education Cess'(043). IT_DOWNLOAD-COL4 = IT_ZHR_INCCOMP-V_EDU_CESS. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
IT_DOWNLOAD-COL1 = 'Net tax payable'(044). IT_DOWNLOAD-COL4 = IT_ZHR_INCCOMP-V_NET_TAX. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD.
IT_DOWNLOAD-PERNR = IT_ZHR_PERNR-PERNR. IT_DOWNLOAD-ENAME = IT_ZHR_PERNR-SNAME. IT_DOWNLOAD-COL1 = 'Tax deducted so far'(045). IT_DOWNLOAD-COL4 = IT_ZHR_INCCOMP-V_TAX_DEDU. APPEND IT_DOWNLOAD. CLEAR IT_DOWNLOAD. ENDLOOP.
CONCATENATE 'C:\' 'Incometax_XLS' SY-DATUM SY-UZEIT INTO V_FILE. CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT' EXPORTING I_FILENAME TABLES = V_FILE
I_TAB_SAP_DATA EXCEPTIONS
= IT_DOWNLOAD[]
CONVERSION_FAILED = 1 OTHERS = 2.
IF SY-SUBRC <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ELSE.
*To print the output. Here the Smartform output is converted into PDF *and is downloaded
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING FORMNAME IMPORTING FM_NAME EXCEPTIONS NO_FORM =1 = C_FMNAME = 'ZHR_INCOMETAX_COMP'
NO_FUNCTION_MODULE = 2 OTHERS IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. = 3.
CALL FUNCTION C_FMNAME "'/1BCDWB/SF00000042' EXPORTING CONTROL_PARAMETERS = CPARAM OUTPUT_OPTIONS USER_SETTINGS V_ABRJ_CAL V_ABRP_CAL = OUTOP = SPACE = ABRJ_CAL = ABRP_CAL
V_BETPE IMPORTING
= V_BETPE
JOB_OUTPUT_INFO TABLES IT_FINAL IT_EXEMP IT_EARN_OT IT_DEDU_80 IT_DEDU_80C IT_ZHR_INCCOMP IT_ZHR_PERNR IT_PERKS EXCEPTIONS FORMATTING_ERROR INTERNAL_ERROR SEND_ERROR USER_CANCELED OTHERS . IF SY-SUBRC <> 0. =5
= TAB_OTF_DATA
=1 =2 =3 =4
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
set country 'IN'. CALL FUNCTION 'CONVERT_OTF' EXPORTING FORMAT MAX_LINEWIDTH IMPORTING BIN_FILESIZE TABLES OTF LINES EXCEPTIONS ERR_MAX_LINEWIDTH =1 = TAB_OTF_FINAL = PDF_TAB = BIN_FILESIZE = 'PDF' = 132
ERR_FORMAT
=2
ERR_CONV_NOT_POSSIBLE = 3 ERR_BAD_OTF OTHERS IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. = 5. =4
*To download the output in PDF format CONCATENATE 'C:\' 'INCOMETAX_COMP'(006) SY-DATUM SY-UZEIT '.PDF' INTO V_STRING. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING BIN_FILESIZE FILENAME FILETYPE IMPORTING FILELENGTH TABLES DATA_TAB EXCEPTIONS = PDF_TAB = FILE_SIZE = BIN_FILESIZE = V_STRING = 'BIN'
FILE_WRITE_ERROR NO_BATCH =2
=1
SEPARATOR_NOT_ALLOWED = 8 FILESIZE_NOT_ALLOWED HEADER_TOO_LONG DP_ERROR_CREATE DP_ERROR_SEND DP_ERROR_WRITE UNKNOWN_DP_ERROR ACCESS_DENIED DP_OUT_OF_MEMORY DISK_FULL DP_TIMEOUT FILE_NOT_FOUND = 17 = 18 = 19 = 15 = 16 =9 = 10 = 11 = 12 = 13 = 14
IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDIF.
*To get Wagetype text SELECT * FROM T512T INTO TABLE IT_T512T WHERE SPRSL = 'EN' AND MOLGA = '40'.
*To get text used in infotype 0585 SELECT * FROM T7INI8 INTO TABLE IT_T7INI8 WHERE SPRSL = 'EN'.
*To get text used in infotype 0586 SELECT * FROM T7INI3 INTO TABLE IT_T7INI3 WHERE SPRSL = 'EN'.
*To initilaise the dates CONCATENATE ABRJ_CAL '04' '01' INTO V_BEGDA.
ENDFORM.
" GET_DATA
*----------------------------------------------------------------------* FORM GET_PAYRESULT . *Here the payroll result are fetched and moved to corresponding fields
CHECK RP-IMP-CD-SUBRC EQ 0. LOOP AT RGDIR WHERE FPPER = V_PERIOD AND INPER = V_PERIOD AND FPBEG GE BEGCALSH AND FPEND LE ENDCALSH. *Macro to get payroll results RX-KEY-PERNR = PERNR-PERNR. RX-KEY-SEQNO = RGDIR-SEQNR. RP-IMP-C2-IN. IF RP-IMP-IN-SUBRC NE 0. V_FLAG = 'X'. REJECT. ENDIF. ENDLOOP.
*If data does not exist than there shoul dnot be no output IF RT[] IS INITIAL. V_FLAG = 'X'. WRITE: / 'No data to compute Income tax for'(007), PERNR-PERNR. EXIT. ENDIF.
*To get Projection Factor this is used to get the projected amounts READ TABLE RT WITH KEY LGART = '/401'. IF SY-SUBRC = 0. MOVE RT-BETPE TO V_BETPE. ENDIF.
*To get the Cumulative figures of the employee Paycomponents LOOP AT CRT WHERE LGART GE '5000' AND CUMTY = 'Y' AND BETRG <> '0.00'.
CLEAR IT_T512T. READ TABLE IT_T512T WITH KEY LGART = CRT-LGART. IF SY-SUBRC = 0. IT_FINAL-LGTXT = IT_T512T-LGTXT. ENDIF.
IF CRT-LGART = '9800' OR CRT-LGART = '9810' OR CRT-LGART = '9820' OR CRT-LGART = '9830' OR CRT-LGART = '9840' OR CRT-LGART = '6542'. IT_PERKS-AMTEX = CRT-BETRG. IT_PERKS-PERNR = PERNR-PERNR. IT_PERKS-STEXT = IT_T512T-LGTXT. APPEND IT_PERKS. CLEAR IT_PERKS. CLEAR IT_FINAL. CONTINUE. ENDIF. CLEAR IT_T511. READ TABLE IT_T511 WITH KEY LGART = CRT-LGART. IF SY-SUBRC = 0. IF IT_T511-OPKEN <> 'A'. IF IT_T511-ADSUM = 'X'. IT_FINAL-EARN = CRT-BETRG.
IT_FINAL-PERNR = PERNR-PERNR. IT_FINAL-LGART = CRT-LGART. APPEND IT_FINAL. ENDIF. ENDIF. ENDIF. CLEAR IT_FINAL. ENDLOOP.
*To get the projected amounts the data is fetched form RT and is multupied by *projection factor CLEAR : IT_FINAL_RT[], IT_FINAL_RT. LOOP AT RT WHERE LGART GE '5000' AND BETRG <> '0.00'. CLEAR IT_T512T. READ TABLE IT_T512T WITH KEY LGART = RT-LGART. IF SY-SUBRC = 0. IT_FINAL_RT-LGTXT = IT_T512T-LGTXT. ENDIF.
CLEAR IT_T511. READ TABLE IT_T511 WITH KEY LGART = RT-LGART. IF SY-SUBRC = 0. IF IT_T511-OPKEN <> 'A'. IF IT_T511-ADSUM = 'X'. IT_FINAL_RT-DEDU = RT-BETRG. IT_FINAL_RT-PERNR = PERNR-PERNR. IT_FINAL_RT-LGART = RT-LGART. APPEND IT_FINAL_RT. ENDIF. ENDIF. ENDIF. CLEAR IT_FINAL_RT. ENDLOOP.
*Sum if there is any split in the wagetype amounts CLEAR : IT_FINAL_RT_SUM[], IT_FINAL_RT_SUM.
*To move the projected data into final table LOOP AT IT_FINAL_RT_SUM.
*To get whether the income is Regular or Irregular income *Irregular incom eis not projected TABLES : T512W, V_512W_D, T512T.
"Cummulations
END OF CUMM.
*Logic to get whether the amount is regular or irregulat income SELECT SINGLE * FROM T512W INTO V_512W_D WHERE MOLGA = '40' AND LGART = IT_FINAL_RT_SUM-LGART.
LGA(2) = '/1'. LGA+2(2) = LOOPVAR. SELECT * FROM T512W WHERE MOLGA = '40' AND LGART = LGA. CUMM-NUMBER = LOOPVAR. PERFORM GET_BIT USING V_512W_D-KUMUL CUMM-NUMBER CUMM-X. PERFORM GET_LGA_TEXT USING '/1' CUMM-NUMBER CUMM-TEXT. COLLECT CUMM. EXIT. ENDSELECT. ENDDO.
*To move the projected data into final table READ TABLE CUMM WITH KEY NUMBER = '25'. READ TABLE IT_FINAL WITH KEY PERNR = PERNR-PERNR LGART = IT_FINAL_RT_SUM-LGART. IF SY-SUBRC = 0. IF CUMM-X <> 'X'. IT_FINAL-DEDU = IT_FINAL_RT_SUM-DEDU * V_BETPE.
LOOP AT IT_FINAL.
*Logic to get whether the amount is regular or irregulat income SELECT SINGLE * FROM T512W INTO V_512W_D WHERE MOLGA = '40'
AND
LGART = IT_FINAL-LGART.
DO 96 TIMES. LOOPVAR = LOOPVAR + 1. LGA(2) = '/1'. LGA+2(2) = LOOPVAR. SELECT * FROM T512W WHERE MOLGA = '40' AND LGART = LGA. CUMM-NUMBER = LOOPVAR. PERFORM GET_BIT USING V_512W_D-KUMUL CUMM-NUMBER CUMM-X. PERFORM GET_LGA_TEXT USING '/1' CUMM-NUMBER CUMM-TEXT. COLLECT CUMM. EXIT. ENDSELECT. ENDDO.
*To move the projected data into final table READ TABLE CUMM WITH KEY NUMBER = '24'.
V_TEMP = CUMM-X. READ TABLE CUMM WITH KEY NUMBER = '25'. READ TABLE IT_FINAL WITH KEY PERNR = PERNR-PERNR LGART = IT_FINAL-LGART. IF SY-SUBRC = 0. IF V_TEMP <> 'X'. IF CUMM-X <> 'X'. DELETE IT_FINAL INDEX SY-TABIX. ENDIF. ENDIF. ENDIF. ENDLOOP.
*Exemptions and income tax projections are from RT table no need *for calculation, directly we can the dat
*To get the medical exemption amount CLEAR V_MDA_AMOUNT. READ TABLE RT WITH KEY LGART = '/414'. IF SY-SUBRC = 0.
*To get the amount of Exemption U/S 10 READ TABLE RT WITH KEY LGART = '/130'. IF SY-SUBRC = 0. IT_ZHR_INCCOMP-V_EXEMP_10 = RT-BETRG + V_MDA_AMOUNT. ENDIF.
**To get the amount of Exemption U/S 10 * READ TABLE RT WITH KEY LGART = '/133'. * IF SY-SUBRC = 0. * * * * * if it_zhr_inccomp-v_exemp_10 is initial. IT_ZHR_INCCOMP-V_EXEMP_10 = RT-BETRG + V_MDA_AMOUNT. ELSE. IT_ZHR_INCCOMP-V_EXEMP_10 = RT-BETRG + IT_ZHR_INCCOMP-V_EXEMP_10. ENDIF.
* ENDIF.
*To get the Professinal Tax amount READ TABLE RT WITH KEY LGART = '/424'. IF SY-SUBRC = 0. IT_ZHR_INCCOMP-V_PROF_TAX = RT-BETRG. ENDIF.
*To get Any other Income READ TABLE RT WITH KEY LGART = '/131'. IF SY-SUBRC = 0. IT_ZHR_INCCOMP-V_INCO_OTH = RT-BETRG. ENDIF.
*To get Agg of Chapter VI READ TABLE RT WITH KEY LGART = '/432'. IF SY-SUBRC = 0. IT_ZHR_INCCOMP-V_AGGR_CH6 = RT-BETRG. ENDIF.
READ TABLE RT WITH KEY LGART = '/436'. IF SY-SUBRC = 0. IT_ZHR_INCCOMP-V_TAX_INCO = RT-BETRG. ENDIF.
*To get Surcharge payable READ TABLE RT WITH KEY LGART = '/448'. IF SY-SUBRC = 0. IT_ZHR_INCCOMP-V_SURG_INC = RT-BETRG. ENDIF.
*To get Education Cess READ TABLE RT WITH KEY LGART = '/449'. IF SY-SUBRC = 0. IT_ZHR_INCCOMP-V_EDU_CESS = RT-BETRG. * Added by DEV02 READ TABLE RT WITH KEY LGART = '/447'. IF SY-SUBRC = 0. IT_ZHR_INCCOMP-V_EDU_CESS = RT-BETRG + IT_ZHR_INCCOMP-V_EDU_CESS. ENDIF.
*To get Tax deducted so far READ TABLE RT WITH KEY LGART = '/456'. IF SY-SUBRC = 0. IT_ZHR_INCCOMP-V_TAX_DEDU = RT-BETRG. ENDIF.
*Net tax payable READ TABLE RT WITH KEY LGART = '/458'. IF SY-SUBRC = 0. if rt-betrg > 0. IT_ZHR_INCCOMP-V_NET_TAX = RT-BETRG. else. IT_ZHR_INCCOMP-V_NET_TAX = 0. endif. ENDIF.
*Income tax for present month READ TABLE RT WITH KEY LGART = '/460'. IF SY-SUBRC = 0. IT_ZHR_INCCOMP-V_TAX_DEDU = IT_ZHR_INCCOMP-V_TAX_DEDU + RT-BETRG. IT_ZHR_INCCOMP-V_NET_TAX = IT_ZHR_INCCOMP-V_NET_TAX - RT-BETRG. ENDIF.
**Medical allowance to be added to Paycomponets of the employee * READ TABLE CRT WITH KEY LGART = '5160' * CUMTY = 'Y'.
* * * *
* ENDIF.
ENDFORM.
" GET_PAYRESULT
*----------------------------------------------------------------------* FORM GET_EXEMPTIONS . CLEAR : V_LETVL_0584, V_BSPFT_0584, V_CPGLN_0584, V_CPGLS_0584, V_CPGNS_0584, V_DVDND_0584,
*To process data of infotype 0584 IF P0584[] IS NOT INITIAL. PERFORM GET_DETAILS_584. ENDIF.
*To process data of infotype 0585 IF P0585[] IS NOT INITIAL. PERFORM GET_DETAILS_585. ENDIF.
*To process data of infotype 0586 IF P0586[] IS NOT INITIAL. PERFORM GET_DETAILS_586. ENDIF.
ENDFORM.
" GET_EXEMPTIONS
LOOP AT P0584. *House property IF P0584-SUBTY = '0001'. IF P0584-RENTO = '1'. V_LETVL_0584 = V_LETVL_0584 - P0584-INT24. ELSE. V_LETVL_0584 = V_LETVL_0584 + P0584-LETVL P0584-INT24 - P0584-REP24 - P0584-OTH24 . ENDIF.
*Income form other sources ELSEIF P0584-SUBTY = '0002'. V_BSPFT_0584 = P0584-BSPFT. V_CPGLN_0584 = P0584-CPGLN. V_CPGLS_0584 = P0584-CPGLS. V_CPGNS_0584 = P0584-CPGNS. V_DVDND_0584 = P0584-DVDND. V_INTRS_0584 = P0584-INTRS. V_UNSPI_0584 = P0584-UNSPI. ENDIF.
DO 20 TIMES VARYING V_SBSEC FROM P0585-SBS01 NEXT P0585-SBS02 VARYING V_SBSDV FROM P0585-SBD01 NEXT P0585-SBD02 VARYING V_PCNTR FROM P0585-PCN01 NEXT P0585-PCN02 VARYING V_ACNTR FROM P0585-ACN01 NEXT P0585-ACN02.
IF V_PCNTR = '0.00' AND V_ACNTR = '0.00'. ELSE. IT_0585-SBSEC = V_SBSEC. IT_0585-SBDIV = V_SBSDV. IF P0585-ACOPC = 'P'. IT_0585-PCNTR = V_PCNTR. ENDIF. IF P0585-ACOPC = 'A'. IT_0585-ACNTR = V_ACNTR. ENDIF. APPEND IT_0585. CLEAR IT_0585. ENDIF.
ENDDO.
ENDFORM.
" GET_DETAILS_585
DO 30 TIMES VARYING V_ICODE FROM P0586-ITC01 NEXT P0586-ITC02 VARYING V_PINVT FROM P0586-PIN01 NEXT P0586-PIN02 VARYING V_AINVT FROM P0586-AIN01 NEXT P0586-AIN02.
IF V_PINVT = '0.00' AND V_AINVT = '0.00'. ELSE. IT_0586-ICODE = V_ICODE. IF P0586-ACOPC = 'P'. IT_0586-PINVT = V_PINVT. ENDIF. IF P0586-ACOPC = 'A'. IT_0586-AINVT = V_AINVT.
ENDDO.
ENDFORM.
" GET_DETAILS_586
READ TABLE RT WITH KEY LGART = '/4E1'. * READ TABLE EXM WITH KEY SUBTY = 'SCEA'. IF SY-SUBRC = 0. IT_EXEMP-STEXT = 'CEA Annual Exemp'(009). IT_EXEMP-AMTEX = RT-BETRG. IT_EXEMP-PERNR = PERNR-PERNR. APPEND IT_EXEMP. CLEAR IT_EXEMP. ENDIF. "EXM-AMTEX.Changed by DEV02 "Changed by DEV02
*To get Conveyance Annual Exempt CLEAR RT. READ TABLE RT WITH KEY LGART = '/4E3'. * READ TABLE EXM WITH KEY SUBTY = 'SCNV'. IF SY-SUBRC = 0. IT_EXEMP-STEXT = 'Conveyance Annual Exemp'(010). IT_EXEMP-AMTEX = RT-BETRG. IT_EXEMP-PERNR = PERNR-PERNR. APPEND IT_EXEMP. CLEAR IT_EXEMP. ELSE. "Changed by DEV02 "Changed by DEV02
* Changed by DEV02 * * * * * * * * READ TABLE RT WITH KEY LGART = '9980'. IF SY-SUBRC = 0. IT_EXEMP-STEXT = 'Conveyance Annual Exemp'(010). IT_EXEMP-AMTEX = RT-BETRG. IT_EXEMP-PERNR = PERNR-PERNR. APPEND IT_EXEMP. CLEAR IT_EXEMP. ENDIF.
*To get Uniform Allow Exmp. READ TABLE RT WITH KEY LGART = '9981'. * READ TABLE EXM WITH KEY SUBTY = 'SEXM'. IF SY-SUBRC = 0. IT_EXEMP-STEXT = 'Uniform Annual Exemp'(011). IT_EXEMP-AMTEX = RT-BETRG. IT_EXEMP-PERNR = PERNR-PERNR. APPEND IT_EXEMP. CLEAR IT_EXEMP. " EXM-AMTEX.Changed by DEV02 "Changed by DEV02
ENDIF.
*To get HRA Annual Exemption READ TABLE RT WITH KEY LGART = '/4E4'. IF SY-SUBRC = 0. IT_EXEMP-STEXT = 'HRA Annual Exemp'(012). IT_EXEMP-AMTEX = RT-BETRG. IT_EXEMP-PERNR = PERNR-PERNR. APPEND IT_EXEMP. CLEAR IT_EXEMP. ENDIF.
*To get LTA Annual Exemption READ TABLE RT WITH KEY LGART = '/4E5'. IF SY-SUBRC = 0. IT_EXEMP-STEXT = 'LTA Annual Exemp'(013). IT_EXEMP-AMTEX = RT-BETRG. IT_EXEMP-PERNR = PERNR-PERNR. APPEND IT_EXEMP. CLEAR IT_EXEMP.
ENDIF.
*To get medical exemption READ TABLE RT WITH KEY LGART = '/414'. * READ TABLE EXM WITH KEY SUBTY = 'MDA'. IF SY-SUBRC = 0. IT_EXEMP-STEXT = 'Medical Exemp - Prorated '. IT_EXEMP-AMTEX = RT-BETRG. IT_EXEMP-PERNR = PERNR-PERNR. APPEND IT_EXEMP. CLEAR IT_EXEMP. ENDIF. "EXM-AMTEX. Changed by DEV02 "Changed by DEV02
*To get Stitching Charges (New added by DEV02) READ TABLE RT WITH KEY LGART = '9986'. * READ TABLE EXM WITH KEY SUBTY = 'SSTC'. IF SY-SUBRC = 0. IT_EXEMP-STEXT = 'Stitching Charges'. IT_EXEMP-AMTEX = RT-BETRG. "EXM-AMTEX.
***To get Child hostel allows (New added by DEV02) ** READ TABLE EXM WITH KEY SUBTY = 'SCHA'. ** IF SY-SUBRC = 0. ** ** ** ** ** IT_EXEMP-STEXT = 'Child hostel allows'. IT_EXEMP-AMTEX = EXM-AMTEX. IT_EXEMP-PERNR = PERNR-PERNR. APPEND IT_EXEMP. CLEAR IT_EXEMP.
** ENDIF.
**To get Leave Encashment (New added by DEV02) ** READ TABLE EXM WITH KEY SUBTY = 'SLEA'. ** IF SY-SUBRC = 0. ** ** IT_EXEMP-STEXT = 'Leave Encashment'. IT_EXEMP-AMTEX = EXM-AMTEX.
** ** **
** ENDIF.
*To get Prev exemp u/s10 READ TABLE RT WITH KEY LGART = '/4V2'. IF SY-SUBRC = 0. IT_EXEMP-STEXT = 'Prev exemp u/s 10'(015). IT_EXEMP-AMTEX = RT-BETRG. IT_EXEMP-PERNR = PERNR-PERNR. APPEND IT_EXEMP. CLEAR IT_EXEMP. ENDIF.
*Other Earning data READ TABLE RT WITH KEY LGART = '/4V1'. IF SY-SUBRC = 0. IT_FINAL-LGTXT = 'Prev Emp Earnings'(016). IT_FINAL-EARN = RT-BETRG.
*To move other income to final table IF V_BSPFT_0584 IS NOT INITIAL. IT_EARN_OT-STEXT = 'Business profits'(017). IT_EARN_OT-AMTEX = V_BSPFT_0584. IT_EARN_OT-PERNR = PERNR-PERNR. APPEND IT_EARN_OT. CLEAR IT_EARN_OT. ENDIF.
IF V_CPGLN_0584 IS NOT INITIAL. IT_EARN_OT-STEXT = 'Long Term Capital Gains'(018). IT_EARN_OT-AMTEX = V_CPGLN_0584. IT_EARN_OT-PERNR = PERNR-PERNR. APPEND IT_EARN_OT. CLEAR IT_EARN_OT.
ENDIF.
IF V_CPGLS_0584 IS NOT INITIAL. IT_EARN_OT-STEXT = 'Long Term Capital Gains'(019). IT_EARN_OT-AMTEX = V_CPGLS_0584. IT_EARN_OT-PERNR = PERNR-PERNR. APPEND IT_EARN_OT. CLEAR IT_EARN_OT. ENDIF.
IF V_CPGNS_0584 IS NOT INITIAL. IT_EARN_OT-STEXT = 'Short Term Capital Gains'(020). IT_EARN_OT-AMTEX = V_CPGNS_0584. IT_EARN_OT-PERNR = PERNR-PERNR. APPEND IT_EARN_OT. CLEAR IT_EARN_OT. ENDIF.
IT_EARN_OT-STEXT = 'Income from Dividend'(021). IT_EARN_OT-AMTEX = V_DVDND_0584. IT_EARN_OT-PERNR = PERNR-PERNR. APPEND IT_EARN_OT. CLEAR IT_EARN_OT. ENDIF.
IF V_INTRS_0584 IS NOT INITIAL. IT_EARN_OT-STEXT = 'Income from Interest'(022). IT_EARN_OT-AMTEX = V_INTRS_0584. IT_EARN_OT-PERNR = PERNR-PERNR. APPEND IT_EARN_OT. CLEAR IT_EARN_OT. ENDIF.
IF V_UNSPI_0584 IS NOT INITIAL. IT_EARN_OT-STEXT = 'Other Income (Unspecified)'(023). IT_EARN_OT-AMTEX = V_UNSPI_0584. IT_EARN_OT-PERNR = PERNR-PERNR. APPEND IT_EARN_OT.
IF V_LETVL_0584 IS NOT INITIAL. IT_EARN_OT-STEXT = 'Income from House property'(024). IT_EARN_OT-AMTEX = V_LETVL_0584. IT_EARN_OT-PERNR = PERNR-PERNR. APPEND IT_EARN_OT. CLEAR IT_EARN_OT. ENDIF.
IT_DEDU_80-AMTEX = IT_0585-PCNTR + IT_0585-ACNTR. * added by dev02 if IT_0585-SBSEC = '07' and IT_0585-SBDIV ='01'. it_dedu_80-amtex = it_dedu_80-amtex / 2. endif.
* added by dev02 IF IT_DEDU_80-AMTEX IS NOT INITIAL. READ TABLE IT_T7INI8 WITH KEY SBSEC = IT_0585-SBSEC SBDIV = IT_0585-SBDIV. IF SY-SUBRC = 0. IT_DEDU_80-STEXT = IT_T7INI8-SBDDS. ENDIF. IT_DEDU_80-PERNR = PERNR-PERNR. APPEND IT_DEDU_80. ENDIF. CLEAR IT_DEDU_80. ENDLOOP.
LOOP AT IT_0586.
IF IT_DEDU_80C-AMTEX IS NOT INITIAL. READ TABLE IT_T7INI3 WITH KEY ICODE = IT_0586-ICODE. IF SY-SUBRC = 0. IT_DEDU_80C-STEXT = IT_T7INI3-ITEXT. ENDIF. IT_DEDU_80C-PERNR = PERNR-PERNR. APPEND IT_DEDU_80C. ENDIF. CLEAR IT_DEDU_80C. ENDLOOP.
*To get PF contribution CLEAR : CRT, V_EEPF. READ TABLE CRT WITH KEY LGART = '/3F1' CUMTY = 'Y'.. IF SY-SUBRC = 0. IT_DEDU_80C-STEXT = 'Ee PF contribution(cum upto the Month)'. IT_DEDU_80C-AMTEX = CRT-BETRG. V_EEPF = CRT-BETRG.
CLEAR RT. READ TABLE RT WITH KEY LGART = '/3F2'. IF SY-SUBRC = 0. IT_DEDU_80C-STEXT = 'Ee VPF contribution'(046). IT_DEDU_80C-AMTEX = RT-BETRG. IT_DEDU_80C-PERNR = PERNR-PERNR. IF IT_DEDU_80C-AMTEX <> '0.00'. APPEND IT_DEDU_80C. ENDIF. CLEAR IT_DEDU_80C. ENDIF. " - V_EEPF.changed by Dev02 "'/3F6'.changed by Dev02
*To get LIC Exemption * READ TABLE RT WITH KEY LGART = '6692'. * IF SY-SUBRC = 0. * * IT_DEDU_80C-STEXT = 'LIC Exemp (Monthly)'. IT_DEDU_80C-AMTEX = RT-BETRG * ( -1 ).
* * *
* ENDIF. * READ TABLE RT WITH KEY LGART = '6691'. * IF SY-SUBRC = 0. * * * * * IT_DEDU_80C-STEXT = 'LIC Exemp (Monthly)'. IT_DEDU_80C-AMTEX = RT-BETRG." * ( -1 ). IT_DEDU_80C-PERNR = PERNR-PERNR. APPEND IT_DEDU_80C. CLEAR IT_DEDU_80C.
* ENDIF.
* To get GSLIS READ TABLE RT WITH KEY LGART = '5320'. IF SY-SUBRC = 0. IT_DEDU_80C-STEXT = 'Contribution to notified annuity plan of LIC/GSL(Monthly)'. IT_DEDU_80C-AMTEX = RT-BETRG * ( -1 ). IT_DEDU_80C-PERNR = PERNR-PERNR. APPEND IT_DEDU_80C. CLEAR IT_DEDU_80C.
ENDIF.
*To get Tution Fee(Akshara) READ TABLE RT WITH KEY LGART = '6520'. IF SY-SUBRC = 0. IT_DEDU_80C-STEXT = 'Tution Fee(Akshara) (Monthly)'. IT_DEDU_80C-AMTEX = RT-BETRG * ( -1 ). IT_DEDU_80C-PERNR = PERNR-PERNR. APPEND IT_DEDU_80C. CLEAR IT_DEDU_80C. ENDIF.
*To get postion text CLEAR V_PLSTX. SELECT SINGLE PLSTX FROM T528T INTO V_PLSTX WHERE SPRSL = 'EN' AND OTYPE = 'S' AND PLANS = PERNR-PLANS.
*To get organization text CLEAR V_ORGTX. SELECT SINGLE ORGTX FROM T527X INTO V_ORGTX WHERE SPRSL = 'EN' AND ORGEH = PERNR-ORGEH.
*To get Pan Number CLEAR V_ICNUM. SELECT SINGLE ICNUM FROM PA0185 INTO V_ICNUM WHERE PERNR = PERNR-PERNR AND SUBTY = '02'.
SELECT SINGLE ZZLOC FROM PA0001 INTO V_LOC WHERE PERNR = PERNR-PERNR AND ENDDA GE BEGCALSH AND BEGDA LE ENDCALSH.
IT_ZHR_PERNR-PERNR = PERNR-PERNR. IT_ZHR_PERNR-SNAME = PERNR-ENAME. IT_ZHR_PERNR-PLSTX = V_PLSTX. IT_ZHR_PERNR-ORGTX = V_ORGTX. IT_ZHR_PERNR-ICNUM = V_ICNUM. IT_ZHR_PERNR-ZZLOC = V_LOC. APPEND IT_ZHR_PERNR. CLEAR IT_ZHR_PERNR.
ENDFORM.
" PROCESS_DATA
*&---------------------------------------------------------------------*
*&
Form GET_BIT
*&---------------------------------------------------------------------* * text
*----------------------------------------------------------------------* FORM GET_BIT USING BIT_STRING NUMBER VALUE. *Logic to get whether the Income is Regular or irregular income DATA BITS(8) TYPE X VALUE '8040201008040201'. DATA BYTE_NO TYPE I. BYTE_NO = ( NUMBER - 1 ) DIV 8. DATA BIT_NO TYPE I. BIT_NO = ( NUMBER - 1 ) MOD 8. DATA BYTE TYPE X.
SHIFT BIT_STRING BY BYTE_NO PLACES CIRCULAR LEFT IN BYTE MODE. SHIFT BITS BY BIT_NO PLACES CIRCULAR LEFT IN BYTE MODE.
BYTE = BIT_STRING. IF BYTE O BITS(1). VALUE = 'X'. ELSE. VALUE = ' '. ENDIF. SHIFT BIT_STRING BY BYTE_NO PLACES CIRCULAR RIGHT IN BYTE MODE. SHIFT BITS BY BIT_NO PLACES CIRCULAR RIGHT IN BYTE MODE.
ENDFORM.
" GET_BIT
*&---------------------------------------------------------------------* * text
*----------------------------------------------------------------------* FORM GET_LGA_TEXT USING PREFIX NUMBER TEXT. DATA: LGA(4). LGA(2) = PREFIX. LGA+2(2) = NUMBER. SELECT SINGLE * FROM T512T WHERE SPRSL = SY-LANGU AND MOLGA = '40' AND LGART = LGA. IF SY-SUBRC = 0. TEXT = T512T-LGTXT. ELSE. TEXT = SPACE. ENDIF. ENDFORM. " GET_LGA_TEXT
VIJAY M P 225 posts since Dec 1, 2005 Re: Salary Projection Report Sep 12, 2012 10:35 AM
Dear Mr Venkata
Thanks for sharing the coding of report, I have updated the same in our system while saving the prog system are given error about ztable like.. ZHR_Payslip_40,ZHR_Exemp etc.
So if possible pl provide the sturcture of used enternal table in the said report so we can develop in our system also.
regards Vijay
Venkata Manikanth 1,360 posts since Jun 26, 2012 Re: Salary Projection Report Sep 12, 2012 11:05 AM
Hi Vijay
I could not find the internal table structures defined for these two types, check with your Abaper and find out the IT values and fields used in the program and try to develop them locally.
Best Regards
Venkata Manikanth