Вы находитесь на странице: 1из 2

/*++

+**********************************************************************************
*+++
Formula Name : ATG_HOLIDAYOT_FF
Description : This formula is used to process and pay employee Holiday Overtime
*++
+**********************************************************************************
+++*/

/** Initilizing Sequences ***************************************** **/


DEFAULT FOR ELEMENT_ENTRY_CREATION_DATE IS '0001/01/01 00:00:00' (date)
DEFAULT FOR PAY_EARN_PERIOD_START IS '0001/01/01 00:00:00' (date)
DEFAULT FOR PAY_EARN_PERIOD_END IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ASG_HR_ASG_ID is 0
DEFAULT FOR PAYROLL_PERIOD_TYPE IS ' '
DEFAULT FOR ELEMENT_BASE_NAME IS ' '
DEFAULT FOR ELEMENT_NAME IS ' '
DEFAULT FOR SPECIAL_ALLOWANCE_AMOUNT_ASG_ENTRY_VALUE IS 0
DEFAULT FOR FIXED_SALARY_AMOUNT_ASG_ENTRY_VALUE IS 0
DEFAULT FOR PER_PERSON_ENTERPRISE_HIRE_DATE IS '0001/01/01 00:00:00'
(DATE)
DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (date)

DEFAULT FOR PER_LEGAL_EMPLOYER_ATTRIBUTE1 IS ' '

DEFAULT FOR HOURS IS 0

/** Input ***************************************** **/


INPUTS ARE HOURS

L_PAY_VALUE = 0

DOT_DIV = 30*8
L_FACTOR = 2.5
L_HOURS = HOURS

L_START_DATE = GREATEST(PAY_EARN_PERIOD_START,PER_PERSON_ENTERPRISE_HIRE_DATE)
L_END_DATE = LEAST(PAY_EARN_PERIOD_END,ACP_TERMINATION_DATE)

/*Fetch Assignment category, i.e. staff or labor*/


SET_INPUT('hr_id',ASG_HR_ASG_ID)
SET_INPUT('eff_date',L_End_Date)
SET_INPUT('mode','ASSIGNMENT_CATEGORY')
EXECUTE('ATG_AE_GET_HR_DATA')
L_Asg_category = GET_OUTPUT('X_OUTPUT_TEXT','XX')

L_le_code = PER_LEGAL_EMPLOYER_ATTRIBUTE1

IF (L_le_code = 'ATCUAE' OR L_le_code = 'APCUAE') AND L_Asg_category = 'ATG_LABOR'


THEN
(
L_Basic = TO_NUMBER(GET_VALUE_SET('ATG_PAY_ELE_ENTRY_VAL',
'|=P_ASSIGNMENT_ID=''' +
TO_CHAR(ASG_HR_ASG_ID) + ''''+
'|P_ELEMENT_NAME=''' + 'Basic Salary'
+ ''''+
'|P_INPUT_NAME=''' + 'Amount' + ''''+
'|P_EFFECTIVE_DATE=''' +
TO_CHAR(L_End_Date,'DD-MM-YYYY') + ''''))

L_Special = TO_NUMBER(GET_VALUE_SET('ATG_PAY_ELE_ENTRY_VAL',
'|=P_ASSIGNMENT_ID=''' +
TO_CHAR(ASG_HR_ASG_ID) + ''''+
'|P_ELEMENT_NAME=''' + 'Special
Allowance' + ''''+
'|P_INPUT_NAME=''' + 'Amount' + ''''+
'|P_EFFECTIVE_DATE=''' +
TO_CHAR(L_End_Date,'DD-MM-YYYY') + ''''))

L_CALC_SALARY = L_Basic + L_Special


)
ELSE
(
L_CALC_SALARY = FIXED_SALARY_AMOUNT_ASG_ENTRY_VALUE
)

L_PAY_VALUE = ROUND((L_FACTOR*L_CALC_SALARY*L_HOURS)/DOT_DIV,2)

RETURN L_PAY_VALUE, L_CALC_SALARY,L_FACTOR,L_HOURS

Вам также может понравиться