You are on page 1of 9

OTHER DEFINITIONS >>> FUNCTIONAL AREAS >>>>

Then in the functional area tab select INCIDENT REGISTER and enter values
Define proration event group
Others > event groups

Event group name : IY Entry Changes for Proration


Event group type : Proration
Proration period : Payroll Period

Datetracked events:

Update Table Column name


type
Datetrac PAY_ELEMENT_ENTRIES_F DATE_EARNED
k Update
Datetrac PAY_ELEMENT_ENTRIES_F EFFECTIVE_START_DATE
k Update
Datetrac PAY_ELEMENT_ENTRIES_F EFFECTIVE_END_DATE
k Update
Datetrac PAY_ELEMENT_ENTRY_VALUES_F EFFECTIVE_START_DATE
k Update
Datetrac PAY_ELEMENT_ENTRY_VALUES_F INPUT_VALUE_ID
k Update
Datetrac PAY_ELEMENT_ENTRY_VALUES_F ELEMENT_ENTRY_VALUE_I
k Update D
Datetrac PAY_ELEMENT_ENTRY_VALUES_F ELEMENT_ENTRY_ID
k Update
Datetrac PAY_ELEMENT_ENTRY_VALUES_F SCREEN_ENTRY_VALUE
k Update
Datetrac PAY_ELEMENT_ENTRY_VALUES_F EFFECTIVE_END_DATE
k Update
Datetrac PER_ALL_ASSIGNMENTS_F EFFECTIVE_START_DATE
k Update
Datetrac PER_ALL_ASSIGNMENTS_F EFFECTIVE_END_DATE
k Update
Datetrac PER_ALL_ASSIGNMENTS_F GRADE_ID
k Update
Datetrac PER_SPINAL_POINT_PLACEMENTS_ EFFECTIVE_START_DATE
k Update F
Datetrac PER_SPINAL_POINT_PLACEMENTS_ EFFECTIVE_END_DATE
k Update F
Datetrac PER_SPINAL_POINT_PLACEMENTS_ STEP_ID
k Update F

Then save this event group and use it in the basic salary element > tab = Poration
Define retropay event group
Others > event groups

Event group name : IY_RETRO_NEW


Event group type : Retro
Datetracked events:
Update Table Column name
type
Datetrack PAY_ELEMENT_ENTRIES_F EFFECTIVE_END_DATE
Update
Datetrack PAY_ELEMENT_ENTRIES_F EFFECTIVE_START_DATE
Update
Datetrack PAY_ELEMENT_ENTRIES_F
Insert
Datetrack PAY_ELEMENT_ENTRY_VALUES_F SCREEN_ENTRY_VALUE
Correction
Datetrack PAY_ELEMENT_ENTRY_VALUES_F SCREEN_ENTRY_VALUE
Update
Datetrack PER_ALL_ASSIGNMENTS_F EFFECTIVE_START_DATE
Update
Datetrack PER_ALL_ASSIGNMENTS_F EFFECTIVE_END_DATE
Update
Datetrack PER_ALL_ASSIGNMENTS_F GRADE_ID
Update
Datetrack PER_SPINAL_POINT_PLACEMENTS_ EFFECTIVE_END_DATE
Update F
Datetrack PER_SPINAL_POINT_PLACEMENTS_ EFFECTIVE_START_DATE
Update F
Datetrack PER_SPINAL_POINT_PLACEMENTS_ STEP_ID
Update F

Then save this event group and use it in the basic salary element > tab = recalculation

Define an adjustment element for the basic salary called Basic Salary Adj
With higher priority and non recurring and input value of pay value only
The formula of the basic salary is :
/*=============================================================
Formula Name : BASIC_SALARY_F
Description : Formula to calculate Basic element including retro

Element Requirements :
1.test basic new

Change Control:

Date Author Version Changes


---------------------------------------------------------------
21-SEP-2008 Suraj 1.0 Created
23-SEP-2008 Alaa Updated
=============================================================*/

/*================= Database Items ==========================*/


DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '01-JAN-0001' (DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '31-DEC-4712' (DATE)
DEFAULT FOR prorate_start IS '01-JAN-0001'(date)
DEFAULT FOR prorate_end IS '31-DEC-4712'(date)
DEFAULT FOR entry_start_date IS '01-JAN-0001'(date)
DEFAULT FOR entry_end_date IS '31-DEC-4712'(date)
DEFAULT FOR EMP_HIRE_DATE IS '01-JAN-0001'(DATE)
DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712' (DATE)
DEFAULT FOR L_DAYS IS 0
default for w_from_date is '0001/01/01 00:00:00'(DATE)
default for w_to_date is '0001/01/01 00:00:00'(DATE)
default for w_RELEASE is '0001/01/01 00:00:00'(DATE)
DEFAULT FOR ASG_JOB IS ' '
DEFAULT FOR W_ACTIVE IS ' '
DEFAULT FOR ASG_EMPLOYMENT_CATEGORY_CODE IS ' '
DEFAULT FOR W_PERCENTAGE IS 0
DEFAULT FOR W_DEDUCT IS 0
DEFAULT FOR W_MONTHLY IS 0
DEFAULT FOR MNTHLY_SALARY IS 0
DEFAULT FOR ASG_ORG IS ' '
DEFAULT FOR W_MSG IS ' '
DEFAULT FOR W_MSG1 IS ' '
/*================= Database Items ==========================*/

/*================= Input Value Defaults Begins =============*/


DEFAULT FOR Amount IS 0
/*================= Input Value Defaults Ends ===============*/

/*================= Inputs section Begin ====================*/


INPUTS ARE prorate_start(date)
,prorate_end(date)
,Amount
/*================ Inputs section Ends ======================*/

/*================= Formula Body Starts =====================*/


W_ACTIVE=IY_GET_SIT_SEGMENT3()
IF ASG_EMPLOYMENT_CATEGORY_CODE = 'ASGABD'
OR ASG_EMPLOYMENT_CATEGORY_CODE = 'FYEXP'
OR ASG_EMPLOYMENT_CATEGORY_CODE = 'RETI'
OR (asg_job like '%Co-Pilot%' AND W_ACTIVE = 'Y')
OR (asg_job like '%Pilot%' AND W_ACTIVE = 'Y')
OR (asg_job like '%Supervisor%' AND ASG_ORG LIKE '%Cabin Crew%')
OR asg_job like '%Air Hostes%'
OR (asg_job like '%Air Engineer%' AND W_ACTIVE = 'Y')
THEN
(
Monthly_Salary = 0
w_monthly = 0
RETURN Monthly_Salary, w_monthly, w_msg, W_MSG1
)
W_PERCENTAGE = IY_GET_SIT_SEGMENT1(pay_proc_period_start_date,
pay_proc_period_end_date)

l_start_date =
GREATEST(pay_proc_period_start_date,entry_start_date,emp_hire_date,prorate_start)

l_end_date =
LEAST(pay_proc_period_end_date,entry_end_date,emp_term_date,prorate_end)

L_DAYS = ((DAYS_BETWEEN( l_end_date , l_start_date)+1))


IF TO_CHAR(L_END_DATE,'DD') = '28' AND TO_CHAR(L_END_DATE,'MM') = '02'
THEN
L_DAYS = L_DAYS + 2
ELSE IF TO_CHAR(L_END_DATE,'DD') = '29' AND
TO_CHAR(L_END_DATE,'MM') = '02' THEN
L_DAYS = L_DAYS + 1
ELSE IF TO_CHAR(L_END_DATE,'DD') = '31' AND
(
TO_CHAR(L_END_DATE,'MM') = '01' OR
TO_CHAR(L_END_DATE,'MM') = '03' OR
TO_CHAR(L_END_DATE,'MM') = '05' OR
TO_CHAR(L_END_DATE,'MM') = '07' OR
TO_CHAR(L_END_DATE,'MM') = '08' OR
TO_CHAR(L_END_DATE,'MM') = '10' OR
TO_CHAR(L_END_DATE,'MM') = '12'
)
THEN
L_DAYS = L_DAYS - 1

IF Amount was defaulted then


(
MONTHLY_SALARY = IY_BAS_SAL_G_S(pay_proc_period_start_date,
pay_proc_period_end_date)
L_Amount = IY_BAS_SAL_G_S(l_start_date, l_end_date)
W_MONTHLY = L_Amount * L_DAYS / 30
)
else
(
MONTHLY_SALARY = AMOUNT
L_Amount = Amount
W_MONTHLY = L_Amount * L_DAYS / 30
)
IF W_PERCENTAGE > 0 THEN
(
W_MONTHLY = ROUND(W_MONTHLY * (100 - W_PERCENTAGE) / 100,2)
W_DEDUCT = ROUND(W_MONTHLY * W_PERCENTAGE / 100,2)
RETURN Monthly_Salary, w_monthly, W_DEDUCT, w_msg, W_MSG1
)
ELSE
(
RETURN Monthly_Salary, w_monthly, w_msg, W_MSG1
)
/*================== Formula Body Ends ======================*/

You might also like