change in Fast Formula

Oracle Human Resource (Core HR), Payroll, Time & Labor, Self Service HR, Advance Benefit, Talent Management (Performance Management, Competency Management, Performance Appraisal, Goal Management), iRecruitment, Compensation Workbench
Post Reply
asifacma
Posts: 22
Joined: Fri Feb 27, 2009 6:52 am
Location: Saudi Arabia

change in Fast Formula

Post by asifacma »

Hi members

Currently all housing allowance is being treated as monthly housing rent, hence no payment to employee , no deduction. but now change is required as per following:

We want to make some change in our housing formula. The conditions are that if any employee is availing family accomodation, LOCATION_CODE=? Plant? and D_MARTIAL_STATUS=?Married?. Employee is also being house allownace monthly.

*If his monthly housing allowance is less than the monthly housing rent, his deduction should be equal to the monthly housing allowance.

If his monthly housing allowance is greater than the monthly housing rent, his deduction should be only for monthly housing rent.*

waiting for your help.

Below are the contents of the fomula:

Default For EMP_HIRE_DATE is '0001/01/01 00:00:00'(date)
Default For EMP_TERM_DATE is '0001/01/01 00:00:00'(date)
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 Rent_Period_ED is '4712/12/31 00:00:00'(date)
Default For Renting_End_Date is '4712/12/31 00:00:00'(date)
Default For PAY_PROC_PERIOD_ID is 999999
Default For PER_NATIONALITY is ' '
Default For GROUP_KF_HOUSING_ALLOWANCE is ' '
DEFAULT FOR GROUP_KF_HOUSING_AMOUNT IS '0'
/* Default For GROUP_KF_HOUSING_RENT is ' ' */
Default For GROUP_KF_EMPLOYEE_TYPE is ' '

ALIAS PER_EMP_NUMBER AS ACEMPNUM
Alias ABSENCE_DEDUCTED_BALANCE_ASG_PTD as ABSENCE_DAYS
ALIAS PERIOD_HOUSING_ALLOWANCE_ASG_RUN as HousinAllowance
/* ALIAS HOUSING_ALLOWANCE_PAY_VALUE_ENTRY_VALUE as MonthlyHousing */
DEFAULT FOR YTDUnAuthLeave IS 0
DEFAULT FOR YTDUnPaidLeave IS 0
DEFAULT FOR PER_EMP_NUMBER IS '0'
DEFAULT FOR ASG_NUMBER IS '0'
DEFAULT FOR ASG_SALARY IS 0
DEFAULT FOR Deduction_Count IS 0
DEFAULT FOR Stop_Renting is 'x'
DEFAULT FOR First_Earning_Date IS '4712/12/31 00:00:00'(date)
DEFAULT FOR ASG_LAST_SALARY_DATE IS '4712/12/31 00:00:00'(date)
ALIAS EMP_HIRE_DATE AS Hire_Date
ALIAS PAY_PROC_PERIOD_START_DATE AS Period_SD
ALIAS PAY_PROC_PERIOD_END_DATE AS Period_ED
ALIAS GROUP_KF_HOUSING_AMOUNT AS HOUSING_AMOUNT
ALIAS ADVANCE_FLAG_ASG_ITD AS ADVANCE_FLAG_ITD
/*---------------------------------------------------------------------------*/
INPUTS ARE Renting_Type(text), Renting_End_Date(date),Stop_Renting(Text)
Monthly_House = 0
Deduction_Count = 0
/*----------------------------------------------------------------------------*/
Term_Date = Get_Date('Glob_Terminate_ED')
IF ISNULL(Term_Date) = 'N' THEN
(
my_stop ='YES'
msg_Rent = 'Please, Employee is Terminated and detucted Only Days Used'
Return my_stop,msg_Rent
)

/*****************************************************************************/
IF Stop_Renting = 'Y' THEN
(
NONE_DEDUCTION = 0
Return NONE_DEDUCTION
)
/*****************************************************************************/
Deduction_Count_H = Get_Number('My_Glob_Deduction_No')

IF ISNULL(Deduction_Count_H) = 'Y' THEN
(
Vac_Mon = 0
)
ELSE
(
Vac_Mon = Deduction_Count_H
)

Adv_Flag = Get_Number('My_Glob_Adv_Flag')
IF Adv_Flag > 0 AND Vac_Mon = 0 THEN
(
msg = ' '
Return msg
)
/*****************************************************************************/
Rent_Days = 30
IF Renting_End_Date = TO_DATE('31/12/4712','DD/MM/YYYY') THEN
(
Rent_Days = 30
)
ELSE IF Renting_End_Date > Period_SD THEN
(
Rent_Days = days_between(Renting_End_Date,PAY_PROC_PERIOD_START_DATE)+1
)
/*===========================================================================*/
IF EMP_TERM_DATE >= Period_SD AND EMP_TERM_DATE <= Period_ED THEN
(
Rent_Days = days_between(EMP_TERM_DATE,PAY_PROC_PERIOD_START_DATE)+1
)
/*===========================================================================*/
Days_in_Period = XX_MONTH_DAYS
/*---------------------------------------------------------------------------*/
IF Renting_Type = 'SINGLE' THEN
(
SINGLE_DEDUCTION = (XX_SINGLE_ROOM_RENT/XX_MONTH_DAYS) * Rent_Days
IF Vac_Mon = 0 THEN
(
RETURN SINGLE_DEDUCTION
)
VAC_RENT = SINGLE_DEDUCTION * Vac_Mon
RETURN SINGLE_DEDUCTION, VAC_RENT
)
IF Renting_Type = 'DOUBLE' THEN
(
DOUBLE_DEDUCTION = (XX_DOUBLE_ROOM_HOUSE_RENT/XX_MONTH_DAYS) * Rent_Days
IF Vac_Mon = 0 THEN
(
RETURN DOUBLE_DEDUCTION
)
VAC_RENT = DOUBLE_DEDUCTION * Vac_Mon
RETURN DOUBLE_DEDUCTION, VAC_RENT
)
/***********************
IF GROUP_KF_HOUSING_ALLOWANCE = 'MONTHLY' THEN
(
Monthly_House = XX_HOUSING('My_Glob_Monthly_Amount')
)
ELSE
(
Monthly_House = Get_Number('My_Glob_Advance_Monthly')
)
/*----------------------------------------------------------------*/

IF ISNULL(Monthly_House) = 'Y' THEN
(
Monthly_House = 0
)
/************************************************************************/
Curr_Run_SD=Get_Date('Glob_Curr_Run_SD')
Curr_Run_ED=Get_Date('Glob_Curr_Run_ED')

Monthly_House=XX_HOUSING(Curr_Run_SD,Curr_Run_ED)

IF Renting_Type = 'STAFF' THEN
(
STAFF_Amount = (Monthly_House * XX_SENIOR_VILLA_RENT)
STAFF_DEDUCTION = (STAFF_Amount/XX_MONTH_DAYS) * Rent_Days
IF Vac_Mon = 0 THEN
(
RETURN STAFF_DEDUCTION
)
VAC_RENT = STAFF_DEDUCTION * Vac_Mon
RETURN STAFF_DEDUCTION, VAC_RENT
)

IF Renting_Type = 'FAML' THEN
(
FAMLY_DEDUCTION = (Monthly_House/XX_MONTH_DAYS) * Rent_Days
IF Vac_Mon = 0 THEN
(
RETURN FAMLY_DEDUCTION
)
VAC_RENT = FAMLY_DEDUCTION * Vac_Mon
RETURN FAMLY_DEDUCTION, VAC_RENT
)
/*=====================================================================*/
abbasmalik
Posts: 30
Joined: Tue Jul 22, 2008 6:08 am
Location: Sudan

Post by abbasmalik »

you can add this condition
if LOCATION_CODE=? Plant? and D_MARTIAL_STATUS=?Married?
then
deduction = greatest(monthly_housing_allowance_housing,monthly_housing_rent)/*use your data base items*/
Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests