Sie sind auf Seite 1von 5

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

*
* Formula Name: AMC_CL_JO_SOCIAL_SECURITY
*
* Description: Formula will calculate and retrun the social security deduction
amount for each eligable assignment.
*
*
* Change History
* -------------*
* Who
Date
Description
* ---------- ---------------------------------------------------------* T.Fayez
10-MAY-2008
Create.
* M.Fawzi
22-3-2010
Update
*****************************************************************************/
/**** Database Items ****/
ALIAS AMC_SOC_SEC_COMP AS COMP_SHARE
ALIAS AMC_SOC_SEC_EMP AS EMP_SHARE

ALIAS GROUP_KF_SOCIAL_SECURITY_EXCEPTION AS SOCIAL_SECURITY_EXCEPTION


ALIAS PER_DATE_OF_BIRTH AS birth_date
DEFAULT FOR birth_date IS '0001/01/01 00:00:00'(Date)
ALIAS EMP_LEAVING_REASON AS leave_reason
DEFAULT FOR leave_reason IS 'X'
DEFAULT FOR PAY_PROC_PERIOD_START_DATE
IS '1900/01/01
(DATE)
DEFAULT FOR PAY_PROC_PERIOD_END_DATE
IS '4712/12/31
(DATE)
DEFAULT FOR HOUSING_ALLOWANCE
IS 0
DEFAULT FOR EMP_HIRE_DATE
IS '1900/01/01
(DATE)
DEFAULT FOR EMP_TERM_DATE
IS '4712/12/31
(DATE)
DEFAULT FOR ASG_SALARY
IS 0
DEFAULT FOR PER_EMP_NUMBER
IS ' '
DEFAULT FOR ASG_GROUP
IS ' '
DEFAULT FOR PER_PERSON_TYPE
IS ' '
DEFAULT FOR ASG_JOB
IS ' '
/*DEFAULT FOR GROUP_KF_EXCLUDE_FROM_SOCIAL_SECURITY
IS 'N'*/
DEFAULT FOR AMC_SOC_SEC_MAX_INS_SAL
IS 0
/**** Balances ****/
DEFAULT FOR SOCIAL_SECURITY_BEGINING_ASG_YTD
IS 0
DEFAULT FOR AMC_TRANSPORTATION_ALLOWANCE_ASG_RUN
IS 0
DEFAULT FOR AMC_HOUSING_ALLOWANCE_ASG_RUN
IS 0
DEFAULT FOR SOCIAL_SECURITY_EXCEPTION IS 'X'
/**** Input Value ****/
DEFAULT FOR Override_Amount
DEFAULT FOR Beginig_Amount
DEFAULT FOR END_USER_COLUMN_NAME_MIR
defAult for PEOPLE_High_Risk_Jobs is 'No'

IS 0
IS 0
IS ' '

00:00:00'
00:00:00'
00:00:00'
00:00:00'

/**** ALIAS *****/


ALIAS PAY_PROC_PERIOD_START_DATE
ALIAS PAY_PROC_PERIOD_END_DATE

AS P_Start_Date
AS P_End_Date

ALIAS EMP_HIRE_DATE
ALIAS EMP_TERM_DATE
ALIAS ASG_SALARY

AS E_Hire_Date
AS E_Term_Date
AS Salary

ALIAS SOCIAL_SECURITY_BEGINING_ASG_YTD
ALIAS AMC_HOUSING_ALLOWANCE_ASG_RUN
ALIAS AMC_TRANSPORTATION_ALLOWANCE_ASG_RUN
nce
/*ALIAS GROUP_KF_EXCLUDE_FROM_SOCIAL_SECURITY
ALIAS AMC_SOC_SEC_MAX_INS_SAL

AS SS_VALUE
AS Housing_Allowance_Bal
AS Transportation_Allowa
AS EXCLUDE*/
AS MAX_INS_SAL

INPUTS ARE
Override_Amount,
HOUSING_ALLOWANCE,
Beginig_Amount
Used_Start_Date = P_Start_Date
Used_End_Date = P_End_Date
flag = 10
END_USER_COLUMN_NAME_MIR = PEOPLE_High_Risk_Jobs
/* -----------------------------------------------*/
IF SOCIAL_SECURITY_EXCEPTION = 'OTHER_JOB' THEN
( Messg1 = 'Social Security: Excluded because of working for other company'
RETURN Messg1, flag
)
/* -----------------------------------------------*/
Used_value

= 0

Days_in_Period
Worked_Days
term_emp
COMPANY_SS

=
=
=
=

0
0
0
0

Messg1 = ELEMENT_NAME +' '


Messg1 = Messg1 + ASG_GROUP
/******************************************************************************/
/* End Dates Validation */
/**** for the end dates ****/
Used_End_Date = P_End_Date
IF Emp_Term_Date WAS NOT DEFAULTED THEN
(
IF Emp_Term_Date >= P_Start_Date AND Emp_Term_Date <= P_End_Date THEN
(
Used_End_Date = Emp_Term_Date
)
)
/**** for the start dates ****/
Used_Start_Date = P_Start_Date
IF EMP_HIRE_DATE WAS NOT DEFAULTED THEN
(
IF EMP_HIRE_DATE >= P_Start_Date AND EMP_HIRE_DATE <=P_End_Date THEN

(
Used_Start_Date = EMP_HIRE_DATE
)
)
L_UNPAID_LEAVES = GET_ABS_DAYS(P_Start_Date,P_End_Date,'Unpaid Leave')
Days_in_Period = Days_Between(P_End_Date,P_Start_Date) +1
Worked_Days = Days_Between(Used_End_Date,Used_Start_Date) + 1 - L_UNPAID_LEAVE
S
/*******************************************************************************
*******/
FUEL = 0.1 * Salary
IF FUEL < 40 THEN
(
FUEL = 40
)
IF FUEL > 60 THEN
(
FUEL = 60
)
/*******************************************************************************
**/
L_SS_SAL = LEAST(Salary + Fuel + Housing_Allowance_Bal + Transportation_Allowa
nce, MAX_INS_SAL)
/*******************************************************************************
**/
/***************************************************
IF SS_VALUE WAS DEFAULTED THEN
(
IF Beginig_Amount WAS NOT DEFAULTED THEN
(
l_ss_sal = Beginig_Amount
)
)
***************************************************/
If SS_VALUE = 0 then
( flag = 20
If (EMP_HIRE_DATE >= P_Start_Date AND EMP_HIRE_DATE <= P_End_Date )
OR (TO_CHAR(P_Start_Date,'MON') = 'JAN')
OR (SS_VALUE = 0 ) THEN
(
IF Override_Amount WAS NOT DEFAULTED THEN
(
flag = 30
Pay_Value = Override_Amount
COMPANY_SS = Override_Amount * (10/EMP_SHARE)
)
ELSE
( V_Begining_Amount = l_SS_SAL * (EMP_SHARE/100)
Pay_Value
= l_SS_SAL * (EMP_SHARE/100)
COMPANY_SS
= l_SS_SAL * (COMP_SHARE/100)
flag = 40
)
)

)
ELSE
(
Pay_Value
= SS_VALUE
COMPANY_SS
= SS_VALUE * (COMP_SHARE / EMP_SHARE)
V_Begining_Amount = 0
flag = 50
)
age = round(months_between (p_start_date, birth_date) / 12, 2)
IF (Worked_Days < 16
(
V_Begining_Amount =
Pay_Value
=
COMPANY_SS
=
flag = 16
)

and upper(leave_reason) not like '%DEATH%') THEN


0
0
0

IF (age > 60 and SOCIAL_SECURITY_EXCEPTION <> 'ABOVE_60') then


(
V_Begining_Amount = 0
Pay_Value
= 0
COMPANY_SS
= 0
flag = 60
)
IF (age > 60 and SOCIAL_SECURITY_EXCEPTION <> 'Include although age is above 60
years')then
(
V_Begining_Amount = 0
Pay_Value
= 0
COMPANY_SS
= 0
flag = 60
)
IF (age > 60 and SOCIAL_SECURITY_EXCEPTION = 'Include although age is above 60 y
ears')then
(
Pay_Value
= SS_VALUE
COMPANY_SS
= SS_VALUE * (COMP_SHARE / EMP_SHARE)
V_Begining_Amount = 0
flag = 100
)
IF (age > 60 and SOCIAL_SECURITY_EXCEPTION = 'ABOVE_60')then
(
Pay_Value
= SS_VALUE
COMPANY_SS
= SS_VALUE * (COMP_SHARE / EMP_SHARE)
V_Begining_Amount = 0
flag = 110
)
If (END_USER_COLUMN_NAME_MIR = 'Yes') then
(
Pay_Value
= l_SS_SAL * ((EMP_SHARE)/100)
COMPANY_SS
= l_SS_SAL * ((COMP_SHARE+1)/100)
V_Begining_Amount = 0

flag = 120
)
messg1 = 'Social Security: Insuarance Salary: ' + to_char(l_SS_SAL) +
' Flag: ' + to_char(flag) +
' Age: ' + to_char(age) +
' Leave Reason: ' + leave_reason +
' Override Amount: ' + to_char(Override_Amount)+
' Exception Reason: '+ SOCIAL_SECURITY_EXCEPTION+
'SS_VALUE:'+to_text(SS_VALUE)+';END_USER_COLUMN_NAME_MIR:'+END_USER_COLUMN_NAME_
MIR+';PEOPLE_High_Risk_Jobs:'+PEOPLE_High_Risk_Jobs
RETURN Pay_Value, V_Begining_Amount , Messg1, COMPANY_SS

Das könnte Ihnen auch gefallen