Friday, September 17, 2021

Solution for User Declared Tax Deduction in Oracle HRMS R12.2.8 – India Legislation.

 

In Oracle eBS HRMS Standard India Legislation, the Monthly Income Tax amount will be calculated based on the Projected Annual Gross & Projected Tenure Month Period.

                But in some Organization, Employees are request the Payroll Officer to deduct the Income Tax based on the Employee’s Input for the first some periods and Remaining balance value to be adjusted in the future period and accordingly actual Income tax will be deducted in the Year End.

                In Standard functionality, It is not possible to accommodate in the System. In the below Steps, it is described how to achieve this process flow in Oracle HRMS R12.2.8.

Step 1:   Create Two Elements as mentioned below,

Element Name 1: User Income Tax

Element Name 2: User Declared Income Tax.

Navigation: India HRMS Manager --> Total Compensation --> Basic --> Element Description

Name

 

User Income Tax

User Declared Income Tax

Reporting Name

 

User Income Tax

User Declared Income Tax

Description

 

User Income Tax

User Declared Income Tax

Date From

 

User Defined

User Defined

Date To

 

31-Dec-4712

31-Dec-4712

Primary Classification

 

Information

Voluntary Deductions

Benefit Classification

 

Null

Null

Type: Recurring/ Nonrecurring

 

Non Recurring

Recurring

Termination Rule: Actual Termination/ Final Close

 

Final Close

Final Close

Multiple Entries Allowed

 

Unchecked

Unchecked

Additional Entry Allowed

 

Unchecked

Unchecked

Closed for Entry

 

Unchecked

Unchecked

Process in Run

 

Checked

Checked

Once Each Period

 

Unchecked

Unchecked

Indirect Results

 

Checked

Unchecked

Adjustment Only

 

Unchecked

Unchecked

Third Party Payment

 

Unchecked

Unchecked

Priority

 

36001

36002

Skip Rule

 

 

 

 Input Values for the above defined Elements,

Element Name : User Income Tax

Name

Sequence

Units

Required

User Enterable

Database Item

Balance Tax

1

Money

Unchecked

Checked

Unchecked

Balance Cess

2

Money

Unchecked

Checked

Unchecked

Balance Sec and HE Cess

3

Money

Unchecked

Checked

Unchecked

Balance Surcharge

4

Money

Unchecked

Checked

Unchecked

Element Name : User Declared Income Tax

Name

Sequence

Units

Required

User Enterable

Database Item

Pay Value

1

Money

Unchecked

Checked

Checked

Tax

2

Money

Unchecked

Checked

Unchecked

Cess

3

Money

Unchecked

Checked

Unchecked

Sec and HE Cess

4

Money

Unchecked

Checked

Unchecked

Surcharge

5

Money

Unchecked

Checked

Unchecked

Allow System to Calculate

6

Character

Unchecked

Checked

Unchecked

 

Step 2: Customize the Standard Package :

 Query the Package Name Called : PAY_IN_TAX_UTILS

***Add the Package Spec at the Bottom of the Above mentioned Package:***

function get_tax_skip_check(  p_assignment_id in number

                        ,p_business_group_id in number

                        ,p_date_earned   in date)

                        return varchar2;

***Add the Package Body at the Bottom of the Above mentioned Package:***

function get_tax_skip_check(  p_assignment_id in number

                        ,p_business_group_id in number

                        ,p_date_earned   in date) return varchar2

  is

  cursor sys_recalc_flag is

  select peev.screen_entry_value from

pay_element_entry_values_f peev,

pay_element_entries_f pee,

pay_element_types_f pet,

pay_input_values_f piv

where pet.element_name = 'User Declared Income Tax'

and pet.business_group_id = p_business_group_id

and piv.element_type_id = pet.element_type_id

and pee.element_type_id = pet.element_type_id

and pee.element_entry_id = peev.element_entry_id

and piv.name='Allow System to Calculate'

and pee.assignment_id = p_assignment_id

and peev.input_value_id = piv.input_value_id

and p_date_earned between pet.effective_start_date and pet.effective_end_date

and p_date_earned between piv.effective_start_date and piv.effective_end_date

and p_date_earned between pee.effective_start_date and pee.effective_end_date

and p_date_earned between peev.effective_start_date and peev.effective_end_date;

 

l_flag varchar2(5);

 

  begin

  open sys_recalc_flag;

  fetch sys_recalc_flag into l_flag;

    if sys_recalc_flag%NOTFOUND THEN

      close sys_recalc_flag ;

      RETURN 'Y';

     END IF;

 

  close sys_recalc_flag ;

  return l_flag;

end get_tax_skip_check;

 

Step 3 : Create Formula Function

Navigation: India HRMS Manager --> Other Definition --> Formula Function

Name : INBG_TAX_CALC

Data Type : Text

Class : External Function

Definition : pay_in_tax_utils.get_tax_skip_check

 

Step 4: Create Fast Formula for the New Elements Created :

Navigation : India HRMS Manager --> Total Compensation --> Basic --> Write Formulas.

Name : USER_INCOME_TAX

Type : Oracle Payroll

Description : To be attached to User Income Tax

Formula Code:

DEFAULT FOR Balance_Tax IS 0
DEFAULT FOR Balance_Surcharge IS 0
DEFAULT FOR Balance_Sec_and_HE_Cess IS 0
DEFAULT FOR Balance_Cess IS 0

INPUTS ARE Balance_Tax, Balance_Surcharge, Balance_Sec_and_HE_Cess, Balance_Cess   

/*Allow System to Calculate is ‘No’ then it means user will provide his tax values .
So skip or nullify those already calculated by system*/                                                            
IF INBG_TAX_CALC() ='N' THEN
(x=IN_DEBUG('****************************************','************')
x=IN_DEBUG('Balance_Tax',TO_CHAR(Balance_Tax))                                         x=IN_DEBUG('Balance_Surcharge',TO_CHAR(Balance_Surcharge))                             x=IN_DEBUG('Balance_Sec_and_HE_Cess',TO_CHAR(Balance_Sec_and_HE_Cess))                 
x=IN_DEBUG('Balance_Cess',TO_CHAR(Balance_Cess))                                       x=IN_DEBUG('***********************************','*********')                                                                      
l_income_tax      =  - Balance_Tax                                                  
l_surcharge       =  - Balance_Surcharge                                            
l_education_cess  =  - Balance_Cess                                                 
l_sec_and_he_cess =  - Balance_Sec_and_HE_Cess                                    
l_total_tax       = l_income_tax + l_surcharge + l_education_cess + l_sec_and_he_cess
 
 
l_balance_tax     =  - l_total_tax                                                                                                                                           x=IN_DEBUG('**************************************','**************')
x=IN_DEBUG('l_income_tax',TO_CHAR(l_income_tax))                                       x=IN_DEBUG('l_surcharge',TO_CHAR(l_surcharge))                                         x=IN_DEBUG('l_education_cess',TO_CHAR(l_education_cess))                               x=IN_DEBUG('l_sec_and_he_cess',TO_CHAR(l_sec_and_he_cess))                             x=IN_DEBUG('l_total_tax',TO_CHAR(l_total_tax))                                         x=IN_DEBUG('l_balance_tax',TO_CHAR(l_balance_tax))                                     
x=IN_DEBUG('*************************************','*************')  
                                                                                                                                                                  RETURN l_income_tax,                                                                          l_surcharge,                                                                           l_education_cess,                                                                      l_sec_and_he_cess,                                                                     l_total_tax,                                                                            
l_balance_tax
)
ELSE
RETURN                                                             
-----------------------------------------------------------------

Name : USER_USER_DEFINED_IT

Type : Oracle Payroll

Description : To be attached to User Declared Income Tax

Formula Code:

DEFAULT FOR Tax IS 0   
DEFAULT FOR Cess IS 0   
DEFAULT FOR Surcharge IS 0
DEFAULT FOR Sec_and_HE_Cess IS 0

INPUTS ARE Tax, Cess, Surcharge, Sec_and_HE_Cess
IF INBG_TAX_CALC()='N' THEN
(
x=IN_DEBUG('********************************','***************')
x=IN_DEBUG('Tax',TO_CHAR(Tax))
x=IN_DEBUG('Cess',TO_CHAR(Cess))
x=IN_DEBUG('Surcharge',TO_CHAR(Surcharge))
x=IN_DEBUG('Sec_and_HE_Cess',TO_CHAR(Sec_and_HE_Cess))
x=IN_DEBUG('***************************','********************')
l_tax             = tax
l_cess            = Cess
l_surcharge       = Surcharge
l_sec_and_he_cess = Sec_and_HE_Cess
l_pay_value       = l_tax + l_cess + l_surcharge + l_sec_and_he_cess
l_balance_tax     =  - l_pay_value
RETURN l_tax,       
l_cess,       
l_surcharge,       
l_sec_and_he_cess,       
l_pay_value,    
l_balance_tax
)
ELSE
RETURN

Step 4 : Create Eligibility Link for User Declared Income Tax Element.

Navigation : India HRMS Manager --> Total Compensation --> Basic --> Link

Step 5 : Create Formula Results Rules.

Navigation : India HRMS Manager --> Total Compensation --> Basic -->  

Formula Results

 Element Name : Income Tax Information

Processing Rules:

Name : Standard

Formula : IN_INCOME_TAX

Add the below mentioned formula results in addition to the existing.

Name Type Element Input Value
CESS_THIS_PAY         Indirect result User Income Tax Balance Cess
SEC_AND_HE_CESS_THIS_PAY Indirect result User Income Tax Balance Sec and HE Cess
SURCHARGE_THIS_PAY Indirect result User Income Tax Balance Surcharge
TAX_THIS_PAY Indirect result User Income Tax Balance Tax

----------------------------------------------------- 

Element Name : User Income Tax

Processing Rules:

Name : Standard

Formula : USER_INCOME_TAX

Add the below mentioned formula results in addition to the existing.


Name Type Element Input Value
L_EDUCATION_CESS Indirect result Income Tax Cess
L_INCOME_TAX Indirect result Income Tax Tax
L_SEC_AND_HE_CESS Indirect result Income Tax Sec and HE Cess
L_SURCHARGE Indirect result Income Tax Surcharge
L_TOTAL_TAX Indirect result Income Tax Pay Value
L_BALANCE_TAX Indirect result Form16 Income Tax Information Balance Tax
L_EDUCATION_CESS Indirect result Form16 Income Tax Information Education Cess till Date
L_INCOME_TAX Indirect result Form16 Income Tax Information Income Tax till Date
L_SEC_AND_HE_CESS Indirect result Form16 Income Tax Information Sec and HE Cess till Date
L_SURCHARGE Indirect result Form16 Income Tax Information Surcharge till Date

----------------------------------------------------- 

Element Name : User Declared Income Tax

Processing Rules:

Name : Standard

Formula : USER_USER_DEFINED_IT

Add the below mentioned formula results in addition to the existing.

 

Name Type Element Input Value
L_CESS Indirect result Income Tax Cess
L_PAY_VALUE Indirect result Income Tax Pay Value
L_SEC_AND_HE_CESS Indirect result Income Tax Sec and HE Cess
L_SURCHARGE Indirect result Income Tax Surcharge
L_TAX Indirect result Income Tax Tax
L_BALANCE_TAX Indirect result Form16 Income Tax Information Balance Tax
L_CESS Indirect result Form16 Income Tax Information Education Cess till Date
L_TAX Indirect result Form16 Income Tax Information Income Tax till Date
L_SEC_AND_HE_CESS Indirect result Form16 Income Tax Information Sec and HE Cess till Date
L_SURCHARGE Indirect result Form16 Income Tax Information Surcharge till Date

Step 6 : Assign the Employee Declared Income Tax Amount.

Navigation : India HRMS Manager --> People --> Enter & Maintain --> Assignment 

--> Add Element as

User Declared Income Tax – Effective from 01-Apr-2021


 

Test Case :

Employee Basic Value is 1,00,000 Rs.

Annual Gross = 12,00,000

Standard Exemption Deduction = 50,000

Tax On Income =  1,57,500

Cess = 6300

Total Tax Liability = 1,63,800

As per System Standard Deduction for the Month Apr ’21 = 13,650 .

But Employee requests Payroll to deduct 5200 every month starting from Apr’21 to Dec’21.

And From Jan’22 to Mar’22 the remaining tax value to be deducted from Employee’s Salary.

After completing the Element Entry Input Value as mentioned in the above Screenshot, Run Quick Pay .

Step 7 : Quick Pay Run

Navigation : India HRMS Manager --> People --> Enter & Maintain --> Assignment-->

Quick Pay – Apr’21 Month.

Check Run Results,


System automatically nullify the Standard Deduction value & Updated the User declared Income Tax amount as Monthly Tax for the Month of Apr’21.

No comments:

Post a Comment

How to restrict the Order of Absence (Leave) Entry in SSHR in Oracle HRMS ?

  Business Scenario:     In our organization, HR has a policy that, each employee should apply Absence(Leave) only based on the Orders.     ...