Zfak HR Income Tax Calc
Zfak HR Income Tax Calc
Zfak HR Income Tax Calc
FORM FUZITAX.
TABLES: PA0002,
PA0014,
PA0015,
PA0267,
PA9325,
PA9315,
PA0045,
PA0078.
TAX_OVERRIDE_CHECK(1),
TAX_OVERRIDE_AMOUNT TYPE ZBETRG,
NEGATIVE_SALARY_CHECK(1),
NEGATIVE_SALARY_AMOUNT TYPE ZBETRG,
************************************************************************
************************************************************************
ITAB = APER.
IF ITAB-PAYTY = SPACE.
OLD_END_DATE = ITAB-ENDDA - 1.
PAY_PERIOD = ITAB-PAPER-PABRP.
ELSE.
OLD_END_DATE = ITAB-BONDT - 1.
ELSE.
OLD_END_DATE = ITAB-ENDDA - 1.
ENDIF.
ENDIF.
IF SY-SUBRC = 0 AND
TAX_PERIODS-TAX_IND = 'X'.
TAX_PERIOD = TAX_PERIODS-TAX_PERIOD.
FINAL_PA9325-P_TAX_YTD = PA9325-TAX_YTD.
FINAL_PA9325-P_SALARY_YTD = PA9325-SALARY_YTD.
FINAL_PA9325-P_BONUS_YTD = PA9325-BONUS_YTD.
FINAL_PA9325-P_PFUND_YTD = PA9325-PFUND_YTD.
FINAL_PA9325-P_EXEMPTED_YTD = PA9325-EXEMPTED_YTD.
IF ITAB-CALCD NE SPACE.
IF ITAB-PAYTY = SPACE.
IF SY-SUBRC NE 0.
IF SY-SUBRC NE 0.
IF TAX_RETRO NE 0.
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF SY-SUBRC NE 0.
IF TAX_RETRO NE 0.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF ITAB-CALCD NE SPACE.
ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDLOOP.
LOOP AT ITAB_WAGES WHERE TEVAL = '4'.
ENDLOOP.
ENDIF.
IF ITAB-CALCD = SPACE.
LOOP AT ITAB_PA0008.
MOVE-CORRESPONDING ITAB_PA0008 TO GROSS_SALARY.
APPEND GROSS_SALARY.
ENDLOOP.
LOOP AT ITAB_PA0014.
MOVE-CORRESPONDING ITAB_PA0014 TO GROSS_SALARY.
APPEND GROSS_SALARY.
ENDLOOP.
ENDLOOP.
ENDLOOP.
LOOP AT ITAB_WAGES.
IF ITAB_WAGES-TEVAL = SPACE.
ANNUAL_AMNT = ANNUAL_AMNT + ( RT-BETRG * ITAB_WAGES-TAXPR / 100 ).
EXEMPT_PERCENTAGE = ( 100 - ITAB_WAGES-TAXPR ).
IF EXEMPT_PERCENTAGE LT 0.
EXEMPT_PERCENTAGE = 0.
ENDIF.
EXEMPTED_AMNT = EXEMPTED_AMNT + ( RT-BETRG * EXEMPT_PERCENTAGE / 100 ).
ELSEIF ITAB_WAGES-TEVAL = '1'.
MONTHLY_AMNT = MONTHLY_AMNT + ( RT-BETRG * ITAB_WAGES-TAXPR / 100 ).
EXEMPT_PERCENTAGE = ( 100 - ITAB_WAGES-TAXPR ).
IF EXEMPT_PERCENTAGE LT 0.
EXEMPT_PERCENTAGE = 0.
ENDIF.
EXEMPTED_AMNT = EXEMPTED_AMNT + ( RT-BETRG * EXEMPT_PERCENTAGE / 100 ).
ELSEIF ITAB_WAGES-TEVAL = '2'.
MONTHLY_AVG_AMNT = MONTHLY_AVG_AMNT + ( RT-BETRG * ITAB_WAGES-TAXPR /
100 ).
EXEMPT_PERCENTAGE = ( 100 - ITAB_WAGES-TAXPR ).
IF EXEMPT_PERCENTAGE LT 0.
EXEMPT_PERCENTAGE = 0.
ENDIF.
EXEMPTED_AMNT = EXEMPTED_AMNT + ( RT-BETRG * EXEMPT_PERCENTAGE / 100 ).
ELSEIF ITAB_WAGES-TEVAL = '3'.
BONUS_AMNT = BONUS_AMNT + ( RT-BETRG * ITAB_WAGES-TAXPR / 100 ).
EXEMPT_PERCENTAGE = ( 100 - ITAB_WAGES-TAXPR ).
IF EXEMPT_PERCENTAGE LT 0.
EXEMPT_PERCENTAGE = 0.
ENDIF.
EXEMPTED_AMNT = EXEMPTED_AMNT + ( RT-BETRG * EXEMPT_PERCENTAGE / 100 ).
ELSEIF ITAB_WAGES-TEVAL = '4'.
BONUS_AVG_AMNT = BONUS_AVG_AMNT + ( RT-BETRG * ITAB_WAGES-TAXPR /
100 ).
EXEMPT_PERCENTAGE = ( 100 - ITAB_WAGES-TAXPR ).
IF EXEMPT_PERCENTAGE LT 0.
EXEMPT_PERCENTAGE = 0.
ENDIF.
EXEMPTED_AMNT = EXEMPTED_AMNT + ( RT-BETRG * EXEMPT_PERCENTAGE / 100 ).
ENDIF.
ENDLOOP.
ENDLOOP.
FINAL_PA9325-SALARY = ANNUAL_AMNT.
FINAL_PA9325-MONPAY = MONTHLY_AMNT.
FINAL_PA9325-MONPAY_AVG = MONTHLY_AVG_AMNT.
FINAL_PA9325-BONUS = BONUS_AMNT.
FINAL_PA9325-BONUS_AVG = BONUS_AVG_AMNT.
FINAL_PA9325-EXEMPTED = EXEMPTED_AMNT.
FINAL_PA9325-PFUND = PFUND_AMNT.
FINAL_PA9325-SALARY_RETRO = SALARY_RETRO.
FINAL_PA9325-MONTHLY_RETRO = MONTHLY_RETRO.
FINAL_PA9325-MON_AVG_RETRO = MONTHLY_AVG_RETRO.
FINAL_PA9325-BONUS_RETRO = BONUS_RETRO.
FINAL_PA9325-BONUS_AVG_RETRO = BONUS_AVG_RETRO.
FINAL_PA9325-PFUND_RETRO = PFUND_RETRO.
FINAL_PA9325-EXEMPTED_RETRO = EXEMPT_RETRO.
IF SY-SUBRC = 0 AND
LEAVING_DATE GE FIRST_YEAR_DATE AND
LEAVING_DATE LE LAST_YEAR_DATE.
TAX_YEAR = LEAVING_DATE+0(4).
TAX_MONTH = LEAVING_DATE+4(2).
CONCATENATE TAX_YEAR TAX_MONTH '01' INTO FIRST_MONTH_DATE.
IF TAX_MONTH LT 12.
TAX_MONTH = TAX_MONTH + 1.
CONCATENATE TAX_YEAR TAX_MONTH '01' INTO LAST_MONTH_DATE.
LAST_MONTH_DATE = LAST_MONTH_DATE - 1.
ELSE.
TAX_MONTH = '01'.
TAX_YEAR = TAX_YEAR + 1.
CONCATENATE TAX_YEAR TAX_MONTH '01' INTO LAST_MONTH_DATE.
LAST_MONTH_DATE = LAST_MONTH_DATE - 1.
ENDIF.
IF LEAVING_DATE+4(2) GE 7.
REM_TAX_PERIODS = LEAVING_DATE+4(2) - TAX_PERIOD - 6.
REM_TAX_PERIODS = REM_TAX_PERIODS - LAST_TAX_PERIOD.
ELSE.
REM_TAX_PERIODS = LEAVING_DATE+4(2) - TAX_PERIOD + 6.
REM_TAX_PERIODS = REM_TAX_PERIODS - LAST_TAX_PERIOD.
ENDIF.
IF REM_TAX_PERIODS LT 0.
REM_TAX_PERIODS = 0.
ENDIF.
ELSE.
REM_TAX_PERIODS = 12 - TAX_PERIOD.
ENDIF.
ELSE.
REM_TAX_PERIODS = 12 - TAX_PERIOD.
ENDIF.
IF ITAB-PAYTY = SPACE.
IF TAX_DETAILS-PRORT = 'X'.
FINAL_PA9325-SALARY_ASSUMED = ( ANNUAL_AMNT ) * ( REM_TAX_PERIODS ).
FINAL_PA9325-PFUND_ASSUMED = PFUND_AMNT * ( REM_TAX_PERIODS ).
ELSEIF TAX_DETAILS-PROMD = 'X'.
FINAL_PA9325-SALARY_ASSUMED = ( ANNUAL_MD_AMNT ) * ( REM_TAX_PERIODS ).
FINAL_PA9325-PFUND_ASSUMED = PFUND_AMNT * ( REM_TAX_PERIODS ).
ENDIF.
ELSE.
FINAL_PA9325-SALARY_ASSUMED = ( ANNUAL_MD_AMNT ) * ( REM_TAX_PERIODS + 1 ).
FINAL_PA9325-PFUND_ASSUMED = PFUND_AMNT * ( REM_TAX_PERIODS + 1 ).
ENDIF.
IF ITAB-PAYTY = SPACE.
ELSE.
ENDIF.
FINAL_PA9325-TOT_ANNUAL = TAXABLE_AMOUNT +
TAXABLE_BONUS +
EXEMPTED_AMOUNT.
FINAL_PA9325-TOT_TAXABLE = TAXABLE_AMOUNT +
TAXABLE_BONUS.
ENDIF.
ENDLOOP.
IF PA9315-FUR_ACCOM_DATE GT ITAB-ENDDA.
CLEAR PA9315-FUR_ACCOM.
ENDIF.
IF PA9315-CAR_ACQ_DATE GT ITAB-ENDDA.
CLEAR PA9315-CAR_ACQ_COST.
ENDIF.
IF PA9315-CAR_PERKS_DATE GT ITAB-ENDDA.
CLEAR PA9315-CAR_PERKS.
ENDIF.
IF PA9315-MEAL_SUB_DATE GT ITAB-ENDDA.
CLEAR PA9315-MEAL_SUBSIDY.
ENDIF.
IF PA9315-ZAKAT_DATE GT ITAB-ENDDA.
CLEAR PA9315-ZAKAT.
ENDIF.
IF PA9315-DONATIONS_DATE GT ITAB-ENDDA.
CLEAR PA9315-DONATIONS.
ELSE.
PA9315-DONATIONS = TAX_DETAILS-DONFV.
ENDIF.
ENDIF.
IF PA9315-MARK_UP_DATE GT ITAB-ENDDA.
CLEAR PA9315-MARK_UP.
ELSE.
PA9315-MARK_UP = TAX_DETAILS-PODFV.
PA9315-MARK_UP = MARK_UP_AMOUNT.
ENDIF.
ENDIF.
IF PA9315-BONUS GT ITAB-ENDDA.
CLEAR PA9315-BONUS.
ENDIF.
IF PA9315-ADD_GROSS_DATE GT ITAB-ENDDA.
CLEAR PA9315-ADD_GROSS.
ENDIF.
IF PA9315-INC_GROSS_DATE GT ITAB-ENDDA.
CLEAR PA9315-INC_GROSS.
ELSE.
ENDIF.
CLEAR PA9315-DEC_GROSS.
ELSE.
ENDIF.
FINAL_PA9325-NET_TAXABLE = FINAL_PA9325-TOT_TAXABLE +
PA9315-FUR_ACCOM +
PA9315-CAR_ACQ_COST +
PA9315-CAR_PERKS +
PA9315-MEAL_SUBSIDY -
PA9315-ZAKAT -
PA9315-DONATIONS -
PA9315-MARK_UP +
PA9315-BONUS +
PA9315-ADD_GROSS +
LOAN_AMOUNT +
PFUND_AMOUNT +
INC_GROSS_AMOUNT -
DEC_GROSS_AMOUNT.
FINAL_PA9325-FUR_ACCOM_AMNT = PA9315-FUR_ACCOM.
FINAL_PA9325-CAR_ACQ_AMNT = PA9315-CAR_ACQ_COST.
FINAL_PA9325-CAR_PERKS_AMNT = PA9315-CAR_PERKS.
FINAL_PA9325-MEAL_SUB_AMNT = PA9315-MEAL_SUBSIDY.
FINAL_PA9325-ZAKAT_AMNT = PA9315-ZAKAT * -1.
FINAL_PA9325-DONATIONS_AMNT = PA9315-DONATIONS * -1.
FINAL_PA9325-MARK_UP_AMNT = PA9315-MARK_UP * -1.
FINAL_PA9325-BONUS_AMNT = PA9315-BONUS.
FINAL_PA9325-LOAN_AMNT = LOAN_AMOUNT.
FINAL_PA9325-PFUND_AMNT = PFUND_AMOUNT.
FINAL_PA9325-ADD_GROSS_TEXT = PA9315-ADD_GROSS_TEXT.
FINAL_PA9325-ADD_GROSS_AMNT = PA9315-ADD_GROSS.
FINAL_PA9325-INC_GROSS_TEXT = PA9315-INC_GROSS_TEXT.
FINAL_PA9325-INC_GROSS_PCNT = PA9315-INC_GROSS.
FINAL_PA9325-INC_GROSS_AMNT = INC_GROSS_AMOUNT.
FINAL_PA9325-DEC_GROSS_TEXT = PA9315-DEC_GROSS_TEXT.
FINAL_PA9325-DEC_GROSS_PCNT = PA9315-DEC_GROSS.
FINAL_PA9325-DEC_GROSS_AMNT = DEC_GROSS_AMOUNT * -1.
IF FINAL_PA9325-NET_TAXABLE LT 0.
FINAL_PA9325-NET_TAXABLE = 0.
ENDIF.
***********************************************************************************
***
IF TAXABLE_BONUS LT 0.
TAXABLE_BONUS = 0.
ENDIF.
IF THIS_TIME_MONTHLY LT 0.
THIS_TIME_MONTHLY = 0.
ENDIF.
IF THIS_TIME_BONUS LT 0.
THIS_TIME_BONUS = 0.
ENDIF.
ELSE.
FINAL_PA9325-TAX_SLAB = 0.
FINAL_PA9325-TAX_SLAB_RATE = 0.
FINAL_PA9325-TAX_SLAB_MP = 0.
FINAL_PA9325-TAX_SLAB_MP_RATE = 0.
FINAL_PA9325-TAX_MR = 0.
FINAL_PA9325-TAX_MR_RATE = 0.
FINAL_PA9325-TAX_MR_MP = 0.
FINAL_PA9325-TAX_MR_MP_RATE = 0.
FINAL_PA9325-TAX_BONUS = 0.
FINAL_PA9325-TAX_BONUS_RATE = 0.
ENDIF.
IF FINAL_PA9325-TAX_SLAB LT FINAL_PA9325-TAX_MR.
ANNUAL_TAX = FINAL_PA9325-TAX_SLAB.
ELSE.
ANNUAL_TAX = FINAL_PA9325-TAX_MR.
ENDIF.
IF FINAL_PA9325-TAX_SLAB_MP LT FINAL_PA9325-TAX_MR_MP.
MONTHLY_TAX = FINAL_PA9325-TAX_SLAB_MP.
ELSE.
MONTHLY_TAX = FINAL_PA9325-TAX_MR_MP.
ENDIF.
IF TAXABLE_BONUS GT 0.
BONUS_TAX = FINAL_PA9325-TAX_BONUS.
BONUS_TAX_MONTH = THIS_TIME_BONUS / TAXABLE_BONUS * FINAL_PA9325-TAX_BONUS.
ELSE.
BONUS_TAX = 0.
BONUS_TAX_MONTH = 0.
ENDIF.
ELSE.
AGE_RELIEF_AMOUNT = 0.
ENDIF.
ELSE.
AGE_RELIEF_AMOUNT = 0.
ENDIF.
IF PA9315-INV_SHARE_DATE GT ITAB-ENDDA OR
FINAL_PA9325-NET_TAXABLE LE 0.
CLEAR INV_IN_SHARES.
ELSE.
INV_IN_SHARES = TAX_DETAILS-IISFV.
INV_IN_SHARES = INV_SHARES_AMOUNT.
ELSE.
INV_IN_SHARES = PA9315-INV_SHARE.
ENDIF.
ENDIF.
IF PA9315-HIPREMIUM_DATE GT ITAB-ENDDA OR
FINAL_PA9325-NET_TAXABLE LE 0.
CLEAR HEALTH_INS_PREM.
ELSE.
HEALTH_INS_PREM = TAX_DETAILS-HIPFV.
HEALTH_INS_PREM = HIPREMIUMS_AMOUNT.
ELSE.
HEALTH_INS_PREM = PA9315-HIPREMIUM.
ENDIF.
HEALTH_INS_PREM = TAX_LIABILITY / FINAL_PA9325-NET_TAXABLE *
HEALTH_INS_PREM.
ENDIF.
IF PA9315-DON_CHA_DATE GT ITAB-ENDDA OR
FINAL_PA9325-NET_TAXABLE LE 0.
CLEAR DONATION_CHARITY.
ELSE.
DONATION_CHARITY = TAX_DETAILS-DTCFV.
DONATION_CHARITY = DON_CHA_AMOUNT.
ELSE.
DONATION_CHARITY = PA9315-DON_CHA.
ENDIF.
ENDIF.
IF PA9315-PFUND_CTR_DATE GT ITAB-ENDDA OR
FINAL_PA9325-NET_TAXABLE LE 0.
CLEAR PFUND_CONTRIBUTION.
ELSE.
IF AGE_IN_YEARS GT 40.
TAX_DETAILS-PFCPR = ( ( AGE_IN_YEARS - 40 ) * 2 ) + TAX_DETAILS-PFCPR.
ENDIF.
PREV_OLD_END_DATE = FIRST_YEAR_DATE - 1.
IF PREV_PFUND_LIMIT = 0.
PREV_PFUND_LIMIT = TAX_DETAILS-PFCFV.
ENDIF.
IF PENSION_CTR_AMOUNT GT PREV_PFUND_LIMIT.
PENSION_CTR_AMOUNT = PREV_PFUND_LIMIT.
ENDIF.
PFUND_CONTRIBUTION = TAX_DETAILS-PFCFV.
PFUND_CONTRIBUTION = PENSION_CTR_AMOUNT.
ELSE.
PFUND_CONTRIBUTION = PA9315-PFUND_CTR.
ENDIF.
ENDIF.
IF PA9315-ARREARS_DATE GT ITAB-ENDDA.
CLEAR PA9315-ARREARS.
ENDIF.
IF PA9315-ADD_LIAB_DATE GT ITAB-ENDDA.
CLEAR PA9315-ADD_LIAB.
ENDIF.
IF PA9315-INC_LIAB_DATE GT ITAB-ENDDA.
CLEAR INC_LIAB_AMOUNT.
ELSE.
ENDIF.
IF PA9315-DEC_LIAB_DATE GT ITAB-ENDDA.
CLEAR DEC_LIAB_AMOUNT.
ELSE.
ENDIF.
FINAL_PA9325-NET_TAX_ANNUAL = TAX_LIABILITY -
AGE_RELIEF_AMOUNT -
INV_IN_SHARES -
HEALTH_INS_PREM -
DONATION_CHARITY -
PFUND_CONTRIBUTION +
PA9315-ARREARS +
PA9315-ADD_LIAB +
INC_LIAB_AMOUNT -
DEC_LIAB_AMOUNT.
IF FINAL_PA9325-NET_TAX_ANNUAL LT 0.
FINAL_PA9325-NET_TAX_ANNUAL = 0.
ENDIF.
************* Calculating Tax Liability for the Remaining Periods ***************
IF FINAL_PA9325-TAX_LIABILITY LT 0.
FINAL_PA9325-TAX_LIABILITY = 0.
ENDIF.
IF ITAB-PAYTY = SPACE.
IF SY-SUBRC = 0.
TAX_OVERRIDE_CHECK = 'X'.
TAX_OVERRIDE_AMOUNT = PA0014-BETRG.
IF PA0014-OPKEN = SPACE.
TAX_OVERRIDE_AMOUNT = TAX_OVERRIDE_AMOUNT * -1.
ENDIF.
ELSE.
IF SY-SUBRC = 0.
TAX_OVERRIDE_CHECK = 'X'.
TAX_OVERRIDE_AMOUNT = PA0015-BETRG.
IF PA0015-OPKEN = SPACE.
TAX_OVERRIDE_AMOUNT = TAX_OVERRIDE_AMOUNT * -1.
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF SY-SUBRC = 0.
TAX_OVERRIDE_CHECK = 'X'.
TAX_OVERRIDE_AMOUNT = PA0267-BETRG.
IF PA0267-OPKEN = SPACE.
TAX_OVERRIDE_AMOUNT = TAX_OVERRIDE_AMOUNT * -1.
ENDIF.
ENDIF.
ENDIF.
IF TAX_OVERRIDE_CHECK = 'X'.
FINAL_PA9325-TAX_OVERRIDE = 'X'.
FINAL_PA9325-TAX_MONTH = TAX_OVERRIDE_AMOUNT.
ELSE.
CLEAR: FINAL_PA9325-TAX_OVERRIDE.
IF ITAB-PAYTY = SPACE.
ELSE.
ENDIF.
ENDIF.
TAX_ROUNDING = FINAL_PA9325-TAX_MONTH.
FINAL_PA9325-TAX_MONTH = TAX_ROUNDING.
**********************************************************
***************** Updating Tax Infotype ******************
**********************************************************
IF TST_ON NE 'X'.
FINAL_PA9325-MANDT = SY-MANDT.
FINAL_PA9325-UNAME = SY-UNAME.
FINAL_PA9325-AEDTM = SY-DATUM.
ENDIF.
******************************************************
***************** Updating RT Table ******************
******************************************************
IF FINAL_PA9325-TAX_MONTH GT 0 AND
TAX_OVERRIDE_CHECK NE 'X'.
LOOP AT RT.
ENDLOOP.
RT-LGART = TAX_DETAILS-TAXWT.
RT-BETRG = FINAL_PA9325-TAX_MONTH * -1.
CLEAR RT-ANZHL.
APPEND RT.
LOOP AT RT
WHERE LGART = '/557'.
RT-BETRG = RT-BETRG + ( FINAL_PA9325-TAX_MONTH * -1 ).
IF RT-BETRG LT 0.
RT-BETRG = 0.
ENDIF.
MODIFY RT.
ENDLOOP.
LOOP AT RT
WHERE LGART = '/559'.
RT-BETRG = RT-BETRG + ( FINAL_PA9325-TAX_MONTH * -1 ).
IF RT-BETRG LT 0.
RT-BETRG = 0.
ENDIF.
MODIFY RT.
ENDLOOP.
LOOP AT RT
WHERE LGART = '/560'.
RT-BETRG = RT-BETRG + ( FINAL_PA9325-TAX_MONTH * -1 ).
IF RT-BETRG LT 0.
NEGATIVE_SALARY_CHECK = 'X'.
NEGATIVE_SALARY_AMOUNT = RT-BETRG * -1.
RT-BETRG = 0.
ENDIF.
MODIFY RT.
ENDLOOP.
LOOP AT RT
WHERE LGART = '/561'.
RT-BETRG = RT-BETRG + FINAL_PA9325-TAX_MONTH.
MODIFY RT.
ENDLOOP.
LOOP AT RT
WHERE LGART = '/110'.
RT-BETRG = RT-BETRG + ( FINAL_PA9325-TAX_MONTH * -1 ).
MODIFY RT.
ENDLOOP.
IF SY-SUBRC NE 0 AND
FINAL_PA9325-TAX_MONTH NE 0.
RT-LGART = '/110'.
RT-BETRG = FINAL_PA9325-TAX_MONTH * -1.
CLEAR RT-ANZHL.
APPEND RT.
ENDIF.
IF NEGATIVE_SALARY_CHECK = 'X'.
DELETE RT WHERE LGART = '/560'.
DELETE RT WHERE LGART = '/557'.
DELETE RT WHERE LGART = '/559'.
RT-LGART = '/561'.
RT-BETRG = NEGATIVE_SALARY_AMOUNT.
CLEAR RT-ANZHL.
APPEND RT.
ENDIF.
ENDIF.
ENDIF.
ULINE.
WRITE:/(10) PERNR-PERNR,
(40) PERNR-ENAME,
(12) ITAB-BEGDA,
(12) ITAB-ENDDA.
ULINE.
WRITE:/(70) '-'.
WRITE:/(70) 'Previous Salary YTD' LEFT-JUSTIFIED, (21)
FINAL_PA9325-P_SALARY_YTD RIGHT-JUSTIFIED.
WRITE:/(70) 'Previous Bonus YTD' LEFT-JUSTIFIED, (21)
FINAL_PA9325-P_BONUS_YTD RIGHT-JUSTIFIED.
WRITE:/(70) '-'.
WRITE:/(70) '-'.
WRITE:/(70) '-'.
WRITE:/(70) '-'.
WRITE:/(70) '-'.
IF FINAL_PA9325-ADD_GROSS_TEXT IS INITIAL.
WRITE:/(70) 'Add to Gross Amount' LEFT-JUSTIFIED, (21)
FINAL_PA9325-ADD_GROSS_AMNT RIGHT-JUSTIFIED.
ELSE.
WRITE:/(70) FINAL_PA9325-ADD_GROSS_TEXT LEFT-JUSTIFIED, (21)
FINAL_PA9325-ADD_GROSS_AMNT RIGHT-JUSTIFIED.
ENDIF.
IF FINAL_PA9325-INC_GROSS_TEXT IS INITIAL.
WRITE:/(50) 'Increase Gross %' LEFT-JUSTIFIED,
(20) FINAL_PA9325-INC_GROSS_PCNT RIGHT-JUSTIFIED, (20)
FINAL_PA9325-INC_GROSS_AMNT RIGHT-JUSTIFIED.
ELSE.
WRITE:/(50) FINAL_PA9325-INC_GROSS_TEXT LEFT-JUSTIFIED,
(20) FINAL_PA9325-INC_GROSS_PCNT RIGHT-JUSTIFIED, (20)
FINAL_PA9325-INC_GROSS_AMNT RIGHT-JUSTIFIED.
ENDIF.
IF FINAL_PA9325-DEC_GROSS_TEXT IS INITIAL.
WRITE:/(50) 'Decrease Gross %' LEFT-JUSTIFIED,
(20) FINAL_PA9325-DEC_GROSS_PCNT RIGHT-JUSTIFIED, (20)
FINAL_PA9325-DEC_GROSS_AMNT RIGHT-JUSTIFIED.
ELSE.
WRITE:/(50) FINAL_PA9325-DEC_GROSS_TEXT LEFT-JUSTIFIED,
(20) FINAL_PA9325-DEC_GROSS_PCNT RIGHT-JUSTIFIED, (20)
FINAL_PA9325-DEC_GROSS_AMNT RIGHT-JUSTIFIED.
ENDIF.
WRITE:/(70) '-'.
WRITE:/(70) '-'.
WRITE:/(50) 'Annual Tax (Slab Rate)' LEFT-JUSTIFIED,
(20) FINAL_PA9325-TAX_SLAB_RATE RIGHT-JUSTIFIED, (20)
FINAL_PA9325-TAX_SLAB RIGHT-JUSTIFIED.
* WRITE:/(50) 'Annual Tax (Marginal Relief)' LEFT-JUSTIFIED,
* (20) final_pa9325-tax_mr_rate RIGHT-JUSTIFIED,
(20) final_pa9325-tax_mr RIGHT-JUSTIFIED.
WRITE:/(50) 'Tax on Monthly Payments (Slab Rate)' LEFT-JUSTIFIED,
(20) FINAL_PA9325-TAX_SLAB_MP_RATE RIGHT-JUSTIFIED, (20)
FINAL_PA9325-TAX_SLAB_MP RIGHT-JUSTIFIED.
* WRITE:/(50) 'Tax on Monthly Payments (Marginal Relief)' LEFT-JUSTIFIED,
* (20) final_pa9325-tax_mr_mp_rate RIGHT-JUSTIFIED,
(20) final_pa9325-tax_mr_mp RIGHT-JUSTIFIED.
WRITE:/(50) 'Tax On Bonus' LEFT-JUSTIFIED,
(20) FINAL_PA9325-TAX_BONUS_RATE RIGHT-JUSTIFIED, (20)
FINAL_PA9325-TAX_BONUS RIGHT-JUSTIFIED.
WRITE:/(70) '-'.
WRITE:/(70) '-'.
IF FINAL_PA9325-AGE_RELIEF_AMNT GT 0.
WRITE:/(50) 'Age Relief' LEFT-JUSTIFIED,
(20) 'GRANTED' LEFT-JUSTIFIED, (20)
FINAL_PA9325-AGE_RELIEF_AMNT RIGHT-JUSTIFIED.
ELSE.
WRITE:/(50) 'Age Relief' LEFT-JUSTIFIED,
(20) 'NOT GRANTED' LEFT-JUSTIFIED, (20)
FINAL_PA9325-AGE_RELIEF_AMNT RIGHT-JUSTIFIED.
ENDIF.
IF FINAL_PA9325-ADD_LIAB_TEXT IS INITIAL.
WRITE:/(70) 'Add to Liability' LEFT-JUSTIFIED, (21)
FINAL_PA9325-ADD_LIAB_AMNT RIGHT-JUSTIFIED.
ELSE.
WRITE:/(70) FINAL_PA9325-ADD_LIAB_TEXT LEFT-JUSTIFIED, (21)
FINAL_PA9325-ADD_LIAB_AMNT RIGHT-JUSTIFIED.
ENDIF.
IF FINAL_PA9325-INC_LIAB_TEXT IS INITIAL.
WRITE:/(50) 'Increase Liability %' LEFT-JUSTIFIED,
(20) FINAL_PA9325-INC_LIAB_PCNT RIGHT-JUSTIFIED, (20)
FINAL_PA9325-INC_LIAB_AMNT RIGHT-JUSTIFIED.
ELSE.
WRITE:/(50) FINAL_PA9325-INC_LIAB_TEXT LEFT-JUSTIFIED,
(20) FINAL_PA9325-INC_LIAB_PCNT RIGHT-JUSTIFIED, (20)
FINAL_PA9325-INC_LIAB_AMNT RIGHT-JUSTIFIED.
ENDIF.
IF FINAL_PA9325-DEC_LIAB_TEXT IS INITIAL.
WRITE:/(50) 'Decrease Liability %' LEFT-JUSTIFIED,
(20) FINAL_PA9325-DEC_LIAB_PCNT RIGHT-JUSTIFIED, (20)
FINAL_PA9325-DEC_LIAB_AMNT RIGHT-JUSTIFIED.
ELSE.
WRITE:/(50) FINAL_PA9325-DEC_LIAB_TEXT LEFT-JUSTIFIED,
(20) FINAL_PA9325-DEC_LIAB_PCNT RIGHT-JUSTIFIED, (20)
FINAL_PA9325-DEC_LIAB_AMNT RIGHT-JUSTIFIED.
ENDIF.
WRITE:/(70) '-'.
WRITE:/(70) '-'.
WRITE:/(70) '-'.
IF FINAL_PA9325-TAX_OVERRIDE = 'X'.
WRITE:/(70) 'Tax Override' LEFT-JUSTIFIED, (20) 'YES' RIGHT-
JUSTIFIED.
ELSE.
WRITE:/(70) 'Tax Override' LEFT-JUSTIFIED, (20) 'NO' RIGHT-
JUSTIFIED.
ENDIF.
WRITE:/(70) '-'.
WRITE:/(70) '-'.
WRITE:/(70) '-'.
ULINE.
ENDIF.
ENDIF.
IF ITAB-CALCD = SPACE.
FREE MEMORY ID 'SALARY_RETRO'.
FREE MEMORY ID 'MONTHLY_RETRO'.
FREE MEMORY ID 'MONTHLY_AVG_RETRO'.
FREE MEMORY ID 'BONUS_RETRO'.
FREE MEMORY ID 'BONUS_AVG_RETRO'.
FREE MEMORY ID 'PFUND_RETRO'.
FREE MEMORY ID 'EXEMPT_RETRO'.
ENDIF.
CLEAR: PA0002,
PA0014,
PA0015,
PA0267,
PA9325,
PA9315,
PA0045,
PA0078.
CLEAR: ITAB,
TAX_PERIODS,
TAX_DETAILS,
TAX_PERIOD,
PAY_PERIOD,
TAX_YEAR,
TAX_MONTH,
OLD_END_DATE,
FIRST_YEAR_DATE,
LAST_YEAR_DATE,
FIRST_MONTH_DATE,
LAST_MONTH_DATE,
REM_TAX_PERIODS,
LAST_TAX_PERIOD,
LEAVING_DATE,
ANNUAL_AMNT,
ANNUAL_MD_AMNT,
MONTHLY_AMNT,
MONTHLY_AVG_AMNT,
BONUS_AMNT,
BONUS_AVG_AMNT,
EXEMPTED_AMNT,
PFUND_AMNT,
THIS_TIME_MONTHLY,
THIS_TIME_BONUS,
TAX_RETRO,
SALARY_RETRO,
MONTHLY_RETRO,
MONTHLY_AVG_RETRO,
BONUS_RETRO,
BONUS_AVG_RETRO,
PFUND_RETRO,
EXEMPT_RETRO,
PREV_SALARY_AMNT,
CURR_SALARY_AMNT,
PREV_MONTHLY_AMNT,
CURR_MONTHLY_AMNT,
PREV_MONTHLY_AVG_AMNT,
CURR_MONTHLY_AVG_AMNT,
PREV_BONUS_AMNT,
CURR_BONUS_AMNT,
PREV_BONUS_AVG_AMNT,
CURR_BONUS_AVG_AMNT,
PREV_PFUND_AMNT,
CURR_PFUND_AMNT,
PREV_EXEMPT_AMNT,
CURR_EXEMPT_AMNT,
EXEMPT_PERCENTAGE,
TAXABLE_AMOUNT,
TAXABLE_BONUS,
EXEMPTED_AMOUNT,
PFUND_AMOUNT,
DIFF_PERCENT,
LOAN_GRANTED,
LOAN_EXEMPT,
LOAN_BALANCE,
LOAN_DEDUCTION,
LOAN_PAYMENTS,
LOAN_PREV_BALANCE,
LOAN_AMOUNT,
AGE_IN_YEARS,
AGE_IN_DAYS,
AGE_RELIEF_AMOUNT,
ANNUAL_TAX,
MONTHLY_TAX,
BONUS_TAX,
BONUS_TAX_MONTH,
TAX_LIABILITY,
TAX_ROUNDING,
INV_IN_SHARES,
HEALTH_INS_PREM,
DONATION_CHARITY,
PFUND_CONTRIBUTION,
TAX_OVERRIDE_CHECK,
TAX_OVERRIDE_AMOUNT,
NEGATIVE_SALARY_CHECK,
NEGATIVE_SALARY_AMOUNT,
INC_GROSS_AMOUNT,
DEC_GROSS_AMOUNT,
INC_LIAB_AMOUNT,
DEC_LIAB_AMOUNT,
DONATIONS_AMOUNT,
DON_CHA_AMOUNT,
INV_SHARES_AMOUNT,
HIPREMIUMS_AMOUNT,
PENSION_CTR_AMOUNT,
MARK_UP_AMOUNT,
PREV_PFUND_LIMIT,
PREV_OLD_END_DATE.
ENDFORM. "fuzitax