Beruflich Dokumente
Kultur Dokumente
*
* 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
IS 0
IS 0
IS ' '
00:00:00'
00:00:00'
00:00:00'
00:00:00'
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
(
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
)
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