You are on page 1of 185

Payroll Fast Formulas

EPROM HRMS Implementation Project


Page 1 of 185
CALC_GROSSUP_PAY_VALUE Formula Name
This formula is used in the grossup calculations Description
/******************************************************************************
*
* Formula Name : CALC_GROSSUP_PAY_VALUE
*
* Description : Simple formula to calculate the gross pay based on the
* net pay and additional amount.
*
* Change History
* --------------
*
* Who Date Description
* ---------- ---------- --------------------------------------------------
* N.Bristow 24-NOV-99 Created.
*
*****************************************************************************/
inputs are amount(number),
additional_amount (number)
payment_amount = amount + additional_amount
return payment_amount
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 2 of 185
PTO_TAGGING_FORMULA Formula Name
Seeded top level payroll formula for PTO accruals Description
/* -------------------------------------------------------
NAME : PTO_TAGGING_FORMULA
This formula returns the element entry id of retrospective
elements which require tagging during the payroll run.
---------------------------------------------------------*/
retro_element_entry_id = get_retro_element()
if retro_element_entry_id = -1 then
(
RETURN
)
else
(
RETURN retro_element_entry_id
)
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 3 of 185
HR_CWK_MOVE_TYPE_TEMPLATE Formula Name
Decides if CWK leaving reason is Voluntary or Involuntary Description
/*********************************************************
Formula Name : HR_CWK_MOVE_TYPE_TEMPLATE
Description : Decides if the leaving reason is
Voluntary/Involuntary.
Inputs : leaving_reason
Change History
Author Date Version Bug Description
------ ---------- ------- ------- ---------------
ASahay 20/06/2003 115.0 N/A Initial Version
*************************************************************/
inputs are leaving_reason(text)
default for leaving_reason is 'R'
termtype='V'
/* If leaving_reason is not entered then it is defaulted to Voluntary */
IF leaving_reason = 'NR' THEN
termtype = 'V'
IF leaving_reason = 'D' THEN
termtype = 'I'
RETURN termtype
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 4 of 185
XXHR_PERSONAL_MOBILE_DEDUCTION_MOBINIL Formula Name
Description
/* ----------------------------------------------------------------
This Formula is for Company Phone Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
19-SEP-2010 Rajesh Modified the code changes
for PAYROLL_12
------------------------------------------------------------------ */
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR Telephone_Number IS ' '
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (date)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT,Telephone_Number
MAX_LIMIT = XXHR_PHONE_LIMIT('MOBINIL',PAY_PROC_PERIOD_END_DATE,Telephone_Number)
DEDUCTION = AMOUNT - MAX_LIMIT
IF DEDUCTION < 0
THEN
(DEDUCTION = 0)
Return DEDUCTION
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 5 of 185
SPECIAL_INCREASE_ADJUSTMENT Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 6 of 185
/* ---------------------------------------------------------------
THIS FORMULA IS TO CALCULATE SPECIAL INCREASES ADJUSTMENT FOR AN EMPLOYEE.
ELEMENT REQUIREMENTS
1.SPECIAL INCREASE ADJUSTMENT (R/W)
USER DEFINED FUNCTION
DATE AUTHOR CHANGES
14-JUNE-2009 ARUN CREATED
------------------------------------------------------------------ */
/*********** ALIAS FOR USED BALANCES OR DATABASE ITEMS ********/
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY
ALIAS JOINED_RAISES_ASG_ITD AS JOINED_RAISES
ALIAS MERE_BASIC_ASG_RUN AS MERE_BASIC
/************ DEFAULT VALUES SECTION *************/
DEFAULT FOR SPECIAL_INCREASE_1_ASG_ITD IS 0
DEFAULT FOR SPECIAL_INCREASE_2_ASG_ITD IS 0
DEFAULT FOR SPECIAL_INCREASE_3_ASG_ITD IS 0
DEFAULT FOR SPECIAL_INCREASE_4_ASG_ITD IS 0
DEFAULT FOR SPECIAL_INCREASE_5_ASG_ITD IS 0
DEFAULT FOR SPECIAL_INCREASE_6_ASG_ITD IS 0
DEFAULT FOR NEW_PERCENTAGE IS 0
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '0001/12/31 00:00:00'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '0001/12/31 00:00:00'(DATE)
/*************** INPUTS SECTIONS ***************/
INPUTS ARE NEW_PERCENTAGE ,NEW_1 ,NEW_2 ,NEW_3 ,NEW_4 ,NEW_5 ,OLD_1 ,OLD_2,OLD_3 ,OLD_4 , OLD_5 , NEW_ALL ,OLD_ALL
/*********SPECIAL INCREASE AMOUNT CALCULATED*********/
IF NEW_PERCENTAGE WAS NOT DEFAULTED
THEN
(
NEW_SPECIAL_INCREASE = (JOINED_RAISES_ASG_ITD - JOINED_RAISES_ASG_RUN + BASIC_SALARY_A_ASG_RUN) *
(NEW_PERCENTAGE / 100)
)
ELSE
(
NEW_SPECIAL_INCREASE = (JOINED_RAISES_ASG_ITD - JOINED_RAISES_ASG_RUN + BASIC_SALARY_A_ASG_RUN) *
(SPECIAL_INCREASE_ADJUSTMENT_RATE/100)
)
/****NOW GET THE 5 PREVIOUS SPECIAL INCREASES AND ACCUMULATED *****/
OLD_SPL_1 = SPECIAL_INCREASE_1_ASG_ITD
OLD_SPL_2 = SPECIAL_INCREASE_2_ASG_ITD
OLD_SPL_3 = SPECIAL_INCREASE_3_ASG_ITD
OLD_SPL_4 = SPECIAL_INCREASE_4_ASG_ITD
OLD_SPL_5 = SPECIAL_INCREASE_5_ASG_ITD
OLD_ACCUMULATE = JOINED_RAISES
X = XXHR_PRINT_DEBUG ('OLD_SPL_1'||TO_CHAR(OLD_SPL_1))
X = XXHR_PRINT_DEBUG ('OLD_SPL_2'||TO_CHAR(OLD_SPL_2))
X = XXHR_PRINT_DEBUG ('OLD_SPL_3'||TO_CHAR(OLD_SPL_3))
X = XXHR_PRINT_DEBUG ('OLD_SPL_4'||TO_CHAR(OLD_SPL_4))
X = XXHR_PRINT_DEBUG ('OLD_SPL_5'||TO_CHAR(OLD_SPL_5))
X = XXHR_PRINT_DEBUG ('NEW_SPECIAL_INCREASE'||TO_CHAR(NEW_SPECIAL_INCREASE))
/*****************FINISH GETTING OLD VALUES******/
NEW_ACCUMULATE = JOINED_RAISES + OLD_SPL_1
NEW_SPL_1 = OLD_SPL_2
NEW_SPL_2 = OLD_SPL_3
NEW_SPL_3 = OLD_SPL_4
NEW_SPL_4 = OLD_SPL_5
IF to_char(PAY_PROC_PERIOD_END_DATE,'MMYYYY') = '072011' THEN
NEW_SPL_5 = SPECIAL_INCREASE_6_ASG_ITD
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 7 of 185
ELSE
NEW_SPL_5 = NEW_SPECIAL_INCREASE
X = XXHR_PRINT_DEBUG ('NEW_SPL_5'||TO_CHAR(NEW_SPL_5))
RETURN
NEW_ACCUMULATE,NEW_PERCENTAGE,NEW_SPL_1,NEW_SPL_2,NEW_SPL_3,NEW_SPL_4,NEW_SPL_5,OLD_SPL_1,OLD_SPL_2,OLD_S
PL_3 ,OLD_SPL_4 , OLD_SPL_5, OLD_ACCUMULATE
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 8 of 185
XXHR_PERSONAL_MOBILE_DEDUCTION_VODAFONE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is for Company Phone Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
19-SEP-2010 Rajesh Modified the code changes
for PAYROLL_12
--------------------------------------------------------------- */
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR Telephone_Number IS ' '
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (date)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT,Telephone_Number
MAX_LIMIT = XXHR_PHONE_LIMIT('VODAFONE',PAY_PROC_PERIOD_END_DATE,Telephone_Number)
DEDUCTION = AMOUNT - MAX_LIMIT
IF DEDUCTION < 0
THEN
(DEDUCTION = 0)
RETURN DEDUCTION
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 9 of 185
XXHR_PERSONAL_MOBILE_DEDUCTION_TE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is for Company Phone Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
19-SEP-2010 Rajesh Modified the code changes
for PAYROLL_12
------------------------------------------------------------------ */
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR Telephone_Number IS ' '
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (date)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT,Telephone_Number
MAX_LIMIT = XXHR_PHONE_LIMIT('TELECOM EGYPT',PAY_PROC_PERIOD_END_DATE,Telephone_Number)
DEDUCTION = AMOUNT - MAX_LIMIT
IF DEDUCTION < 0
THEN
(DEDUCTION = 0)
RETURN DEDUCTION
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 10 of 185
XXHR_PERSONAL_MOBILE_DEDUCTION_ETISALAT Formula Name
Description
/* ----------------------------------------------------------------
This Formula is for Company Phone Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
19-SEP-2010 Rajesh Modified the code changes
for PAYROLL_12
------------------------------------------------------------------ */
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR Telephone_Number IS ' '
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (date)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT,Telephone_Number
MAX_LIMIT = XXHR_PHONE_LIMIT('ETISALAT',
PAY_PROC_PERIOD_END_DATE,Telephone_Number)
DEDUCTION = AMOUNT - MAX_LIMIT
IF DEDUCTION < 0
THEN
(DEDUCTION = 0)
RETURN DEDUCTION
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 11 of 185
XXHR_TRAINING_COST Formula Name
Description
/* ----------------------------------------------------------------
This Formula is for Training Cost Deduction for an Employee.
Element Requirements
1.
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
------------------------------------------------------------------ */
DEFAULT FOR AMOUNT IS 0
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_TERMINATION_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(AMOUNT = OVERRIDE_VALUE)
ELSE
(AMOUNT = XXHR_TRAINING_COST(PAY_PROC_PERIOD_END_DATE, ADD_YEARS(ACP_TERMINATION_DATE, -5),
ACP_TERMINATION_DATE,
XXHR_TRAINING_DEDUCTION_PERCENTAGE/100,XXHR_MAX_TRAINING_COST))
RETURN AMOUNT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 12 of 185
XXHR_DISC_SALARY_DEDUCTION_DAYS Formula Name
Description
/* -------------------------------------------------------------
This Formula is to Calculate Disciplianry Action Salary Deduction Days for an Employee.
Element Requirements
User Defined Function
Date Author Changes
13-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS DISCIPLINARY_SALARY_DEDUCTION_DAYS_ASG_ITD AS DEDUCTION_DAYS
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Balance is 0
DEFAULT FOR RESET IS 0
DEFAULT FOR DAYS IS 0
DEFAULT FOR SALARY_DEDUCTION_DAYS IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE SALARY_DEDUCTION_DAYS
BALANCE = (SALARY_DEDUCTION_DAYS - DEDUCTION_DAYS)
IF (BALANCE = 0)
THEN
(
DAYS = 0
RESET = DEDUCTION_DAYS
STOP = 'YES'
)
ELSE IF (BALANCE > DISCIPLINARY_SALARY_DEDUCTION_MAX_DAYS)
THEN
(
DAYS = DISCIPLINARY_SALARY_DEDUCTION_MAX_DAYS
RESET = 0
)
ELSE
(
DAYS = BALANCE
RESET = 0
)
RETURN DAYS, RESET, STOP
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 13 of 185
SOCIAL_INSURANCE_EMP_SHARE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 14 of 185
/* ---------------------------------------------------------------
This Formula is to Calculate Social Insurance for an Employee.
Element Requirements 1.Senility Insurance (R/W)
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS FIXED_INSURANCE_SALARY_ASG_RUN AS FIXED_INS_AMOUNT
ALIAS VARIABLE_INSURANCE_SALARY_ASG_RUN AS VARIABLE_AMOUNT
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_AMOUNT
ALIAS MERE_BASIC_ASG_RUN AS MERE_AMOUNT
ALIAS RAISES_ASG_ITD AS RAISES_AMOUNT
ALIAS SOCIAL_INSURANCE_COMPANY_SHARE_ASG_RUN AS SOCIAL_INSURANCE_COMPANY_SHARE
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR FIXED_SALARY IS 0
DEFAULT FOR VARIABLE_SALARY IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR PER_AGE is 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
X = XXHR_PRINT_DEBUG ('PER_AGE'||TO_CHAR(PER_AGE))
X = XXHR_PRINT_DEBUG ('XXHR_OSI_OVER_AGE'||TO_CHAR(XXHR_OSI_OVER_AGE))
IF PER_AGE < XXHR_OSI_OVER_AGE THEN
(
IF (ACP_TERMINATION_DATE < PAY_PROC_PERIOD_END_DATE) THEN
(SOCIAL_INSURANCE = 0)
ELSE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(SOCIAL_INSURANCE = OVERRIDE_VALUE)
ELSE
(
FIXED_AMOUNT = BASIC_AMOUNT
IF (FIXED_AMOUNT > XXHR_ESI_MAX_SALARY_FIXED) THEN
(FIXED_SALARY = XXHR_ESI_MAX_SALARY_FIXED) ELSE
(FIXED_SALARY = FIXED_AMOUNT)
X = XXHR_PRINT_DEBUG ('FIXED_SALARY'||TO_CHAR(FIXED_SALARY))
IF (VARIABLE_AMOUNT > XXHR_ESI_MAX_SALARY_VARIABLE) THEN
(VARIABLE_SALARY = XXHR_ESI_MAX_SALARY_VARIABLE) ELSE
(VARIABLE_SALARY = VARIABLE_AMOUNT)
X = XXHR_PRINT_DEBUG ('VARIABLE_SALARY'||TO_CHAR(VARIABLE_SALARY))
X = XXHR_PRINT_DEBUG ('XXHR_ESI_PERCENTAGE_FIXED'||TO_CHAR(XXHR_ESI_PERCENTAGE_FIXED))
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 15 of 185
X = XXHR_PRINT_DEBUG ('XXHR_ESI_PERCENTAGE_VARIABLE'||TO_CHAR(XXHR_ESI_PERCENTAGE_VARIABLE))
SOCIAL_INSURANCE = (FIXED_SALARY * XXHR_ESI_PERCENTAGE_FIXED / 100) + (VARIABLE_SALARY *
XXHR_ESI_PERCENTAGE_VARIABLE/100)
X = XXHR_PRINT_DEBUG ('VARIABLE_SALARY'||TO_CHAR(VARIABLE_SALARY))
)
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
SOCIAL_INSURANCE = SOCIAL_INSURANCE + SOCIAL_INSURANCE_COMPANY_SHARE
)
)
ELSE
(
SOCIAL_INSURANCE = 0
)
RETURN SOCIAL_INSURANCE
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 16 of 185
OVERAGE_SOCIAL_INSURANCE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 17 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Overage Insurance for an Employee.
Element Requirements 1.Overage Insurance (R/W)
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS FIXED_INSURANCE_SALARY_ASG_RUN AS FIXED_AMOUNT
ALIAS VARIABLE_INSURANCE_SALARY_ASG_RUN AS VARIABLE_AMOUNT
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_AMOUNT
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR FIXED_SALARY IS 0
DEFAULT FOR VARIABLE_SALARY IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR PER_AGE is 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF PER_AGE >= XXHR_OSI_OVER_AGE THEN
(
IF (ACP_TERMINATION_DATE < PAY_PROC_PERIOD_END_DATE) THEN
(OVERAGE_INSURANCE = 0)
ELSE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(OVERAGE_INSURANCE = OVERRIDE_VALUE)
ELSE
(
IF (BASIC_AMOUNT > XXHR_ESI_MAX_SALARY_FIXED) THEN
(FIXED_SALARY = XXHR_ESI_MAX_SALARY_FIXED) ELSE
(FIXED_SALARY = BASIC_AMOUNT)
IF (VARIABLE_AMOUNT > XXHR_ESI_MAX_SALARY_VARIABLE) THEN
(VARIABLE_SALARY = XXHR_ESI_MAX_SALARY_VARIABLE) ELSE
(VARIABLE_SALARY = VARIABLE_AMOUNT)
OVERAGE_INSURANCE = (FIXED_SALARY * XXHR_OSI_PERCENTAGE_FIXED / 100) + (VARIABLE_SALARY *
XXHR_OSI_PERCENTAGE_VARIABLE / 100)
)
)
ELSE
(
OVERAGE_INSURANCE = 0
)
RETURN OVERAGE_INSURANCE
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 18 of 185
COMPLEMENTARY_PENSION_EMP_SHARE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 19 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Overage Insurance for an Employee.
Element Requirements 1.Overage Insurance (R/W)
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY
ALIAS COMPELMENTARY_PENSION_CMP_SHARE_ASG_RUN AS COMPELMENTARY_PENSION_CMP_SHARE
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR SALARY IS 0
DEFAULT FOR RATE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR PER_AGE IS 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(PENSION = OVERRIDE_VALUE)
ELSE
(
RATE =
TO_NUMBER(GET_TABLE_VALUE('XX_EPM_EMP_COM_PENSION_RATES','Rate',TO_TEXT(PER_AGE),PAY_PROC_PERIOD_END_DATE))/10
0
IF (BASIC_SALARY > XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) THEN
(SALARY = XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) ELSE
(SALARY = BASIC_SALARY)
PENSION = SALARY * RATE
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
PENSION = PENSION + COMPELMENTARY_PENSION_CMP_SHARE
)
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN
(
PENSION = 0
)
)
RETURN PENSION
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 20 of 185
DEATH_COMPLEMENTARY_PENSION Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 21 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Overage Insurance for an Employee.
Element Requirements 1.Overage Insurance (R/W)
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR SALARY IS 0
DEFAULT FOR RATE IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(PENSION = OVERRIDE_VALUE)
ELSE
(
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN
(
PENSION = 0
)
ELSE
(
RATE = XXHR_DEATH_COMPLEMENTARY_PENSION_RATE/100
IF (BASIC_SALARY > XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) THEN
(SALARY = XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) ELSE
(SALARY = BASIC_SALARY)
PENSION = SALARY * RATE
/*EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
PENSION = PENSION/2
)*/
)
)
RETURN PENSION
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 22 of 185
SOCIAL_INSURANCE_COMPANY_SHARE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 23 of 185
/* -------------------------------------------------------------
This Formula is to Calculate Social Insurance for an Employee.
Element Requirements 1.Senility Insurance (R/W)
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS FIXED_INSURANCE_SALARY_ASG_RUN AS FIXED_AMOUNT
ALIAS VARIABLE_INSURANCE_SALARY_ASG_RUN AS VARIABLE_AMOUNT
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_AMOUNT
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR FIXED_SALARY IS 0
DEFAULT FOR VARIABLE_SALARY IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF (ACP_TERMINATION_DATE < PAY_PROC_PERIOD_END_DATE) THEN
(SOCIAL_INSURANCE = 0)
ELSE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(SOCIAL_INSURANCE = OVERRIDE_VALUE)
ELSE
(
IF (BASIC_AMOUNT > XXHR_ESI_MAX_SALARY_FIXED) THEN
(FIXED_SALARY = XXHR_ESI_MAX_SALARY_FIXED) ELSE
(FIXED_SALARY = BASIC_AMOUNT)
IF (VARIABLE_AMOUNT > XXHR_ESI_MAX_SALARY_VARIABLE) THEN
(VARIABLE_SALARY = XXHR_ESI_MAX_SALARY_VARIABLE) ELSE
(VARIABLE_SALARY = VARIABLE_AMOUNT)
SOCIAL_INSURANCE = (FIXED_SALARY * XXHR_CSI_PERCENTAGE_FIXED/ 100) + (VARIABLE_SALARY *
XXHR_CSI_PERCENTAGE_VARIABLE/100)
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
SOCIAL_INSURANCE = SOCIAL_INSURANCE/2
)
)
RETURN SOCIAL_INSURANCE
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 24 of 185
XXHR_SAVING_INSURANCE_COMPANY_SHARE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Company Share - Saving Insurance for an Employee.
Element Requirements
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS BASIC_SALARY_PLUS_PRODUCTION_INCENTIVE_ASG_RUN AS BASIC_PROD_INC
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR SALARY IS 0
DEFAULT FOR RATE IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF (ASG_EMPLOYMENT_CATEGORY = 'Temporary') or (ASG_EMPLOYMENT_CATEGORY = '')THEN
(INSURANCE = 0)
ELSE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(INSURANCE = OVERRIDE_VALUE)
ELSE
(
RATE = XXHR_CS_SAVING_INSURANCE_PERCENT/100
INSURANCE = BASIC_PROD_INC * RATE
)
RETURN INSURANCE
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 25 of 185
XXHR_COMPLEMENTARY_PENSION_COMPANY_SHARE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 26 of 185
/* ---------------------------------------------------------------
This Formula is to Calculate Complementary Pension for an Employee.
Element Requirements 1.Overage Insurance (R/W)
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
/*ALIAS BASIC_SALARY_PLUS_PRODUCTION_INCENTIVE_ASG_RUN AS BASIC_SALARY*/
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR SALARY IS 0
DEFAULT FOR RATE IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(PENSION = OVERRIDE_VALUE)
ELSE
(
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN
(
PENSION = 0
)
ELSE
(
RATE = XXHR_COMPLEMENTARY_PENSION_COMP_SHARE_RATE/100
IF (BASIC_SALARY > XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) THEN
(SALARY = XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) ELSE
(SALARY = BASIC_SALARY)
PENSION = SALARY * RATE
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
PENSION = PENSION/2
)
)
)
RETURN PENSION
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 27 of 185
XXHR_EMERGENCY_BENEFIT_COMPANY_SHARE Formula Name
Description
/* --------------------------------------------------------------
This Formula is to Calculate Emergency Benefit for an Employee.
Element Requirements
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(BENEFIT = OVERRIDE_VALUE)
ELSE
(
IF (BASIC_SALARY > XXHR_ESI_MAX_SALARY_FIXED) THEN
(FIXED_SALARY = XXHR_ESI_MAX_SALARY_FIXED) ELSE
(FIXED_SALARY = BASIC_SALARY)
BENEFIT = (FIXED_SALARY * XXHR_EMERGENCY_BENEFIT_PERCENTAGE/ 100)
)
RETURN BENEFIT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 28 of 185
XXHR_HEALTH_INSURANCE_COMPANY_SHARE Formula Name
Description
/* --------------------------------------------------------------
This Formula is to Calculate Emergency Benefit for an Employee.
Element Requirements
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(BENEFIT = OVERRIDE_VALUE)
ELSE
(
IF (BASIC_SALARY > XXHR_ESI_MAX_SALARY_FIXED) THEN
(FIXED_SALARY = XXHR_ESI_MAX_SALARY_FIXED) ELSE
(FIXED_SALARY = BASIC_SALARY)
BENEFIT = (FIXED_SALARY * XXHR_HEALTH_INSURANCE_PERCENTAGE/ 100)
)
RETURN BENEFIT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 29 of 185
XXHR_EGYPTIAN_WORKER_UNION Formula Name
Description
/* --------------------------------------------------------------
This Formula is to Calculate Egyptian Worker Union deduction for an Employee.
Element Requirements
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Total_Amount is 0
DEFAULT FOR Percentage IS 0
DEFAULT FOR Amount IS 0
DEFAULT FOR Override_Value is 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(Amount = OVERRIDE_VALUE)
ELSE
(
Total_Amount = to_number(GET_TABLE_VALUE('XXHR_PETROLEUM_ASSOCIATION_WORKER_UNION_DETAILS','Egyptian Worker
Union','Amount',PAY_PROC_PERIOD_END_DATE))
Percentage = (to_number(GET_TABLE_VALUE('XXHR_PETROLEUM_ASSOCIATION_WORKER_UNION_DETAILS','Egyptian Worker
Union','Percentage',PAY_PROC_PERIOD_END_DATE)) / 100)
Amount = Total_amount * Percentage
)
RETURN Amount
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 30 of 185
XXHR_PETROLEUM_ASSOCIATION Formula Name
Description
/* -------------------------------------------------------------
This Formula is to Calculate Petroleum Association deduction for an Employee.
Element Requirements
User Defined Function
Date Author Changes
12-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Total_Amount is 0
DEFAULT FOR Percentage IS 0
DEFAULT FOR Amount IS 0
DEFAULT FOR OVERRIDE_VALUE is 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(Amount = OVERRIDE_VALUE)
ELSE
(
Total_Amount = to_number(GET_TABLE_VALUE('XXHR_PETROLEUM_ASSOCIATION_WORKER_UNION_DETAILS','Petroleum
Association','Amount',PAY_PROC_PERIOD_END_DATE))
Percentage = (to_number(GET_TABLE_VALUE('XXHR_PETROLEUM_ASSOCIATION_WORKER_UNION_DETAILS','Petroleum
Association','Percentage',PAY_PROC_PERIOD_END_DATE)) / 100)
Amount = Total_amount * Percentage
)
RETURN Amount
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 31 of 185
XXHR_FAMILY_HEALTH_INSURANCE_MONTHLY Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 32 of 185
/* ----------------------------------------------------------------
This Formula is developed to calculate Medical Subscription amount for Employee's family.
Element Requirements
User Defined Function
Date Author Changes
23-Feb-2010 Kaushik Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR SPOUSE_MEDICAL IS ' '
DEFAULT FOR SPOUSE_DEDUCTION IS 0
DEFAULT FOR CHILD_DEDUCTION IS 0
DEFAULT FOR NUMBER_OF_CHILDREN_COVERED IS 0
DEFAULT FOR MAX_NUMBER_OF_CHILDREN_FOR_MEDICAL_CARE IS 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF Override_Value WAS NOT DEFAULTED THEN
(
Deduction = Override_Value
)
ELSE
(
SPOUSE_MEDICAL = XXHR_SPOUSE_MEDICAL_CARE(PAY_PROC_PERIOD_END_DATE)
NUMBER_OF_CHILDREN_COVERED = XXHR_NO_OF_CHILD_MEDICAL_CARE(PAY_PROC_PERIOD_END_DATE)
MAX_NUMBER_OF_CHILDREN_FOR_MEDICAL_CARE =
TO_NUMBER(GET_TABLE_VALUE('XXHR_MONTHLY_FAMILY_HEALTH_INSURANCE', 'Monthly Family Health Insur Details', 'Max Children',
PAY_PROC_PERIOD_END_DATE))
IF SPOUSE_MEDICAL = 'Y'
THEN
(
SPOUSE_DEDUCTION = TO_NUMBER(GET_TABLE_VALUE('XXHR_MONTHLY_FAMILY_HEALTH_INSURANCE', 'Monthly Family Health Insur
Details', 'Spouse Amount', PAY_PROC_PERIOD_END_DATE)))
ELSE
(SPOUSE_DEDUCTION = 0)
IF NUMBER_OF_CHILDREN_COVERED > MAX_NUMBER_OF_CHILDREN_FOR_MEDICAL_CARE
THEN
(NUMBER_OF_CHILDREN_COVERED = MAX_NUMBER_OF_CHILDREN_FOR_MEDICAL_CARE)
CHILD_DEDUCTION = NUMBER_OF_CHILDREN_COVERED *
TO_NUMBER(GET_TABLE_VALUE('XXHR_MONTHLY_FAMILY_HEALTH_INSURANCE', 'Monthly Family Health Insur Details', 'Each child Amount',
PAY_PROC_PERIOD_END_DATE))
DEDUCTION = SPOUSE_DEDUCTION + CHILD_DEDUCTION
)
Return Deduction
/* ====== Formula Body Ends ====== */
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 33 of 185
XXHR_DISC_PRODUCTION_INCENTIVE_MONTHS Formula Name
Description
/* -------------------------------------------------------------
This Formula is to Calculate Disciplianry Action Withhold Production Incentive for an Employee.
Element Requirements
User Defined Function
Date Author Changes
13-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS DISCIPLINARY_WITHHOLD_PRODUCTION_INCENTIVE_MONTHS_ASG_ITD AS DEDUCTION_MONTHS
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Balance is 0
DEFAULT FOR RESET IS 0
DEFAULT FOR COUNTER IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE NUMBER_OF_MONTHS
BALANCE = (NUMBER_OF_MONTHS - DEDUCTION_MONTHS)
IF BALANCE > 1
THEN
(
COUNTER = 1
RESET = 0
)
ELSE
(
COUNTER = 0
RESET = NUMBER_OF_MONTHS
STOP = 'YES'
)
RETURN COUNTER, RESET, STOP
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 34 of 185
XXHR_DISC_SUSPENSION Formula Name
Description
/* -------------------------------------------------------------
This Formula is to Calculate Disciplianry Action Suspension for an Employee.
Element Requirements
User Defined Function
Date Author Changes
13-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
IF (PAY_PROC_PERIOD_END_DATE = TO_DATE('3112'||TO_CHAR(PAY_PROC_PERIOD_END_DATE,'YYYY'),'DDMMYYYY'))
THEN
(
STOP = 'YES'
)
RETURN STOP
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 35 of 185
XXHR_DISC_WITHHOLD_ANNUAL_INCREMENT Formula Name
Description
/* ------------------------------------------------------------
This Formula is to Calculate Company Raise for an Employee.
Element Requirements
User Defined Function
Date Author Changes
13-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS COMPANY_RAISE_YTD_ASG_YTD AS COMPANY_RAISE
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ACTUAL_RAISE IS 0
DEFAULT FOR PENALTY IS 0
DEFAULT FOR INCREMENT_PERCENTAGE IS ' '
DEFAULT FOR DISCIPLINARY_WITHHOLD_ANNUAL_INCREMENT_INCREMENT_PERCENTAGE_ENTRY_VALUE IS 0
DEFAULT FOR COMPANY_RAISE_ORIGINAL_VALUE_END_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR COMPANY_RAISE_ORIGINAL_VALUE_START_DATE IS '4712/12/31 00:00:00' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE INCREMENT_PERCENTAGE
/*L_INCREMENT_PERCENTAGE =
TO_CHAR(DISCIPLINARY_WITHHOLD_ANNUAL_INCREMENT_INCREMENT_PERCENTAGE_ENTRY_VALUE)
INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE
_DETAILS','Details',L_INCREMENT_PERCENTAGE,PAY_PROC_PERIOD_END_DATE )))/100
ACTUAL_RAISE = INCREMENT * BASIC_SALARY
PENALTY = COMPANY_RAISE - ACTUAL_RAISE */
PENALTY = 0
IF PENALTY < 0
THEN
(PENALTY = 0)
IF ((PAY_PROC_PERIOD_END_DATE = COMPANY_RAISE_ORIGINAL_VALUE_END_DATE)
AND (PAY_PROC_PERIOD_START_DATE = COMPANY_RAISE_ORIGINAL_VALUE_START_DATE))
THEN
(
STOP = 'YES'
)
RETURN PENALTY, STOP
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 36 of 185
XXHR_COMPANY_RAISE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 37 of 185
/* -------------------------------------------------------------
This Formula is to Calculate Company Raise for an Employee.
Element Requirements
User Defined Function
Date Author Changes
13-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
DEFAULT FOR RAISE IS 0
DEFAULT FOR INCREMENT IS 0
DEFAULT FOR MAX_RAISE IS 0
DEFAULT FOR MAX_BASIC_COMBINED IS 0
DEFAULT FOR COMBINED_SPECIAL IS 0
DEFAULT FOR APPRAISAL_SCORE IS ' '
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR COMPANY_RAISE_TEMPORARY_PERCENTAGE_ENTRY_VALUE IS '00'
DEFAULT FOR DISCIPLINARY_WITHHOLD_ANNUAL_INCREMENT_INCREMENT_PERCENTAGE_ENTRY_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
RAISE = OVERRIDE_VALUE
)
ELSE
(
APPRAISAL_SCORE = XXHR_APPRAISAL_SCORE(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-1))
BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG')
BASIC_SALARY =
XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1)))
COMBINED_SPECIAL = XXHR_GET_PAY_VALUE_IN_RANGE(ADD_MONTHS(PAY_PROC_PERIOD_START_DATE,-1),
ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1),
'Combined Special Social Gov Grants',
'Original Value')
/*x = XXHR_PRINT_DEBUG('BASIC_SALARY'||TO_CHAR(BASIC_SALARY))*/
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN
(
APPRAISAL_SCORE = (COMPANY_RAISE_TEMPORARY_PERCENTAGE_ENTRY_VALUE)
INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE
_DETAILS','Details',APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE )))/100
RAISE = BASIC_SALARY * INCREMENT
/*
x =
XXHR_PRINT_DEBUG('COMPANY_RAISE_TEMPORARY_PERCENTAGE_ENTRY_VALUE'||(COMPANY_RAISE_TEMPORARY_PERCENTAGE_
ENTRY_VALUE))
x = XXHR_PRINT_DEBUG('APPRAISAL_SCORE'||(APPRAISAL_SCORE))
x = XXHR_PRINT_DEBUG('INCREMENT'||TO_CHAR(INCREMENT))
x = XXHR_PRINT_DEBUG('RAISE'||TO_CHAR(RAISE))*/
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 38 of 185
ELSE
(
INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE
_DETAILS','Details',APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE )))/100
RAISE = BASIC_SALARY * INCREMENT
/*x = XXHR_PRINT_DEBUG('INCREMENT'||TO_CHAR(INCREMENT))
x = XXHR_PRINT_DEBUG('RAISE'||TO_CHAR(RAISE))*/
)
IF DISCIPLINARY_WITHHOLD_ANNUAL_INCREMENT_INCREMENT_PERCENTAGE_ENTRY_VALUE WAS NOT DEFAULTED THEN
(
RAISE = BASIC_SALARY * DISCIPLINARY_WITHHOLD_ANNUAL_INCREMENT_INCREMENT_PERCENTAGE_ENTRY_VALUE/100
)
MAX_BASIC_COMBINED = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_COMP_BASIC_COMB','Grade
Name',ASG_GRADE,PAY_PROC_PERIOD_END_DATE ))
DIFF = MAX_BASIC_COMBINED - (BASIC_SALARY - COMBINED_SPECIAL)
IF RAISE > DIFF THEN (RAISE = DIFF)
MAX_RAISE =
(TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE_MIN',ASG_GRADE,APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE
)))
RAISE = LEAST(MAX_RAISE, RAISE)
/*
x = XXHR_PRINT_DEBUG('MAX_BASIC_COMBINED'||TO_CHAR(MAX_BASIC_COMBINED))
x = XXHR_PRINT_DEBUG('DIFF'||TO_CHAR(DIFF))
x = XXHR_PRINT_DEBUG('MAX_RAISE'||TO_CHAR(MAX_RAISE))
x = XXHR_PRINT_DEBUG('RAISE'||TO_CHAR(RAISE))*/
)
IF RAISE < 0 THEN RAISE =0
RETURN RAISE
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 39 of 185
XXHR_SICK_LEAVE_DEDUCTION Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 40 of 185
/* ----------------------------------------------------------------
THIS FORMULA IS TO CALCULATE SICK Leave Deduction WORKED FOR AN EMPLOYEE.
ELEMENT REQUIREMENTS 1.Sick Deduction (R/W)
USER DEFINED FUNCTION
DATE AUTHOR CHANGES
15-Jul-2010 Kaushik Created
------------------------------------------------------------------ */
/* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */
DEFAULT FOR YEARS_OF_SERVICE IS 0
DEFAULT FOR SICK_ABSENCE IS 0
DEFAULT FOR SICK_ABSENCE_PREV_MONTH IS 0
/* ====== VARIABLES VALUE DEFAULTS ENDS ====== */
/* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE IS '1900/01/01 00:00:00' (DATE)
DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR DAYS_IN_MONTH IS 30
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR SICKLEAVE_DEDUCTION_PERCENTAGE IS 0
/* ====== DATABASE ITEMS DEFAULTS ENDS ====== */
/* ====== FORMULA BODY STARTS ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED
THEN
(
SICK_DEDUCTION = OVERRIDE_VALUE
)
ELSE
(
/*
YEARS_SERVICE = MONTHS_BETWEEN(PAY_PROC_PERIOD_END_DATE,EMP_HIRE_DATE)/12
BLOCK_YEAR = TO_NUMBER(GET_TABLE_VALUE('XXHR_SICK_LEAVE_ELIGIBILITY_BLOCK','Details',TO_TEXT(YEARS_SERVICE )))
ELIG_YEAR = ADD_YEARS(EMP_HIRE_DATE,BLOCK_YEAR)
ELIG_END_YEAR = ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1)
SICK_ABSENCE = GET_ABSENCE_DURATION(ELIG_YEAR,ELIG_END_YEAR,'Sick Leave')
SICK_ABSENCE_THIS_MONTH = GET_ABSENCE_DURATION(PAY_PROC_PERIOD_START_DATE ,PAY_PROC_PERIOD_END_DATE,'Sick
Leave')
DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1
SICK_TOTAL = SICK_ABSENCE + SICK_ABSENCE_THIS_MONTH
IF SICK_TOTAL <= 90
THEN
(
SICK_DEDUCTION = 0
)
IF (SICK_TOTAL > 90) AND (SICK_TOTAL <= 180)
THEN
(
SICK_DEDUCTION = SICK_ABSENCE_THIS_MONTH/DAYS_IN_MONTH * BASIC_SALARY_ASG_RUN * .75
)
IF (SICK_TOTAL > 180) AND (SICK_TOTAL <= 360)
THEN(
SICK_DEDUCTION = SICK_ABSENCE_THIS_MONTH/DAYS_IN_MONTH * BASIC_SALARY_ASG_RUN * .50
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 41 of 185
IF (SICK_TOTAL > 90) AND (SICK_ABSENCE < 90)
THEN
(
SICK_DAYS = SICK_ABSENCE_THIS_MONTH - (90 -(SICK_ABSENCE))
SICK_DEDUCTION = SICK_DAYS/DAYS_IN_MONTH * BASIC_SALARY_ASG_RUN * .75)
IF (SICK_TOTAL > 180) AND (SICK_ABSENCE < 180)
THEN
(
SICK_DAYS_75 = SICK_ABSENCE_THIS_MONTH - (180 -(SICK_ABSENCE))
SICK_DAYS_50 = SICK_ABSENCE_THIS_MONTH - SICK_DAYS_75
SICK_DEDUCTION = (SICK_DAYS_75/DAYS_IN_MONTH * BASIC_SALARY_ASG_RUN * .75) + (SICK_DAYS_50/DAYS_IN_MONTH *
BASIC_SALARY_ASG_RUN * .50))
*/
PREV_START_DATE = ADD_MONTHS(PAY_PROC_PERIOD_START_DATE,-1)
PREV_END_DATE = ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1)
DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1
/*
X= XXHR_PRINT_DEBUG('PREV_START_DATE'||TO_CHAR(PREV_START_DATE))
X= XXHR_PRINT_DEBUG('PREV_END_DATE'||TO_CHAR(PREV_END_DATE))
X= XXHR_PRINT_DEBUG('DAYS_IN_MONTH'||TO_CHAR(DAYS_IN_MONTH))
*/
SICK_ABSENCE_PREV_MONTH = Get_Sick_Absence_Duration(PREV_START_DATE ,PREV_END_DATE,'Sick Leave')
/*
X= XXHR_PRINT_DEBUG('SICK_ABSENCE_PREV_MONTH'||TO_CHAR(SICK_ABSENCE_PREV_MONTH))
*/
SICK_DEDUCTION = BASIC_SALARY_PLUS_PRODUCTION_INCENTIVE_ASG_PTD * SICKLEAVE_DEDUCTION_PERCENTAGE/100 *
SICK_ABSENCE_PREV_MONTH/DAYS_IN_MONTH
/*
X= XXHR_PRINT_DEBUG('SICK_DEDUCTION'||TO_CHAR(SICK_DEDUCTION))
X=
XXHR_PRINT_DEBUG('BASIC_SALARY_PLUS_PRODUCTION_INCENTIVE_ASG_PTD'||TO_CHAR(BASIC_SALARY_PLUS_PRODUCTION_INC
ENTIVE_ASG_PTD))
*/
)
RETURN SICK_DEDUCTION
/* ====== FORMULA BODY ENDS ====== */
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 42 of 185
XXHR_DEDUTION_AMOUNT Formula Name
Description
/*-----------------------------------------------------------
This Formula is a common formula to be used by all deduction elements that use only the Amount value for an Employee.
Element Requirements
User Defined Function
Date Author Changes
14-June-2009 Arun Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Amount IS 0
DEFAULT FOR Deduction_Amount IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Amount
IF Amount WAS NOT DEFAULTED
THEN
(
Deduction_Amount = Amount
RETURN Deduction_Amount
)
Else
(
Deduction_Amount = 0
Return Deduction_Amount
)
/*====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 43 of 185
XXHR_MONTHLY_TAX Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 44 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Tax for an Employee.
Element Requirements 1.Tax (R/W)
User Defined Function
Date Author Changes
15-Jult-2010 Kaushik Created
------------------------------------------------------------------ */
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR L_TAX_SLAB IS 0
DEFAULT FOR L_ADITIONAL_AMOUNT IS 0
DEFAULT FOR L_REDUCED_AMOUNT IS 0
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR JOINED_AMOUNT is 0
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR EMPLOYEE_TAX IS 0
DEFAULT FOR COMPANY_PENSION_TAX IS 0
DEFAULT FOR COMPANY_MONTHLY_BOUNS_TAX IS 0
DEFAULT FOR COMPANY_PLAN_INCEN_TAX IS 0
DEFAULT FOR COMPANY_TRANSPORT_ALLOWANCE_TAX IS 0
DEFAULT FOR COMPANY_MEAL_ALLOWANCE_TAX IS 0
DEFAULT FOR COMPANY_Production_Incentive_TAX IS 0
DEFAULT FOR COMPANY_Experience_Incentive_TAX IS 0
DEFAULT FOR COMPANY_Meal_Allowance_2_TAX IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR PROD_EXP_INC_START_DATE is '2011/03/01 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
PROD_EXP_INC_START_DATE = TO_DATE('2011/03/01','yyyy/mm/dd')
IF OVERRIDE_VALUE WAS NOT DEFAULTED
THEN(
EMPLOYEE_TAX = OVERRIDE_VALUE
COMPANY_PENSION_TAX = 0
COMPANY_MONTHLY_BOUNS_TAX = 0
COMPANY_PLAN_INCEN_TAX = 0
COMPANY_TRANSPORT_ALLOWANCE_TAX = 0
COMPANY_MEAL_ALLOWANCE_TAX =0
COMPANY_Production_Incentive_TAX = 0
COMPANY_Experience_Incentive_TAX = 0
COMPANY_Meal_Allowance_2_TAX = 0
)
ELSE
(
/*************************** Employee Tax**********************************/
EMPLOYEE_SHARE = EMPLOYEE_TAXABLE_SALARY_ASG_PTD
X = XXHR_PRINT_DEBUG('EMPLOYEE_SHARE'||TO_CHAR(EMPLOYEE_SHARE))
TAXABLE_MONTHLY = EMPLOYEE_SHARE
EXEMPTION = XXHR_TAX_EXEMPTION
/*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/
TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2)
X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL))
IF TAX_POOL <= 0 THEN Tax_Pool = 0
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 45 of 185
L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool)))
L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool)))
L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool)))
PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT
X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))
X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB))
X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT))
X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT))
PAYMENT = TRUNC((PAYMENT /12),2)
EMPLOYEE_TAX = PAYMENT
If (EMPLOYEE_TAX < 0)
THEN (EMPLOYEE_TAX = 0)
/*************************** Employee Tax**********************************/
/*************************** Company Share Pension Tax**********************************/
Complementary_Pension =
XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Complementary Pension Employe
Share','Pay Value')
+ XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Complementary Pension
Employe Share Retro','Pay Value')
Death_Cmp_Pesion = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Death
Complementary Pension','Pay Value')
+ XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Death Complementary Pension
Retro','Pay Value')
X = XXHR_PRINT_DEBUG('EMPLOYEE_SHARE'||TO_CHAR(EMPLOYEE_SHARE))
TAXABLE_MONTHLY = EMPLOYEE_SHARE + Complementary_Pension + Death_Cmp_Pesion
EXEMPTION = XXHR_TAX_EXEMPTION
TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2)
X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL))
IF TAX_POOL <= 0 THEN Tax_Pool = 0
L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool)))
L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool)))
L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool)))
PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT
X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))
X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB))
X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT))
X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT))
PAYMENT = TRUNC((PAYMENT /12),2)
COMPANY_PENSION_TAX = PAYMENT - EMPLOYEE_TAX
If (COMPANY_PENSION_TAX < 0)
THEN (COMPANY_PENSION_TAX = 0)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 46 of 185
/*************************** Company Share Pension Tax**********************************/
/*************************** Company Share Monthly Bonus Tax**********************************/
Monthly_Bonus = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Monthly
Bonus','Pay Value')
+ XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Monthly Bonus Retro','Pay
Value')
X = XXHR_PRINT_DEBUG('EMPLOYEE_SHARE'||TO_CHAR(EMPLOYEE_SHARE))
TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion
EXEMPTION = XXHR_TAX_EXEMPTION
/*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/
TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2)
X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL))
IF TAX_POOL <= 0 THEN Tax_Pool = 0
L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool)))
L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool)))
L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool)))
PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT
X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))
X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB))
X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT))
X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT))
PAYMENT = TRUNC((PAYMENT /12),2)
COMPANY_MONTHLY_BOUNS_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX)
If (COMPANY_MONTHLY_BOUNS_TAX < 0)
THEN (COMPANY_MONTHLY_BOUNS_TAX = 0)
/*************************** Company Share Monthly Bonus Tax**********************************/
/*************************** Company Share Plan Incentives Tax**********************************/
Plan_incentive_non_rec = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Plan
Accomplishment Incentive Non Recurring','Pay Value')
X = XXHR_PRINT_DEBUG('EMPLOYEE_SHARE'||TO_CHAR(EMPLOYEE_SHARE))
TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec
EXEMPTION = XXHR_TAX_EXEMPTION
/*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/
TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2)
X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL))
IF TAX_POOL <= 0 THEN Tax_Pool = 0
L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool)))
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 47 of 185
L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool)))
L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool)))
PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT
X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))
X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB))
X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT))
X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT))
PAYMENT = TRUNC((PAYMENT /12),2)
COMPANY_PLAN_INCEN_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX)
If (COMPANY_PLAN_INCEN_TAX < 0)
THEN (COMPANY_PLAN_INCEN_TAX = 0)
/*************************** Company Share Plan Incentives Tax**********************************/
/*************************** Company Share Transport Tax**********************************/
Tranport_Allowance =
XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Transportation Allowance','Pay
Value')
+ XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Transportation Allowance
Retro','Pay Value')
X = XXHR_PRINT_DEBUG('EMPLOYEE_SHARE'||TO_CHAR(EMPLOYEE_SHARE))
TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec +
Tranport_Allowance
EXEMPTION = XXHR_TAX_EXEMPTION
/*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/
TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2)
X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL))
IF TAX_POOL <= 0 THEN Tax_Pool = 0
L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool)))
L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool)))
L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool)))
PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT
X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))
X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB))
X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT))
X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT))
PAYMENT = TRUNC((PAYMENT /12),2)
COMPANY_TRANSPORT_ALLOWANCE_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX +
COMPANY_MONTHLY_BOUNS_TAX + COMPANY_PLAN_INCEN_TAX)
If (COMPANY_TRANSPORT_ALLOWANCE_TAX < 0)
THEN (COMPANY_TRANSPORT_ALLOWANCE_TAX = 0)
/*************************** Company Share Transport Tax**********************************/
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 48 of 185
/*************************** Company Share Meal Allowance Tax**********************************/
Meal_Allowance = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Meal
Allowance','Pay Value')
X = XXHR_PRINT_DEBUG('Meal_Allowance'||TO_CHAR(Meal_Allowance))
TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec +
Tranport_Allowance + Meal_Allowance
EXEMPTION = XXHR_TAX_EXEMPTION
/*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/
TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2)
X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL))
IF TAX_POOL <= 0 THEN Tax_Pool = 0
L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool)))
L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool)))
L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool)))
PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT
X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))
X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB))
X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT))
X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT))
PAYMENT = TRUNC((PAYMENT /12),2)
COMPANY_MEAL_ALLOWANCE_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX
+ COMPANY_PLAN_INCEN_TAX + COMPANY_TRANSPORT_ALLOWANCE_TAX)
If (COMPANY_MEAL_ALLOWANCE_TAX < 0)
THEN (COMPANY_MEAL_ALLOWANCE_TAX = 0)
/*************************** Company Share Transport Tax**********************************/
IF PAY_PROC_PERIOD_END_DATE > PROD_EXP_INC_START_DATE THEN
(
/*************************** Company Share Production Incentive Tax**********************************/
/*Production_Incentive =
XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Production Incentive','Pay Value')
+ XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Production Incentive Retro','Pay
Value')*/
Production_Incentive = PRODUCTION_INCENTIVE_ASG_ASG_RUN
X = XXHR_PRINT_DEBUG('Production_Incentive'||TO_CHAR(Production_Incentive))
TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec +
Tranport_Allowance + Meal_Allowance + Production_Incentive
EXEMPTION = XXHR_TAX_EXEMPTION
/*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/
TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 49 of 185
X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL))
IF TAX_POOL <= 0 THEN Tax_Pool = 0
L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool)))
L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool)))
L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool)))
PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT
X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))
X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB))
X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT))
X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT))
PAYMENT = TRUNC((PAYMENT /12),2)
COMPANY_Production_Incentive_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX +
COMPANY_PLAN_INCEN_TAX
+ COMPANY_TRANSPORT_ALLOWANCE_TAX + COMPANY_MEAL_ALLOWANCE_TAX)
If (COMPANY_Production_Incentive_TAX < 0)
THEN (COMPANY_Production_Incentive_TAX = 0)
/*************************** Company Share Production Incentive Tax**********************************/
/*************************** Company Share Experience Incentive Tax**********************************/
Experience_Incentive =
XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Experience Incentive','Pay Value')
+ XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Experience Incentive Retro','Pay
Value')
X = XXHR_PRINT_DEBUG('Experience_Incentive'||TO_CHAR(Experience_Incentive))
TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec +
Tranport_Allowance + Meal_Allowance + Production_Incentive + Experience_Incentive
EXEMPTION = XXHR_TAX_EXEMPTION
/*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/
TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2)
X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL))
IF TAX_POOL <= 0 THEN Tax_Pool = 0
L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool)))
L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool)))
L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool)))
PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT
X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))
X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB))
X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT))
X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT))
PAYMENT = TRUNC((PAYMENT /12),2)
COMPANY_Experience_Incentive_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX +
COMPANY_PLAN_INCEN_TAX
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 50 of 185
+ COMPANY_TRANSPORT_ALLOWANCE_TAX + COMPANY_MEAL_ALLOWANCE_TAX + COMPANY_Production_Incentive_TAX)
If (COMPANY_Experience_Incentive_TAX < 0)
THEN (COMPANY_Experience_Incentive_TAX = 0)
/*************************** Company Share Experience Incentive Tax**********************************/
/*************************** Company Meal Allowance 2 Tax**********************************/
Meal_Allowance_2 = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Meal
Allowance 2','Pay Value')
+ XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Meal Allowance 2 Retro','Pay
Value')
X = XXHR_PRINT_DEBUG('Meal_Allowance_2'||TO_CHAR(Meal_Allowance_2))
TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec +
Tranport_Allowance + Meal_Allowance + Production_Incentive + Experience_Incentive + Meal_Allowance_2
EXEMPTION = XXHR_TAX_EXEMPTION
/*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/
TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2)
X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL))
IF TAX_POOL <= 0 THEN Tax_Pool = 0
L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool)))
L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool)))
L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool)))
PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT
X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))
X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB))
X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT))
X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT))
PAYMENT = TRUNC((PAYMENT /12),2)
COMPANY_Meal_Allowance_2_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX +
COMPANY_PLAN_INCEN_TAX
+ COMPANY_TRANSPORT_ALLOWANCE_TAX + COMPANY_MEAL_ALLOWANCE_TAX + COMPANY_Production_Incentive_TAX +
COMPANY_Experience_Incentive_TAX)
If (COMPANY_Meal_Allowance_2_TAX < 0)
THEN (COMPANY_Meal_Allowance_2_TAX = 0)
/*************************** Company Meal Allowance 2 Tax**********************************/
)
)
RETURN EMPLOYEE_TAX,
COMPANY_PENSION_TAX,COMPANY_MONTHLY_BOUNS_TAX,COMPANY_PLAN_INCEN_TAX,COMPANY_TRANSPORT_ALLOWANCE_TAX,

COMPANY_MEAL_ALLOWANCE_TAX,COMPANY_Production_Incentive_TAX,COMPANY_Experience_Incentive_TAX,COMPANY_Meal_Allowance
_2_TAX
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 51 of 185
XXHR_INITIAL_FAMILY_HEALTH_INSURANCE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Initial Family Health Insurance for an Employee.
Element Requirements 1.Tax (R/W)
User Defined Function
Date Author Changes
15-Jult-2010 Kaushik Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED
THEN(
PAYMENT = OVERRIDE_VALUE
)
ELSE
(
PAYMENT = XXHR_INITIAL_HEALTH_INSURANCE
)
RETURN PAYMENT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 52 of 185
XXHR_MERE_BASIC Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 53 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Mere Basic for an Employee.
Element Requirements 1.Tax (R/W)
User Defined Function
Date Author Changes
15-Jult-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS CURRENT_CONTRACT_VALUE_ASG_ITD AS CONTRACT_VALUE
ALIAS PROD_CURRENT_CONTRACT_VALUE_ASG_ITD AS CONTRACT_VALUE_TEMP
/* ====== Variables Value Defaults Begin ====== */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
DEFAULT FOR ASG_ASSIGNMENT_CATEGORY IS ' '
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (Date)
DEFAULT FOR ASG_ASSIGNMENT_CATEGORY IS ' '
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
RATE =0
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
msg = 'contract -' +TO_TEXT(CONTRACT_VALUE)
MSG2 = 'ASG_ASSIGNMENT_CATEGORY' || ASG_ASSIGNMENT_CATEGORY
MSG1 = 'ASG_EMPLOYMENT_CATEGORY' || ASG_EMPLOYMENT_CATEGORY
IF OVERRIDE_VALUE WAS NOT DEFAULTED
THEN(
PAYMENT = OVERRIDE_VALUE
)
ELSE
(
IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '')
THEN
(
/*
X = XXHR_PRINT_DEBUG('CONTRACT_VALUE_TEMP '||TO_CHAR(CONTRACT_VALUE_TEMP))*/
RATE = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_TEMP_EMP_MERE_BASIC','Mere Basic Temp
Value',TO_CHAR(CONTRACT_VALUE_TEMP),PAY_PROC_PERIOD_END_DATE))
PAYMENT = (RATE/100) * CONTRACT_VALUE_TEMP
/*X = XXHR_PRINT_DEBUG('RATE '||TO_CHAR(RATE))
X = XXHR_PRINT_DEBUG('PAYMENT '||TO_CHAR(PAYMENT))*/
)
ELSE
(
PAYMENT = XXHR_MERE_BASIC(PAY_PROC_PERIOD_END_DATE)
)
)
RETURN PAYMENT,msg,MSG1,MSG2
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 54 of 185
ACCUMULATED_JOINED_RAISE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Accumulated Joined Raise for an Employee.
Element Requirements
1.Accumulated Joined Raise (R/W)
User Defined Function
Date Author Changes
17-May-2010 Kaushik D
------------------------------------------------------------------ */
ALIAS JOINED_RAISES_ASG_ITD AS JOINED_RAISES
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR JOINED_AMOUNT is 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF Override_Value WAS NOT DEFAULTED THEN
(
JOINED_AMOUNT = Override_Value
)
JOINED_AMOUNT = JOINED_RAISES
RETURN JOINED_AMOUNT
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 55 of 185
JOINED_RAISES Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate JOINED_RAISE for an Employee.
Element Requirements 1.JOINED_RAISE (R/W)
User Defined Function
Date Author Changes
17-May-2010 Kaushik D Created
------------------------------------------------------------------ */
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR JOINED_AMOUNT is 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR GRADE_MIDOR_EMPLOYEES_GRADE_RATE_MINIMUM IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Percentage,Override_Value
IF Override_Value WAS NOT DEFAULTED THEN
(
JOINED_AMOUNT = Override_Value
RETURN JOINED_AMOUNT
)
ELSE
(
JOINED_AMOUNT = BASIC_SALARY * Percentage/100)
IF Override_Value WAS DEFAULTED
THEN
(
UPD_REC = JOINED_AMOUNT
RETURN UPD_REC,JOINED_AMOUNT
)
RETURN JOINED_AMOUNT
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 56 of 185
NEW_HIRE_SPECIAL_INCREASES Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 57 of 185
/* ----------------------------------------------------------------
THIS FORMULA IS TO CALCULATE NEW HIRE SPECIAL INCREASES INFO FOR AN EMPLOYEE.
ELEMENT REQUIREMENTS
1.NEW HIRE SPECIAL INCREASES INFO (R/W)
USER DEFINED FUNCTION
DATE AUTHOR CHANGES
17-May-2010 Kaushik D CREATED
------------------------------------------------------------------ */
/*********** ALIAS FOR USED BALANCES OR DATABASE ITEMS ********/
ALIAS MERE_BASIC_ASG_RUN AS BASIC_SALARY
/************ DEFAULT VALUES SECTION *************/
DEFAULT FOR SPECIAL_INCREASE_1 IS 0
DEFAULT FOR SPECIAL_INCREASE_2 IS 0
DEFAULT FOR SPECIAL_INCREASE_3 IS 0
DEFAULT FOR SPECIAL_INCREASE_4 IS 0
DEFAULT FOR SPECIAL_INCREASE_5 IS 0
DEFAULT FOR ACCUMULATED_SPECIAL_INCREASES IS 0
DEFAULT FOR NEW_HIRE_ACCUMULATED_SPECIAL_INCREASES IS 0
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '0001/12/31 00:00:00'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '0001/12/31 00:00:00'(DATE)
/*************** INPUTS SECTIONS ***************/
INPUTS ARE SPECIAL_INCREASE_1 ,SPECIAL_INCREASE_2 ,SPECIAL_INCREASE_3,SPECIAL_INCREASE_4
,SPECIAL_INCREASE_5,ACCUMULATED_SPECIAL_INCREASES
IF (PAY_PROC_PERIOD_END_DATE < TO_DATE('3107'||TO_CHAR(PAY_PROC_PERIOD_END_DATE, 'YYYY'),'DDMMYYYY'))
Then
(YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 6)
Else
(YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 5)
IF SPECIAL_INCREASE_1 WAS NOT DEFAULTED THEN NEW_HIRE_SPECIAL_INCREASE_1 = SPECIAL_INCREASE_1
ELSE(
MAX_1 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Maximum',TO_CHAR(YEAR+1),PAY_PROC_PERIOD_END_DA
TE))
MIN_1 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Minimum',TO_CHAR(YEAR+1),PAY_PROC_PERIOD_END_DAT
E))
PER_1 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Percentage',TO_CHAR(YEAR+1),PAY_PROC_PERIOD_END_D
ATE))
NEW_HIRE_SPECIAL_INCREASE_1 = BASIC_SALARY * PER_1/100
IF NEW_HIRE_SPECIAL_INCREASE_1 < MIN_1 THEN
(
NEW_HIRE_SPECIAL_INCREASE_1 = MIN_1
)
ELSE IF NEW_HIRE_SPECIAL_INCREASE_1 > MAX_1 THEN
(
NEW_HIRE_SPECIAL_INCREASE_1 = MAX_1
)
)
IF SPECIAL_INCREASE_2 WAS NOT DEFAULTED THEN NEW_HIRE_SPECIAL_INCREASE_2 = SPECIAL_INCREASE_2
ELSE
(
MAX_2 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Maximum',TO_CHAR(YEAR+2),PAY_PROC_PERIOD_END_DA
TE))
MIN_2 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Minimum',TO_CHAR(YEAR+2),PAY_PROC_PERIOD_END_DAT
E))
PER_2 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Percentage',TO_CHAR(YEAR+2),PAY_PROC_PERIOD_END_D
ATE))
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 58 of 185
NEW_HIRE_SPECIAL_INCREASE_2 = BASIC_SALARY * PER_2/100
IF NEW_HIRE_SPECIAL_INCREASE_2 < MIN_2 THEN
(
NEW_HIRE_SPECIAL_INCREASE_2 = MIN_2
)
ELSE IF NEW_HIRE_SPECIAL_INCREASE_2 > MAX_2 THEN
(
NEW_HIRE_SPECIAL_INCREASE_2 = MAX_2
)
)
IF SPECIAL_INCREASE_3 WAS NOT DEFAULTED THEN NEW_HIRE_SPECIAL_INCREASE_3 = SPECIAL_INCREASE_3
ELSE
(
MAX_3 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Maximum',TO_CHAR(YEAR+3),PAY_PROC_PERIOD_END_DA
TE))
MIN_3 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Minimum',TO_CHAR(YEAR+3),PAY_PROC_PERIOD_END_DAT
E))
PER_3 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Percentage',TO_CHAR(YEAR+3),PAY_PROC_PERIOD_END_D
ATE))
NEW_HIRE_SPECIAL_INCREASE_3 = BASIC_SALARY * PER_3/100
IF NEW_HIRE_SPECIAL_INCREASE_3 < MIN_3 THEN
(
NEW_HIRE_SPECIAL_INCREASE_3 = MIN_3
)
ELSE IF NEW_HIRE_SPECIAL_INCREASE_3 > MAX_3 THEN
(
NEW_HIRE_SPECIAL_INCREASE_3 = MAX_3
)
)
IF SPECIAL_INCREASE_4 WAS NOT DEFAULTED THEN NEW_HIRE_SPECIAL_INCREASE_4 = SPECIAL_INCREASE_4
ELSE
(
MAX_4 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Maximum',TO_CHAR(YEAR+4),PAY_PROC_PERIOD_END_DA
TE))
MIN_4 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Minimum',TO_CHAR(YEAR+4),PAY_PROC_PERIOD_END_DAT
E))
PER_4 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Percentage',TO_CHAR(YEAR+4),PAY_PROC_PERIOD_END_D
ATE))
NEW_HIRE_SPECIAL_INCREASE_4 = BASIC_SALARY * PER_4/100
IF NEW_HIRE_SPECIAL_INCREASE_4 < MIN_4 THEN
(
NEW_HIRE_SPECIAL_INCREASE_4 = MIN_4
)
ELSE IF NEW_HIRE_SPECIAL_INCREASE_4 > MAX_4 THEN
(
NEW_HIRE_SPECIAL_INCREASE_4 = MAX_4
)
)
IF SPECIAL_INCREASE_5 WAS NOT DEFAULTED THEN NEW_HIRE_SPECIAL_INCREASE_5 = SPECIAL_INCREASE_5
ELSE
(
MAX_5 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Maximum',TO_CHAR(YEAR+5),PAY_PROC_PERIOD_END_DA
TE))
MIN_5 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Minimum',TO_CHAR(YEAR+5),PAY_PROC_PERIOD_END_DAT
E))
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 59 of 185
PER_5 =
TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Percentage',TO_CHAR(YEAR+5),PAY_PROC_PERIOD_END_D
ATE))
NEW_HIRE_SPECIAL_INCREASE_5 = BASIC_SALARY * PER_5/100
IF NEW_HIRE_SPECIAL_INCREASE_5 < MIN_5 THEN
(
NEW_HIRE_SPECIAL_INCREASE_5 = MIN_5
)
ELSE IF NEW_HIRE_SPECIAL_INCREASE_5 > MAX_5 THEN
(
NEW_HIRE_SPECIAL_INCREASE_5 = MAX_5
)
)
RETURN
NEW_HIRE_SPECIAL_INCREASE_1,NEW_HIRE_SPECIAL_INCREASE_2,NEW_HIRE_SPECIAL_INCREASE_3,NEW_HIRE_SPECIAL_INCREAS
E_4,
NEW_HIRE_SPECIAL_INCREASE_5
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 60 of 185
OVERRIDE_EARNINGS Formula Name
Description
/* ----------------------------------------------------------------
This Formula is a common formula to be used by all elements that use
only the Override value for an Employee.
Element Requirements
User Defined Function
Date Author Changes
14-June-2009 Arun Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF Override_Value WAS NOT DEFAULTED
THEN
(
AMOUNT = Override_Value
RETURN AMOUNT
)
Else
(
Amount = 0
Return Amount
)
/*====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 61 of 185
XXHR_DAYS_WORKED Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Monthly Days Worked for an Employee.
Element Requirements
1.Days Worked (R/W)
User Defined Function
Date Author Changes
7-Jul-2010 Arun Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Days_Worked is 0
DEFAULT FOR MONTH_DAYS is 0
DEFAULT FOR TOTAL_DAYS is 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE1 is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR EMP_TERM_DATE1 IS '4712/12/31 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Days_Worked
E_DATE = LEAST(PAY_PROC_PERIOD_END_DATE,EMP_TERM_DATE)
S_DATE = GREATEST(PAY_PROC_PERIOD_START_DATE,EMP_HIRE_DATE)
UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave')
LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence')
MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid')
/*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/
UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,-
1)),'Unauthorized Absence')
Total_Days = days_between(E_DATE,S_DATE)+1
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
Total_Days = Total_Days/2
)
Month_Days = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE)
RETURN MONTH_DAYS,Total_Days
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 62 of 185
XXHR_SPECIAL_SHIFT_ALLOWANCE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Special Shift allowance of an Employee.

Element Requirements
1. Special Shift allowance(R/W)
User Defined Function
1. NONE
User Defined Table Used
1. XXHR_SPECIAL_SHIFT_ALLOWANCE
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Override_Value is 0
DEFAULT FOR No_of_Days is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
DEFAULT FOR ASG_GRADE IS '0'
DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS '0'
DEFAULT FOR ORIGINAL_VLAUE IS 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS are Override_Value, No_of_Days
GRADE = GREATEST(ASG_GRADE,GROUP_KF_DELEGATED_GRADE)
Per_Diem = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SHIFT_ALLOWANCE','Value per shift day',GRADE))
Special_Shift_Allowance = Per_Diem * No_of_Days
IF Override_Value was DEFAULTED
THEN
Special_Shift_Allowance = Special_Shift_Allowance
ELSE
Special_Shift_Allowance = Override_Value
ORIGINAL_VLAUE = Special_Shift_Allowance
Return Special_Shift_Allowance,ORIGINAL_VLAUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 63 of 185
XXHR_MEAL_ALLOWANCE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Meal Allowance of an Employee.

Element Requirements
1. Meal Allowance(R/W)
User Defined Function
1. NONE
Globals Used
1. XXHR_MEAL_ALLOWANCE
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Meal_Allowance is 0
DEFAULT FOR Override_Value is 0
DEFAULT FOR No_of_Days is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
DEFAULT FOR ORIGINAL_VLAUE IS 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS are Override_Value,No_of_Days
Meal_Allowance = XXHR_MEAL_ALLOWANCE
IF Override_Value was DEFAULTED
THEN
Meal_Allowance = Meal_Allowance * No_of_Days
ELSE
Meal_Allowance = Override_Value
ORIGINAL_VLAUE = Meal_Allowance
Return Meal_Allowance,ORIGINAL_VLAUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 64 of 185
XXHR_LABOR_INCENTIVE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Labor Incentive of an Employee.

Element Requirements
1. Labor Incentive(R/W)
User Defined Function
1. NONE
Globals Used
1. XXHR_LABOR_INCENTIVE_AMOUNT
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Labor_Incentive is 0
DEFAULT FOR Override_Value is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS are Override_Value
ORIGINAL_VALUE = XXHR_LABOR_INCENTIVE_AMOUNT
IF Override_Value was DEFAULTED
THEN
ORIGINAL_VALUE = ORIGINAL_VALUE
ELSE
ORIGINAL_VALUE = Override_value
Labor_Incentive = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN)
Return Labor_Incentive, ORIGINAL_VALUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 65 of 185
XXHR_CASHIER_ALLOWANCE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Cashier Allowance of an Employee.

Element Requirements
1. Cashier Allowance(R/W)
User Defined Function
1. NONE
Globals Used
1. XXHR_CASHIER_ALLOWANCE
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Cashier_Allowance is 0
DEFAULT FOR Override_Value is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS are Override_Value
Cashier_Allowance = XXHR_CASHIER_ALLOWANCE
IF Override_Value was DEFAULTED
THEN
ORIGINAL_VALUE = Cashier_Allowance
ELSE
ORIGINAL_VALUE = Override_Value
Cashier_Allowance = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN / DAYS_IN_MONTH_ASG_RUN)
Return ORIGINAL_VALUE, Cashier_Allowance
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 66 of 185
XXHR_INFECTION_ALLOWANCE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Infection Allowance of an Employee.

Element Requirements
1. Infection Allowance(R/W)
User Defined Function
1. NONE
Globals Used
1. XXHR_INFECTION_ALLOWANCE
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Infection_Allowance is 0
DEFAULT FOR Override_Value is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS are Override_Value
ORIGINAL_VALUE = XXHR_INFECTION_ALLOWANCE
IF Override_Value was DEFAULTED
THEN
ORIGINAL_VALUE = ORIGINAL_VALUE
ELSE
ORIGINAL_VALUE = Override_Value
Infection_Allowance = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN / DAYS_IN_MONTH_ASG_RUN)
Return Infection_Allowance, ORIGINAL_VALUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 67 of 185
XXHR_EXPERIENCE_INCENTIVE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Experience Incentive of an Employee.

Element Requirements
1. Experience Incentive(R/W)
User Defined Function
1. NONE
User Defined Table Used
1. XXHR_EXPERIENCE_INCENTIVE
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Override_Value is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
DEFAULT FOR ASG_GRADE IS '0'
DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS '0'
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS are Override_Value
IF GROUP_KF_DELEGATED_GRADE WAS DEFAULTED
THEN
(
L_ASG_GRADE = ASG_GRADE
)
ELSE
(
L_ASG_GRADE = GROUP_KF_DELEGATED_GRADE
)
Per_Diem = TO_NUMBER(GET_TABLE_VALUE('XXHR_EXPERIENCE_INCENTIVE','Grade Name',L_ASG_GRADE))
ORIGINAL_VALUE = Per_Diem
IF Override_Value was DEFAULTED
THEN
ORIGINAL_VALUE = ORIGINAL_VALUE
ELSE
ORIGINAL_VALUE = Override_Value
PAYMENT = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN / DAYS_IN_MONTH_ASG_RUN)
Return PAYMENT, ORIGINAL_VALUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 68 of 185
XXHR_MERE_BASIC_PERM Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Monthly Basic Salary of an Employee.
Element Requirements
1.Basic Salary (R/W)
User Defined Function
1. XXFBN_PRORATION
Date Author Changes
7-Jul-2010 Arun Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PERCENTAGE is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
E_DATE = LEAST(PAY_PROC_PERIOD_END_DATE,EMP_TERM_DATE)
S_DATE = GREATEST(PAY_PROC_PERIOD_START_DATE,EMP_HIRE_DATE)
/* Calling the function for getting the prorated value */
IF ASG_EMPLOYMENT_CATEGORY = 'Permanent'
THEN
(Monthly_Salary = XXEPROM_PRORATION('Mere Basic',
'Override Value',
PAY_PROC_PERIOD_START_DATE,
PAY_PROC_PERIOD_END_DATE,
S_DATE,
E_DATE))
RETURN Monthly_Salary
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 69 of 185
XXHR_MERE_BASIC_TEMP Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Monthly Basic Salary of an Employee.
Element Requirements
1.Basic Salary (R/W)
User Defined Function
1. XXFBN_PRORATION
Date Author Changes
7-Jul-2010 Arun Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PERCENTAGE is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
DEFAULT FOR INITIAL_CONTRACT_VALUE_TEMP_AMOUNT_ENTRY_VALUE IS 0
DEFAULT FOR ASG_ASSIGNMENT_CATEGORY IS ' '
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
E_DATE = LEAST(PAY_PROC_PERIOD_END_DATE,EMP_TERM_DATE)
S_DATE = GREATEST(PAY_PROC_PERIOD_START_DATE,EMP_HIRE_DATE)
/* Calling the function for getting the prorated value */
MSG = 'ASG_ASSIGNMENT_CATEGORY' || ASG_ASSIGNMENT_CATEGORY
MSG1 = 'ASG_EMPLOYMENT_CATEGORY' || ASG_EMPLOYMENT_CATEGORY
IF ASG_EMPLOYMENT_CATEGORY = 'XX_03'
THEN
PERCENTAGE = TO_NUMBER(GET_TABLE_VALUE('XXHR_TEMP_EMP_MERE_BASIC','Mere Basic Temp
Value',TO_TEXT(INITIAL_CONTRACT_VALUE_TEMP_AMOUNT_ENTRY_VALUE),PAY_PROC_PERIOD_START_DATE))
/* Monthly_Salary = INITIAL_CONTRACT_VALUE_TEMP_AMOUNT_ENTRY_VALUE * (PERCENTAGE/100)) */
RETURN PERCENTAGE,MSG,MSG1
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 70 of 185
XXHR_MONTHLY_BONUS Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Monthly Bonus of an Employee.

Element Requirements
1. Monthly Bonus(R/W)
User Defined Function
1. NONE
Globals Used
1. XXHR_CASHIER_ALLOWANCE
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAYMENT is 0
DEFAULT FOR Override_Value is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF Override_Value WAS NOT DEFAULTED
THEN
(ORIGINAL_VALUE = Override_Value)
ELSE
(ORIGINAL_VALUE = BASIC_SALARY_ASG_RUN * XXHR_MONTHLY_BONUS_PERCENT/100)
PAYMENT = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN)
RETURN PAYMENT, ORIGINAL_VALUE
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 71 of 185
XXHR_PRODUCTION_INCENTIVE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 72 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Production Incentive of an Employee.

Element Requirements
1. Production Incentive(R/W)
User Defined Function
1. NONE
Globals Used
1. XXHR_PRODUCTION_INCENTIVE_PERCENT
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAYMENT is 0
DEFAULT FOR Override_Value is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
DEFAULT FOR EMPLOYMENT_CATEGORY IS ' '
DEFAULT FOR DISCIPLINARY_WITHHOLD_PRODUCTION_INCENTIVE_PERCENTAGE_ENTRY_VALUE IS 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF Override_Value WAS NOT DEFAULTED
THEN
(ORIGINAL_VALUE = Override_Value)
ELSE
(ORIGINAL_VALUE = BASIC_SALARY_ASG_RUN * (XXHR_PRODUCTION_INCENTIVE_PERCENT)/100)
IF EMPLOYMENT_CATEGORY = 'XX_03'
THEN
(
/*X = XXHR_PRINT_DEBUG('PROD_CURRENT_CONTRACT_VALUE_ASG_ITD'||TO_CHAR(PROD_CURRENT_CONTRACT_VALUE_ASG_ITD))
X = XXHR_PRINT_DEBUG('RAISES_ASG_ITD'||TO_CHAR(RAISES_ASG_ITD))
X = XXHR_PRINT_DEBUG('SPECIAL_INCREASE_TOTAL_ASG_RUN'||TO_CHAR(SPECIAL_INCREASE_TOTAL_ASG_RUN))
X = XXHR_PRINT_DEBUG('PRODUCTION_INCENTIVE_TEMP_ASG_RUN'||TO_CHAR(PRODUCTION_INCENTIVE_TEMP_ASG_RUN))*/
/*ORIGINAL_VALUE = CURRENT_CONTRACT_VALUE_ASG_ITD - PRODUCTION_INCENTIVE_TEMP_ASG_RUN*/
ORIGINAL_VALUE = ( PROD_CURRENT_CONTRACT_VALUE_ASG_ITD + RAISES_ASG_ITD * 3.8 + SPECIAL_INCREASE_TOTAL_ASG_RUN)
- PRODUCTION_INCENTIVE_TEMP_ASG_RUN
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 73 of 185
X = XXHR_PRINT_DEBUG('RPODUCTION ORIGINAL_VALUE'||TO_CHAR(ORIGINAL_VALUE))
PAYMENT = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN)
PAYMENT = PAYMENT * ((100 - DISCIPLINARY_WITHHOLD_PRODUCTION_INCENTIVE_PERCENTAGE_ENTRY_VALUE) /100)
X = XXHR_PRINT_DEBUG('RPODUCTION PAYMENT'||TO_CHAR(PAYMENT))
RETURN PAYMENT, ORIGINAL_VALUE
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 74 of 185
XXHR_REPRSENTATION_ALLOWANCE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Monthly Days Worked for an Employee.
Element Requirements
1.Days Worked (R/W)
User Defined Function
Date Author Changes
7-Jul-2010 Arun Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Override_Value is 0
DEFAULT FOR MONTH_DAYS is 0
DEFAULT FOr HIRING_DAY is 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS '0'
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF Override_Value WAS NOT DEFAULTED
THEN
(ORIGINAL_VALUE = Override_Value)
ELSE
(
IF GROUP_KF_DELEGATED_GRADE WAS DEFAULTED THEN
(
L_ASG_GRADE = ASG_GRADE
)
ELSE
(
L_ASG_GRADE = GROUP_KF_DELEGATED_GRADE
)
ORIGINAL_VALUE = TO_NUMBER(GET_TABLE_VALUE('XXHR_REPRESENTATION_ALLOWANCE_AMOUNT','Grade Name',L_ASG_GRADE)))
PAYMENT = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN)
RETURN PAYMENT, ORIGINAL_VALUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 75 of 185
XXHR_OMRA_DEDUCTION Formula Name
Description
/* ----------------------------------------------------------------
This Formula is developed to calculate OMRA Deduction.
Element Requirements
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Created
------------------------------------------------------------------ */
ALIAS OMRA_PILGRIMAGE_COUNTER_ASG_ITD AS COUNT
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR COUNTER IS 0
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS
COUNTER = COUNT
IF COUNTER > (NUMBER_OF_MONTHS - 1)
THEN
(
STOP = 'Yes'
COUNTER = (-1) * COUNTER
DEDUCTION = 0
RETURN DEDUCTION, COUNTER, STOP
)
ELSE
(
IF RECOVER_LOAN_BALANCE_COUNT > 0
THEN
(
DEDUCTION = AMOUNT * (NUMBER_OF_MONTHS - COUNTER)
COUNTER = (-1) * (NUMBER_OF_MONTHS - COUNTER)
STOP = 'Yes'
)
ELSE
(
COUNTER = 1
DEDUCTION = AMOUNT
RETURN DEDUCTION, COUNTER
)
)
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 76 of 185
XXHR_PERSONAL_LOAN_DEDUCTION_2 Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 77 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15
------------------------------------------------------------------ */
ALIAS PERSONAL_LOAN_2_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
DEFAULT FOR STOP_LOAN IS 'N'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date)
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF AMOUNT WAS DEFAULTED THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Personal Loan 2','Override Value')/NUMBER_OF_MONTHS
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
)
ELSE
(
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 78 of 185
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
)
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 79 of 185
XXHR_PERSONAL_LOAN_DEDUCTION_3 Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 80 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15
------------------------------------------------------------------ */
ALIAS PERSONAL_LOAN_3_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
DEFAULT FOR STOP_LOAN IS 'N'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date)
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF AMOUNT WAS DEFAULTED THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Advance Loans','Override Value')/NUMBER_OF_MONTHS
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
)
ELSE
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 81 of 185
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
)
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 82 of 185
XXHR_PERSONAL_LOAN_DEDUCTION_4 Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 83 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15
------------------------------------------------------------------ */
ALIAS PERSONAL_LOAN_4_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
DEFAULT FOR STOP_LOAN IS 'N'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date)
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF AMOUNT WAS DEFAULTED THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Summer Loans','Override Value')/NUMBER_OF_MONTHS
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
)
ELSE
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 84 of 185
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
)
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 85 of 185
XXHR_PERSONAL_LOAN_DEDUCTION_5 Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 86 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15
------------------------------------------------------------------ */
ALIAS PERSONAL_LOAN_5_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
DEFAULT FOR STOP_LOAN IS 'N'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date)
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF AMOUNT WAS DEFAULTED THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Winter Loans','Override Value')/NUMBER_OF_MONTHS
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
)
ELSE
(
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 87 of 185
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
)
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 88 of 185
HOUSING_LOAN_DEDUCTION Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 89 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
------------------------------------------------------------------ */
ALIAS HOUSING_LOAN_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR Recover_Outstanding_Loan_Balance_Flag_Entry_Value IS 'N'
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(TOTAL_RECOVERABLE_THIS_MONTH = OVERRIDE_VALUE)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = (XXHR_HOUSING_LOAN_PERCENT / 100) * BASIC_SALARY
IF TOTAL_RECOVERABLE_THIS_MONTH > XXHR_HOUSING_LOAN_MAX_VALUE THEN
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_HOUSING_LOAN_MAX_VALUE
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 90 of 185
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 91 of 185
XXHR_PERSONAL_LOAN_DEDUCTION_1 Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 92 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15
------------------------------------------------------------------ */
ALIAS PERSONAL_LOAN_1_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
DEFAULT FOR STOP_LOAN IS 'N'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS,Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date)
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF AMOUNT WAS DEFAULTED THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Personal Loan 1','Override Value')/NUMBER_OF_MONTHS
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
)
ELSE
(
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 93 of 185
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
)
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 94 of 185
SPECIAL_INCREASE_6 Formula Name
Description
/* ----------------------------------------------------------------
THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE.
ELEMENT REQUIREMENTS
1.SPECIAL INCREASE 6 (R/W)
USER DEFINED FUNCTION
DATE AUTHOR CHANGES
19-May-2010 Kaushik D CREATED
------------------------------------------------------------------ */
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH
/* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */
DEFAULT FOR PAYMENT IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR INCREASE_6 IS 0
DEFAULT FOR SPECIAL_INCREASE_6_ASG_ITD IS 0
/* ====== VARIABLES VALUE DEFAULTS ENDS ====== */
/* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '5712/12/01 00:00:00'(DATE)
/* ====== DATABASE ITEMS DEFAULTS ENDS ====== */
/*************** INPUTS SECTIONS ***************/
INPUTS ARE OVERRIDE_VALUE
INCREASE_6 = SPECIAL_INCREASE_6_ASG_ITD
X = XXHR_PRINT_DEBUG ('INCREASE_6'||TO_CHAR(INCREASE_6))
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
PAYMENT = OVERRIDE_VALUE
ORIGINAL_PAYMENT = OVERRIDE_VALUE
)
ELSE
(
IF INCREASE_6 = 0 THEN
(
INCREASE_6 = (JOINED_RAISES_ASG_ITD - JOINED_RAISES_ASG_RUN + BASIC_SALARY_A_ASG_RUN) *
(SPECIAL_INCREASE_ADJUSTMENT_RATE/100)
)
PAYMENT = INCREASE_6
ORIGINAL_PAYMENT = PAYMENT
)
/*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/
PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH)
RETURN PAYMENT, ORIGINAL_PAYMENT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 95 of 185
XXHR_TRAINING_ALLOWANCE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 96 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Training Allowance for an Employee.
Element Requirements
1.
User Defined Function
Date Author Changes
24-Aug-2010 Kaushik D
------------------------------------------------------------------ */
DEFAULT FOR Trip_Nature IS ' '
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4972/01/01 00:00:00' (DATE)
DEFAULT FOR Start_Date IS '1951/01/01 00:00:00' (DATE)
DEFAULT FOR Onward_Transportation_Means IS ' '
DEFAULT FOR Onward_Paid_By IS ' '
DEFAULT FOR Onward_Flight_Amount IS 0
DEFAULT FOR Return_Date IS '4972/01/01 00:00:00' (DATE)
DEFAULT FOR Return_Transportation_Means IS ' '
DEFAULT FOR Return_Paid_By IS ' '
DEFAULT FOR Return_Flight_Amount IS 0
DEFAULT FOR Daily_Allowance IS ' '
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR Onward_Fare IS 0
DEFAULT FOR Return_Fare IS 0
DEFAULT FOR PER_DIEM IS 0
DEFAULT FOR Meals IS 0
DEFAULT FOR Meal_Allowance IS 0
DEFAULT FOR Transportation_Allowance IS 0
DEFAULT FOR Transportation IS 0
DEFAULT FOR DAYS IS 0
INPUTS ARE Trip_Nature(TEXT), Start_Date(DATE), Onward_Transportation_Means(TEXT), Onward_Paid_By (TEXT), Onward_Flight_Amount,
Return_Date(DATE), Return_Transportation_Means(TEXT), Return_Paid_By (TEXT), Return_Flight_Amount, Daily_Allowance(TEXT)
DAYS = DAYS_BETWEEN(Return_Date,Start_Date) + 1
IF (Trip_Nature = 'XX_IM') THEN
(
/*===================== For International Missions =======================================================*/
/*===============Fare =============================*/
IF (Onward_Paid_By = 'XX_EMP') THEN
(Onward_fare = Onward_Flight_Amount)
Else
(Onward_fare = 0)
IF (Return_Paid_By = 'XX_EMP') THEN
Return_Fare = Return_Flight_Amount
Else
(
Return_Fare = 0
)
/*===============PER DIEM=============================*/
PER_DIEM = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE',
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 97 of 185
'XX_IM',ASG_GRADE,PAY_PROC_PERIOD_END_DATE))
IF (Daily_Allowance = 'XX_PER') THEN
(
Allowance = PER_DIEM * DAYS
)
ELSE IF (Daily_Allowance = 'XX_HB') THEN
(
Allowance = PER_DIEM * DAYS * 0.75
)
ELSE IF (Daily_Allowance = 'XX_FB') THEN
(
Allowance = PER_DIEM * DAYS * 0.5
)
ELSE
(
Allowance = PER_DIEM * DAYS * 0.25
)
/*===============MEAL ALLLOWANCE=============================*/
MEALS = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', 'XX_MEALS_INTERNATIONAL',ASG_GRADE,
PAY_PROC_PERIOD_END_DATE))
IF (Daily_Allowance = 'XX_PER') THEN
(
Meal_Allowance = Meals * 3
)
ELSE IF (Daily_Allowance = 'XX_HB') THEN
(
Meal_Allowance = Meals * 2
)
ELSE
(
Meal_Allowance = 0
)
/*===============Internal Transportation allowance=============================*/
TRANSPORTATION = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE',
'XX_INTERNAL_TRANSPORT_INTERNATIONAL',ASG_GRADE, PAY_PROC_PERIOD_END_DATE))
Transportation_Allowance = TRANSPORTATION * DAYS
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 98 of 185
ELSE
(
/*===================== For National Missions / Training =======================================================*/
/*===============Fare =============================*/
IF (Onward_Paid_By = 'XX_EMP') THEN
(
IF (Onward_Transportation_Means = 'XX_FLIGHT')
THEN
(
Onward_Fare = Onward_Flight_Amount
)
Else
(Onward_fare = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', Onward_Transportation_Means
,ASG_GRADE,PAY_PROC_PERIOD_END_DATE)))
)
Else
(Onward_fare = 0)
IF (Return_Paid_By = 'XX_EMP') THEN
(
IF (Return_Transportation_Means = 'XX_FLIGHT')
THEN
(
Return_Fare = Return_Flight_Amount
)
Else
(Return_Fare = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', Return_Transportation_Means
,ASG_GRADE,PAY_PROC_PERIOD_END_DATE)))
)
Else
(
Return_Fare = 0
)
/*===============PER DIEM=============================*/
PER_DIEM = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', 'XX_NM',ASG_GRADE,
PAY_PROC_PERIOD_END_DATE))
IF (Daily_Allowance = 'XX_PER') THEN
(
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 99 of 185
Allowance = PER_DIEM * DAYS
)
ELSE IF (Daily_Allowance = 'XX_HB') THEN
(
Allowance = PER_DIEM * DAYS * 0.75
)
ELSE IF (Daily_Allowance = 'XX_FB') THEN
(
Allowance = PER_DIEM * DAYS * 0.5
)
ELSE
(
Allowance = PER_DIEM * DAYS * 0.25
)
/*===============MEAL ALLLOWANCE=============================*/
MEALS = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', 'XX_MEALS_NATIONAL',ASG_GRADE,
PAY_PROC_PERIOD_END_DATE))
IF (Daily_Allowance = 'XX_PER') THEN
(
Meal_Allowance = Meals * 3
)
ELSE IF (Daily_Allowance = 'XX_HB') THEN
(
Meal_Allowance = Meals * 2
)
ELSE
(
Meal_Allowance = 0
)
/*===============Internal Transportation allowance=============================*/
TRANSPORTATION = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE',
'XX_INTERNAL_TRANSPORT_NATIONAL',ASG_GRADE, PAY_PROC_PERIOD_END_DATE))
Transportation_Allowance = TRANSPORTATION * DAYS
)
TRAINING_ALLOWANCE = Onward_Fare + Return_Fare + Allowance + Meal_Allowance + Transportation_Allowance
Return Training_Allowance
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 100 of 185
XXHR_TOTAL_EARNINGS Formula Name
Description
/*-----------------------------------------------------------
This Formula is to calculate the Employee Total Earnings
Element Requirements
User Defined Function
Date Author Changes
07-Dec-2010 Rajesh Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Amount IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
Amount = PAYROLL_TOTAL_EARNINGS_ASG_PTD
Return Amount
/*====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 101 of 185
XXHR_TOTOAL_DEDUCTIONS Formula Name
Description
/*-----------------------------------------------------------
This Formula is to calculate the Employee Total Deductions
Element Requirements
User Defined Function
Date Author Changes
07-Dec-2010 Rajesh Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Amount IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
Amount = PAYROLL_TOTAL_DEDUCTIONS_ASG_PTD
Return Amount
/*====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 102 of 185
XXHR_NET_PAY Formula Name
Description
/*-----------------------------------------------------------
This Formula is to calculate the Employee Net Pay
Element Requirements
User Defined Function
Date Author Changes
07-Dec-2010 Rajesh Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Amount IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
Amount = PAYROLL_TOTAL_EARNINGS_ASG_PTD - PAYROLL_TOTAL_DEDUCTIONS_ASG_PTD
Return Amount
/*====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 103 of 185
XXHR_PERSONAL_LOAN_DEDUCTION_6 Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 104 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15
------------------------------------------------------------------ */
ALIAS PERSONAL_LOAN_6_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
DEFAULT FOR STOP_LOAN IS 'N'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date)
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF AMOUNT WAS DEFAULTED THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Winter Loans2','Override Value')/NUMBER_OF_MONTHS
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
)
ELSE
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 105 of 185
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
)
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 106 of 185
XXHR_PERSONAL_LOAN_DEDUCTION_7 Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 107 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15
------------------------------------------------------------------ */
ALIAS PERSONAL_LOAN_7_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
DEFAULT FOR STOP_LOAN IS 'N'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date)
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF AMOUNT WAS DEFAULTED THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Summer Loans2','Override Value')/NUMBER_OF_MONTHS
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
)
ELSE
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 108 of 185
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
)
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 109 of 185
XXHR_PERSONAL_LOAN_DEDUCTION_8 Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 110 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15
------------------------------------------------------------------ */
ALIAS PERSONAL_LOAN_8_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
DEFAULT FOR STOP_LOAN IS 'N'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date)
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF AMOUNT WAS DEFAULTED THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Advance Loans2','Override Value')/NUMBER_OF_MONTHS
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
)
ELSE
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 111 of 185
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
)
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 112 of 185
SPECIAL_INCREASE_5 Formula Name
Description
/* ----------------------------------------------------------------
THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE.
ELEMENT REQUIREMENTS
1.SPECIAL INCREASE 5 (R/W)
USER DEFINED FUNCTION
DATE AUTHOR CHANGES
19-May-2010 Kaushik D CREATED
------------------------------------------------------------------ */
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH
/* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */
DEFAULT FOR PAYMENT IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== VARIABLES VALUE DEFAULTS ENDS ====== */
/* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '5712/12/01 00:00:00'(DATE)
/* ====== DATABASE ITEMS DEFAULTS ENDS ====== */
/*************** INPUTS SECTIONS ***************/
INPUTS ARE OVERRIDE_VALUE
INCREASE_5 = SPECIAL_INCREASE_5_ASG_ITD
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
PAYMENT = OVERRIDE_VALUE
ORIGINAL_PAYMENT = OVERRIDE_VALUE
)
ELSE
(
PAYMENT = INCREASE_5
ORIGINAL_PAYMENT = PAYMENT
)
/*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/
PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH)
RETURN PAYMENT, ORIGINAL_PAYMENT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 113 of 185
SPECIAL_INCREASE_1 Formula Name
Description
/* ----------------------------------------------------------------
THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE.
ELEMENT REQUIREMENTS
1.SPECIAL INCREASE 1 (R/W)
USER DEFINED FUNCTION
DATE AUTHOR CHANGES
19-May-2010 Kaushik D CREATED
------------------------------------------------------------------ */
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH
/* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */
DEFAULT FOR PAYMENT IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== VARIABLES VALUE DEFAULTS ENDS ====== */
/* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/01 00:00:00'(DATE)
/* ====== DATABASE ITEMS DEFAULTS ENDS ====== */
/*************** INPUTS SECTIONS ***************/
INPUTS ARE OVERRIDE_VALUE
INCREASE_1 = SPECIAL_INCREASE_1_ASG_ITD
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
PAYMENT = OVERRIDE_VALUE
ORIGINAL_PAYMENT = OVERRIDE_VALUE
)
ELSE
(
PAYMENT = INCREASE_1
ORIGINAL_PAYMENT = PAYMENT
)
/*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/
PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH)
RETURN PAYMENT, ORIGINAL_PAYMENT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 114 of 185
SPECIAL_INCREASE_2 Formula Name
Description
/* ----------------------------------------------------------------
THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE.
ELEMENT REQUIREMENTS
1.SPECIAL INCREASE 2 (R/W)
USER DEFINED FUNCTION
DATE AUTHOR CHANGES
19-May-2010 Kaushik D CREATED
------------------------------------------------------------------ */
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH
/* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */
DEFAULT FOR PAYMENT IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== VARIABLES VALUE DEFAULTS ENDS ====== */
/* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/01 00:00:00'(DATE)
/* ====== DATABASE ITEMS DEFAULTS ENDS ====== */
/*************** INPUTS SECTIONS ***************/
INPUTS ARE OVERRIDE_VALUE
INCREASE_2 = SPECIAL_INCREASE_2_ASG_ITD
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
PAYMENT = OVERRIDE_VALUE
ORIGINAL_PAYMENT = OVERRIDE_VALUE
)
ELSE
(
PAYMENT = INCREASE_2
ORIGINAL_PAYMENT = PAYMENT
)
/*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/
PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH)
RETURN PAYMENT, ORIGINAL_PAYMENT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 115 of 185
SPECIAL_INCREASE_3 Formula Name
Description
/* ----------------------------------------------------------------
THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE.
ELEMENT REQUIREMENTS
1.SPECIAL INCREASE 3 (R/W)
USER DEFINED FUNCTION
DATE AUTHOR CHANGES
19-May-2010 Kaushik D CREATED
------------------------------------------------------------------ */
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH
/* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */
DEFAULT FOR PAYMENT IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== VARIABLES VALUE DEFAULTS ENDS ====== */
/* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/01 00:00:00'(DATE)
/* ====== DATABASE ITEMS DEFAULTS ENDS ====== */
/*************** INPUTS SECTIONS ***************/
INPUTS ARE OVERRIDE_VALUE
INCREASE_3 = SPECIAL_INCREASE_3_ASG_ITD
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
PAYMENT = OVERRIDE_VALUE
ORIGINAL_PAYMENT = OVERRIDE_VALUE
)
ELSE
(
PAYMENT = INCREASE_3
ORIGINAL_PAYMENT = PAYMENT
)
/*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/
PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH)
RETURN PAYMENT, ORIGINAL_PAYMENT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 116 of 185
SPECIAL_INCREASE_4 Formula Name
Description
/* ----------------------------------------------------------------
THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE.
ELEMENT REQUIREMENTS
1.SPECIAL INCREASE 4 (R/W)
USER DEFINED FUNCTION
DATE AUTHOR CHANGES
19-May-2010 Kaushik D CREATED
------------------------------------------------------------------ */
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH
/* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */
DEFAULT FOR PAYMENT IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== VARIABLES VALUE DEFAULTS ENDS ====== */
/* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/01 00:00:00'(DATE)
/* ====== DATABASE ITEMS DEFAULTS ENDS ====== */
/*************** INPUTS SECTIONS ***************/
INPUTS ARE OVERRIDE_VALUE
INCREASE_4 = SPECIAL_INCREASE_4_ASG_ITD
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
PAYMENT = OVERRIDE_VALUE
ORIGINAL_PAYMENT = OVERRIDE_VALUE
)
ELSE
(
PAYMENT = INCREASE_4
ORIGINAL_PAYMENT = PAYMENT
)
/*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/
PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH)
RETURN PAYMENT, ORIGINAL_PAYMENT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 117 of 185
INDUSTRIAL ALLOWANCE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 118 of 185
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR PAYMENT IS 0
DEFAULT FOR SHIFT_DETAILS_SHIFT_DAY_8_HR_ENTRY_VALUE IS '0'
DEFAULT FOR SHIFT_DETAILS_SHIFT_DAY_12_HR_ENTRY_VALUE IS '0'
DEFAULT FOR SHIFT_DETAILS_REGULAR_DAYS_ENTRY_VALUE IS '0'
DEFAULT FOR GROUP_KF_SHIFT_TYPE IS ' '
DEFAULT FOR EMP_HIRE_DATE IS '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(PAYMENT = OVERRIDE_VALUE )
ELSE
(
IF GROUP_KF_SHIFT_TYPE = 'XX_01' THEN
(
DAY = TO_NUMBER(GET_TABLE_VALUE('XXHR_INDUSTRIAL_ALLOWANCE','Shift Type','Day',SYSDATE))
S_DATE = GREATEST(EMP_HIRE_DATE,ADD_MONTHS(PAY_PROC_PERIOD_START_DATE,-1))
E_DATE = GREATEST(EMP_HIRE_DATE,ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -1))
/*X = XXHR_PRINT_DEBUG('S_DATE'||TO_CHAR(S_DATE))
X = XXHR_PRINT_DEBUG('E_DATE'||TO_CHAR(E_DATE))
X = XXHR_PRINT_DEBUG('DAY'||TO_CHAR(DAY))*/
MISSION_LEAVE_DAYS = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Mission Leave Days')
REST_DAYS = xxhr_hours_total('Rest Hours',S_DATE,E_DATE)/8
HOLIDAYS = XXHR_RETURN_HOLIYDAYS(S_DATE,E_DATE)
TOTAL_DAYS = TO_NUMBER(SHIFT_DETAILS_REGULAR_DAYS_ENTRY_VALUE) + MISSION_LEAVE_DAYS + REST_DAYS + HOLIDAYS
/*X = XXHR_PRINT_DEBUG('MISSION_LEAVE_DAYS'||TO_CHAR(MISSION_LEAVE_DAYS))
X = XXHR_PRINT_DEBUG('REST_DAYS'||TO_CHAR(REST_DAYS))
X = XXHR_PRINT_DEBUG('HOLIDAYS'||TO_CHAR(HOLIDAYS))
X = XXHR_PRINT_DEBUG('TOTAL_DAYS'||TO_CHAR(TOTAL_DAYS))*/
PAYMENT = (TOTAL_DAYS * DAY)
/*X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))*/
)
ELSE
(
DAY = TO_NUMBER(GET_TABLE_VALUE('XXHR_INDUSTRIAL_ALLOWANCE','Shift Type','Day',SYSDATE))
SHIFT_8 = TO_NUMBER(GET_TABLE_VALUE('XXHR_INDUSTRIAL_ALLOWANCE','Shift Type','Shift 8 hr',SYSDATE))
SHIFT_12 = TO_NUMBER(GET_TABLE_VALUE('XXHR_INDUSTRIAL_ALLOWANCE','Shift Type','shift 12 hr',SYSDATE))
PAYMENT = (TO_NUMBER(SHIFT_DETAILS_SHIFT_DAY_8_HR_ENTRY_VALUE) * SHIFT_8) +
(TO_NUMBER(SHIFT_DETAILS_SHIFT_DAY_12_HR_ENTRY_VALUE)* SHIFT_12)
+ (TO_NUMBER(SHIFT_DETAILS_REGULAR_DAYS_ENTRY_VALUE) * DAY)
)
)
Original_value = PAYMENT
RETURN PAYMENT,Original_value
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 119 of 185
/* ====== Formula Body Ends ====== */
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 120 of 185
RAMADAN_REWARD Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 121 of 185
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR RAMADAN_REWARD IS 0
DEFAULT FOR INCREMENT IS 0
DEFAULT FOR MAX_INCREMENT IS 0
DEFAULT FOR APPRAISAL_SCORE IS ' '
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR MIN_VAL IS 0
DEFAULT FOR MAX_VAL IS 0
/*DEFAULT FOR GRADE_XXHR_REWARDS_MINIMUM IS ' '
DEFAULT FOR GRADE_XXHR_REWARDS_MAXIMUM IS ' ' */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
E_DATE = LEAST(XXHR_RAMADAN_REWARD_DATE,EMP_TERM_DATE)
S_DATE = GREATEST(ADD_DAYS(ADD_YEARS(XXHR_RAMADAN_REWARD_DATE,-1),1),EMP_HIRE_DATE)
/*X = XXHR_PRINT_DEBUG('E_DATE'||TO_CHAR(E_DATE))
X = XXHR_PRINT_DEBUG('S_DATE'||TO_CHAR(S_DATE))*/
IF (TO_CHAR(PAY_PROC_PERIOD_END_DATE,'YYYY') = '2011') THEN
(
/******************TOTOAL DAYS WORKED************************************/
UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave')
LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence')
MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid')
/*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/
UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,-
1)),'Unauthorized Absence')
/******************TOTOAL DAYS ************************************/
Total_Days = Days_Between(E_DATE, S_DATE) + 1
/******************TOTOAL DAYS ************************************/
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
Total_Days = Total_Days/2
)
DAYS = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE)
/******************TOTOAL DAYS WORKED************************************/
)
ELSE
(
DAYS = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days Worked','Days Worked')
Total_Days = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days in Month','Days')
)
/*X = XXHR_PRINT_DEBUG('DAYS'||TO_CHAR(DAYS))*/
BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG')
BASIC_SALARY =
XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(XXHR_RAMADAN_REWARD_DATE,-1)))
MIN_VAL =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'RAMADAN_REWARD_MIN',XXHR_RAMADAN_R
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 122 of 185
EWARD_DATE))
MAX_VAL =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'RAMADAN_REWARD_MAX',XXHR_RAMADAN_R
EWARD_DATE))
/*X = XXHR_PRINT_DEBUG('MIN_VAL'||TO_CHAR(MIN_VAL))
X = XXHR_PRINT_DEBUG('MAX_VAL'||TO_CHAR(MAX_VAL))
X = XXHR_PRINT_DEBUG('BASIC_SALARY'||TO_CHAR(BASIC_SALARY))*/
MAX_PER_DAY = MAX_VAL/30
BASIC_PER_DAY = BASIC_SALARY/30
IF BASIC_PER_DAY > MAX_PER_DAY THEN
(
BASIC_PER_DAY = MAX_PER_DAY
)
/*X = XXHR_PRINT_DEBUG('BASIC_PER_DAY'||TO_CHAR(BASIC_PER_DAY))*/
RAMADAN_REWARD = BASIC_PER_DAY * XXHR_RAMADAN_No_Of_DAYS * (DAYS/Total_Days)
/*X = XXHR_PRINT_DEBUG('RAMADAN_REWARD'||TO_CHAR(RAMADAN_REWARD))*/
IF RAMADAN_REWARD < MIN_VAL
THEN
(RAMADAN_REWARD = MIN_VAL)
/*IF RAMADAN_REWARD > MAX_VAL
THEN
(RAMADAN_REWARD = MAX_VAL)*/
RETURN RAMADAN_REWARD
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 123 of 185
XXHR_JOINED_RAISES Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 124 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Accumulated Joined Raise for an Employee.
Element Requirements
1.Accumulated Joined Raise (R/W)
User Defined Function
Date Author Changes
17-May-2010 Kaushik D
updated on 04-July-2010 by Ganesh gopal
------------------------------------------------------------------ */
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
ALIAS MERE_BASIC_ASG_RUN AS MERE_BASIC
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR JOINED_AMOUNT is 0
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR RATE IS 0
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
Default for Year is 1951
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE IS '1900/01/01 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF Override_Value WAS NOT DEFAULTED THEN
(
JOINED_AMOUNT = Override_Value
)
ELSE IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN
(
RATE = XXHR_COMBINED_RAISE_PERCENTAGE/100
JOINED_AMOUNT = RATE * MERE_BASIC
)
ELSE
(
IF (PAY_PROC_PERIOD_END_DATE < TO_DATE('3107'||TO_CHAR(PAY_PROC_PERIOD_END_DATE, 'YYYY'),'DDMMYYYY') )
Then
(YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 6)
Else
(YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 5)
JOINED_AMOUNT = XXHR_COMBINED_RAISE(YEAR) * MERE_BASIC/100
)
RETURN JOINED_AMOUNT
/* ====== Formula Body Ends ====== */
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 125 of 185
XXHR_BASIC_SALARY_A Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Basic Salary A for an Employee.
Element Requirements
1.Accumulated Joined Raise (R/W)
User Defined Function
Date Author Changes
15-Jul-2010 Kaushik D Created
21-Sep-2010 Rajesh Added maximum limit check based on
the Payscale
------------------------------------------------------------------ */
ALIAS RAISES_ASG_ITD AS BASIC_A
ALIAS MERE_BASIC_ASG_RUN AS MERE_BASIC
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Begin ====== */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(ORIGINAL_VALUE = OVERRIDE_VALUE )
ELSE
(ORIGINAL_VALUE = BASIC_A + MERE_BASIC)
MAX_VAL = xxhr_basic_a_max_limit(PAY_PROC_PERIOD_END_DATE)
IF ORIGINAL_VALUE > MAX_VAL THEN
(ORIGINAL_VALUE = MAX_VAL)
RETURN ORIGINAL_VALUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 126 of 185
XXHR_BASIC_SALARY Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 127 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Basic Salary A for an Employee.
Element Requirements
1.Accumulated Joined Raise (R/W)
User Defined Function
Date Author Changes
15-Jul-2010 Kaushik D Created
------------------------------------------------------------------ */
ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY
ALIAS DISCIPLINARY_SALARY_DEDUCTION_DAYS_ASG_RUN AS SALARY_PENALTY_DAYS
ALIAS DISCIPLINARY_ANNUAL_INCREMENT_WITHHOLD_ASG_RUN AS ANNUAL_INCREMENT_PENALTY
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
ALIAS PROMOTION_RAISE_ADJUSTMENT_ASG_RUN AS ADJUSTMENT
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Begin ====== */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR DISCIPLINARY_SUSPENSION_TOTAL_SALARY_PERCENTAGE_ENTRY_VALUE IS 100
DEFAULT FOR L_SALARY_PENALTY_DAYS IS 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(ORIGINAL_VALUE = OVERRIDE_VALUE )
ELSE
(
ORIGINAL_VALUE = BASIC_SALARY
)
SUSPENSION = ORIGINAL_VALUE * DISCIPLINARY_SUSPENSION_TOTAL_SALARY_PERCENTAGE_ENTRY_VALUE/100
MSG = 'Suspension Value is ' + TO_TEXT(SUSPENSION)
IF SUSPENSION > 0
THEN
(
IF SALARY_PENALTY_DAYS < 0 THEN
L_SALARY_PENALTY_DAYS = 0
ELSE
L_SALARY_PENALTY_DAYS = SALARY_PENALTY_DAYS
ACTUAL_VALUE = ((SUSPENSION * (DAYS_WORKED - L_SALARY_PENALTY_DAYS) / (DAYS_IN_MONTH_ASG_RUN)) -
ANNUAL_INCREMENT_PENALTY - ADJUSTMENT))
ELSE
(ACTUAL_VALUE = ORIGINAL_VALUE * (DAYS_WORKED /DAYS_IN_MONTH_ASG_RUN))
RETURN ORIGINAL_VALUE , ACTUAL_VALUE, MSG
/* ====== Formula Body Ends ====== */
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 128 of 185
CURRENT CONTRACT TEMP Formula Name
Description
/* ------------------------------------------------------------------------
NAME : CURRENT_CONTRACT_TEMP
This formula calculates the current cotract value
AUTHOR : KAUSHIK DEVANATHAN
VERSION 1ADATE : 24-Aug-2010
--------------------------------------------------------------------*/
Default for PAY_PROC_PERIOD_END_DATE is '1951/01/01 00:00:00' (Date)
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '')
THEN
(
PAYMENT = CURRENT_CONTRACT_VALUE_ASG_ITD
)
ELSE
(
PAYMENT = 0
)
RETURN PAYMENT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 129 of 185
SHIFT ALLOWANCE Formula Name
Description
DEFAULT FOR SHIFT_DETAILS_SHIFT_DAY_8_HR_ENTRY_VALUE IS '0'
DEFAULT FOR SHIFT_DETAILS_SHIFT_DAY_12_HR_ENTRY_VALUE IS '0'
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (Date)
DEFAULT FOR ORIGINAL_VLAUE IS 0
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '')
THEN
(
DIEM_8 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SHIFT_ALLOWANCE_AMOUNT','Valu Per Shift Temp','8'))
DIEM_12 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SHIFT_ALLOWANCE_AMOUNT','Valu Per Shift Temp','12')))
ELSE
(
DIEM_8 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SHIFT_ALLOWANCE_AMOUNT','Valu Per Shift Perm','8'))
DIEM_12 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SHIFT_ALLOWANCE_AMOUNT','Valu Per Shift Perm','12')))
TOTAL_PERDIEUM = (DIEM_8 * to_number(SHIFT_DETAILS_SHIFT_DAY_8_HR_ENTRY_VALUE)) + (DIEM_12 *
to_number(SHIFT_DETAILS_SHIFT_DAY_12_HR_ENTRY_VALUE))
ORIGINAL_VLAUE = TOTAL_PERDIEUM
RETURN TOTAL_PERDIEUM,ORIGINAL_VLAUE
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 130 of 185
SPECIAL_SHIFT_ALLOWANCE Formula Name
Description
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (Date)
INPUTS ARE No_of_Days
DIEM = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SHIFT_ALLOWANCE','Value Per Shift Day',ASG_GRADE))
TOTAL_PERDIEUM = (DIEM * No_of_Days)
RETURN TOTAL_PERDIEUM
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 131 of 185
XXHR_WORK_NATURE_ALLOWANCE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 132 of 185
/*----------------------------------------------------------------
This Formula is to Calculate Work Nature allowance for an Employee.
Element Requirements (R/W)
User Defined Function
Date Author Changes
17-Jul-2010 Sudhakar Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR PER_MARITAL_STATUS is 'X'
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (Date)
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR ASG_GROUP IS ' '
DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
ORIGINAL_VALUE = OVERRIDE_VALUE
)
ELSE
(
GRADE = GREATEST(ASG_GRADE,GROUP_KF_DELEGATED_GRADE)
IF TO_NUMBER(GRADE) >= XXHR_WORK_NATURE_MAX_GRADE_PAYMENT THEN
(
GRADE = ASG_GRADE
)
IF TO_NUMBER(GRADE) < XXHR_WORK_NATURE_MAX_GRADE_PAYMENT THEN
(
SPINAL_POINT_1 = XXHR_GET_GRADE_STEP1(GRADE,PAY_PROC_PERIOD_END_DATE)
POSITION_FUNCTION = XXHR_POSITION_FUNCTION(PAY_PROC_PERIOD_END_DATE)
RATE =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_WORK_NATURE_ALLOWANCE','Category',POSITION_FUNCTION,PAY_PROC_PERI
OD_END_DATE))
IF RATE = 0 THEN
(
RATE =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_WORK_NATURE_ALLOWANCE','Category',XXHR_WORK_NATURE_DEFAULT_POSF
UNC,PAY_PROC_PERIOD_END_DATE))
ORIGINAL_VALUE = (RATE /100)* SPINAL_POINT_1
)
ELSE
(
ORIGINAL_VALUE = (RATE /100)* SPINAL_POINT_1
)
PAYMENT = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN / DAYS_IN_MONTH_ASG_RUN)
)
ELSE
(
PAYMENT = 0
ORIGINAL_VALUE =0
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 133 of 185
)
RETURN PAYMENT, ORIGINAL_VALUE
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 134 of 185
XXHR_PLAN_ACCOMP_INCEN_REC Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Plan accomplishment incentive recurring for an Employee.
Element Requirements (R/W)
User Defined Function
Date Author Changes
17-Jul-2010 Sudhakar Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR PER_MARITAL_STATUS is 'X'
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (Date)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
ALIAS BASIC_SALARY_ASG_PTD as Basic_Salary
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED
THEN
(
PAYMENT = OVERRIDE_VALUE
)
ELSE
(
PAYMENT = ( XXHR_PLAN_AACOMP_INCEN_REC/100)* Basic_Salary
)
RETURN PAYMENT
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 135 of 185
XXHR_PLAN_ACCOMP_INCEN_NON_REC Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 136 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Plan accomplishment incentive non-recurring for an Employee.
Element Requirements (R/W)
User Defined Function
Date Author Changes
17-Jul-2010 Sudhakar Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR PER_MARITAL_STATUS is 'X'
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR DAYS_WORKED_1 IS 0
DEFAULT FOR DAYS_WORKED_2 IS 0
DEFAULT FOR DAYS_IN_MONTH_1 IS 0
DEFAULT FOR DAYS_IN_MONTH_2 IS 0
DEFAULT FOR Pay_vlaue IS 0
DEFAULT FOR Pay_vlaue_1 IS 0
DEFAULT FOR Pay_vlaue_2 IS 0
DEFAULT FOR Pay_vlaue_3 IS 0
DEFAULT FOR GROUP_KF_SHIFT_TYPE IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
ALIAS BASIC_SALARY_ASG_PTD as Basic_Salary
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED
THEN
(
PAYMENT = OVERRIDE_VALUE
Pay_vlaue = OVERRIDE_VALUE
)
ELSE
(
/*
SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG')
LAST_DATE_2 = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -2))
SALARY_2 = XXHR_ITD_BALANCE_ON_A_DATE(SALARY_BALANCE_ID,LAST_DATE_2)
LAST_DATE_1 = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -1))
SALARY_1 = XXHR_ITD_BALANCE_ON_A_DATE(SALARY_BALANCE_ID,LAST_DATE_1)
LAST_DATE_0 = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, 0))
SALARY_0 = XXHR_ITD_BALANCE_ON_A_DATE(SALARY_BALANCE_ID,LAST_DATE_0)
PAYMENT = ((XXHR_PLAN_ACCOMP_INCEN_NON_REC/100)* Basic_Salary ) + ((XXHR_PLAN_ACCOMP_INCEN_NON_REC/100)* SALARY_1 )
+ ((XXHR_PLAN_ACCOMP_INCEN_NON_REC/100)* SALARY_2 )
*/
/*DAYS_WORKED_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('DAYS_WORKED','Assignment Processing Period To Date','EG')
DAYS_IN_MONTH_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('DAYS_IN_MONTH','Assignment Processing Period To Date','EG')
DLAST_DATE_2 = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -2))
DAYS_WORKED_2 = XXHR_ITD_BALANCE_ON_A_DATE(DAYS_WORKED_BALANCE_ID,DLAST_DATE_2)
DAYS_IN_MONTH_2 = XXHR_ITD_BALANCE_ON_A_DATE(DAYS_IN_MONTH_BALANCE_ID,DLAST_DATE_2)
DLAST_DATE_1 = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -1))
DAYS_WORKED_1 = XXHR_ITD_BALANCE_ON_A_DATE(DAYS_WORKED_BALANCE_ID,DLAST_DATE_1)
DAYS_IN_MONTH_1 = XXHR_ITD_BALANCE_ON_A_DATE(DAYS_IN_MONTH_BALANCE_ID,DLAST_DATE_1)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 137 of 185
Pay_vlaue = PAYMENT * ((DAYS_WORKED_ASG_RUN + DAYS_WORKED_1 + DAYS_WORKED_2)/
(DAYS_IN_MONTH_ASG_RUN + DAYS_IN_MONTH_1 + DAYS_IN_MONTH_2)) */
PAYMENT = ((XXHR_PLAN_ACCOMP_INCEN_NON_REC/300)* Basic_Salary )
/* First Month */
START_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_START_DATE, -3)
END_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -3)
E_DATE = LEAST(END_DATE_1,EMP_TERM_DATE)
S_DATE = GREATEST(START_DATE_1,EMP_HIRE_DATE)
PENALITY = XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Salary Deduction','Salary Deduction Days',S_DATE,E_DATE) +
XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Withhold Production Incentive','Percentage',S_DATE,E_DATE)
IF PENALITY = 0 THEN (
ANNUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Annual Leave')
CASUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Casual Leave')
LABOR_LEAVE_PAID = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid')
LONG_UNPAID_ABSENCE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence')
PILGRIM_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Pilgrim Leave')
SICK_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Sick Leave')
UNAUTHORIZED_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')
UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave')
Total_Days = days_between(E_DATE,S_DATE)+1
IF Total_Days =0 THEN
(
Pay_vlaue_1 = 0
)
ELSE
(
Plan_Acc_Days = Total_Days - (ANNUAL_LEAVE + CASUAL_LEAVE + LABOR_LEAVE_PAID + LONG_UNPAID_ABSENCE + PILGRIM_LEAVE +
SICK_LEAVE + UNAUTHORIZED_LEAVE + UNPAID_LEAVE )
Pay_vlaue_1 = PAYMENT * (Plan_Acc_Days/Total_Days)
)
)
ELSE(
Pay_vlaue_1 = 0
)
/* Second Month*/
START_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_START_DATE, -2)
END_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -2)
E_DATE = LEAST(END_DATE_1,EMP_TERM_DATE)
S_DATE = GREATEST(START_DATE_1,EMP_HIRE_DATE)
PENALITY = XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Salary Deduction','Salary Deduction Days',S_DATE,E_DATE) +
XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Withhold Production Incentive','Percentage',S_DATE,E_DATE)
IF PENALITY = 0 THEN (
ANNUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Annual Leave')
CASUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Casual Leave')
LABOR_LEAVE_PAID = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid')
LONG_UNPAID_ABSENCE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence')
PILGRIM_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Pilgrim Leave')
SICK_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Sick Leave')
UNAUTHORIZED_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')
UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave')
Total_Days = days_between(E_DATE,S_DATE)+1
IF Total_Days =0 THEN
(
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 138 of 185
Pay_vlaue_2 = 0
)
ELSE
(
Plan_Acc_Days = Total_Days - (ANNUAL_LEAVE + CASUAL_LEAVE + LABOR_LEAVE_PAID + LONG_UNPAID_ABSENCE + PILGRIM_LEAVE +
SICK_LEAVE + UNAUTHORIZED_LEAVE + UNPAID_LEAVE )
Pay_vlaue_2 = PAYMENT * (Plan_Acc_Days/Total_Days)
)
)
ELSE(
Pay_vlaue_2 = 0
)
/* Third Month*/
START_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_START_DATE, -1)
END_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -1)
E_DATE = LEAST(END_DATE_1,EMP_TERM_DATE)
S_DATE = GREATEST(START_DATE_1,EMP_HIRE_DATE)
PENALITY = XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Salary Deduction','Salary Deduction Days',S_DATE,E_DATE) +
XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Withhold Production Incentive','Percentage',S_DATE,E_DATE)
IF PENALITY = 0 THEN (
ANNUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Annual Leave')
CASUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Casual Leave')
LABOR_LEAVE_PAID = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid')
LONG_UNPAID_ABSENCE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence')
PILGRIM_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Pilgrim Leave')
SICK_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Sick Leave')
UNAUTHORIZED_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')
UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave')
Total_Days = days_between(E_DATE,S_DATE)+1
IF Total_Days =0 THEN
(
Pay_vlaue_3 = 0
)
ELSE
(
Plan_Acc_Days = Total_Days - (ANNUAL_LEAVE + CASUAL_LEAVE + LABOR_LEAVE_PAID + LONG_UNPAID_ABSENCE + PILGRIM_LEAVE +
SICK_LEAVE + UNAUTHORIZED_LEAVE + UNPAID_LEAVE )
Pay_vlaue_3 = PAYMENT * (Plan_Acc_Days/Total_Days)
)
)
ELSE(
Pay_vlaue_3 = 0
)
Pay_vlaue = Pay_vlaue_1 + Pay_vlaue_2 + Pay_vlaue_3
)
RETURN PAYMENT , Pay_vlaue
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 139 of 185
XXHR_OVERTIME Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 140 of 185
/* ------------------------------------------------------------------------
NAME : XXHR_OVERTIME
This formula calculates the Overtime and Non_Cash Hours(Eliminated Hours)
AUTHOR : KAUSHIK DEVANATHAN
VERSION 1ADATE : 24-Aug-2010
--------------------------------------------------------------------*/
Alias SHIFT_DETAILS_PAY_CASH_ENTRY_VALUE AS PAY_CASH
Alias SHIFT_DETAILS_OVERTIME_HOURS_LESS_THAN_EQUAL_TO_7_ENTRY_VALUE AS CATEGORY_A_HOURS
Alias SHIFT_DETAILS_OVERTIME_HOURS__GREATER_THAN_7_ENTRY_VALUE AS CATEGORY_B_HOURS
Alias SHIFT_DETAILS_HOLIDAYS_WORKED_ENTRY_VALUE AS CATEGORY_C_HOURS
Alias SHIFT_DETAILS_REST_HOURS_ENTRY_VALUE AS CONVERT_REST_HOURS
Alias SHIFT_DETAILS_HOLIDAYS_NOT_WORKED_ENTRY_VALUE AS HOL_REST_HOURS
Alias BASIC_SALARY_ASG_PTD as BAISC_SALARY
Default for PAY_PROC_PERIOD_END_DATE is '1951/01/01 00:00:00' (Date)
Default for Category_A_Hours is 0
Default for Category_B_Hours is 0
Default for Category_C_Hours is 0
Default for PAY_CASH IS 'N'
Default for Rest_Hours is 0
Default for CONVERT_REST_HOURS IS 0
Default for HOL_REST_HOURS IS 0
A_Hours = Category_A_Hours
B_Hours = Category_B_Hours
C_Hours = Category_C_Hours
Eliminated_Hours = 0
Rest_Hours = 0
RATE_1 =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_OVERTIME_ALLOWANCE','Details','CATEGORY_A',PAY_PROC_PERIOD_END_DAT
E))
RATE_2 =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_OVERTIME_ALLOWANCE','Details','CATEGORY_B',PAY_PROC_PERIOD_END_DAT
E))
RATE_3 =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_OVERTIME_ALLOWANCE','Details','CATEGORY_C',PAY_PROC_PERIOD_END_DAT
E))
OVERTIME_HOURS = (RATE_1 * A_HOURS) + (RATE_2 * B_HOURS) + (RATE_3 * C_HOURS)
/************************************Condition for Pay_cash = N***********************************/
If (PAY_CASH = 'N') then
(
IF CONVERT_REST_HOURS was defaulted then
(Eliminated_Hours = Overtime_hours)

else
(Eliminated_Hours = LEAST(CONVERT_REST_HOURS,Overtime_hours))
Final_Eliminated_Hours = Overtime_hours - Eliminated_Hours
IF Final_Eliminated_Hours < 0 THEN
(
Final_Eliminated_Hours = 0
)
Overtime_value = 0
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 141 of 185
/********************************************Condition for Pay_Cash = Y********************************************************/
ELSE
(
IF OVERTIME_HOURS > XXHR_OVERTIME_MAX_HOURS
THEN
(
Final_Eliminated_Hours = OVERTIME_HOURS - XXHR_OVERTIME_MAX_HOURS
OVERTIME_HOURS = XXHR_OVERTIME_MAX_HOURS
)
ELSE
(
OVERTIME_HOURS = OVERTIME_HOURS
Final_Eliminated_Hours = 0
)
IF CONVERT_REST_HOURS was defaulted then
(Eliminated_Hours = 0)

else
(Eliminated_Hours = CONVERT_REST_HOURS)
/*START_DATE = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, 0))
SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG')
SALARY = XXHR_ITD_BALANCE_ON_A_DATE(SALARY_BALANCE_ID,START_DATE)*/
SALARY_PER_HOUR = BAISC_SALARY/XXHR_OVERTIME_TOTAL_HOURS
Overtime_Value = (SALARY_PER_HOUR * (OVERTIME_HOURS - Eliminated_Hours))
Eliminated_Hours = TRUNC(Eliminated_Hours)
Rest_Hours = Eliminated_Hours
)
Rest_Hours = Rest_Hours + HOL_REST_HOURS
Return Overtime_Value, Eliminated_Hours, Rest_Hours , OVERTIME_HOURS
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 142 of 185
XXHR_STOP_PAY Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Stop Pay for an Employee.
Element Requirements
1.Accumulated Joined Raise (R/W)
User Defined Function
Date Author Changes
25-Aug-2010 Kaushik D Initial
------------------------------------------------------------------ */
ALIAS RELEASE_PAYMENT_ASG_ITD AS RELEASE_PAYMENT
/* ====== Variables Value Defaults Begin ====== */
Default for STOP_PAY is 'N'
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE STOP_PAY
IF STOP_PAY = 'Y'
THEN
(
WITHHOLD = TOTAL_PAYMENTS_ASG_RUN
Balance_Payment = 0
)
ELSE
(
WITHHOLD = 0
Balance_Payment = RELEASE_PAYMENT
STOP = 'Yes'
)
Return Withhold, Balance_Payment, STOP
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 143 of 185
XXHR_ADJUST_NEGATIVE_PAYMENT Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Adjust Negative Payment for an Employee.
Element Requirements
1.Adjust Negative Payment
User Defined Function
Date Author Changes
26-Aug-2010 Kaushik D
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR ADJUST_NEGATIVE_PAY IS 0
DEFAULT FOR RECOVER_IN_NEXT_PAY_PERIOD IS 0
DEFAULT FOR SETTLEMENT_DUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR EMP_TERM_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
IF (TOTAL_PAYMENTS_ASG_RUN < 0)
THEN
(
IF (TO_CHAR(EMP_TERM_DATE,'MMYYYY') = TO_CHAR(PAY_PROC_PERIOD_END_DATE,'MMYYYY'))
THEN
(
ADJUST_NEGATIVE_PAY = 0
RECOVER_IN_NEXT_PAY_PERIOD = 0
SETTLEMENT_DUE = (-1) * TOTAL_PAYMENTS_ASG_RUN
Return SETTLEMENT_DUE
)
ELSE
(
ADJUST_NEGATIVE_PAY = (-1) * TOTAL_PAYMENTS_ASG_RUN
RECOVER_IN_NEXT_PAY_PERIOD = ADJUST_NEGATIVE_PAY
Return ADJUST_NEGATIVE_PAY, RECOVER_IN_NEXT_PAY_PERIOD
)
)
ELSE
(
ADJUST_NEGATIVE_PAY = 0
RECOVER_IN_NEXT_PAY_PERIOD = 0
Return ADJUST_NEGATIVE_PAY, RECOVER_IN_NEXT_PAY_PERIOD
)
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 144 of 185
XXHR_RECOVER_PREVIOUS_PAYMENT_OUTSTANDING Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Recover Previous Payment Outstanding for an Employee.
Element Requirements
1.Recover Previous Payment Outstanding
User Defined Function
Date Author Changes
26-Aug-2010 Kaushik D
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR RECOVER_PREVIOUS_DUES IS 0
RECOVER_PREVIOUS_DUES = RECOVER_PREVIOUS_OUTSTANDING_ASG_ITD
Return RECOVER_PREVIOUS_DUES
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 145 of 185
XXHR_DAYS_IN_MONTH Formula Name
Description
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1951/01/31 00:00:00' (DATE)
Days_in_Month = Days_Between(PAY_PROC_PERIOD_END_DATE, PAY_PROC_PERIOD_START_DATE) + 1
Return Days_in_Month
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 146 of 185
XXHR_FITR_REWARD Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 147 of 185
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR FITR_REWARD IS 0
DEFAULT FOR INCREMENT IS 0
DEFAULT FOR MAX_INCREMENT IS 0
DEFAULT FOR APPRAISAL_SCORE IS ' '
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR MIN_VAL IS 0
DEFAULT FOR MAX_VAL IS 0
/*DEFAULT FOR GRADE_XXHR_REWARDS_MINIMUM IS ' '
DEFAULT FOR GRADE_XXHR_REWARDS_MAXIMUM IS ' ' */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
/*E_DATE = LEAST(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1),EMP_TERM_DATE)
S_DATE = GREATEST(ADD_YEARS(PAY_PROC_PERIOD_START_DATE,-1),EMP_HIRE_DATE)*/
E_DATE = LEAST(XHR_FITR_REWARD_DATE,EMP_TERM_DATE)
S_DATE = GREATEST(ADD_DAYS(ADD_YEARS(XHR_FITR_REWARD_DATE,-1),1),EMP_HIRE_DATE)
IF (TO_CHAR(PAY_PROC_PERIOD_END_DATE,'YYYY') = '2011') THEN
(
/******************TOTOAL DAYS WORKED************************************/
UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave')
LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence')
MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid')
/*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/
UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,-
1)),'Unauthorized Absence')
/******************TOTOAL DAYS ************************************/
Total_Days = Days_Between(E_DATE, S_DATE) + 1
/******************TOTOAL DAYS ************************************/
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
Total_Days = Total_Days/2
)
DAYS = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE)
/******************TOTOAL DAYS WORKED************************************/
)
ELSE
(
DAYS = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days Worked','Days Worked')
Total_Days = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days in Month','Days')
)
BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG')
BASIC_SALARY =
XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(XHR_FITR_REWARD_DATE,-1)))
MIN_VAL =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'FITR_REWARD_MIN',XHR_FITR_REWARD_DAT
E))
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 148 of 185
MAX_VAL =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'FITR_REWARD_MAX',XHR_FITR_REWARD_DAT
E))
MAX_PER_DAY = MAX_VAL/30
BASIC_PER_DAY = BASIC_SALARY/30
IF BASIC_PER_DAY > MAX_PER_DAY THEN
(
BASIC_PER_DAY = MAX_PER_DAY
)
FITR_REWARD = BASIC_PER_DAY * XXHR_FITR_REWARD * (DAYS/Total_Days)
/*X = XXHR_PRINT_DEBUG('FITR MIN_VAL'||TO_CHAR(MIN_VAL))
X = XXHR_PRINT_DEBUG('FITR MAX_VAL'||TO_CHAR(MAX_VAL))*/
IF FITR_REWARD < MIN_VAL
THEN
(FITR_REWARD = MIN_VAL)
/*IF FITR_REWARD > MAX_VAL
THEN
(FITR_REWARD = MAX_VAL)*/
RETURN FITR_REWARD
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 149 of 185
XXHR_ADHHA_REWARD Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 150 of 185
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR ADHHA_REWARD IS 0
DEFAULT FOR INCREMENT IS 0
DEFAULT FOR MAX_INCREMENT IS 0
DEFAULT FOR APPRAISAL_SCORE IS ' '
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR MIN_VAL IS 0
DEFAULT FOR MAX_VAL IS 0
/*DEFAULT FOR GRADE_XXHR_REWARDS_MINIMUM IS ' '
DEFAULT FOR GRADE_XXHR_REWARDS_MAXIMUM IS ' ' */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
/*E_DATE = LEAST(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1),EMP_TERM_DATE)
S_DATE = GREATEST(ADD_YEARS(PAY_PROC_PERIOD_START_DATE,-1),EMP_HIRE_DATE)*/
E_DATE = LEAST(XXHR_ADHA_REWARD_DATE,EMP_TERM_DATE)
S_DATE = GREATEST(ADD_DAYS(ADD_YEARS(XXHR_ADHA_REWARD_DATE,-1),1),EMP_HIRE_DATE)
IF (TO_CHAR(PAY_PROC_PERIOD_END_DATE,'YYYY') = '2011') THEN
(
/******************TOTOAL DAYS WORKED************************************/
UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave')
LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence')
MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid')
/*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/
UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,-
1)),'Unauthorized Absence')
/******************TOTOAL DAYS ************************************/
Total_Days = Days_Between(E_DATE, S_DATE) + 1
/******************TOTOAL DAYS ************************************/
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
Total_Days = Total_Days/2
)
DAYS = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE)
/******************TOTOAL DAYS WORKED************************************/
)
ELSE
(
DAYS = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days Worked','Days Worked')
Total_Days = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days in Month','Days')
)
BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG')
BASIC_SALARY =
XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(XXHR_ADHA_REWARD_DATE,-1)))
MAX_VAL =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'ADHHA_REWARD_MAX',XXHR_ADHA_REWARD
_DATE))
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 151 of 185
MIN_VAL =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'ADHHA_REWARD_MIN',XXHR_ADHA_REWARD_
DATE))
MAX_PER_DAY = MAX_VAL/30
BASIC_PER_DAY = BASIC_SALARY/30
IF BASIC_PER_DAY > MAX_PER_DAY THEN
(
BASIC_PER_DAY = MAX_PER_DAY
)
ADHHA_REWARD = BASIC_PER_DAY * XXHR_ADHHA_REWARD * (DAYS/Total_Days)
/*X = XXHR_PRINT_DEBUG(' ADHHA MIN_VAL'||TO_CHAR(MIN_VAL))*/
IF ADHHA_REWARD < MIN_VAL
THEN
(ADHHA_REWARD = MIN_VAL)
/*X = XXHR_PRINT_DEBUG('ADHHA MAX_VAL'||TO_CHAR(MAX_VAL))*/
/*IF ADHHA_REWARD > MAX_VAL
THEN
(ADHHA_REWARD = MAX_VAL)*/
RETURN ADHHA_REWARD
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 152 of 185
XXHR_PETROLEUM_REWARD Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 153 of 185
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR PETROLEUM_REWARD IS 0
DEFAULT FOR INCREMENT IS 0
DEFAULT FOR MAX_INCREMENT IS 0
DEFAULT FOR APPRAISAL_SCORE IS ' '
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR MIN_VAL IS 0
DEFAULT FOR MAX_VAL IS 0
/*DEFAULT FOR GRADE_XXHR_REWARDS_MINIMUM IS ' '
DEFAULT FOR GRADE_XXHR_REWARDS_MAXIMUM IS ' ' */
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
/*E_DATE = LEAST(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1),EMP_TERM_DATE)
S_DATE = GREATEST(ADD_YEARS(PAY_PROC_PERIOD_START_DATE,-1),EMP_HIRE_DATE)*/
E_DATE = LEAST(XXHR_PETROLEUM_REWARD_DATE,EMP_TERM_DATE)
S_DATE = GREATEST(ADD_DAYS(ADD_YEARS(XXHR_PETROLEUM_REWARD_DATE,-1),1),EMP_HIRE_DATE)
IF (TO_CHAR(PAY_PROC_PERIOD_END_DATE,'YYYY') = '2011') THEN
(
/******************TOTOAL DAYS WORKED************************************/
UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave')
LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence')
MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid')
/*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/
UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,-
1)),'Unauthorized Absence')
/******************TOTOAL DAYS ************************************/
Total_Days = Days_Between(E_DATE, S_DATE) + 1
/******************TOTOAL DAYS ************************************/
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
Total_Days = Total_Days/2
)
DAYS = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE)
/******************TOTOAL DAYS WORKED************************************/
)
ELSE
(
DAYS = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days Worked','Days Worked')
Total_Days = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days in Month','Days')
)
BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG')
BASIC_SALARY =
XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(XXHR_PETROLEUM_REWARD_DATE,-1)))
MIN_VAL =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'PETROLEUM_REWARD_MIN',XXHR_PETROLEU
M_REWARD_DATE))
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 154 of 185
MAX_VAL =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'PETROLEUM_REWARD_MAX',XXHR_PETROLE
UM_REWARD_DATE))
MAX_PER_DAY = MAX_VAL/30
BASIC_PER_DAY = BASIC_SALARY/30
IF BASIC_PER_DAY > MAX_PER_DAY THEN
(
BASIC_PER_DAY = MAX_PER_DAY
)
PETROLEUM_REWARD = BASIC_PER_DAY * XXHR_PETROLEUM_REWARD * (DAYS/Total_Days)
/*
X = XXHR_PRINT_DEBUG('PETROLEUM MIN_VAL'||TO_CHAR(MIN_VAL))
X = XXHR_PRINT_DEBUG('PETROLEUM MAX_VAL'||TO_CHAR(MAX_VAL))*/
IF PETROLEUM_REWARD < MIN_VAL
THEN
(PETROLEUM_REWARD = MIN_VAL)
/*IF PETROLEUM_REWARD > MAX_VAL
THEN
(PETROLEUM_REWARD = MAX_VAL)*/
RETURN PETROLEUM_REWARD
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 155 of 185
XXHR_PROFIT_ALLOWANCE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 156 of 185
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR PROFIT_REWARD IS 0
DEFAULT FOR INCREMENT IS 0
DEFAULT FOR MAX_INCREMENT IS 0
DEFAULT FOR APPRAISAL_SCORE IS ' '
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR MIN_VAL IS 0
DEFAULT FOR MAX_VAL IS 0
/*DEFAULT FOR GRADE_XXHR_REWARDS_MINIMUM IS ' '
DEFAULT FOR GRADE_XXHR_REWARDS_MAXIMUM IS ' ' */
DEFAULT FOR EMP_LEAVING_REASON IS ' '
DEFAULT FOR EFFECTIVE_DATE IS '4712/12/31 00:00:00' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE, EFFECTIVE_DATE
IF EMP_TERM_DATE < PAY_PROC_PERIOD_END_DATE
THEN
(
IF (EMP_LEAVING_REASON = 'Bad report twice') OR (EMP_LEAVING_REASON = ' ') OR
(EMP_LEAVING_REASON = 'No Show Termination') OR (EMP_LEAVING_REASON = ' ') OR
(EMP_LEAVING_REASON = 'Disqualified during Test Period') OR (EMP_LEAVING_REASON = ' ') OR
(EMP_LEAVING_REASON = 'Termination') OR (EMP_LEAVING_REASON = '') OR
(EMP_LEAVING_REASON = 'Lose Egyptian Nationality') OR (EMP_LEAVING_REASON = ' ') OR
(EMP_LEAVING_REASON = 'Legal Punishment') OR (EMP_LEAVING_REASON = ' ') OR
(EMP_LEAVING_REASON = 'Medically Unfit') OR (EMP_LEAVING_REASON = ' ')
THEN
(
E_DATE = TO_DATE('3112'||TO_CHAR(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-1),'YYYY'),'DDMMYYYY')
S_DATE = GREATEST(TO_DATE('0101'||TO_CHAR(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-
1),'YYYY'),'DDMMYYYY'),EMP_HIRE_DATE)
SALARY_DATE = E_DATE
)
ELSE
(
E_DATE = EMP_TERM_DATE
S_DATE = GREATEST(TO_DATE('0101'||TO_CHAR(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-
1),'YYYY'),'DDMMYYYY'),EMP_HIRE_DATE)
SALARY_DATE = LAST_DAY(EMP_TERM_DATE)
)
)
Else
(
E_DATE = LEAST(TO_DATE('3112'||TO_CHAR(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-1),'YYYY'),'DDMMYYYY'),EMP_TERM_DATE)
S_DATE = GREATEST(TO_DATE('0101'||TO_CHAR(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-
1),'YYYY'),'DDMMYYYY'),EMP_HIRE_DATE)
/*SALARY_DATE = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1))*/
SALARY_DATE = E_DATE
)
/*DAYS = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days Worked','Days Worked')
Total_Days = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days in Month','Days')*/
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 157 of 185
/******************TOTOAL DAYS WORKED************************************/
UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave')
LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence')
MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid')
/*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/
UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,-
1)),'Unauthorized Absence')
/******************TOTOAL DAYS ************************************/
Total_Days = Days_Between(E_DATE, S_DATE) + 1
/******************TOTOAL DAYS ************************************/
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
Total_Days = Total_Days/2
)
DAYS = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE)
/******************TOTOAL DAYS WORKED************************************/
/*
X = XXHR_PRINT_DEBUG('UNPAID_LEAVE'||TO_CHAR(UNPAID_LEAVE))
X = XXHR_PRINT_DEBUG('LONG_UNPAID_LEAVE'||TO_CHAR(LONG_UNPAID_LEAVE))
X = XXHR_PRINT_DEBUG('MATERNITY_LEAVE'||TO_CHAR(MATERNITY_LEAVE))
X = XXHR_PRINT_DEBUG('UNAUTH_LEAVE'||TO_CHAR(UNAUTH_LEAVE))*/
PROFIT_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('PROFIT_BALANCE','Assignment Processing Period To Date','EG')
PROFIT_SALARY = XXHR_ITD_BALANCE_ON_A_DATE(PROFIT_SALARY_BALANCE_ID,SALARY_DATE)
/*
X = XXHR_PRINT_DEBUG('PROFIT_SALARY'||TO_CHAR(PROFIT_SALARY))
X = XXHR_PRINT_DEBUG('XXHR_PROFIT_REWARD'||TO_CHAR(XXHR_PROFIT_REWARD))
X = XXHR_PRINT_DEBUG('DAYS'||TO_CHAR(DAYS))
X = XXHR_PRINT_DEBUG('E_DATE'||TO_CHAR(E_DATE))
X = XXHR_PRINT_DEBUG('S_DATE'||TO_CHAR(S_DATE))*/
/*PROFIT_REWARD = PROFIT_SALARY * XXHR_PROFIT_REWARD * (DAYS/365)*/
PROFIT_REWARD = PROFIT_SALARY * XXHR_PROFIT_REWARD * (DAYS/Total_Days)
MIN_VAL =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'PROFIT_REWARD_MIN',PAY_PROC_PERIOD_E
ND_DATE))
MAX_VAL =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'PROFIT_REWARD_MAX',PAY_PROC_PERIOD_E
ND_DATE))
/*
X = XXHR_PRINT_DEBUG('PROF MIN_VAL'||TO_CHAR(MIN_VAL))
X = XXHR_PRINT_DEBUG('PROF MAX_VAL'||TO_CHAR(MAX_VAL))*/
IF PROFIT_REWARD < MIN_VAL
THEN
(PROFIT_REWARD = MIN_VAL)
IF PROFIT_REWARD > MAX_VAL
THEN
(PROFIT_REWARD = MAX_VAL)
RETURN PROFIT_REWARD
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 158 of 185
XXHR_PERSONAL_LOAN_DEDUCTION_9 Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 159 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15
------------------------------------------------------------------ */
ALIAS PERSONAL_LOAN_9_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
DEFAULT FOR STOP_LOAN IS 'N'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date)
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF AMOUNT WAS DEFAULTED THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Personal Loan 3','Override Value')/NUMBER_OF_MONTHS
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
)
ELSE
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 160 of 185
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
)
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 161 of 185
XXHR_PERSONAL_LOAN_DEDUCTION_10 Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 162 of 185
/* ----------------------------------------------------------------
This Formula is for Loan Deduction for an Employee.
Element Requirements
1.PERSONAL_LOAN_PAYMENT_ASG_ITD
User Defined Function
Date Author Changes
12-Jul-2010 Kaushik Modified
26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15
------------------------------------------------------------------ */
ALIAS PERSONAL_LOAN_10_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING
DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0
DEFAULT FOR AMOUNT IS 0
DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1
DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0
DEFAULT FOR STOP_LOAN IS 'N'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE)
DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE)
/* ====== Database Items Defaults Begin ====== */
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date)
If (RECOVER_LOAN_BALANCE_COUNT > 0)
THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'Yes'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
ELSE
(
IF AMOUNT WAS DEFAULTED THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Personal Loan 4','Override Value')/NUMBER_OF_MONTHS
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT
)
Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH
If (Outstanding < 0) OR (Outstanding = 0)
THEN
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING
STOP = 'YES'
RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP
)
)
ELSE
(
IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 163 of 185
AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN
(
TOTAL_RECOVERABLE_THIS_MONTH = 0
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
ELSE
(
TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH
RETURN TOTAL_RECOVERABLE_THIS_MONTH
)
)
)
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 164 of 185
XXHR_DISTINCTION_RAISE Formula Name
Description
/* ------------------------------------------------------------
This Formula is to Calculate Disctinction Raise for an Employee.
Element Requirements
User Defined Function
Date Author Changes
13-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
DEFAULT FOR RAISE IS 0
DEFAULT FOR INCREMENT IS 0
DEFAULT FOR APPRAISAL_SCORE IS ' '
DEFAULT FOR ASG_GRADE IS ' '
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
RAISE = OVERRIDE_VALUE
)
ELSE
(
APPRAISAL_SCORE = XXHR_APPRAISAL_SCORE(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-1))
BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG')
BASIC_SALARY =
XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1)))
INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE
_DETAILS','Details',APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE )))/100
RAISE = BASIC_SALARY * INCREMENT
)
MAX_RAISE =
(TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE_MIN',ASG_GRADE,APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE
)))
RAISE = LEAST(MAX_RAISE, RAISE)
RETURN RAISE
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 165 of 185
XXHR_MOTIVATION_RAISE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 166 of 185
/* -------------------------------------------------------------
This Formula is to Calculate Motivation ORIGINAL_VALUE for an Employee.
Element Requirements
User Defined Function
Date Author Changes
13-JuLY-2010 Kaushik Created
20-Sep-2010 Rajesh Modified for Issue No : HRMS_13
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR EMPLOYMENT_CATEGORY IS ' '
DEFAULT FOR ORIGINAL_VALUE IS 0
DEFAULT FOR INCREMENT IS 0
DEFAULT FOR APPRAISAL_SCORE IS ' '
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '')
THEN
(
ORIGINAL_VALUE = 0
RETURN ORIGINAL_VALUE
)
ELSE
(
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
ORIGINAL_VALUE = OVERRIDE_VALUE
)
ELSE
(
BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG')
BASIC_SALARY =
XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1)))
INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_MOTIVATION_RAISE','Motivation
Raise','Percentage',PAY_PROC_PERIOD_END_DATE )))/100
ORIGINAL_VALUE = BASIC_SALARY * INCREMENT
MINIMUM = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_MOTIVATION_RAISE','Motivation Raise','Minimum
Value',PAY_PROC_PERIOD_END_DATE ))
IF ORIGINAL_VALUE < MINIMUM
THEN
(
ORIGINAL_VALUE = MINIMUM
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 167 of 185
)
ELSE
(
ORIGINAL_VALUE = ORIGINAL_VALUE
)
IF(XX_QUALIFICATION_NAME(PAY_PROC_PERIOD_END_DATE) = 'Doctorate') OR
(XX_QUALIFICATION_NAME(PAY_PROC_PERIOD_END_DATE) = '')
THEN
(
ORIGINAL_VALUE = GREATEST(ORIGINAL_VALUE, XXHR_MOTIVATION_RAISE_PHD_MINIMUM)
)
)
)
RAISE = ORIGINAL_VALUE
RETURN RAISE
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 168 of 185
XXHR_PROMOTION_RAISE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 169 of 185
/* -------------------------------------------------------------
This Formula is to Calculate Promotion Raise for an Employee.
Element Requirements
User Defined Function
Date Author Changes
13-JuLY-2010 Kaushik Created
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR EFFECTIVE_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMPLOYMENT_CATEGORY IS ' '
DEFAULT FOR RAISE IS 0
DEFAULT FOR INCREMENT IS 0
DEFAULT FOR APPRAISAL_SCORE IS ' '
DEFAULT FOR RAISE_ADJUSTMENT IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE OVERRIDE_VALUE, EFFECTIVE_DATE
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '')
THEN
(
RAISE = 0
RAISE_ADJUSTMENT = 0
RETURN RAISE
)
ELSE
(
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(
RAISE = OVERRIDE_VALUE
RAISE_ADJUSTMENT = RAISE - (RAISE * (DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,EFFECTIVE_DATE) +1)/
(DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) +1))
)
ELSE
(
APPRAISAL_SCORE = XXHR_APPRAISAL_SCORE(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-1))
BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG')
BASIC_SALARY =
XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1)))
INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE
_DETAILS','Details',APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE )))/100
RAISE = BASIC_SALARY * INCREMENT
RAISE_ADJUSTMENT = (RAISE - (RAISE * (DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,EFFECTIVE_DATE) +1)/
(DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) +1)))
)
)
RAISE_ADJUSTMENT=0
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 170 of 185
RETURN RAISE, RAISE_ADJUSTMENT
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 171 of 185
XXHR_SOCIAL_ALLOWANCE Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 172 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Social Raise Allowance for an Employee.
Element Requirements
1.Social Raise (R/W)
User Defined Function
Date Author Changes
14-June-2009 Arun Created
29-Sep-2010 Rajesh Modified
------------------------------------------------------------------ */
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR PER_MARITAL_STATUS IS 'SINGLE'
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF Override_Value WAS NOT DEFAULTED THEN
(
RAISE_AMOUNT = Override_Value
RETURN RAISE_AMOUNT
)
/*X = XXHR_PRINT_DEBUG(PER_MARITAL_STATUS)*/
IF (PER_MARITAL_STATUS = 'Single')
THEN
(
ORIGINAL_AMOUNT =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','Details','SINGLE',PAY_PROC_PERIOD_END_DATE))
RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN)
)
ELSE
(
no_of_children = XXHR_NUMBER_OF_CHILDREN(PAY_PROC_PERIOD_END_DATE)
/*x = XXHR_PRINT_DEBUG(to_char(no_of_children))*/
If no_of_children = 0
THEN
(
If (PER_MARITAL_STATUS = 'Divorced') OR (PER_MARITAL_STATUS = 'Widowed')
THEN
(
ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','DIVORCED OR
WIDOWED NO CHILDREN',PAY_PROC_PERIOD_END_DATE))
RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN)
)
ELSE
(
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 173 of 185
ORIGINAL_AMOUNT =
TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','MARRIED',PAY_PROC_PERIOD_END_DATE))
RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN)
)
)
ELSE If no_of_children = 1
THEN
(
If (PER_MARITAL_STATUS = 'Divorced') OR (PER_MARITAL_STATUS = 'Widowed')
THEN
(
ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','DIVORCED OR
WIDOWED ONE CHILD',PAY_PROC_PERIOD_END_DATE))
RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN)
)
ELSE
(
ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','MARRIED WITH 1
CHILD',PAY_PROC_PERIOD_END_DATE))

RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN)
)
)
ELSE If no_of_children = 2
THEN
(
If (PER_MARITAL_STATUS = 'Divorced') OR (PER_MARITAL_STATUS = 'Widowed')
THEN
(
ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','DIVORCED OR
WIDOWED TWO CHILD',PAY_PROC_PERIOD_END_DATE))
RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN)
)
ELSE
(
ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','MARRIED WITH 2
CHILD',PAY_PROC_PERIOD_END_DATE))

RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN)
)
)
ELSE
(
If (PER_MARITAL_STATUS = 'Divorced') OR (PER_MARITAL_STATUS = 'Widowed')
THEN
(
ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','DIVORCED OR
WIDOWED THREE OR MORE CHILDREN',PAY_PROC_PERIOD_END_DATE))
RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN)
)
ELSE
(
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 174 of 185
ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','MARRIED WITH 3 OR
MORE CHILDREN',PAY_PROC_PERIOD_END_DATE))

RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN)
)
)
)
RETURN RAISE_AMOUNT, ORIGINAL_AMOUNT
/* ====== Formula Body Ends ====== */
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 175 of 185
ADDITIONAL SHIFT ALLOWANCE Formula Name
Description
DEFAULT FOR ASG_PAYROLL IS ' '
DEFAULT FOR PAYMENT IS 0
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR ORIGINAL_VLAUE IS 0
DEFAULT FOR ADDITIONAL_SHIFT_ALLOWANCE_PAY_VALUE_END_DATE IS '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ADDITIONAL_SHIFT_ALLOWANCE_PAY_VALUE_START_DATE is '1900/01/01 00:00:00' (DATE)
INPUTS ARE OVERRIDE_VALUE
PAYMENT = 0
IF OVERRIDE_VALUE WAS NOT DEFAULTED
THEN
(
PAYMENT = OVERRIDE_VALUE
)
ELSE IF ASG_PAYROLL = 'MIDOR' THEN
(PAYMENT = SHIFT_ALLOWANCE_ASG_RUN)
/*EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN
(
PAYMENT = PAYMENT/2
)*/
ORIGINAL_VLAUE = PAYMENT
RETURN PAYMENT,ORIGINAL_VLAUE
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 176 of 185
XXHR_OVER_TIME_ALLOWANCE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Special Shift allowance of an Employee.

Element Requirements
1. Special Shift allowance(R/W)
User Defined Function
1. NONE
User Defined Table Used
1. XXHR_SPECIAL_SHIFT_ALLOWANCE
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Override_Value is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
DEFAULT FOR ASG_GRADE IS '0'
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS are Override_Value, No_of_Days
Per_Diem = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SHIFT_ALLOWANCE','Value per shift day',ASG_GRADE))
Special_Shift_Allowance = Per_Diem * No_of_Days
IF Override_Value was DEFAULTED
THEN
Special_Shift_Allowance = Special_Shift_Allowance
ELSE
Special_Shift_Allowance = Override_Value
Return Special_Shift_Allowance
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 177 of 185
XXHR_COMBINED_ADJUSTMENT Formula Name
Description
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 178 of 185
/* ----------------------------------------------------------------
This Formula is to Calculate Accumulated Joined Raise for an Employee.
Element Requirements
1.Accumulated Joined Raise (R/W)
User Defined Function
Date Author Changes
17-May-2010 Kaushik D
updated on 04-July-2010 by Ganesh gopal
------------------------------------------------------------------ */
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
ALIAS MERE_BASIC_ASG_RUN AS MERE_BASIC
ALIAS JOINED_RAISES_ASG_ITD AS JOINED_RAISES
DEFAULT FOR OVERRIDE_VALUE IS 0
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR JOINED_AMOUNT is 0
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR RATE IS 0
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' '
Default for Year is 1951
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR EMP_HIRE_DATE IS '1900/01/01 00:00:00' (DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE)
IF Override_Value WAS NOT DEFAULTED THEN
(
JOINED_AMOUNT = Override_Value
)
ELSE IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN
(
RATE = XXHR_COMBINED_RAISE_PERCENTAGE/100
JOINED_AMOUNT = RATE * MERE_BASIC
)
ELSE
(
IF (PAY_PROC_PERIOD_END_DATE < TO_DATE('3107'||TO_CHAR(PAY_PROC_PERIOD_END_DATE, 'YYYY'),'DDMMYYYY') )
Then
(YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 6)
Else
(YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 5)
JOINED_AMOUNT = XXHR_COMBINED_RAISE(YEAR) * MERE_BASIC/100
)
Old_value = JOINED_RAISES
New_value = JOINED_AMOUNT
RETURN Old_value, New_value
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 179 of 185
/* ====== Formula Body Ends ====== */
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 180 of 185
XXHR_INITIAL_CONTRACT_VALUE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Monthly Bonus of an Employee.

Element Requirements
1. Monthly Bonus(R/W)
User Defined Function
1. NONE
------------------------------------------------------------------ */
ALIAS PROD_CURRENT_CONTRACT_VALUE_ASG_ITD AS CONTRACT_VALUE_TEMP
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR PAYMENT is 0
DEFAULT FOR Amount is 0
DEFAULT FOR E_DATE is '31-DEC-4712' (DATE)
DEFAULT FOR S_DATE is '01-JAN-1900' (DATE)
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE)
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Amount
IF Amount WAS NOT DEFAULTED
THEN
(PAYMENT = Amount
old_payment = CONTRACT_VALUE_TEMP
)
ELSE
(PAYMENT = CONTRACT_VALUE_ASG_RUN * XXHR_INITIAL_CONTRACT_VALUE/100)
RETURN PAYMENT,old_payment
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 181 of 185
TRANSPORTATION ALLOWANCE Formula Name
Description
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS '0'
DEFAULT FOR PAYMENT IS 0
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(ORIGINAL_VALUE = OVERRIDE_VALUE )
ELSE
(ZONE = XX_ADDRESS_DFF(PAY_PROC_PERIOD_END_DATE)
IF GROUP_KF_DELEGATED_GRADE WAS DEFAULTED THEN
(
L_ASG_GRADE = ASG_GRADE
)
ELSE
(
L_ASG_GRADE = GROUP_KF_DELEGATED_GRADE
)
ORIGINAL_VALUE = TO_NUMBER(GET_TABLE_VALUE('XXHR_TRANSPORTATION_ALLOWANCE',L_ASG_GRADE,ZONE,SYSDATE))
)
PAYMENT = ORIGINAL_VALUE * DAYS_WORKED / DAYS_IN_MONTH
RETURN PAYMENT, ORIGINAL_VALUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 182 of 185
DEDICATION ALLOWANCE Formula Name
Description
ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH
ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE)
DEFAULT FOR ASG_GRADE IS ' '
DEFAULT FOR PAYMENT IS 0
DEFAULT FOR ORIGINAL_VALUE IS 0
DEFAULT FOR OVERRIDE_VALUE IS 0
DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS ARE Override_Value
IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN
(ORIGINAL_VALUE = OVERRIDE_VALUE )
ELSE
(
GRADE = GREATEST(ASG_GRADE,GROUP_KF_DELEGATED_GRADE)
ZONE = XX_QUALIFICATION_DFF(PAY_PROC_PERIOD_END_DATE)
IF ((ZONE = 'ENG') OR (ZONE = 'LAW') OR (ZONE = 'MEDICINE') OR (ZONE = 'SCIENCE')) THEN
(
ORIGINAL_VALUE =
TO_NUMBER(GET_TABLE_VALUE('XXHR_DEDICATION_ALLOWANCE_GRADE',GRADE,ZONE,PAY_PROC_PERIOD_END_DATE))
)
ELSE
(
ORIGINAL_VALUE = 0
)
IF ZONE = 'LAW' then
(ORIGINAL_VALUE = mere_basic_asg_run * ORIGINAL_VALUE/100
if ORIGINAL_VALUE > XXHR_FACULTY_LAW_MAX_AMT then
(ORIGINAL_VALUE = XXHR_FACULTY_LAW_MAX_AMT)
)
)
PAYMENT = ORIGINAL_VALUE * DAYS_WORKED/DAYS_IN_MONTH
RETURN PAYMENT, ORIGINAL_VALUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 183 of 185
US_EVS Formula Name
Employee Verification Service (EVS) Formula Description
/*
dbdrv: none
+======================================================================+
| Copyright (c) 2005 Oracle Corporation |
| Redwood Shores, California, USA |
| All rights reserved. |
+======================================================================+
Description : Employee Verification Service Report
Formula Name : US_EVS
*/
inputs are
LAST_NAME (text)
,MIDDLE_NAME (text)
,FIRST_NAME (text)
,SSN (text)
,DATE_OF_BIRTH (text)
,GENDER (text)
,REQUESTER_ID_CODE (text)
,USER_CONTROL_DATA (text)
,MULTI_REQ_INDICATOR (text)
ERROR_MSG = 'ERROR:Requester Identification Code is a mandatory field for the report. Please enter Requester Identification Code in EVS Filing
for a GRE. '
MULTI_REQ_IND = MULTI_REQ_INDICATOR
IF MULTI_REQ_IND = ' ' THEN
MULTI_REQ_IND = '0'
IF REQUESTER_ID_CODE = ' ' THEN
Return ERROR_MSG
ELSE
(
WRITE_F1 = rpad(SSN,9,' ')
+ 'TPV'
+ '214'
+ rpad(LAST_NAME,13,' ')
+ rpad(FIRST_NAME,10,' ')
+ rpad(MIDDLE_NAME,7,' ')
+ rpad(DATE_OF_BIRTH,8,' ')
+ rpad(GENDER,1,' ')
+ rpad(' ',35,' ')
+ rpad(USER_CONTROL_DATA,14,' ')
+ rpad(' ',20,' ')
+ rpad(REQUESTER_ID_CODE,4,' ')
+ rpad(MULTI_REQ_IND,3,'0')
return WRITE_F1
)
/*
** End of Formula
*/
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 184 of 185
XXHR_MEAL_ALLOWANCE_2 Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Meal Allowance 2 of an Employee.

Element Requirements
1. Meal Allowance 2(R/W)
User Defined Function
1. NONE
Globals Used
1. XXHR_Meal_Allowance_2_VALUE
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR Meal_Allowance_2 is 0
DEFAULT FOR Override_Value is 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR GROUP_KF_SHIFT_TYPE IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS are Override_Value
Meal_Allowance_2 = XXHR_Meal_Allowance_2_VALUE
IF Override_Value was NOT DEFAULTED
THEN
(
Meal_Allowance_2 = Override_Value
ORIGINAL_VALUE = Meal_Allowance_2
)
ELSE
(
IF GROUP_KF_SHIFT_TYPE = 'XX_01' THEN
(
ORIGINAL_VALUE = Meal_Allowance_2
Meal_Allowance_2 = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN)
)
ELSE
(
ORIGINAL_VALUE = 0
Meal_Allowance_2 = 0
)
)
Return Meal_Allowance_2,ORIGINAL_VALUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type
Payroll Fast Formulas
EPROM HRMS Implementation Project
Page 185 of 185
XXHR_RISK_ALLOWANCE Formula Name
Description
/* ----------------------------------------------------------------
This Formula is to Calculate Risk Allowance of an Employee.

Element Requirements
1. Risk Allowance 2(R/W)
User Defined Function
1. NONE
Globals Used
1. XXHR_RISK_ALLOWANCE
------------------------------------------------------------------ */
/* ====== Variables Value Defaults Begin ====== */
DEFAULT FOR RISK_ALLOWANCE is 0
DEFAULT FOR Override_Value is 0
/* ====== Variables Value Defaults Ends ====== */
/* ====== Database Items Defaults Begin ====== */
DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE)
DEFAULT FOR GROUP_KF_SHIFT_TYPE IS ' '
/* ====== Database Items Defaults Ends ====== */
/* ====== Formula Body Starts ====== */
INPUTS are Override_Value
RISK_ALLOWANCE = XXHR_RISK_ALLOWANCE
IF Override_Value was NOT DEFAULTED
THEN
(
RISK_ALLOWANCE = Override_Value
ORIGINAL_VALUE = RISK_ALLOWANCE
)
ELSE
(
IF XXHR_POSITION_RISK_ALLOWANCE(PAY_PROC_PERIOD_END_DATE) = 'Yes' THEN
(
ORIGINAL_VALUE = RISK_ALLOWANCE
RISK_ALLOWANCE = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN)
)
ELSE
(
ORIGINAL_VALUE = 0
RISK_ALLOWANCE = 0
)
)
Return RISK_ALLOWANCE,ORIGINAL_VALUE
/* ====== Formula Body Ends ====== */
Formula Text
Oracle Payroll Formula Type

You might also like