You are on page 1of 12

How to make Proration and Retro Pay by

Enhanced

Go to HRMS Manager Responsibility > other definition > Event Groups


1. Define Retro Pay Event Group

Update Type
Datetrack
Update
Datetrack
Update
Datetrack Insert
Datetrack
Update
Datetrack
Correction
Datetrack
Correction
Datetrack
Update
Datetrack
Correction
Datetrack
Update
Datetrack End
Date
Datetrack
Update
Datetrack
Correction
Datetrack
Correction
Datetrack
Update
Datetrack
Correction
Datetrack
Update

Table

Column Name

PAY_ELEMENT_ENTRIES_F

EFFECTIVE_START_DATE

PAY_ELEMENT_ENTRIES_F
PAY_ELEMENT_ENTRIES_F

EFFECTIVE_END_DATE

PER_ALL_ASSIGNMENTS_F

JOB_ID

PER_ALL_ASSIGNMENTS_F

LOCATION_ID

PER_ALL_ASSIGNMENTS_F

PER_ALL_ASSIGNMENTS_F

JOB_ID
ASSIGNMENT_STATUS_TY
PE_ID
ASSIGNMENT_STATUS_TY
PE_ID

PER_ALL_ASSIGNMENTS_F

LOCATION_ID

PER_ALL_ASSIGNMENTS_F

PER_ALL_ASSIGNMENTS_F
PER_ALL_ASSIGNMENTS_F

SUPERVISOR_ID

PER_ALL_ASSIGNMENTS_F
PER_ASSIGNMENT_BUDGET_VA
LUES_F
PER_ASSIGNMENT_BUDGET_VA
LUES_F
PER_ASSIGNMENT_BUDGET_VA
LUES_F
PER_ASSIGNMENT_BUDGET_VA
LUES_F

SUPERVISOR_ID
UNIT
VALUE
VALUE
UNIT

Datetrack Insert

PER_ASSIGNMENT_BUDGET_VA
LUES_F

2. Go to define element:

To make proration go to event group :

Update Type
Datetrack
Update
Datetrack
Update
Datetrack
Update
Datetrack
Update
Datetrack
Update

Table

Column Name

PAY_ELEMENT_ENTRIES_F

EFFECTIVE_START_DATE

PAY_ELEMENT_ENTRIES_F
PAY_ELEMENT_ENTRY_VALUES_
F
PAY_ELEMENT_ENTRY_VALUES_
F
PAY_ELEMENT_ENTRY_VALUES_
F

EFFECTIVE_END_DATE

Go to write formula :
/*
______________________________________________
FORMULA NAME : ADMM_PAYROLL_PRORATION
This formula is used to PAYROLL_PRORATION
Created By: Feras Ahmad
Date:
01-JAN-2013
Modified By:
Date:
Description of Changes:
______________________________________________
*/

EFFECTIVE_START_DATE
SCREEN_ENTRY_VALUE
EFFECTIVE_END_DATE

Default for pay_value is 0


Default For PAY_EARNED_START_DATE Is '1900/01/01 00:00:00' (Date)
Default For PAY_EARNED_END_DATE Is '4712/12/31 00:00:00' (Date)
Default for AE_PERSON_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE)
Default for PAY_PROC_PERIOD_END_DATE_DP is '4712/12/31 00:00:00' (DATE)
Default for PAY_PROC_PERIOD_START_DATE_DP is '1900/01/01 00:00:00' (Date)
Inputs are pay_value,
prorate_start (Date),
prorate_end (Date)
If pay_value =0 then (return)
Days_In_Period = 30 /*days_between(PAY_PROC_PERIOD_END_DATE_DP,PAY_PROC_PERIOD_START_DATE_DP) + 1*/
IF (TRUNC(PAY_EARNED_END_DATE,'MM') = TRUNC(AE_PERSON_TERMINATION_DATE,'MM')) THEN
(
if prorate_end <= AE_PERSON_TERMINATION_DATE then
(
If prorate_end = AE_PERSON_TERMINATION_DATE And ENTRY_START_DATE <= PAY_EARNED_START_DATE Then
/*pro_amt = Round(pay_value*to_number(substr(to_char(PAY_EARNED_START_DATE,'YYYY'),3,2)) *(Days_In_Period days_between(prorate_start,PAY_EARNED_START_DATE)) / Days_In_Period,2)*/
pro_amt = Round((days_between(prorate_end, prorate_start) +1)* pay_value / Days_In_Period,2)

Else
pro_amt = Round((days_between(prorate_end, prorate_start) +1)* pay_value / Days_In_Period,2)

pay_value = pro_amt
)
if (prorate_end > AE_PERSON_TERMINATION_DATE) and (prorate_end > prorate_start) then
(
prorate_end = AE_PERSON_TERMINATION_DATE
pro_amt = Round((days_between(prorate_end, prorate_start) +1)* pay_value / Days_In_Period,2)
pay_value = pro_amt
)
if (prorate_end < prorate_start) then
pay_value = 0
)
ELSE
(
If prorate_end = PAY_EARNED_END_DATE And ENTRY_START_DATE <= PAY_EARNED_START_DATE Then
/* Edited by Ayman Kurdia */
pro_amt = Round(pay_value *(Days_In_Period - days_between(prorate_start,PAY_EARNED_START_DATE)) / 30
/*Days_In_Period*/,2)
Else
pro_amt = Round((days_between(prorate_end, prorate_start) +1)* pay_value / Days_In_Period,2)
pay_value = pro_amt
)
Pay_value = round(Pay_Value,2)
Return Pay_Value

Go to define element :

You might also like