ROW COLOR REPORT Program
ROW COLOR REPORT Program
*& Report ZROW_COLO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZHR_ANNUAL_CTC_RP_COPY.
INCLUDE zhr_master_top1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
*SELECT-OPTIONS : s_banfn FOR eban-banfn,
PARAMETERS: S_amt TYPE pa0008-ansal.
PARAMETERS: S_amt1 TYPE pa0008-BET01.
PARAMETERS: s_pernr TYPE pa0000-pernr.
PARAMETERS: s_ename TYPE pa0001-ename.
**PARAMETERS:s_werks TYPE pa0001-werks OBLIGATORY DEFAULT '2000'.
*PARAMETERS: s_btrtl TYPE pa0001-btrtl.
SELECT-OPTIONS:s_endda FOR pa0000-endda.
**SELECT-OPTIONS:s_persk FOR pa0001-persk.
SELECTION-SCREEN : END OF BLOCK b1.
START-OF-SELECTION.
PERFORM get_data.
PERFORM field_cat.
* PERFORM field_cat1.
PERFORM display_data.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_data.
SELECT
pernr
subty
begda
endda
stat2 FROM pa0000 INTO TABLE it_pa0000 WHERE pernr EQ s_pernr and end
da = '99991231'.
SORT it_pa0000 BY pernr begda.
DELETE ADJACENT DUPLICATES FROM it_pa0000 COMPARING pernr .
* IF it_pa0000 IS NOT INITIAL.
* SELECT DISTINCT pernr, schkz FROM pa0007
* FOR ALL ENTRIES IN @it_pa0000
* WHERE pernr = @it_pa0000-pernr and endda = '99991231'
* INTO TABLE @gt_pa0007.
* ENDIF.
SELECT
pernr
subty
bukrs
werks
persg
persk
vdsk1
gsber
btrtl
juper
abkrs
ansvh
kostl
orgeh
plans
stell
mstbr
sname
ename
otype FROM pa0001 INTO TABLE it_pa0001 FOR ALL ENTRIES IN it_pa0000 WHERE
pernr = it_pa0000-pernr and endda = '99991231'.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
sno = sno + 1.
wa_final-sno = sno.
*---------------------------------------------------------------------
SALARY CALCULATION--------------------------------------------------------
---------------------------*
wa_final-m_tot = ( s_amt * 50 ) / 100.
wa_final-m_base1 = ( wa_final-m_tot * 50 ) / 100.
wa_final-m_base2 = ( wa_final-m_tot * 12 ) .
wa_final-m_base3 = ( wa_final-m_base1 * 12 ) .
*---------------------------------------------------------------------PF C
ALCULATION-----------------------------------------------------------------
-----------------------------*
wa_final1-field1 = 'PF Deduction'.
wa_final1-field2 = '12%'.
wa_final-m_tot2 = ( wa_final-m_tot * 12 ) / 100.
wa_final-m_tot3 = ( wa_final-m_tot2 * 12 ).
*-------------------------------------------------------------------SPECIAL
ALLOWANCE------------------------------------------------------------------
---------------------------*
wa_final-m_tot13 = wa_final-m_tot + wa_final-m_base1 + wa_final-m_tot2.
*-------------Employer ESIC-----------*
wa_final-m_tot14 = s_amt - wa_final-m_tot13.
wa_final-m_tot15 = ( wa_final-m_tot14 * 8441 ) / 10000 .
wa_final-m_tot1 = ( wa_final-m_tot14 * 1559 ) / 10000 .
wa_final-m_tot4 = ( wa_final-m_tot15 * 12 ).
wa_final-m_tot7 = wa_final-m_tot2 + wa_final-m_tot1.
wa_final-m_tot8 = wa_final-m_tot + wa_final-m_base1 + wa_final-m_tot15.
if wa_final-m_tot8 => 21000.
wa_final-m_tot15 = wa_final-m_tot14.
wa_final-m_tot8 = wa_final-m_tot + wa_final-m_base1 + wa_final-m_tot15
.
clear wa_final-m_tot1.
ELSE .
wa_final-m_tot15 = ( wa_final-m_tot14 * 8441 ) / 10000 .
wa_final-m_tot8 = wa_final-m_tot + wa_final-m_base1 + wa_final-m_tot15
.
* wa_final-m_tot1 = 0.
ENDIF.
*-------------Employee PF--------*
wa_final-m_tot9 = ( wa_final-m_tot * 12 ) / 100.
*-------------Employee ESIC-----------*
wa_final-m_tot10 = ( wa_final-m_tot8 * 75 ) / 10000.
if wa_final-m_tot8 => 21000.
* wa_final-m_tot10 = wa_final-m_tot14.
wa_final-m_tot8 = wa_final-m_tot + wa_final-m_base1 + wa_final-m_tot15
.
clear wa_final-m_tot10.
ELSE .
wa_final-m_tot10 = ( wa_final-m_tot8 * 75 ) / 10000 .
wa_final-m_tot8 = wa_final-m_tot + wa_final-m_base1 + wa_final-m_tot15
.
* wa_final-m_tot1 = 0.
ENDIF.
*--------------------------------------------------------------------TAX C
ALCULATION-----------------------------------------------------------------
-----------------------------*
wa_final-field1 = 'TAX CALCULATION'.
* wa_final1-field2 = '12%'.
wa_final-m_tot6 = ( wa_final-m_tot8 * 6 ).
CONDENSE wa_final-m_tot6.
IF wa_final-m_tot6 < 21000 .
wa_final-m_tot6 = '000'.
ELSEIF wa_final-m_tot6 > 21001 AND wa_final-m_tot6 <= 30000.
wa_final-m_tot6 = '135'.
ELSEIF wa_final-m_tot6 > 30001 AND wa_final-m_tot6 <= 45000.
wa_final-m_tot6 = '315'.
ELSEIF wa_final-m_tot6 > 45001 AND wa_final-m_tot6 <= 60000.
wa_final-m_tot6 = '690'.
ELSEIF wa_final-m_tot6 > 60001 AND wa_final-m_tot6 <= 75000.
wa_final-m_tot6 = '1025'.
ELSEIF wa_final-m_tot6 > 75001.
wa_final-m_tot6 = '1250'.
ENDIF.
*--------------------------------------------------------------------
Deduction Employee Contribution-------------------------------------------
---------------------------------------------*
wa_final-m_tot13 = wa_final-M_TOT9 + wa_final-M_TOT10 + wa_final-m_tot6 .
wa_final-m_tot16 = wa_final-m_tot7 + wa_final-m_tot13.
wa_final-m_tot17 = s_amt - wa_final-m_tot16.
wa_final-m_tot18 = ( wa_final-m_tot8 * 12 ).
wa_final-m_tot19 = ( wa_final-m_tot1 * 12 ).
wa_final-m_tot20 = ( wa_final-m_tot7 * 12 ).
*-------------------------------------------------------------------Final
CTC------------------------------------------------------------------------
-----------------------------*
wa_final-m_tot11 = s_amt .
wa_final-m_tot12 = wa_final-m_tot11 * 12.
*------------------------------------------------------------------
CALCULATION FOR ANNUAL CTC------------------------------------------------
-------------------------------------*
wa_final-m_tot21 = s_amt1.
wa_final-m_tot22 = ( s_amt1 / 12 ). " anuual slary converted into monthl
y
wa_final-m_tot23 = ( wa_final-m_tot22 * 50 ) / 100. "monthly to basic
wa_final-m_tot24 = ( wa_final-m_tot23 * 50 ) / 100. "monthly HRA
wa_final-m_tot25 = wa_final-m_tot23 * 12. " basic monthly to annual bas
ic
wa_final-m_tot26 = wa_final-m_tot24 * 12. " monthly hra to annual hra
wa_final-m_tot27 = ( wa_final-m_tot23 * 12 ) / 100. "PF calculation
wa_final-m_tot43 = ( wa_final-m_tot27 * 12 )." annual pf
wa_final-m_tot29 = wa_final-m_tot23 + wa_final-m_tot24 + wa_final-
m_tot27.
*-------------Employer ESIC-----------*
wa_final-m_tot28 = wa_final-m_tot22 - wa_final-m_tot29.
wa_final-m_tot29 = ( wa_final-m_tot28 * 8441 ) / 10000 .
wa_final-m_tot30 = ( wa_final-m_tot28 * 1559 ) / 10000 .
wa_final-m_tot31 = ( wa_final-m_tot29 * 12 ).
wa_final-m_tot32 = wa_final-m_tot27 + wa_final-m_tot30.
wa_final-m_tot33 = wa_final-m_tot23 + wa_final-m_tot24 + wa_final-
m_tot29.
if wa_final-m_tot33 => 21000.
wa_final-m_tot29 = wa_final-m_tot28.
wa_final-m_tot33 = wa_final-m_tot23 + wa_final-m_tot24 + wa_final-
m_tot29 .
clear wa_final-m_tot30.
ELSE .
wa_final-m_tot29 = ( wa_final-m_tot28 * 8441 ) / 10000 .
wa_final-m_tot33 = wa_final-m_tot23 + wa_final-m_tot24 + wa_final-
m_tot29 .
* wa_final-m_tot1 = 0.
ENDIF.
*-------------Employee PF--------*
wa_final-m_tot34 = ( wa_final-m_tot23 * 12 ) / 100.
*-------------Employee ESIC-----------*
wa_final-m_tot35 = ( wa_final-m_tot33 * 75 ) / 10000.
if wa_final-m_tot33 => 21000.
* wa_final-m_tot10 = wa_final-m_tot14.
wa_final-m_tot33 = wa_final-m_tot23 + wa_final-m_tot24 + wa_final-
m_tot29 .
clear wa_final-m_tot35.
ELSE .
wa_final-m_tot35 = ( wa_final-m_tot33 * 75 ) / 10000 .
wa_final-m_tot33 = wa_final-m_tot23 + wa_final-m_tot24 + wa_final-
m_tot29 .
* wa_final-m_tot1 = 0.
ENDIF.
* wa_final-field1 = 'TAX CALCULATION'.
* wa_final1-field2 = '12%'.
wa_final-m_tot36 = ( wa_final-m_tot33 * 6 ).
CONDENSE wa_final-m_tot36.
IF wa_final-m_tot36 < 21000 .
wa_final-m_tot36 = '000'.
ELSEIF wa_final-m_tot36 > 21001 AND wa_final-m_tot36 <= 30000.
wa_final-m_tot6 = '135'.
ELSEIF wa_final-m_tot36 > 30001 AND wa_final-m_tot36 <= 45000.
wa_final-m_tot36 = '315'.
ELSEIF wa_final-m_tot36 > 45001 AND wa_final-m_tot36 <= 60000.
wa_final-m_tot36 = '690'.
ELSEIF wa_final-m_tot36 > 60001 AND wa_final-m_tot36 <= 75000.
wa_final-m_tot36 = '1025'.
ELSEIF wa_final-m_tot36 > 75001.
wa_final-m_tot36 = '1250'.
ENDIF.
wa_final-m_tot37 = wa_final-M_TOT34 + wa_final-M_TOT35 + wa_final-m_tot36
.
wa_final-m_tot38 = wa_final-m_tot32 + wa_final-m_tot37.
wa_final-m_tot39 = wa_final-m_tot22 - wa_final-m_tot38.
wa_final-m_tot40 = ( wa_final-m_tot33 * 12 ).
wa_final-m_tot41 = ( wa_final-m_tot30 * 12 ).
wa_final-m_tot42 = ( wa_final-m_tot32 * 12 ).
*-------------------------------------------------------------------Final
CTC------------------------------------------------------------------------
-----------------------------*
* wa_final-m_tot11 = wa_final-m_tot23 .
* wa_final-m_tot12 = wa_final-m_tot11 * 12.
wa_final-pernr = s_pernr.
wa_final-endda = s_endda.
wa_final-ename = s_ename.
APPEND : wa_final TO it_final.
CLEAR:wa_final,
wa_pa0001,
wa_pa0002,
wa_pa0008,
wa_pa0587,
wa_pa0588,
wa_pa0185,
wa_pa0000.
* ENDLOOP.
*ENDFORM. "get_data
LOOP AT IT_FINAL INTO WA_FINAL .
* READ TABLE it_final INTO wa_final INDEX 1.
IF SY-SUBRC = 0.
Wa_final_m-txt = 'Basic Salary'.
WA_FINAL_M-SNO = 1.
Wa_final_m-pernr = wa_final-pernr.
wa_final_m-ename = wa_final-ename.
wa_final_m-endda = wa_final-endda.
Wa_final_M-amount1 = wa_final-m_tot.
Wa_final_M-amount2 = wa_final-M_BASE2.
Wa_final_M-amount3 = wa_final-m_tot23.
Wa_final_M-amount4 = wa_final-m_tot25.
Append wa_final_m to it_final_M.
Clear wa_final_m.
Wa_final_m-txt = 'House Rent Allowance'.
WA_FINAL_M-SNO = 2.
Wa_final_m-pernr = wa_final-pernr.
Wa_final_M-amount1 = wa_final-M_BASE1.
Wa_final_M-amount2 = wa_final-M_BASE3.
Wa_final_M-amount3 = wa_final-m_tot24.
Wa_final_M-amount4 = wa_final-m_tot26.
Append wa_final_m to it_final_M.
Clear wa_final_m.
Wa_final_m-txt = 'Special Allowance'.
WA_FINAL_M-SNO = 3.
Wa_final_m-pernr = wa_final-pernr.
Wa_final_M-amount1 = wa_final-M_TOT15.
Wa_final_M-amount2 = wa_final-M_TOT4.
Wa_final_M-amount3 = wa_final-M_TOT29.
Wa_final_M-amount4 = wa_final-M_TOT31.
Append wa_final_m to it_final_M.
Clear wa_final_m.
AT END OF PERNR.
Wa_final_m-txt = 'Monthly-Fixed Gross Salary-A'.
WA_FINAL_M-SNO = 4.
Wa_final_m-pernr = wa_final-pernr.
wa_final_m-line_color = 'C310'.
Wa_final_M-amount1 = wa_final-M_TOT8.
Wa_final_M-amount2 = wa_final-M_TOT18.
Wa_final_M-amount3 = wa_final-M_TOT33.
Wa_final_M-amount4 = wa_final-m_tot40.
Append wa_final_m to it_final_M.
Clear wa_final_m.
ENDAT.
Wa_final_m-txt = 'Employer PF'.
WA_FINAL_M-SNO = 5.
Wa_final_m-pernr = wa_final-pernr.
Wa_final_M-amount1 = wa_final-M_TOT2.
Wa_final_M-amount2 = wa_final-M_TOT3.
Wa_final_M-amount3 = wa_final-M_TOT27.
Wa_final_M-amount4 = wa_final-M_TOT43.
Append wa_final_m to it_final_M.
Clear wa_final_m.
Wa_final_m-txt = 'Employer ESIC'.
WA_FINAL_M-SNO = 6.
Wa_final_m-pernr = wa_final-pernr.
Wa_final_M-amount1 = wa_final-M_TOT1.
Wa_final_M-amount2 = wa_final-M_TOT19.
Wa_final_M-amount3 = wa_final-M_TOT30.
Wa_final_M-amount4 = wa_final-M_TOT41.
Append wa_final_m to it_final_M.
Clear wa_final_m.
Wa_final_m-txt = 'Retirals-Employer Contribution-B'.
WA_FINAL_M-SNO = 7.
Wa_final_m-pernr = wa_final-pernr.
Wa_final_M-amount1 = wa_final-M_TOT7.
Wa_final_M-amount2 = wa_final-M_TOT20.
Wa_final_M-amount3 = wa_final-M_TOT32.
Wa_final_M-amount4 = wa_final-M_TOT42.
Append wa_final_m to it_final_M.
Clear wa_final_m.
at end of PERNR.
Wa_final_m-txt = 'Annual Cost to company-c (A+B)'.
WA_FINAL_M-SNO = 8.
Wa_final_m-pernr = wa_final-pernr.
wa_final_m-line_color = 'C310'.
Wa_final_M-amount1 = wa_final-m_tot11.
Wa_final_M-amount2 = wa_final-M_TOT12.
Wa_final_M-amount4 = wa_final-m_tot21.
Wa_final_M-amount3 = wa_final-m_tot22.
Append wa_final_m to it_final_M.
Clear wa_final_m.
ENDAT.
Wa_final_m-txt = 'Employee PF Contribution'.
WA_FINAL_M-SNO = 9.
Wa_final_m-pernr = wa_final-pernr.
Wa_final_M-amount1 = wa_final-M_TOT9.
Wa_final_M-amount3 = wa_final-M_TOT34.
Append wa_final_m to it_final_M.
Clear wa_final_m.
Wa_final_m-txt = 'Employee ESIC Contribution'.
WA_FINAL_M-SNO = 10.
Wa_final_m-pernr = wa_final-pernr.
Wa_final_M-amount1 = wa_final-M_TOT10.
Wa_final_M-amount3 = wa_final-M_TOT35.
Append wa_final_m to it_final_M.
Clear wa_final_m.
Wa_final_m-txt = 'Professional Tax'.
WA_FINAL_M-SNO = 11.
Wa_final_m-pernr = wa_final-pernr.
Wa_final_M-amount1 = wa_final-M_TOT6.
Wa_final_M-amount3 = wa_final-M_TOT36.
Append wa_final_m to it_final_M.
Clear wa_final_m.
Wa_final_m-txt = 'Deduction-Employee Contribution'.
WA_FINAL_M-SNO = 12.
Wa_final_m-pernr = wa_final-pernr.
Wa_final_M-amount1 = wa_final-M_TOT13.
Wa_final_M-amount3 = wa_final-M_TOT37.
Append wa_final_m to it_final_M.
Clear wa_final_m.
Wa_final_m-txt = 'Net Salary'.
WA_FINAL_M-SNO = 13.
Wa_final_m-pernr = wa_final-pernr.
Wa_final_M-amount1 = wa_final-M_TOT17.
Wa_final_M-amount3 = wa_final-m_tot39.
* wa_final_m-line_color = 'c410'.
Append wa_final_m to it_final_M.
Clear wa_final_m.
* wa_final_m-txt = 'subtotal'.
* Wa_final_m-pernr = wa_final-pernr.
* wa_final_m-line_color = 'C210'.
* APPEND WA_FINAL_M TO IT_FINAL_M.
* CLEAR: WA_FINAL_M.
* ENDAT.
ENDIF.
ENDLOOP.
*Populate color variable with colour properties
* Char 1 = C (This is a color property)
* Char 2 = 3 (Color codes: 1 - 7)
* Char 3 = Intensified on/off ( 1 or 0 )
* Char 4 = Inverse display on/off ( 1 or 0 )
* i.e. wa_ekko-line_color = 'C410'
* sort it_final_m by pernr descending.
* describe table it_final_m lines sno.
*read table it_final_m into wa_final_m index sno.
* if sy-subrc = 0.
* REFRESH COLOR. CLEAR COLOR.
* COLOR-FIELDNAME = 'PERNR'.
* COLOR-COLOR-INT = '1'.
* COLOR-COLOR-COL = '6'.
* COLOR-COLOR-INV = '0'.
*APPEND COLOR. CLEAR COLOR.
*it_FINAL_M-colo = color[].
*modify it_FINAL_M index SNO.
*endif.
ENDFORM. "
*ENDFORM. "get_data
*&---------------------------------------------------------------------*
*& Form field_cat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM field_cat.
wa_fcat-fieldname = 'SNO'.
wa_fcat-reptext = 'SNO'.
WA_FCAT-COL_POS = '1'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'PERNR'.
wa_fcat-reptext = 'EMPLOYEE ID'.
WA_FCAT-COL_POS = '1'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'ENAME'.
wa_fcat-reptext = 'EMPLOYEE NAME'.
WA_FCAT-COL_POS = '1'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'ENDDA'.
wa_fcat-reptext = 'EFFECTIVE DATE'.
WA_FCAT-COL_POS = '1'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'TXT'.
wa_fcat-reptext = 'COMPONENTS'.
WA_FCAT-COL_POS = '1'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'AMOUNT1'.
wa_fcat-reptext = 'MONTHLY AMOUNT'.
WA_FCAT-COL_POS = '1'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'AMOUNT2'.
wa_fcat-reptext = 'ANNUAL AMOUNT'.
WA_FCAT-COL_POS = '1'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'AMOUNT3'.
wa_fcat-reptext = 'MONTHLY AMOUNT'.
WA_FCAT-COL_POS = '1'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'AMOUNT4'.
wa_fcat-reptext = 'ANNUAL AMOUNT'.
WA_FCAT-COL_POS = '1'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
wa_fcat-fieldname = 'SEL'.
wa_fcat-reptext = 'SELECT'.
WA_FCAT-COL_POS = '1'.
APPEND wa_fcat TO it_fcat.
CLEAR wa_fcat.
* wa_layout-zebra = 'X'.
wa_layout-cwidth_opt = 'X'.
wa_layout-info_fname = 'LINE_COLOR'.
* PERFORM genfcat USING 'SNo' 'SNO' '1' '' ''.
* PERFORM genfcat USING 'Employee ID' 'PERNR' '1' '' ''.
* PERFORM genfcat USING 'Employee Name' 'ENAME' '1' '' '
'.
* PERFORM genfcat USING 'EFFECTIVE DATE' 'ENDDA' '1' ''
''.
* PERFORM genfcat USING 'Components' 'TXT' '1'
'' ''.
* PERFORM genfcat USING 'Monthly Amount' 'AMOUNT1'
'1' '' ''.
* PERFORM genfcat USING 'Annual Amount' 'AMOUNT2'
'1' '' ''.
* PERFORM genfcat USING 'Monthly Amount' 'AMOUNT3'
'1' '' ''.
* PERFORM genfcat USING 'Annual Amount' 'AMOUNT4'
'1' '' ''.
* PERFORM genfcat USING 'Select' 'SEL' '1' '' ''.
* PERFORM genfcat USING 'Emp Code' 'PERNR' '2' '' ''.
* PERFORM genfcat USING 'Emp Name' 'ENAME' '3' '' ''.
* PERFORM genfcat USING 'Date of join' 'BEGDA' '3' '' ''.
* PERFORM genfcat USING 'Date of Birth' 'GBDAT' '3' '' ''.
* PERFORM genfcat USING 'Emp status' 'STATUS' '3' '' ''.
* PERFORM genfcat USING 'Personal Area' 'WERKS' '3' '' ''.
* PERFORM genfcat USING 'Plant Name' 'WERKS_TEXT' '3' ''
''.
* PERFORM genfcat USING 'Company Code' 'BUKRS' '3' '' ''.
* PERFORM genfcat USING 'Emp Group' 'PERSG_TEXT' '3' ''
''.
* PERFORM genfcat USING 'Emp Sub Group' 'PERSK_TEXT' '3' ''
''.
* PERFORM genfcat USING 'Position' 'PLANS_TEXT' '3' ''
''.
* PERFORM genfcat USING 'Work Shedule Rule' 'SCHKZ' '3' '' ''.
** PERFORM genfcat USING 'Work Shedule' 'schkz_text' '3' '' ''.
** PERFORM genfcat USING 'Personal Sub area' 'BTRTL_TEXT' '3' ''
''.
* PERFORM genfcat USING 'Organizational Unit ' 'ORGEH_TEXT' '3' '' '
'.
* PERFORM genfcat USING 'Organizational Key' 'VDSK1' '3' '' ''.
** PERFORM genfcat USING 'Work Contract' 'ANSVH_TEXT' '3' ''
''.
* PERFORM genfcat USING 'Grade' 'GRADE' '3' '' ''.
* PERFORM genfcat USING 'Zone' 'BTRTL_TEXT' '3' '' ''
.
* PERFORM genfcat USING 'Group' 'GROUP' '3' '' ''.
* PERFORM genfcat USING 'Weightage %' 'WEIGHTAGE' '3'
'' ''.
* PERFORM genfcat USING 'Basic Salary' 'BET01' '3' '' '
'.
* PERFORM genfcat USING 'Basic Salary Annually' 'M_BASE1
' '3' '' ''.
** PERFORM genfcat USING 'Dearness Allowance' 'BET02' '
3' '' ''.
*
** PERFORM genfcat USING 'HRA' 'BET03' '3' '' ''.
** PERFORM genfcat USING 'City Compensatory Allow' 'BET04' '3' '' ''.
** PERFORM genfcat USING 'Education Allowance' 'BET05' '3' '' ''.
** PERFORM genfcat USING 'Washing Allowance' 'BET06' '3' '' ''.
* PERFORM genfcat USING 'House Rent Allowance' 'BET03' '
3' '' ''.
* PERFORM genfcat USING 'House Rent Allowance Annually '
'M_BASE2' '3' '' ''.
* PERFORM genfcat USING 'Special Allowance' 'BET04' '3'
'' ''.
* PERFORM genfcat USING 'Special Allowance Annually' 'M_
BASE4' '3' '' ''.
* PERFORM genfcat USING 'Employer PF' 'M_TOT2' '3' '' ''
.
* PERFORM genfcat USING 'Employer PF Annually' 'M_TOT7'
'3' '' ''.
* PERFORM genfcat USING 'Employee PF Contribution' 'M_TO
T3' '3' '' ''.
* PERFORM genfcat USING 'Employee ESIC Contribution' 'M_
TOT4' '3' '' ''.
* PERFORM genfcat USING 'Employer ESIC' 'M_TOT5' '3' ''
''.
* PERFORM genfcat USING 'Employer ESIC Annually' 'M_TOT8
' '3' '' ''.
* PERFORM genfcat USING 'Retirals Employer Contribution Monthly'
'M_TOT9' '3' '' ''.
* PERFORM genfcat USING 'Retirals Employer Contribution Annually'
'M_TOT10' '3' '' ''.
* PERFORM genfcat USING 'Monthly Fixed Gross Salary' 'M_
TOT' '3' '' ''.
* PERFORM genfcat USING 'Annual Fixed Gross Salary' 'M_T
OT1' '3' '' ''.
* PERFORM genfcat USING 'Professional Tax' 'M_TOT6' '3'
'' ''.
* PERFORM genfcat USING 'Deduction Employee Contribution'
'M_TOT12' '3' '' ''.
** PERFORM genfcat USING 'Other Allowance' 'BET05' '3' '
' ''.
* PERFORM genfcat USING 'Total CTC' 'M_TOT11' '3' '' ''.
ENDFORM. "get_data
"field_cat
*&---------------------------------------------------------------------*
*& Form genfcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(P_0122) text
* -->VALUE(P_0123) text
* -->VALUE(P_0124) text
* -->VALUE(P_0125) text
* -->VALUE(P_0126) text
*----------------------------------------------------------------------*
FORM genfcat. ""USING VALUE(p_0122)
* VALUE(p_0123)
* VALUE(p_0124)
* VALUE(p_0125)
* VALUE(p_0126).
* wa_fieldcat-col_pos = p_0124.
* wa_fieldcat-fieldname = p_0123.
* wa_fieldcat-seltext_l = p_0122.
* wa_fieldcat-lowercase = 'X'.
* wa_fieldcat-do_sum = p_0125.
* wa_fieldcat-key = p_0126.
* wa_fieldcat-no_zero = 'X'.
* IF p_0123 = 'SEL'.
* wa_fieldcat-checkbox = 'X'.
* wa_fieldcat-edit = 'X'.
* ENDIF.
** wa_fieldcat-SP_group = 'X'.
** wa_fieldcat-subtotals = 'X'.
* APPEND wa_fieldcat TO it_fieldcat.
* CLEAR wa_fieldcat.
ENDFORM. "genfcat
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM display_data.
* wa_layout-zebra = 'X' .
* WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X' .
* WA_layout-info_fIELDname = 'LINE_COLOR'.
** WA_layout-box_fIELDname = 'SEL'.
** lv-report = sy-repid.
* wa_layout-zebra = 'X'.
* wa_layout-cwidth_opt = 'X'.
* wa_layout-info_fname = 'LINE_COLOR'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
* I_CALLBACK_TOP_OF_PAGE = ' '
IS_LAYOUT_LVC = WA_LAYOUT
IT_FIELDCAT_LVC = IT_FCAT
TABLES
T_OUTTAB = IT_FINAL_M
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* EXPORTING
** I_INTERFACE_CHECK = ' '
** I_BYPASSING_BUFFER = ' '
** I_BUFFER_ACTIVE = ' '
* i_callback_program = sy-repid
** I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
* i_callback_pf_status_set = 'SET_PF_STATUS'
* i_callback_top_of_page = 'TOP-OF-PAGE'
* i_callback_user_command = 'USER_COMMAND'
** i_callback_html_top_of_page = 'TOP-OF-PAGE'
** I_CALLBACK_HTML_END_OF_LIST = ' '
** I_STRUCTURE_NAME =
** I_BACKGROUND_ID = ' '
** I_GRID_TIT LE = ' Rupees
in Lakh'
** I_GRID_SETTINGS =
* is_layout = WA_layout
* it_fieldcat = it_fieldcat
** IT_EXCLUDING =
** IT_SPECIAL_GROUPS =
* it_sort = i_sort
** IT_FILTER =
** IS_SEL_HIDE =
** I_DEFAULT = 'X'
* i_save = 'A'
* is_variant = lv
** IT_EVENTS =
** IT_EVENT_EXIT =
** IS_PRINT =
** IS_REPREP_ID =
** I_SCREEN_START_COLUMN = 0
** I_SCREEN_START_LINE = 0
** I_SCREEN_END_COLUMN = 0
** I_SCREEN_END_LINE = 0
** I_HTML_HEIGHT_TOP = 0
** I_HTML_HEIGHT_END = 0
** IT_ALV_GRAPHICS =
** IT_HYPERLINK =
** IT_ADD_FIELDCAT =
** IT_EXCEPT_QINFO =
** IR_SALV_FULLSCREEN_ADAPTER =
** IMPORTING
** E_EXIT_CAUSED_BY_CALLER =
** ES_EXIT_CAUSED_BY_USER =
* TABLES
* t_outtab = it_final_M
** EXCEPTIONS
** PROGRAM_ERROR = 1
** OTHERS = 2
* .
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.
ENDFORM. "display_data
*&---------------------------------------------------------------------*
*& Form set_pf_status
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RT_EXTAB text
*----------------------------------------------------------------------*
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZSTANDARD' EXCLUDING rt_extab.
ENDFORM. "set_pf_status
"display_data
*&---------------------------------------------------------------------*
*& Form top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM top_of_page.
DATA: ls_line TYPE slis_listheader,
lt_top_of_page TYPE slis_t_listheader,
l_name TYPE t001-butxt,
l_date(60),
l_date1(10),
l_date2(10).
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = 'Employee Salary'.
APPEND ls_line TO lt_top_of_page.
CLEAR :ls_line,
l_date.
* WRITE sy-datum TO l_date.
* IF sy_date-low IS NOT INITIAL.
* CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
* EXPORTING
* date_internal = sy_date-low
* IMPORTING
* date_external = l_date1
* EXCEPTIONS
* date_internal_is_invalid = 1
* OTHERS = 2.
* ENDIF.
* IF sy_date-high IS NOT INITIAL.
* CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
* EXPORTING
* date_internal = sy_date-high
* IMPORTING
* date_external = l_date2
* EXCEPTIONS
* date_internal_is_invalid = 1
* OTHERS = 2.
* ENDIF.
* ls_line-typ = 'S'.
* ls_line-key = 'From Date:'.
* ls_line-info = l_date1.
* APPEND ls_line TO lt_top_of_page.
* CLEAR: ls_line.
* ls_line-typ = 'S'.
* ls_line-key = 'To Date :'.
* ls_line-info = l_date2.
* APPEND ls_line TO lt_top_of_page.
* CLEAR :ls_line.
*
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = lt_top_of_page.
ENDFORM. "top_of_page
*PERFORM user_command.
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfiel
d.
DATA: ref1 TYPE REF TO cl_gui_alv_grid.
CASE r_ucomm.
WHEN 'BACK'. "Back
LEAVE SCREEN.
WHEN 'CANCEL'. "Cancel
LEAVE SCREEN.
WHEN 'SELECTALL'.
DATA:lt_temp TYPE STANDARD TABLE OF ty_final_M,
ls_temp TYPE ty_final_M,
l_bapireturn LIKE bapireturn1,
bapipakey_tab LIKE bapipakey OCCURS 0 WITH HEADER LINE.
DATA: validitybegin TYPE p0001-begda,
validityend TYPE p0001-endda,
lv_record TYPE p9001,
lv_record1 TYPE p0008,
lv_tabix TYPE sy-tabix.
lt_temp = it_final_m.
LOOP AT lt_temp INTO ls_temp.
CLEAR wa_final_m.
lv_tabix = sy-tabix.
wa_final_m-SNO = ls_temp-SNO.
wa_final_m-PERNR = ls_temp-PERNR.
wa_final_m-ENDDA = ls_temp-ENDDA.
wa_final_m-TXT = ls_temp-TXT.
wa_final_m-AMOUNT1 = ls_temp-AMOUNT1.
wa_final_m-AMOUNT2 = ls_temp-AMOUNT2.
wa_final_m-AMOUNT3 = ls_temp-AMOUNT3.
wa_final_m-AMOUNT4 = ls_temp-AMOUNT4.
wa_final_m-sel = 'X'.
MODIFY it_final_m FROM wa_final_m INDEX lv_tabix TRANSPORTING sel.
ENDLOOP.
WHEN 'UPDATE'.
"For capturing the selected data
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref1.
CALL METHOD ref1->check_changed_data.
refresh : lt_output .
lt_output = it_final_M .
DELETE lt_output WHERE sel <> 'X'.
IF lt_output IS INITIAL.
MESSAGE 'Select atleast one ROW to update' TYPE 'I'.
EXIT.
ENDIF.
read table lt_output into wa_output1 with key sno = 1.
IF wa_output1-AMOUNT1 IS INITIAL.wa_output1-AMOUNT1 = wa_output1-
AMOUNT3.ENDIF.
IF wa_output1-AMOUNT2 IS INITIAL.wa_output1-AMOUNT2 = wa_output1-
AMOUNT4.ENDIF.
read table lt_output into wa_output2 with key sno = 2.
IF wa_output2-AMOUNT1 IS INITIAL.wa_output2-AMOUNT1 = wa_output2-
AMOUNT3.ENDIF.
IF wa_output2-AMOUNT2 IS INITIAL.wa_output2-AMOUNT2 = wa_output2-
AMOUNT4.ENDIF.
read table lt_output into wa_output3 with key sno = 3.
IF wa_output3-AMOUNT1 IS INITIAL.wa_output3-AMOUNT1 = wa_output3-
AMOUNT3.ENDIF.
IF wa_output3-AMOUNT2 IS INITIAL.wa_output3-AMOUNT2 = wa_output3-
AMOUNT4.ENDIF.
read table lt_output into wa_output4 with key sno = 4.
IF wa_output4-AMOUNT1 IS INITIAL.wa_output4-AMOUNT1 = wa_output4-
AMOUNT3.ENDIF.
IF wa_output4-AMOUNT2 IS INITIAL.wa_output4-AMOUNT2 = wa_output4-
AMOUNT4.ENDIF.
read table lt_output into wa_output5 with key sno = 5.
IF wa_output5-AMOUNT1 IS INITIAL.wa_output5-AMOUNT1 = wa_output5-
AMOUNT3.ENDIF.
IF wa_output5-AMOUNT2 IS INITIAL.wa_output5-AMOUNT2 = wa_output5-
AMOUNT4.ENDIF.
read table lt_output into wa_output6 with key sno = 6.
IF wa_output6-AMOUNT1 IS INITIAL.wa_output6-AMOUNT1 = wa_output6-
AMOUNT3.ENDIF.
IF wa_output6-AMOUNT2 IS INITIAL.wa_output6-AMOUNT2 = wa_output6-
AMOUNT4.ENDIF.
read table lt_output into wa_output7 with key sno = 7.
IF wa_output7-AMOUNT1 IS INITIAL.wa_output7-AMOUNT1 = wa_output7-
AMOUNT3.ENDIF.
IF wa_output7-AMOUNT2 IS INITIAL.wa_output7-AMOUNT2 = wa_output7-
AMOUNT4.ENDIF.
read table lt_output into wa_output8 with key sno = 8.
IF wa_output8-AMOUNT1 IS INITIAL.wa_output8-AMOUNT1 = wa_output8-
AMOUNT3.ENDIF.
IF wa_output8-AMOUNT2 IS INITIAL.wa_output8-AMOUNT2 = wa_output8-
AMOUNT4.ENDIF.
read table lt_output into wa_output9 with key sno = 9.
IF wa_output9-AMOUNT1 IS INITIAL.wa_output9-AMOUNT1 = wa_output9-
AMOUNT3.ENDIF.
IF wa_output9-AMOUNT2 IS INITIAL.wa_output9-AMOUNT2 = wa_output9-
AMOUNT4.ENDIF.
read table lt_output into wa_output10 with key sno = 10.
IF wa_output10-AMOUNT1 IS INITIAL.wa_output10-AMOUNT1 = wa_output10-
AMOUNT3.ENDIF.
IF wa_output10-AMOUNT2 IS INITIAL.wa_output10-AMOUNT2 = wa_output10-
AMOUNT4.ENDIF.
read table lt_output into wa_output11 with key sno = 11.
IF wa_output11-AMOUNT1 IS INITIAL.wa_output11-AMOUNT1 = wa_output11-
AMOUNT3.ENDIF.
IF wa_output11-AMOUNT2 IS INITIAL.wa_output11-AMOUNT2 = wa_output11-
AMOUNT4.ENDIF.
read table lt_output into wa_output12 with key sno = 12.
IF wa_output12-AMOUNT1 IS INITIAL.wa_output12-AMOUNT1 = wa_output12-
AMOUNT3.ENDIF.
IF wa_output12-AMOUNT2 IS INITIAL.wa_output12-AMOUNT2 = wa_output12-
AMOUNT4.ENDIF.
read table lt_output into wa_output13 with key sno = 13.
IF wa_output13-AMOUNT1 IS INITIAL.wa_output13-AMOUNT1 = wa_output13-
AMOUNT3.ENDIF.
IF wa_output13-AMOUNT2 IS INITIAL.wa_output13-AMOUNT2 = wa_output13-
AMOUNT4.ENDIF.
IF s_endda-LOW IS NOT INITIAL.
lv_edate = s_endda-LOW.
ELSE.
lv_edate = '20220101'.
ENDIF.
IF s_endda-HIGH IS NOT INITIAL.
validityend = s_endda-HIGH.
ELSE.
validityend = '99991231'.
ENDIF.
CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
EXPORTING
number = wa_output1-pernr.
lv_record-pernr = wa_output1-pernr.
* lv_record-lgart = 9001.
* lv_record-waers = 'INR'.
lv_record-BASM = wa_output1-AMOUNT1. condense lv_record-BASM . " MON
THLY BASIC
lv_record-BAsy = wa_output1-AMOUNT2. condense lv_record-BASy . " AN
NUAL BASIC
lv_record-HRAM = wa_output2-AMOUNT1. condense lv_record-HRAM .
lv_record-HRAY = wa_output2-AMOUNT2. condense lv_record-HRAY .
lv_record-SAM = wa_output3-AMOUNT1. condense lv_record-SAM .
lv_record-SAY = wa_output3-AMOUNT2. condense lv_record-SAY .
lv_record-MFGSA = wa_output4-AMOUNT1. condense lv_record-MFGSA .
lv_record-MFGSB = wa_output4-AMOUNT2. condense lv_record-MFGSB .
lv_record-ERPFM = wa_output5-AMOUNT1. condense lv_record-ERPFM .
lv_record-ERPFY = wa_output5-AMOUNT2. condense lv_record-ERPFY .
lv_record-ERESIM = wa_output6-AMOUNT1. condense lv_record-ERESIM .
lv_record-ERESIY = wa_output6-AMOUNT2. condense lv_record-ERESIY .
lv_record-RERCM = wa_output7-AMOUNT1. condense lv_record-RERCM .
lv_record-RERCY = wa_output7-AMOUNT2. condense lv_record-RERCY .
lv_record-ACTCM = wa_output8-AMOUNT1. condense lv_record-ACTCM .
lv_record-ACTCY = wa_output8-AMOUNT2. condense lv_record-ACTCY .
lv_record-EEPFM = wa_output9-AMOUNT1. condense lv_record-EEPFM .
* lv_record-BAsy = wa_output1-AMOUNT2. condense lv_record-
BASy .
lv_record-EEESIM = wa_output10-AMOUNT1. condense lv_record-EEESIM .
* lv_record-BAsy = wa_output1-AMOUNT2. condense lv_record-
BASy .
lv_record-EEPTAXM = wa_output11-AMOUNT1. condense lv_record-EEPTAXM .
lv_record-BAsy = wa_output1-AMOUNT2. condense lv_record-BASy .
lv_record-DEECM = wa_output12-AMOUNT1. condense lv_record-DEECM .
* lv_record-BAsy = wa_output1-AMOUNT2. condense lv_record-
BASy .
lv_record-NETSALM = wa_output13-AMOUNT1. condense lv_record-NETSALM .
* lv_record-BAsy = wa_output1-AMOUNT2. condense lv_record-
BASy .
lv_record-begda = lv_edate.
**-> This FM is used to update the values in Pa30
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '9001'
number = wa_output1-pernr
subtype = '9001'
validityend = validityend
validitybegin = lv_edate
recordnumber = '000'
record = lv_record
operation = 'INS'
tclas = 'A'
dialog_mode = '1'
IMPORTING
return = l_bapireturn
key = bapipakey_tab.
IF sy-subrc = 0.
COMMIT WORK.
* message 'Record Sucessfully Update' type 'I'.
ELSE.
ENDIF.
**->"This code is requred and unlocks the record
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
EXPORTING
number = wa_output1-pernr
IMPORTING
return = l_bapireturn.
** endloop.
CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
EXPORTING
number = wa_output1-pernr.
lv_record1-pernr = wa_output1-pernr.
* lv_record1-lgart = 1001.
* lv_record1-waers = 'INR'.
lv_record1-LGA01 = '1001'.
lv_record1-BET01 = wa_output1-AMOUNT1.
lv_record1-LGA02 = '1002'.
lv_record1-BET02 = wa_output2-AMOUNT1.
lv_record1-LGA03 = '1003'.
lv_record1-BET03 = wa_output3-AMOUNT1.
lv_record1-bEGDA = lv_edate.
lv_record1-TRFGR = 'STAFF'.
* lv_record1-TRFAR = '01'.
* lv_record1-TRFGB = '10'.
* lv_record1-TRFST = ''.
lv_record1-BSGRD = '94.12'.
lv_record1-DIVGV = '192'.
**-> This FM is used to update the values in Pa30
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty = '0008'
number = wa_output1-pernr
subtype = '0008'
validityend = validityend
validitybegin = lv_edate
recordnumber = '000'
record = lv_record1
operation = 'INS'
tclas = 'A'
dialog_mode = '1'
IMPORTING
return = l_bapireturn
key = bapipakey_tab.
IF sy-subrc = 0.
COMMIT WORK.
message 'Record Sucessfully Update' type 'I'.
ELSE.
ENDIF.
**->"This code is requred and unlocks the record
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
EXPORTING
number = wa_output1-pernr
IMPORTING
return = l_bapireturn.
* IF p_det = abap_true.
* SORT lt_output STABLE BY pernr ASCENDING.
* DELETE ADJACENT DUPLICATES FROM lt_output COMPARING pernr.
* DATA(lt_update_data) = it_final_M.
* DATA(lt_pernr_buffer) = it_final_M.
* SORT lt_pernr_buffer BY pernr ." detcategory.
* DELETE ADJACENT DUPLICATES FROM lt_pernr_buffer COMPARING pernr.
* REFRESH lt_update_data.
* LOOP AT lt_output ASSIGNING FIELD-SYMBOL(<lfs_output>).
* READ TABLE lt_pernr_buffer ASSIGNING FIELD-SYMBOL(<lfs_buffer>)
* WITH KEY pernr = <lfs_output>-pernr BINARY SEARCH.
* IF sy-subrc IS INITIAL.
* APPEND <lfs_buffer> TO lt_update_data.
* ENDIF.
* ENDLOOP.
** ENDIF.
*
*
* DATA(lt_otentries) = lt_output.
* DELETE lt_otentries WHERE finalot = '00:00'.
*
* IF gt_info_update IS INITIAL AND lt_otentries IS INITIAL.
* MESSAGE 'No records found for update!' TYPE 'S'.
* EXIT.
* ENDIF.
* IF lt_update_data IS NOT INITIAL.
* PERFORM update_infotypes USING lt_update_data.
* SORT lt_update_data BY pernr.
* LOOP AT it_final_M ASSIGNING <lfs_output> WHERE sel = abap_true
.
* READ TABLE lt_update_data WITH KEY pernr = <lfs_output>-pernr
* INTO DATA(ls_output) BINARY SEARCH.
* IF sy-subrc IS INITIAL AND ls_output-success IS NOT INITIAL.
* <lfs_output>-remarks = ls_output-remarks.
* <lfs_output>-linecolor = ls_output-linecolor.
* ENDIF.
* ENDLOOP.
* MESSAGE 'Process Complete! Check Remarks Column!' TYPE 'S'.
* ENDIF.
* PERFORM update_personal_data.
ENDCASE.
rs_selfield-refresh = abap_true.
ENDFORM. " USER_COMMAND
INCLUDE PROGRAM
*&---------------------------------------------------------------------*
*& Include ZHR_MASTER_TOP1
*&---------------------------------------------------------------------*
TYPE-POOLS : slis.
TABLES: pa0001,pa0000,adrc,lfb1,lfbk,knvv,knbk,knb1,pa0007,PC207.
TYPES: BEGIN OF ty_pa0000,
pernr TYPE pa0000-pernr,
subty TYPE pa0000-subty,
begda TYPE pa0000-begda,
endda TYPE pa0000-endda,
stat2 TYPE pa0000-stat2,
END OF ty_pa0000.
TYPES: BEGIN OF ty_pa0001,
pernr TYPE pa0001-pernr,
subty TYPE pa0001-subty,
bukrs TYPE pa0001-bukrs,
werks TYPE pa0001-werks,
persg TYPE pa0001-persg,
persk TYPE pa0001-persk,
vdsk1 TYPE pa0001-vdsk1,
gsber TYPE pa0001-gsber,
btrtl TYPE pa0001-btrtl,
juper TYPE pa0001-juper,
abkrs TYPE pa0001-abkrs,
ansvh TYPE pa0001-ansvh,
kostl TYPE pa0001-kostl,
orgeh TYPE pa0001-orgeh,
plans TYPE pa0001-plans,
stell TYPE pa0001-stell,
mstbr TYPE pa0001-mstbr,
sname TYPE pa0001-sname,
ename TYPE pa0001-ename,
otype TYPE pa0001-otype,
END OF ty_pa0001.
TYPES: BEGIN OF ty_pa0002,
pernr TYPE pa0002-pernr,
subty TYPE pa0002-subty,
gesch TYPE pa0002-gesch,
gbdat TYPE pa0002-gbdat,
gblnd TYPE pa0002-gblnd,
gbdep TYPE pa0002-gbdep,
gbort TYPE pa0002-gbort,
natio TYPE pa0002-natio,
konfe TYPE pa0002-konfe,
famst TYPE pa0002-famst,
END OF ty_pa0002.
TYPES: BEGIN OF ty_t550a,
motpr TYPE t550a-motpr,
tprog TYPE t550a-tprog,
regel TYPE t550a-regel,
tpkla TYPE t550a-tpkla,
sollz TYPE t550a-sollz,
sobeg TYPE t550a-sobeg,
soend TYPE t550a-soend,
pamod TYPE t550a-pamod,
END OF ty_t550a.
TYPES: BEGIN OF ty_t508a,
zeity TYPE t508a-zeity,
mofid TYPE t508a-mofid,
mosid TYPE t508a-mosid,
schkz TYPE t508a-schkz,
END OF ty_t508a.
TYPES: BEGIN OF ty_pa0007,
pernr TYPE p0007-pernr,
schkz TYPE t508a-schkz,
END OF ty_pa0007.
TYPES: BEGIN OF ty_t508s,
schkz TYPE t508s-schkz,
rtext TYPE t508s-rtext,
END OF ty_t508s.
*TYPES: BEGIN OF ty_t508s,
* rtext TYPE t508s-rtext,
* END OF ty_t508s.
TYPES: BEGIN OF ty_pa0008,
pernr TYPE pa0008-pernr,
subty TYPE pa0008-subty,
lga01 TYPE pa0008-lga01,
bet01 TYPE pa0008-bet01,
lga02 TYPE pa0008-lga02,
bet02 TYPE pa0008-bet02,
lga03 TYPE pa0008-lga03,
bet03 TYPE pa0008-bet03,
lga04 TYPE pa0008-lga04,
bet04 TYPE pa0008-bet04,
lga05 TYPE pa0008-lga05,
bet05 TYPE pa0008-bet05,
lga06 TYPE pa0008-lga06,
bet06 TYPE pa0008-bet06,
END OF ty_pa0008.
TYPES: BEGIN OF ty_pa0587,
pernr TYPE pa0587-pernr,
subty TYPE pa0587-subty,
eepfn TYPE pa0587-eepfn,
eepnn TYPE pa0587-eepnn,
END OF ty_pa0587.
TYPES: BEGIN OF ty_pa0588,
pernr TYPE pa0588-pernr,
subty TYPE pa0588-subty,
esino TYPE pa0588-esino,
ticno TYPE pa0588-ticno,
END OF ty_pa0588.
TYPES: BEGIN OF ty_pa0185,
pernr TYPE pa0185-pernr,
subty TYPE pa0185-subty,
ictyp TYPE pa0185-ictyp,
icnum TYPE pa0185-icnum,
END OF ty_pa0185.
TYPES: BEGIN OF ty_pa0105,
pernr TYPE pa0105-pernr,
subty TYPE pa0105-subty,
usrid TYPE pa0105-usrid,
END OF ty_pa0105.
TYPES: BEGIN OF ty_PC207,
BETRG TYPE PC207-BETRG,
END OF ty_PC207.
TYPES: BEGIN OF ty_adrc,
addrnumber TYPE adrc-addrnumber,
tel_number TYPE adrc-tel_number,
tel_extens TYPE adrc-tel_extens,
name1 TYPE adrc-name1,
name2 TYPE adrc-name2,
name3 TYPE adrc-name3,
name4 TYPE adrc-name4,
city1 TYPE adrc-city1,
city2 TYPE adrc-city2,
post_code1 TYPE adrc-post_code1,
street TYPE adrc-street,
house_num1 TYPE adrc-house_num1,
str_suppl1 TYPE adrc-str_suppl1,
str_suppl2 TYPE adrc-str_suppl2,
str_suppl3 TYPE adrc-str_suppl3,
location TYPE adrc-location,
country TYPE adrc-country,
region TYPE adrc-region,
sort1 TYPE adrc-sort1,
END OF ty_adrc.
TYPES: BEGIN OF ty_adr6,
addrnumber TYPE adr6-addrnumber,
smtp_addr TYPE adr6-smtp_addr,
END OF ty_adr6.
TYPES: BEGIN OF ty_final_m,
pernr type pa0000-pernr,
Endda TYPE pa0000-endda,
ename TYPE pa0001-ename,
color(3) TYPE c,
sel TYPE c,
sno TYPE int4,
txt(100) TYPE c,
amount1(10) TYPE i,
amount2(10) TYPE i,
amount3(10) TYPE i,
amount4(10) TYPE i,
amount5(10) TYPE i,
amount6(10) TYPE i,
line_color(4) TYPE c,
* COLO TYPE SLIS_T_SPECIALCOL_ALV,
END OF ty_final_m.
TYPES: BEGIN OF ty_final,
sel TYPE c,
sno TYPE int4,
s_amt(10) TYPE c,
m_tot(10) TYPE c,
m_tot1(10) TYPE c,
m_tot2(10) TYPE c,
m_tot3(10) TYPE c,
m_tot4(10) TYPE c,
m_tot5(10) TYPE c,
m_tot6(10) TYPE c,
m_tot7(10) TYPE c,
m_tot8(10) TYPE c,
m_tot9(10) TYPE c,
m_tot10(10) TYPE c,
m_tot11(10) TYPE c,
m_tot12(10) TYPE c,
m_tot13(10) TYPE c,
m_tot14(10) TYPE C,
m_tot15(10) TYPE c,
m_tot16(10) TYPE C,
m_tot17(10) TYPE C,
m_tot18(10) TYPE C,
m_tot19(10) TYPE C,
m_tot20(10) TYPE C,
m_tot21(10) TYPE C,
m_tot22(10) TYPE C,
m_tot23(10) TYPE C,
m_tot24(10) TYPE C,
m_tot25(10) TYPE C,
m_tot26(10) TYPE C,
m_tot27(10) TYPE C,
m_tot28(10) TYPE C,
m_tot29(10) TYPE c ,
m_tot30(10) TYPE C,
m_tot31(10) TYPE c,
m_tot32(10) TYPE C,
m_tot33(10) TYPE C,
m_tot34(10) TYPE C,
m_tot35(10) TYPE C,
m_tot36(10) TYPE C,
m_tot37(10) TYPE C,
m_tot38(10) TYPE C,
m_tot39(10) TYPE C,
m_tot40(10) TYPE C,
m_tot41(10) TYPE C,
m_tot42(10) TYPE C,
m_tot43(10) TYPE C,
m_base1(10) TYPE c,
m_base2(10) TYPE c,
m_base3(10) TYPE c,
m_pf1 TYPE pa0008-bet06,
txt1(100) TYPE C,
txt2(100) TYPE c,
txt3(100) TYPE c,
txt4(100) TYPE c,
txt5(100) TYPE c,
amount1(10) TYPE c,
amount2(10) TYPE c,
amount3(10) TYPE c,
amount4(10) TYPE c,
amount5(10) TYPE c,
amount6(10) TYPE c,
* emphasize TYPE c,
field1(10) TYPE c,
field2(10) TYPE c,
round(10) TYPE c,
pernr TYPE pa0000-pernr,
subty TYPE pa0000-subty,
begda TYPE pa0000-begda,
endda TYPE pa0000-endda,
stat2 TYPE pa0000-stat2,
status(30) TYPE c,
bukrs TYPE pa0001-bukrs,
werks TYPE pa0001-werks,
werks_text(30) TYPE c,
persg TYPE pa0001-persg,
persk TYPE pa0001-persk,
persk_text(20) TYPE c,
persg_text(20) TYPE c,
vdsk1 TYPE pa0001-vdsk1,
gsber TYPE pa0001-gsber,
btrtl TYPE pa0001-btrtl,
juper TYPE pa0001-juper,
abkrs TYPE pa0001-abkrs,
ansvh TYPE pa0001-ansvh,
kostl TYPE pa0001-kostl,
orgeh TYPE pa0001-orgeh,
plans TYPE pa0001-plans,
stell TYPE pa0001-stell,
rtext TYPE t508s-rtext,
mstbr TYPE pa0001-mstbr,
sname TYPE pa0001-sname,
ename TYPE pa0001-ename,
gesch TYPE pa0002-gesch,
gbdat TYPE pa0002-gbdat,
gblnd TYPE pa0002-gblnd,
gbdep TYPE pa0002-gbdep,
gbort TYPE pa0002-gbort,
natio TYPE pa0002-natio,
address(132) TYPE c,
motpr TYPE t550a-motpr,
tprog TYPE t550a-tprog,
regel TYPE t550a-regel,
tpkla TYPE t550a-tpkla,
sollz TYPE t550a-sollz,
sobeg TYPE t550a-sobeg,
soend TYPE t550a-soend,
pamod TYPE t550a-pamod,
zeity TYPE t508a-zeity,
mofid TYPE t508a-mofid,
mosid TYPE t508a-mosid,
* schkz TYPE t508a-schkz,
schkz TYPE t508s-schkz,
lga01 TYPE pa0008-lga01,
bet01 TYPE pa0008-bet01,
lga02 TYPE pa0008-lga02,
bet02 TYPE pa0008-bet02,
lga03 TYPE pa0008-lga03,
bet03 TYPE pa0008-bet03,
lga04 TYPE pa0008-lga04,
bet04 TYPE pa0008-bet04,
lga05 TYPE pa0008-lga05,
bet05 TYPE pa0008-bet05,
lga06 TYPE pa0008-lga06,
bet06 TYPE pa0008-bet06,
ctc TYPE pa0008-bet06,
wage TYPE pa0008-bet06,
notice TYPE pa0008-bet06,
eepfn TYPE pa0587-eepfn,
eepnn TYPE pa0587-eepnn,
esino TYPE pa0588-esino,
ticno TYPE pa0588-ticno,
ictyp TYPE pa0185-ictyp,
icnum TYPE pa0185-icnum,
pan TYPE pa0587-eepfn,
aadhar TYPE pa0587-eepfn,
tel_number TYPE adrc-tel_number,
tel_extens TYPE adrc-tel_extens,
name1 TYPE adrc-name1,
name2 TYPE adrc-name2,
name3 TYPE adrc-name3,
name4 TYPE adrc-name4,
city1 TYPE adrc-city1,
city2 TYPE adrc-city2,
post_code1 TYPE adrc-post_code1,
street TYPE adrc-street,
house_num1 TYPE adrc-house_num1,
str_suppl1 TYPE adrc-str_suppl1,
str_suppl2 TYPE adrc-str_suppl2,
str_suppl3 TYPE adrc-str_suppl3,
location TYPE adrc-location,
country TYPE adrc-country,
mobile_no(20) TYPE c,
amobile_no(20) TYPE c,
subtotals(10) TYPE c,
region TYPE adrc-region,
sort1 TYPE adrc-sort1,
* bank TYPE zhr_bank-bank,
* acno TYPE zhr_bank-acno,
* ifcod TYPE zhr_bank-ifcod,
fam_mem(30) TYPE c,
fam_name(30) TYPE c,
heght TYPE pa0804-heght,
hunit TYPE pa0804-hunit,
weght TYPE pa0804-weght,
wunit TYPE pa0804-wunit,
ecolr TYPE pa0804-ecolr,
hcolr TYPE pa0804-hcolr,
bgrup TYPE pa0804-bgrup,
schkz_text(40) TYPE c,
rtext_text(40) TYPE c,
smark TYPE pa0804-smark,
btrtl_text(40) TYPE c,
vdsk1_text(40) TYPE c,
orgeh_text(40) TYPE c,
plans_text(40) TYPE c,
ansvh_text(40) TYPE c,
gender_text(10) TYPE c,
group(10) TYPE c,
weightage(10) TYPE c,
grade(2) TYPE c,
pf(1) TYPE c,
esi(1) TYPE c,
nation(10) TYPE c,
religion(25) TYPE c,
martial(10) TYPE c,
usrid(20) TYPE c,
payment(10) TYPE c,
exp(20) TYPE c,
education(20) TYPE c,
qualification TYPE c,
nominee(40) TYPE c,
dom TYPE pa0000-begda,
* line_color(4) TYPE c,
* COLO TYPE SLIS_T_SPECIALCOL_ALV,
END OF ty_final.
DATA: it_pa0000 TYPE STANDARD TABLE OF ty_pa0000,
wa_pa0000 TYPE ty_pa0000,
it_pa0001 TYPE STANDARD TABLE OF ty_pa0001,
wa_pa0001 TYPE ty_pa0001,
it_t508s TYPE STANDARD TABLE OF ty_t508s,
wa_t508s TYPE ty_t508s,
it_pa0002 TYPE STANDARD TABLE OF ty_pa0002,
wa_pa0002 TYPE ty_pa0002,
it_pa0008 TYPE STANDARD TABLE OF ty_pa0008,
wa_pa0008 TYPE ty_pa0008,
it_pa0587 TYPE STANDARD TABLE OF ty_pa0587,
wa_pa0587 TYPE ty_pa0587,
it_pa0588 TYPE STANDARD TABLE OF ty_pa0588,
wa_pa0588 TYPE ty_pa0588,
it_pa0185 TYPE STANDARD TABLE OF ty_pa0185,
wa_pa0185 TYPE ty_pa0185,
it_pa0105 TYPE STANDARD TABLE OF ty_pa0105,
wa_pa0105 TYPE ty_pa0105,
it_t550a TYPE STANDARD TABLE OF ty_t550a,
wa_t550a TYPE ty_t550a,
gt_pa0007 TYPE SORTED TABLE OF ty_pa0007 WITH NON-UNIQUE KEY pernr,
* gt_pa0105 TYPE SORTED TABLE OF ty_pa0105 WITH NON-UNIQUE KEY pern
r,
* gt_v_tfo8a TYPE SORTED TABLE OF ty_v_tfo8a WITH NON-UNIQUE KEY pe
rnr,
it_t508a TYPE STANDARD TABLE OF ty_t508a,
wa_t508a TYPE ty_t508a,
it_adrc TYPE STANDARD TABLE OF ty_adrc,
wa_adrc TYPE ty_adrc,
it_adr6 TYPE STANDARD TABLE OF ty_adr6,
wa_adr6 TYPE ty_adr6,
it_final TYPE STANDARD TABLE OF ty_final,
it_final1 TYPE STANDARD TABLE OF ty_final,
wa_final TYPE ty_final,
wa_final1 TYPE ty_final,
wa_final_m TYPE ty_final_m,
it_final_m TYPE STANDARD TABLE OF ty_final_m,
lt_output TYPE STANDARD TABLE OF ty_final_m,
wa_output1 type ty_final_m,
wa_output2 type ty_final_m,
wa_output3 type ty_final_m,
wa_output4 type ty_final_m,
wa_output5 type ty_final_m,
wa_output6 type ty_final_m,
wa_output7 type ty_final_m,
wa_output8 type ty_final_m,
wa_output9 type ty_final_m,
wa_output10 type ty_final_m,
wa_output11 type ty_final_m,
wa_output12 type ty_final_m,
wa_output13 type ty_final_m,
amount(13) type c,
afield TYPE slis_fieldcat_alv,
fieldcat TYPE slis_t_fieldcat_alv,
layout_in TYPE slis_layout_alv.
*DATA:
* it_fieldcat TYPE slis_t_fieldcat_alv,
* it_fieldcat1 TYPE slis_t_fieldcat_alv,
* wa_fieldcat TYPE slis_fieldcat_alv,
* wa_fieldcat1 TYPE slis_fieldcat_alv,
* lv TYPE disvariant,
* wa_layout1 TYPE slis_layout_alv.
DATA : i_sort TYPE slis_t_sortinfo_alv .
DATA : wa_sort LIKE LINE OF i_sort .
DATA : heading(100) TYPE c.
*
*data:
* gs_layout type lvc_s_layo,
* GS_VARIANT TYPE DISVARIANT.
*DATA: color TYPE slis_t_specialcol_alv WITH HEADER LINE .
DATA: wa_fcat TYPE lvc_s_fcat,
it_fcat TYPE lvc_t_fcat,
wa_layout TYPE lvc_s_layo,
wa_top TYPE slis_listheader,
it_top TYPE slis_t_listheader.
DATA : sno TYPE int4 .
DATA : MTotal TYPE PAD_AMT7S.
Data:lv_edate type pa2001-begda.
DATA: l_bapireturn LIKE bapireturn1,
bapipakey_tab LIKE bapipakey OCCURS 0 WITH HEADER LINE.
DATA: validitybegin TYPE p0001-begda,
validityend TYPE p0001-endda,
lv_record TYPE p0015,
lv_tabix TYPE sy-tabix.