Sei sulla pagina 1di 4

* In case that you wanted to calculate some elements

like (Late, Absence and Penalty Disciplinary) and you have


specified number of days to deduct it per month and the rest of
the days if more than limit are carried over to next month.

There are some requires to do this issue.

* You need to identify a Balance to read days from elements


you want (PENALTY_ALLOCATIONS_DAYS).

* You need to identify a Global Value for penalty limit days


(PENALTY_CIELING).

Then Formula:

DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1951/01/01


00:00:00' (Date)

DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '1951/01/31


00:00:00' (Date)

DEFAULT FOR EMP_HIRE_DATE IS '1951/01/01 00:00:00' (Date)

DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712' (DATE)

DEFAULT FOR Days_Carried_Over IS 0

DEFAULT FOR PEN_DAYS IS 0

DEFAULT FOR PENALTY_CIELING IS 0

DEFAULT FOR TOT_PEN_DAYS IS 0

DEFAULT FOR CARR_DAYS IS 0

DEFAULT FOR WORK_DAYS IS 0

DEFAULT FOR PENALTY_ALLOCATIONS_DAYS_ASG_RUN IS 0


DEFAULT FOR BASIC_SALARY_BASIC_AMOUNT_ASG_RUN IS 0

Inputs are Days_Carried_Over

PEN_DAYS = 0

/************************************** CALCULATION SECTION


*****************************************************/

IF (PENALTY_ALLOCATIONS_DAYS_ASG_RUN WAS NOT


DEFAULTED AND PENALTY_ALLOCATIONS_DAYS_ASG_RUN > 0) OR

(Days_Carried_Over WAS NOT DEFAULTED AND


Days_Carried_Over >= 0) THEN

IF Days_Carried_Over WAS NOT DEFAULTED


AND Days_Carried_Over >= 0 THEN

TOT_PEN_DAYS =
(PENALTY_ALLOCATIONS_DAYS_ASG_RUN + Days_Carried_Over)

IF TOT_PEN_DAYS >=
PENALTY_CIELING THEN

(
PEN_DAYS =
PENALTY_CIELING

CARR_DAYS =
(TOT_PEN_DAYS - PENALTY_CIELING)

ELSE IF TOT_PEN_DAYS <


PENALTY_CIELING THEN

PEN_DAYS =
TOT_PEN_DAYS

CARR_DAYS = 0

ELSE IF Days_Carried_Over WAS DEFAULTED


THEN

TOT_PEN_DAYS =
PENALTY_ALLOCATIONS_DAYS_ASG_RUN

IF TOT_PEN_DAYS >=
PENALTY_CIELING THEN

PEN_DAYS =
PENALTY_CIELING

CARR_DAYS =
(TOT_PEN_DAYS - PENALTY_CIELING)
)

ELSE

PEN_DAYS =
TOT_PEN_DAYS

CARR_DAYS = 0

ELSE

PEN_DAYS = 0

CARR_DAYS = 0

DED_AMOUNT = (BASIC_SALARY_BASIC_AMOUNT_ASG_RUN *
(PEN_DAYS/WORK_DAYS))

IF DED_AMOUNT > 0 THEN

RETURN PEN_DAYS,CARR_DAYS,DED_AMOUNT

Potrebbero piacerti anche