Page 1 of 185 CALC_GROSSUP_PAY_VALUE Formula Name This formula is used in the grossup calculations Description /****************************************************************************** * * Formula Name : CALC_GROSSUP_PAY_VALUE * * Description : Simple formula to calculate the gross pay based on the * net pay and additional amount. * * Change History * -------------- * * Who Date Description * ---------- ---------- -------------------------------------------------- * N.Bristow 24-NOV-99 Created. * *****************************************************************************/ inputs are amount(number), additional_amount (number) payment_amount = amount + additional_amount return payment_amount Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 2 of 185 PTO_TAGGING_FORMULA Formula Name Seeded top level payroll formula for PTO accruals Description /* ------------------------------------------------------- NAME : PTO_TAGGING_FORMULA This formula returns the element entry id of retrospective elements which require tagging during the payroll run. ---------------------------------------------------------*/ retro_element_entry_id = get_retro_element() if retro_element_entry_id = -1 then ( RETURN ) else ( RETURN retro_element_entry_id ) Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 3 of 185 HR_CWK_MOVE_TYPE_TEMPLATE Formula Name Decides if CWK leaving reason is Voluntary or Involuntary Description /********************************************************* Formula Name : HR_CWK_MOVE_TYPE_TEMPLATE Description : Decides if the leaving reason is Voluntary/Involuntary. Inputs : leaving_reason Change History Author Date Version Bug Description ------ ---------- ------- ------- --------------- ASahay 20/06/2003 115.0 N/A Initial Version *************************************************************/ inputs are leaving_reason(text) default for leaving_reason is 'R' termtype='V' /* If leaving_reason is not entered then it is defaulted to Voluntary */ IF leaving_reason = 'NR' THEN termtype = 'V' IF leaving_reason = 'D' THEN termtype = 'I' RETURN termtype Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 4 of 185 XXHR_PERSONAL_MOBILE_DEDUCTION_MOBINIL Formula Name Description /* ---------------------------------------------------------------- This Formula is for Company Phone Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 19-SEP-2010 Rajesh Modified the code changes for PAYROLL_12 ------------------------------------------------------------------ */ DEFAULT FOR AMOUNT IS 0 DEFAULT FOR Telephone_Number IS ' ' /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (date) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT,Telephone_Number MAX_LIMIT = XXHR_PHONE_LIMIT('MOBINIL',PAY_PROC_PERIOD_END_DATE,Telephone_Number) DEDUCTION = AMOUNT - MAX_LIMIT IF DEDUCTION < 0 THEN (DEDUCTION = 0) Return DEDUCTION Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 5 of 185 SPECIAL_INCREASE_ADJUSTMENT Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 6 of 185 /* --------------------------------------------------------------- THIS FORMULA IS TO CALCULATE SPECIAL INCREASES ADJUSTMENT FOR AN EMPLOYEE. ELEMENT REQUIREMENTS 1.SPECIAL INCREASE ADJUSTMENT (R/W) USER DEFINED FUNCTION DATE AUTHOR CHANGES 14-JUNE-2009 ARUN CREATED ------------------------------------------------------------------ */ /*********** ALIAS FOR USED BALANCES OR DATABASE ITEMS ********/ ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY ALIAS JOINED_RAISES_ASG_ITD AS JOINED_RAISES ALIAS MERE_BASIC_ASG_RUN AS MERE_BASIC /************ DEFAULT VALUES SECTION *************/ DEFAULT FOR SPECIAL_INCREASE_1_ASG_ITD IS 0 DEFAULT FOR SPECIAL_INCREASE_2_ASG_ITD IS 0 DEFAULT FOR SPECIAL_INCREASE_3_ASG_ITD IS 0 DEFAULT FOR SPECIAL_INCREASE_4_ASG_ITD IS 0 DEFAULT FOR SPECIAL_INCREASE_5_ASG_ITD IS 0 DEFAULT FOR SPECIAL_INCREASE_6_ASG_ITD IS 0 DEFAULT FOR NEW_PERCENTAGE IS 0 DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '0001/12/31 00:00:00'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '0001/12/31 00:00:00'(DATE) /*************** INPUTS SECTIONS ***************/ INPUTS ARE NEW_PERCENTAGE ,NEW_1 ,NEW_2 ,NEW_3 ,NEW_4 ,NEW_5 ,OLD_1 ,OLD_2,OLD_3 ,OLD_4 , OLD_5 , NEW_ALL ,OLD_ALL /*********SPECIAL INCREASE AMOUNT CALCULATED*********/ IF NEW_PERCENTAGE WAS NOT DEFAULTED THEN ( NEW_SPECIAL_INCREASE = (JOINED_RAISES_ASG_ITD - JOINED_RAISES_ASG_RUN + BASIC_SALARY_A_ASG_RUN) * (NEW_PERCENTAGE / 100) ) ELSE ( NEW_SPECIAL_INCREASE = (JOINED_RAISES_ASG_ITD - JOINED_RAISES_ASG_RUN + BASIC_SALARY_A_ASG_RUN) * (SPECIAL_INCREASE_ADJUSTMENT_RATE/100) ) /****NOW GET THE 5 PREVIOUS SPECIAL INCREASES AND ACCUMULATED *****/ OLD_SPL_1 = SPECIAL_INCREASE_1_ASG_ITD OLD_SPL_2 = SPECIAL_INCREASE_2_ASG_ITD OLD_SPL_3 = SPECIAL_INCREASE_3_ASG_ITD OLD_SPL_4 = SPECIAL_INCREASE_4_ASG_ITD OLD_SPL_5 = SPECIAL_INCREASE_5_ASG_ITD OLD_ACCUMULATE = JOINED_RAISES X = XXHR_PRINT_DEBUG ('OLD_SPL_1'||TO_CHAR(OLD_SPL_1)) X = XXHR_PRINT_DEBUG ('OLD_SPL_2'||TO_CHAR(OLD_SPL_2)) X = XXHR_PRINT_DEBUG ('OLD_SPL_3'||TO_CHAR(OLD_SPL_3)) X = XXHR_PRINT_DEBUG ('OLD_SPL_4'||TO_CHAR(OLD_SPL_4)) X = XXHR_PRINT_DEBUG ('OLD_SPL_5'||TO_CHAR(OLD_SPL_5)) X = XXHR_PRINT_DEBUG ('NEW_SPECIAL_INCREASE'||TO_CHAR(NEW_SPECIAL_INCREASE)) /*****************FINISH GETTING OLD VALUES******/ NEW_ACCUMULATE = JOINED_RAISES + OLD_SPL_1 NEW_SPL_1 = OLD_SPL_2 NEW_SPL_2 = OLD_SPL_3 NEW_SPL_3 = OLD_SPL_4 NEW_SPL_4 = OLD_SPL_5 IF to_char(PAY_PROC_PERIOD_END_DATE,'MMYYYY') = '072011' THEN NEW_SPL_5 = SPECIAL_INCREASE_6_ASG_ITD Payroll Fast Formulas EPROM HRMS Implementation Project Page 7 of 185 ELSE NEW_SPL_5 = NEW_SPECIAL_INCREASE X = XXHR_PRINT_DEBUG ('NEW_SPL_5'||TO_CHAR(NEW_SPL_5)) RETURN NEW_ACCUMULATE,NEW_PERCENTAGE,NEW_SPL_1,NEW_SPL_2,NEW_SPL_3,NEW_SPL_4,NEW_SPL_5,OLD_SPL_1,OLD_SPL_2,OLD_S PL_3 ,OLD_SPL_4 , OLD_SPL_5, OLD_ACCUMULATE Payroll Fast Formulas EPROM HRMS Implementation Project Page 8 of 185 XXHR_PERSONAL_MOBILE_DEDUCTION_VODAFONE Formula Name Description /* ---------------------------------------------------------------- This Formula is for Company Phone Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 19-SEP-2010 Rajesh Modified the code changes for PAYROLL_12 --------------------------------------------------------------- */ DEFAULT FOR AMOUNT IS 0 DEFAULT FOR Telephone_Number IS ' ' /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (date) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT,Telephone_Number MAX_LIMIT = XXHR_PHONE_LIMIT('VODAFONE',PAY_PROC_PERIOD_END_DATE,Telephone_Number) DEDUCTION = AMOUNT - MAX_LIMIT IF DEDUCTION < 0 THEN (DEDUCTION = 0) RETURN DEDUCTION Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 9 of 185 XXHR_PERSONAL_MOBILE_DEDUCTION_TE Formula Name Description /* ---------------------------------------------------------------- This Formula is for Company Phone Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 19-SEP-2010 Rajesh Modified the code changes for PAYROLL_12 ------------------------------------------------------------------ */ DEFAULT FOR AMOUNT IS 0 DEFAULT FOR Telephone_Number IS ' ' /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (date) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT,Telephone_Number MAX_LIMIT = XXHR_PHONE_LIMIT('TELECOM EGYPT',PAY_PROC_PERIOD_END_DATE,Telephone_Number) DEDUCTION = AMOUNT - MAX_LIMIT IF DEDUCTION < 0 THEN (DEDUCTION = 0) RETURN DEDUCTION Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 10 of 185 XXHR_PERSONAL_MOBILE_DEDUCTION_ETISALAT Formula Name Description /* ---------------------------------------------------------------- This Formula is for Company Phone Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 19-SEP-2010 Rajesh Modified the code changes for PAYROLL_12 ------------------------------------------------------------------ */ DEFAULT FOR AMOUNT IS 0 DEFAULT FOR Telephone_Number IS ' ' /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (date) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT,Telephone_Number MAX_LIMIT = XXHR_PHONE_LIMIT('ETISALAT', PAY_PROC_PERIOD_END_DATE,Telephone_Number) DEDUCTION = AMOUNT - MAX_LIMIT IF DEDUCTION < 0 THEN (DEDUCTION = 0) RETURN DEDUCTION Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 11 of 185 XXHR_TRAINING_COST Formula Name Description /* ---------------------------------------------------------------- This Formula is for Training Cost Deduction for an Employee. Element Requirements 1. User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified ------------------------------------------------------------------ */ DEFAULT FOR AMOUNT IS 0 /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (date) DEFAULT FOR ACP_TERMINATION_DATE IS '4712/12/31 00:00:00' (date) DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (AMOUNT = OVERRIDE_VALUE) ELSE (AMOUNT = XXHR_TRAINING_COST(PAY_PROC_PERIOD_END_DATE, ADD_YEARS(ACP_TERMINATION_DATE, -5), ACP_TERMINATION_DATE, XXHR_TRAINING_DEDUCTION_PERCENTAGE/100,XXHR_MAX_TRAINING_COST)) RETURN AMOUNT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 12 of 185 XXHR_DISC_SALARY_DEDUCTION_DAYS Formula Name Description /* ------------------------------------------------------------- This Formula is to Calculate Disciplianry Action Salary Deduction Days for an Employee. Element Requirements User Defined Function Date Author Changes 13-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS DISCIPLINARY_SALARY_DEDUCTION_DAYS_ASG_ITD AS DEDUCTION_DAYS /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Balance is 0 DEFAULT FOR RESET IS 0 DEFAULT FOR DAYS IS 0 DEFAULT FOR SALARY_DEDUCTION_DAYS IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE SALARY_DEDUCTION_DAYS BALANCE = (SALARY_DEDUCTION_DAYS - DEDUCTION_DAYS) IF (BALANCE = 0) THEN ( DAYS = 0 RESET = DEDUCTION_DAYS STOP = 'YES' ) ELSE IF (BALANCE > DISCIPLINARY_SALARY_DEDUCTION_MAX_DAYS) THEN ( DAYS = DISCIPLINARY_SALARY_DEDUCTION_MAX_DAYS RESET = 0 ) ELSE ( DAYS = BALANCE RESET = 0 ) RETURN DAYS, RESET, STOP Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 13 of 185 SOCIAL_INSURANCE_EMP_SHARE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 14 of 185 /* --------------------------------------------------------------- This Formula is to Calculate Social Insurance for an Employee. Element Requirements 1.Senility Insurance (R/W) User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS FIXED_INSURANCE_SALARY_ASG_RUN AS FIXED_INS_AMOUNT ALIAS VARIABLE_INSURANCE_SALARY_ASG_RUN AS VARIABLE_AMOUNT ALIAS BASIC_SALARY_ASG_RUN AS BASIC_AMOUNT ALIAS MERE_BASIC_ASG_RUN AS MERE_AMOUNT ALIAS RAISES_ASG_ITD AS RAISES_AMOUNT ALIAS SOCIAL_INSURANCE_COMPANY_SHARE_ASG_RUN AS SOCIAL_INSURANCE_COMPANY_SHARE /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR FIXED_SALARY IS 0 DEFAULT FOR VARIABLE_SALARY IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR PER_AGE is 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE X = XXHR_PRINT_DEBUG ('PER_AGE'||TO_CHAR(PER_AGE)) X = XXHR_PRINT_DEBUG ('XXHR_OSI_OVER_AGE'||TO_CHAR(XXHR_OSI_OVER_AGE)) IF PER_AGE < XXHR_OSI_OVER_AGE THEN ( IF (ACP_TERMINATION_DATE < PAY_PROC_PERIOD_END_DATE) THEN (SOCIAL_INSURANCE = 0) ELSE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (SOCIAL_INSURANCE = OVERRIDE_VALUE) ELSE ( FIXED_AMOUNT = BASIC_AMOUNT IF (FIXED_AMOUNT > XXHR_ESI_MAX_SALARY_FIXED) THEN (FIXED_SALARY = XXHR_ESI_MAX_SALARY_FIXED) ELSE (FIXED_SALARY = FIXED_AMOUNT) X = XXHR_PRINT_DEBUG ('FIXED_SALARY'||TO_CHAR(FIXED_SALARY)) IF (VARIABLE_AMOUNT > XXHR_ESI_MAX_SALARY_VARIABLE) THEN (VARIABLE_SALARY = XXHR_ESI_MAX_SALARY_VARIABLE) ELSE (VARIABLE_SALARY = VARIABLE_AMOUNT) X = XXHR_PRINT_DEBUG ('VARIABLE_SALARY'||TO_CHAR(VARIABLE_SALARY)) X = XXHR_PRINT_DEBUG ('XXHR_ESI_PERCENTAGE_FIXED'||TO_CHAR(XXHR_ESI_PERCENTAGE_FIXED)) Payroll Fast Formulas EPROM HRMS Implementation Project Page 15 of 185 X = XXHR_PRINT_DEBUG ('XXHR_ESI_PERCENTAGE_VARIABLE'||TO_CHAR(XXHR_ESI_PERCENTAGE_VARIABLE)) SOCIAL_INSURANCE = (FIXED_SALARY * XXHR_ESI_PERCENTAGE_FIXED / 100) + (VARIABLE_SALARY * XXHR_ESI_PERCENTAGE_VARIABLE/100) X = XXHR_PRINT_DEBUG ('VARIABLE_SALARY'||TO_CHAR(VARIABLE_SALARY)) ) EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( SOCIAL_INSURANCE = SOCIAL_INSURANCE + SOCIAL_INSURANCE_COMPANY_SHARE ) ) ELSE ( SOCIAL_INSURANCE = 0 ) RETURN SOCIAL_INSURANCE Payroll Fast Formulas EPROM HRMS Implementation Project Page 16 of 185 OVERAGE_SOCIAL_INSURANCE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 17 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Overage Insurance for an Employee. Element Requirements 1.Overage Insurance (R/W) User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS FIXED_INSURANCE_SALARY_ASG_RUN AS FIXED_AMOUNT ALIAS VARIABLE_INSURANCE_SALARY_ASG_RUN AS VARIABLE_AMOUNT ALIAS BASIC_SALARY_ASG_RUN AS BASIC_AMOUNT /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR FIXED_SALARY IS 0 DEFAULT FOR VARIABLE_SALARY IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR PER_AGE is 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF PER_AGE >= XXHR_OSI_OVER_AGE THEN ( IF (ACP_TERMINATION_DATE < PAY_PROC_PERIOD_END_DATE) THEN (OVERAGE_INSURANCE = 0) ELSE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (OVERAGE_INSURANCE = OVERRIDE_VALUE) ELSE ( IF (BASIC_AMOUNT > XXHR_ESI_MAX_SALARY_FIXED) THEN (FIXED_SALARY = XXHR_ESI_MAX_SALARY_FIXED) ELSE (FIXED_SALARY = BASIC_AMOUNT) IF (VARIABLE_AMOUNT > XXHR_ESI_MAX_SALARY_VARIABLE) THEN (VARIABLE_SALARY = XXHR_ESI_MAX_SALARY_VARIABLE) ELSE (VARIABLE_SALARY = VARIABLE_AMOUNT) OVERAGE_INSURANCE = (FIXED_SALARY * XXHR_OSI_PERCENTAGE_FIXED / 100) + (VARIABLE_SALARY * XXHR_OSI_PERCENTAGE_VARIABLE / 100) ) ) ELSE ( OVERAGE_INSURANCE = 0 ) RETURN OVERAGE_INSURANCE Payroll Fast Formulas EPROM HRMS Implementation Project Page 18 of 185 COMPLEMENTARY_PENSION_EMP_SHARE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 19 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Overage Insurance for an Employee. Element Requirements 1.Overage Insurance (R/W) User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY ALIAS COMPELMENTARY_PENSION_CMP_SHARE_ASG_RUN AS COMPELMENTARY_PENSION_CMP_SHARE /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR SALARY IS 0 DEFAULT FOR RATE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR PER_AGE IS 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (PENSION = OVERRIDE_VALUE) ELSE ( RATE = TO_NUMBER(GET_TABLE_VALUE('XX_EPM_EMP_COM_PENSION_RATES','Rate',TO_TEXT(PER_AGE),PAY_PROC_PERIOD_END_DATE))/10 0 IF (BASIC_SALARY > XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) THEN (SALARY = XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) ELSE (SALARY = BASIC_SALARY) PENSION = SALARY * RATE EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( PENSION = PENSION + COMPELMENTARY_PENSION_CMP_SHARE ) EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( PENSION = 0 ) ) RETURN PENSION Payroll Fast Formulas EPROM HRMS Implementation Project Page 20 of 185 DEATH_COMPLEMENTARY_PENSION Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 21 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Overage Insurance for an Employee. Element Requirements 1.Overage Insurance (R/W) User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR SALARY IS 0 DEFAULT FOR RATE IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (PENSION = OVERRIDE_VALUE) ELSE ( EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( PENSION = 0 ) ELSE ( RATE = XXHR_DEATH_COMPLEMENTARY_PENSION_RATE/100 IF (BASIC_SALARY > XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) THEN (SALARY = XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) ELSE (SALARY = BASIC_SALARY) PENSION = SALARY * RATE /*EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( PENSION = PENSION/2 )*/ ) ) RETURN PENSION Payroll Fast Formulas EPROM HRMS Implementation Project Page 22 of 185 SOCIAL_INSURANCE_COMPANY_SHARE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 23 of 185 /* ------------------------------------------------------------- This Formula is to Calculate Social Insurance for an Employee. Element Requirements 1.Senility Insurance (R/W) User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS FIXED_INSURANCE_SALARY_ASG_RUN AS FIXED_AMOUNT ALIAS VARIABLE_INSURANCE_SALARY_ASG_RUN AS VARIABLE_AMOUNT ALIAS BASIC_SALARY_ASG_RUN AS BASIC_AMOUNT /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR FIXED_SALARY IS 0 DEFAULT FOR VARIABLE_SALARY IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF (ACP_TERMINATION_DATE < PAY_PROC_PERIOD_END_DATE) THEN (SOCIAL_INSURANCE = 0) ELSE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (SOCIAL_INSURANCE = OVERRIDE_VALUE) ELSE ( IF (BASIC_AMOUNT > XXHR_ESI_MAX_SALARY_FIXED) THEN (FIXED_SALARY = XXHR_ESI_MAX_SALARY_FIXED) ELSE (FIXED_SALARY = BASIC_AMOUNT) IF (VARIABLE_AMOUNT > XXHR_ESI_MAX_SALARY_VARIABLE) THEN (VARIABLE_SALARY = XXHR_ESI_MAX_SALARY_VARIABLE) ELSE (VARIABLE_SALARY = VARIABLE_AMOUNT) SOCIAL_INSURANCE = (FIXED_SALARY * XXHR_CSI_PERCENTAGE_FIXED/ 100) + (VARIABLE_SALARY * XXHR_CSI_PERCENTAGE_VARIABLE/100) EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( SOCIAL_INSURANCE = SOCIAL_INSURANCE/2 ) ) RETURN SOCIAL_INSURANCE Payroll Fast Formulas EPROM HRMS Implementation Project Page 24 of 185 XXHR_SAVING_INSURANCE_COMPANY_SHARE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Company Share - Saving Insurance for an Employee. Element Requirements User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS BASIC_SALARY_PLUS_PRODUCTION_INCENTIVE_ASG_RUN AS BASIC_PROD_INC /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR SALARY IS 0 DEFAULT FOR RATE IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF (ASG_EMPLOYMENT_CATEGORY = 'Temporary') or (ASG_EMPLOYMENT_CATEGORY = '')THEN (INSURANCE = 0) ELSE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (INSURANCE = OVERRIDE_VALUE) ELSE ( RATE = XXHR_CS_SAVING_INSURANCE_PERCENT/100 INSURANCE = BASIC_PROD_INC * RATE ) RETURN INSURANCE Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 25 of 185 XXHR_COMPLEMENTARY_PENSION_COMPANY_SHARE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 26 of 185 /* --------------------------------------------------------------- This Formula is to Calculate Complementary Pension for an Employee. Element Requirements 1.Overage Insurance (R/W) User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ /*ALIAS BASIC_SALARY_PLUS_PRODUCTION_INCENTIVE_ASG_RUN AS BASIC_SALARY*/ ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR SALARY IS 0 DEFAULT FOR RATE IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (PENSION = OVERRIDE_VALUE) ELSE ( EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( PENSION = 0 ) ELSE ( RATE = XXHR_COMPLEMENTARY_PENSION_COMP_SHARE_RATE/100 IF (BASIC_SALARY > XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) THEN (SALARY = XXHR_COMPLEMENTARY_PENSION_MAX_SALARY) ELSE (SALARY = BASIC_SALARY) PENSION = SALARY * RATE EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( PENSION = PENSION/2 ) ) ) RETURN PENSION Payroll Fast Formulas EPROM HRMS Implementation Project Page 27 of 185 XXHR_EMERGENCY_BENEFIT_COMPANY_SHARE Formula Name Description /* -------------------------------------------------------------- This Formula is to Calculate Emergency Benefit for an Employee. Element Requirements User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (BENEFIT = OVERRIDE_VALUE) ELSE ( IF (BASIC_SALARY > XXHR_ESI_MAX_SALARY_FIXED) THEN (FIXED_SALARY = XXHR_ESI_MAX_SALARY_FIXED) ELSE (FIXED_SALARY = BASIC_SALARY) BENEFIT = (FIXED_SALARY * XXHR_EMERGENCY_BENEFIT_PERCENTAGE/ 100) ) RETURN BENEFIT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 28 of 185 XXHR_HEALTH_INSURANCE_COMPANY_SHARE Formula Name Description /* -------------------------------------------------------------- This Formula is to Calculate Emergency Benefit for an Employee. Element Requirements User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (BENEFIT = OVERRIDE_VALUE) ELSE ( IF (BASIC_SALARY > XXHR_ESI_MAX_SALARY_FIXED) THEN (FIXED_SALARY = XXHR_ESI_MAX_SALARY_FIXED) ELSE (FIXED_SALARY = BASIC_SALARY) BENEFIT = (FIXED_SALARY * XXHR_HEALTH_INSURANCE_PERCENTAGE/ 100) ) RETURN BENEFIT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 29 of 185 XXHR_EGYPTIAN_WORKER_UNION Formula Name Description /* -------------------------------------------------------------- This Formula is to Calculate Egyptian Worker Union deduction for an Employee. Element Requirements User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Total_Amount is 0 DEFAULT FOR Percentage IS 0 DEFAULT FOR Amount IS 0 DEFAULT FOR Override_Value is 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (Amount = OVERRIDE_VALUE) ELSE ( Total_Amount = to_number(GET_TABLE_VALUE('XXHR_PETROLEUM_ASSOCIATION_WORKER_UNION_DETAILS','Egyptian Worker Union','Amount',PAY_PROC_PERIOD_END_DATE)) Percentage = (to_number(GET_TABLE_VALUE('XXHR_PETROLEUM_ASSOCIATION_WORKER_UNION_DETAILS','Egyptian Worker Union','Percentage',PAY_PROC_PERIOD_END_DATE)) / 100) Amount = Total_amount * Percentage ) RETURN Amount Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 30 of 185 XXHR_PETROLEUM_ASSOCIATION Formula Name Description /* ------------------------------------------------------------- This Formula is to Calculate Petroleum Association deduction for an Employee. Element Requirements User Defined Function Date Author Changes 12-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Total_Amount is 0 DEFAULT FOR Percentage IS 0 DEFAULT FOR Amount IS 0 DEFAULT FOR OVERRIDE_VALUE is 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1951/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ACP_TERMINATION_DATE is '4712/12/31 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (Amount = OVERRIDE_VALUE) ELSE ( Total_Amount = to_number(GET_TABLE_VALUE('XXHR_PETROLEUM_ASSOCIATION_WORKER_UNION_DETAILS','Petroleum Association','Amount',PAY_PROC_PERIOD_END_DATE)) Percentage = (to_number(GET_TABLE_VALUE('XXHR_PETROLEUM_ASSOCIATION_WORKER_UNION_DETAILS','Petroleum Association','Percentage',PAY_PROC_PERIOD_END_DATE)) / 100) Amount = Total_amount * Percentage ) RETURN Amount Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 31 of 185 XXHR_FAMILY_HEALTH_INSURANCE_MONTHLY Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 32 of 185 /* ---------------------------------------------------------------- This Formula is developed to calculate Medical Subscription amount for Employee's family. Element Requirements User Defined Function Date Author Changes 23-Feb-2010 Kaushik Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR SPOUSE_MEDICAL IS ' ' DEFAULT FOR SPOUSE_DEDUCTION IS 0 DEFAULT FOR CHILD_DEDUCTION IS 0 DEFAULT FOR NUMBER_OF_CHILDREN_COVERED IS 0 DEFAULT FOR MAX_NUMBER_OF_CHILDREN_FOR_MEDICAL_CARE IS 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF Override_Value WAS NOT DEFAULTED THEN ( Deduction = Override_Value ) ELSE ( SPOUSE_MEDICAL = XXHR_SPOUSE_MEDICAL_CARE(PAY_PROC_PERIOD_END_DATE) NUMBER_OF_CHILDREN_COVERED = XXHR_NO_OF_CHILD_MEDICAL_CARE(PAY_PROC_PERIOD_END_DATE) MAX_NUMBER_OF_CHILDREN_FOR_MEDICAL_CARE = TO_NUMBER(GET_TABLE_VALUE('XXHR_MONTHLY_FAMILY_HEALTH_INSURANCE', 'Monthly Family Health Insur Details', 'Max Children', PAY_PROC_PERIOD_END_DATE)) IF SPOUSE_MEDICAL = 'Y' THEN ( SPOUSE_DEDUCTION = TO_NUMBER(GET_TABLE_VALUE('XXHR_MONTHLY_FAMILY_HEALTH_INSURANCE', 'Monthly Family Health Insur Details', 'Spouse Amount', PAY_PROC_PERIOD_END_DATE))) ELSE (SPOUSE_DEDUCTION = 0) IF NUMBER_OF_CHILDREN_COVERED > MAX_NUMBER_OF_CHILDREN_FOR_MEDICAL_CARE THEN (NUMBER_OF_CHILDREN_COVERED = MAX_NUMBER_OF_CHILDREN_FOR_MEDICAL_CARE) CHILD_DEDUCTION = NUMBER_OF_CHILDREN_COVERED * TO_NUMBER(GET_TABLE_VALUE('XXHR_MONTHLY_FAMILY_HEALTH_INSURANCE', 'Monthly Family Health Insur Details', 'Each child Amount', PAY_PROC_PERIOD_END_DATE)) DEDUCTION = SPOUSE_DEDUCTION + CHILD_DEDUCTION ) Return Deduction /* ====== Formula Body Ends ====== */ Payroll Fast Formulas EPROM HRMS Implementation Project Page 33 of 185 XXHR_DISC_PRODUCTION_INCENTIVE_MONTHS Formula Name Description /* ------------------------------------------------------------- This Formula is to Calculate Disciplianry Action Withhold Production Incentive for an Employee. Element Requirements User Defined Function Date Author Changes 13-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS DISCIPLINARY_WITHHOLD_PRODUCTION_INCENTIVE_MONTHS_ASG_ITD AS DEDUCTION_MONTHS /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Balance is 0 DEFAULT FOR RESET IS 0 DEFAULT FOR COUNTER IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE NUMBER_OF_MONTHS BALANCE = (NUMBER_OF_MONTHS - DEDUCTION_MONTHS) IF BALANCE > 1 THEN ( COUNTER = 1 RESET = 0 ) ELSE ( COUNTER = 0 RESET = NUMBER_OF_MONTHS STOP = 'YES' ) RETURN COUNTER, RESET, STOP Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 34 of 185 XXHR_DISC_SUSPENSION Formula Name Description /* ------------------------------------------------------------- This Formula is to Calculate Disciplianry Action Suspension for an Employee. Element Requirements User Defined Function Date Author Changes 13-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ IF (PAY_PROC_PERIOD_END_DATE = TO_DATE('3112'||TO_CHAR(PAY_PROC_PERIOD_END_DATE,'YYYY'),'DDMMYYYY')) THEN ( STOP = 'YES' ) RETURN STOP Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 35 of 185 XXHR_DISC_WITHHOLD_ANNUAL_INCREMENT Formula Name Description /* ------------------------------------------------------------ This Formula is to Calculate Company Raise for an Employee. Element Requirements User Defined Function Date Author Changes 13-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS COMPANY_RAISE_YTD_ASG_YTD AS COMPANY_RAISE ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ACTUAL_RAISE IS 0 DEFAULT FOR PENALTY IS 0 DEFAULT FOR INCREMENT_PERCENTAGE IS ' ' DEFAULT FOR DISCIPLINARY_WITHHOLD_ANNUAL_INCREMENT_INCREMENT_PERCENTAGE_ENTRY_VALUE IS 0 DEFAULT FOR COMPANY_RAISE_ORIGINAL_VALUE_END_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR COMPANY_RAISE_ORIGINAL_VALUE_START_DATE IS '4712/12/31 00:00:00' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE INCREMENT_PERCENTAGE /*L_INCREMENT_PERCENTAGE = TO_CHAR(DISCIPLINARY_WITHHOLD_ANNUAL_INCREMENT_INCREMENT_PERCENTAGE_ENTRY_VALUE) INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE _DETAILS','Details',L_INCREMENT_PERCENTAGE,PAY_PROC_PERIOD_END_DATE )))/100 ACTUAL_RAISE = INCREMENT * BASIC_SALARY PENALTY = COMPANY_RAISE - ACTUAL_RAISE */ PENALTY = 0 IF PENALTY < 0 THEN (PENALTY = 0) IF ((PAY_PROC_PERIOD_END_DATE = COMPANY_RAISE_ORIGINAL_VALUE_END_DATE) AND (PAY_PROC_PERIOD_START_DATE = COMPANY_RAISE_ORIGINAL_VALUE_START_DATE)) THEN ( STOP = 'YES' ) RETURN PENALTY, STOP Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 36 of 185 XXHR_COMPANY_RAISE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 37 of 185 /* ------------------------------------------------------------- This Formula is to Calculate Company Raise for an Employee. Element Requirements User Defined Function Date Author Changes 13-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' DEFAULT FOR RAISE IS 0 DEFAULT FOR INCREMENT IS 0 DEFAULT FOR MAX_RAISE IS 0 DEFAULT FOR MAX_BASIC_COMBINED IS 0 DEFAULT FOR COMBINED_SPECIAL IS 0 DEFAULT FOR APPRAISAL_SCORE IS ' ' DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR COMPANY_RAISE_TEMPORARY_PERCENTAGE_ENTRY_VALUE IS '00' DEFAULT FOR DISCIPLINARY_WITHHOLD_ANNUAL_INCREMENT_INCREMENT_PERCENTAGE_ENTRY_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( RAISE = OVERRIDE_VALUE ) ELSE ( APPRAISAL_SCORE = XXHR_APPRAISAL_SCORE(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-1)) BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG') BASIC_SALARY = XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1))) COMBINED_SPECIAL = XXHR_GET_PAY_VALUE_IN_RANGE(ADD_MONTHS(PAY_PROC_PERIOD_START_DATE,-1), ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1), 'Combined Special Social Gov Grants', 'Original Value') /*x = XXHR_PRINT_DEBUG('BASIC_SALARY'||TO_CHAR(BASIC_SALARY))*/ EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( APPRAISAL_SCORE = (COMPANY_RAISE_TEMPORARY_PERCENTAGE_ENTRY_VALUE) INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE _DETAILS','Details',APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE )))/100 RAISE = BASIC_SALARY * INCREMENT /* x = XXHR_PRINT_DEBUG('COMPANY_RAISE_TEMPORARY_PERCENTAGE_ENTRY_VALUE'||(COMPANY_RAISE_TEMPORARY_PERCENTAGE_ ENTRY_VALUE)) x = XXHR_PRINT_DEBUG('APPRAISAL_SCORE'||(APPRAISAL_SCORE)) x = XXHR_PRINT_DEBUG('INCREMENT'||TO_CHAR(INCREMENT)) x = XXHR_PRINT_DEBUG('RAISE'||TO_CHAR(RAISE))*/ ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 38 of 185 ELSE ( INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE _DETAILS','Details',APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE )))/100 RAISE = BASIC_SALARY * INCREMENT /*x = XXHR_PRINT_DEBUG('INCREMENT'||TO_CHAR(INCREMENT)) x = XXHR_PRINT_DEBUG('RAISE'||TO_CHAR(RAISE))*/ ) IF DISCIPLINARY_WITHHOLD_ANNUAL_INCREMENT_INCREMENT_PERCENTAGE_ENTRY_VALUE WAS NOT DEFAULTED THEN ( RAISE = BASIC_SALARY * DISCIPLINARY_WITHHOLD_ANNUAL_INCREMENT_INCREMENT_PERCENTAGE_ENTRY_VALUE/100 ) MAX_BASIC_COMBINED = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_COMP_BASIC_COMB','Grade Name',ASG_GRADE,PAY_PROC_PERIOD_END_DATE )) DIFF = MAX_BASIC_COMBINED - (BASIC_SALARY - COMBINED_SPECIAL) IF RAISE > DIFF THEN (RAISE = DIFF) MAX_RAISE = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE_MIN',ASG_GRADE,APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE ))) RAISE = LEAST(MAX_RAISE, RAISE) /* x = XXHR_PRINT_DEBUG('MAX_BASIC_COMBINED'||TO_CHAR(MAX_BASIC_COMBINED)) x = XXHR_PRINT_DEBUG('DIFF'||TO_CHAR(DIFF)) x = XXHR_PRINT_DEBUG('MAX_RAISE'||TO_CHAR(MAX_RAISE)) x = XXHR_PRINT_DEBUG('RAISE'||TO_CHAR(RAISE))*/ ) IF RAISE < 0 THEN RAISE =0 RETURN RAISE Payroll Fast Formulas EPROM HRMS Implementation Project Page 39 of 185 XXHR_SICK_LEAVE_DEDUCTION Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 40 of 185 /* ---------------------------------------------------------------- THIS FORMULA IS TO CALCULATE SICK Leave Deduction WORKED FOR AN EMPLOYEE. ELEMENT REQUIREMENTS 1.Sick Deduction (R/W) USER DEFINED FUNCTION DATE AUTHOR CHANGES 15-Jul-2010 Kaushik Created ------------------------------------------------------------------ */ /* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */ DEFAULT FOR YEARS_OF_SERVICE IS 0 DEFAULT FOR SICK_ABSENCE IS 0 DEFAULT FOR SICK_ABSENCE_PREV_MONTH IS 0 /* ====== VARIABLES VALUE DEFAULTS ENDS ====== */ /* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE IS '1900/01/01 00:00:00' (DATE) DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR DAYS_IN_MONTH IS 30 DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR SICKLEAVE_DEDUCTION_PERCENTAGE IS 0 /* ====== DATABASE ITEMS DEFAULTS ENDS ====== */ /* ====== FORMULA BODY STARTS ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( SICK_DEDUCTION = OVERRIDE_VALUE ) ELSE ( /* YEARS_SERVICE = MONTHS_BETWEEN(PAY_PROC_PERIOD_END_DATE,EMP_HIRE_DATE)/12 BLOCK_YEAR = TO_NUMBER(GET_TABLE_VALUE('XXHR_SICK_LEAVE_ELIGIBILITY_BLOCK','Details',TO_TEXT(YEARS_SERVICE ))) ELIG_YEAR = ADD_YEARS(EMP_HIRE_DATE,BLOCK_YEAR) ELIG_END_YEAR = ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1) SICK_ABSENCE = GET_ABSENCE_DURATION(ELIG_YEAR,ELIG_END_YEAR,'Sick Leave') SICK_ABSENCE_THIS_MONTH = GET_ABSENCE_DURATION(PAY_PROC_PERIOD_START_DATE ,PAY_PROC_PERIOD_END_DATE,'Sick Leave') DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1 SICK_TOTAL = SICK_ABSENCE + SICK_ABSENCE_THIS_MONTH IF SICK_TOTAL <= 90 THEN ( SICK_DEDUCTION = 0 ) IF (SICK_TOTAL > 90) AND (SICK_TOTAL <= 180) THEN ( SICK_DEDUCTION = SICK_ABSENCE_THIS_MONTH/DAYS_IN_MONTH * BASIC_SALARY_ASG_RUN * .75 ) IF (SICK_TOTAL > 180) AND (SICK_TOTAL <= 360) THEN( SICK_DEDUCTION = SICK_ABSENCE_THIS_MONTH/DAYS_IN_MONTH * BASIC_SALARY_ASG_RUN * .50 ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 41 of 185 IF (SICK_TOTAL > 90) AND (SICK_ABSENCE < 90) THEN ( SICK_DAYS = SICK_ABSENCE_THIS_MONTH - (90 -(SICK_ABSENCE)) SICK_DEDUCTION = SICK_DAYS/DAYS_IN_MONTH * BASIC_SALARY_ASG_RUN * .75) IF (SICK_TOTAL > 180) AND (SICK_ABSENCE < 180) THEN ( SICK_DAYS_75 = SICK_ABSENCE_THIS_MONTH - (180 -(SICK_ABSENCE)) SICK_DAYS_50 = SICK_ABSENCE_THIS_MONTH - SICK_DAYS_75 SICK_DEDUCTION = (SICK_DAYS_75/DAYS_IN_MONTH * BASIC_SALARY_ASG_RUN * .75) + (SICK_DAYS_50/DAYS_IN_MONTH * BASIC_SALARY_ASG_RUN * .50)) */ PREV_START_DATE = ADD_MONTHS(PAY_PROC_PERIOD_START_DATE,-1) PREV_END_DATE = ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1) DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1 /* X= XXHR_PRINT_DEBUG('PREV_START_DATE'||TO_CHAR(PREV_START_DATE)) X= XXHR_PRINT_DEBUG('PREV_END_DATE'||TO_CHAR(PREV_END_DATE)) X= XXHR_PRINT_DEBUG('DAYS_IN_MONTH'||TO_CHAR(DAYS_IN_MONTH)) */ SICK_ABSENCE_PREV_MONTH = Get_Sick_Absence_Duration(PREV_START_DATE ,PREV_END_DATE,'Sick Leave') /* X= XXHR_PRINT_DEBUG('SICK_ABSENCE_PREV_MONTH'||TO_CHAR(SICK_ABSENCE_PREV_MONTH)) */ SICK_DEDUCTION = BASIC_SALARY_PLUS_PRODUCTION_INCENTIVE_ASG_PTD * SICKLEAVE_DEDUCTION_PERCENTAGE/100 * SICK_ABSENCE_PREV_MONTH/DAYS_IN_MONTH /* X= XXHR_PRINT_DEBUG('SICK_DEDUCTION'||TO_CHAR(SICK_DEDUCTION)) X= XXHR_PRINT_DEBUG('BASIC_SALARY_PLUS_PRODUCTION_INCENTIVE_ASG_PTD'||TO_CHAR(BASIC_SALARY_PLUS_PRODUCTION_INC ENTIVE_ASG_PTD)) */ ) RETURN SICK_DEDUCTION /* ====== FORMULA BODY ENDS ====== */ Payroll Fast Formulas EPROM HRMS Implementation Project Page 42 of 185 XXHR_DEDUTION_AMOUNT Formula Name Description /*----------------------------------------------------------- This Formula is a common formula to be used by all deduction elements that use only the Amount value for an Employee. Element Requirements User Defined Function Date Author Changes 14-June-2009 Arun Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Amount IS 0 DEFAULT FOR Deduction_Amount IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Amount IF Amount WAS NOT DEFAULTED THEN ( Deduction_Amount = Amount RETURN Deduction_Amount ) Else ( Deduction_Amount = 0 Return Deduction_Amount ) /*====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 43 of 185 XXHR_MONTHLY_TAX Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 44 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Tax for an Employee. Element Requirements 1.Tax (R/W) User Defined Function Date Author Changes 15-Jult-2010 Kaushik Created ------------------------------------------------------------------ */ DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR L_TAX_SLAB IS 0 DEFAULT FOR L_ADITIONAL_AMOUNT IS 0 DEFAULT FOR L_REDUCED_AMOUNT IS 0 /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR JOINED_AMOUNT is 0 DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR EMPLOYEE_TAX IS 0 DEFAULT FOR COMPANY_PENSION_TAX IS 0 DEFAULT FOR COMPANY_MONTHLY_BOUNS_TAX IS 0 DEFAULT FOR COMPANY_PLAN_INCEN_TAX IS 0 DEFAULT FOR COMPANY_TRANSPORT_ALLOWANCE_TAX IS 0 DEFAULT FOR COMPANY_MEAL_ALLOWANCE_TAX IS 0 DEFAULT FOR COMPANY_Production_Incentive_TAX IS 0 DEFAULT FOR COMPANY_Experience_Incentive_TAX IS 0 DEFAULT FOR COMPANY_Meal_Allowance_2_TAX IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR PROD_EXP_INC_START_DATE is '2011/03/01 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE PROD_EXP_INC_START_DATE = TO_DATE('2011/03/01','yyyy/mm/dd') IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN( EMPLOYEE_TAX = OVERRIDE_VALUE COMPANY_PENSION_TAX = 0 COMPANY_MONTHLY_BOUNS_TAX = 0 COMPANY_PLAN_INCEN_TAX = 0 COMPANY_TRANSPORT_ALLOWANCE_TAX = 0 COMPANY_MEAL_ALLOWANCE_TAX =0 COMPANY_Production_Incentive_TAX = 0 COMPANY_Experience_Incentive_TAX = 0 COMPANY_Meal_Allowance_2_TAX = 0 ) ELSE ( /*************************** Employee Tax**********************************/ EMPLOYEE_SHARE = EMPLOYEE_TAXABLE_SALARY_ASG_PTD X = XXHR_PRINT_DEBUG('EMPLOYEE_SHARE'||TO_CHAR(EMPLOYEE_SHARE)) TAXABLE_MONTHLY = EMPLOYEE_SHARE EXEMPTION = XXHR_TAX_EXEMPTION /*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/ TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2) X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL)) IF TAX_POOL <= 0 THEN Tax_Pool = 0 Payroll Fast Formulas EPROM HRMS Implementation Project Page 45 of 185 L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool))) L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool))) L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool))) PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT)) X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB)) X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT)) X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT)) PAYMENT = TRUNC((PAYMENT /12),2) EMPLOYEE_TAX = PAYMENT If (EMPLOYEE_TAX < 0) THEN (EMPLOYEE_TAX = 0) /*************************** Employee Tax**********************************/ /*************************** Company Share Pension Tax**********************************/ Complementary_Pension = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Complementary Pension Employe Share','Pay Value') + XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Complementary Pension Employe Share Retro','Pay Value') Death_Cmp_Pesion = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Death Complementary Pension','Pay Value') + XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Death Complementary Pension Retro','Pay Value') X = XXHR_PRINT_DEBUG('EMPLOYEE_SHARE'||TO_CHAR(EMPLOYEE_SHARE)) TAXABLE_MONTHLY = EMPLOYEE_SHARE + Complementary_Pension + Death_Cmp_Pesion EXEMPTION = XXHR_TAX_EXEMPTION TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2) X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL)) IF TAX_POOL <= 0 THEN Tax_Pool = 0 L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool))) L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool))) L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool))) PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT)) X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB)) X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT)) X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT)) PAYMENT = TRUNC((PAYMENT /12),2) COMPANY_PENSION_TAX = PAYMENT - EMPLOYEE_TAX If (COMPANY_PENSION_TAX < 0) THEN (COMPANY_PENSION_TAX = 0) Payroll Fast Formulas EPROM HRMS Implementation Project Page 46 of 185 /*************************** Company Share Pension Tax**********************************/ /*************************** Company Share Monthly Bonus Tax**********************************/ Monthly_Bonus = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Monthly Bonus','Pay Value') + XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Monthly Bonus Retro','Pay Value') X = XXHR_PRINT_DEBUG('EMPLOYEE_SHARE'||TO_CHAR(EMPLOYEE_SHARE)) TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion EXEMPTION = XXHR_TAX_EXEMPTION /*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/ TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2) X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL)) IF TAX_POOL <= 0 THEN Tax_Pool = 0 L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool))) L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool))) L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool))) PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT)) X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB)) X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT)) X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT)) PAYMENT = TRUNC((PAYMENT /12),2) COMPANY_MONTHLY_BOUNS_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX) If (COMPANY_MONTHLY_BOUNS_TAX < 0) THEN (COMPANY_MONTHLY_BOUNS_TAX = 0) /*************************** Company Share Monthly Bonus Tax**********************************/ /*************************** Company Share Plan Incentives Tax**********************************/ Plan_incentive_non_rec = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Plan Accomplishment Incentive Non Recurring','Pay Value') X = XXHR_PRINT_DEBUG('EMPLOYEE_SHARE'||TO_CHAR(EMPLOYEE_SHARE)) TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec EXEMPTION = XXHR_TAX_EXEMPTION /*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/ TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2) X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL)) IF TAX_POOL <= 0 THEN Tax_Pool = 0 L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool))) Payroll Fast Formulas EPROM HRMS Implementation Project Page 47 of 185 L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool))) L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool))) PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT)) X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB)) X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT)) X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT)) PAYMENT = TRUNC((PAYMENT /12),2) COMPANY_PLAN_INCEN_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX) If (COMPANY_PLAN_INCEN_TAX < 0) THEN (COMPANY_PLAN_INCEN_TAX = 0) /*************************** Company Share Plan Incentives Tax**********************************/ /*************************** Company Share Transport Tax**********************************/ Tranport_Allowance = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Transportation Allowance','Pay Value') + XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Transportation Allowance Retro','Pay Value') X = XXHR_PRINT_DEBUG('EMPLOYEE_SHARE'||TO_CHAR(EMPLOYEE_SHARE)) TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec + Tranport_Allowance EXEMPTION = XXHR_TAX_EXEMPTION /*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/ TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2) X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL)) IF TAX_POOL <= 0 THEN Tax_Pool = 0 L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool))) L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool))) L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool))) PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT)) X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB)) X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT)) X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT)) PAYMENT = TRUNC((PAYMENT /12),2) COMPANY_TRANSPORT_ALLOWANCE_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX + COMPANY_PLAN_INCEN_TAX) If (COMPANY_TRANSPORT_ALLOWANCE_TAX < 0) THEN (COMPANY_TRANSPORT_ALLOWANCE_TAX = 0) /*************************** Company Share Transport Tax**********************************/ Payroll Fast Formulas EPROM HRMS Implementation Project Page 48 of 185 /*************************** Company Share Meal Allowance Tax**********************************/ Meal_Allowance = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Meal Allowance','Pay Value') X = XXHR_PRINT_DEBUG('Meal_Allowance'||TO_CHAR(Meal_Allowance)) TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec + Tranport_Allowance + Meal_Allowance EXEMPTION = XXHR_TAX_EXEMPTION /*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/ TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2) X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL)) IF TAX_POOL <= 0 THEN Tax_Pool = 0 L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool))) L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool))) L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool))) PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT)) X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB)) X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT)) X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT)) PAYMENT = TRUNC((PAYMENT /12),2) COMPANY_MEAL_ALLOWANCE_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX + COMPANY_PLAN_INCEN_TAX + COMPANY_TRANSPORT_ALLOWANCE_TAX) If (COMPANY_MEAL_ALLOWANCE_TAX < 0) THEN (COMPANY_MEAL_ALLOWANCE_TAX = 0) /*************************** Company Share Transport Tax**********************************/ IF PAY_PROC_PERIOD_END_DATE > PROD_EXP_INC_START_DATE THEN ( /*************************** Company Share Production Incentive Tax**********************************/ /*Production_Incentive = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Production Incentive','Pay Value') + XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Production Incentive Retro','Pay Value')*/ Production_Incentive = PRODUCTION_INCENTIVE_ASG_ASG_RUN X = XXHR_PRINT_DEBUG('Production_Incentive'||TO_CHAR(Production_Incentive)) TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec + Tranport_Allowance + Meal_Allowance + Production_Incentive EXEMPTION = XXHR_TAX_EXEMPTION /*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/ TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2) Payroll Fast Formulas EPROM HRMS Implementation Project Page 49 of 185 X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL)) IF TAX_POOL <= 0 THEN Tax_Pool = 0 L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool))) L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool))) L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool))) PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT)) X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB)) X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT)) X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT)) PAYMENT = TRUNC((PAYMENT /12),2) COMPANY_Production_Incentive_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX + COMPANY_PLAN_INCEN_TAX + COMPANY_TRANSPORT_ALLOWANCE_TAX + COMPANY_MEAL_ALLOWANCE_TAX) If (COMPANY_Production_Incentive_TAX < 0) THEN (COMPANY_Production_Incentive_TAX = 0) /*************************** Company Share Production Incentive Tax**********************************/ /*************************** Company Share Experience Incentive Tax**********************************/ Experience_Incentive = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Experience Incentive','Pay Value') + XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Experience Incentive Retro','Pay Value') X = XXHR_PRINT_DEBUG('Experience_Incentive'||TO_CHAR(Experience_Incentive)) TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec + Tranport_Allowance + Meal_Allowance + Production_Incentive + Experience_Incentive EXEMPTION = XXHR_TAX_EXEMPTION /*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/ TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2) X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL)) IF TAX_POOL <= 0 THEN Tax_Pool = 0 L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool))) L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool))) L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool))) PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT)) X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB)) X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT)) X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT)) PAYMENT = TRUNC((PAYMENT /12),2) COMPANY_Experience_Incentive_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX + COMPANY_PLAN_INCEN_TAX Payroll Fast Formulas EPROM HRMS Implementation Project Page 50 of 185 + COMPANY_TRANSPORT_ALLOWANCE_TAX + COMPANY_MEAL_ALLOWANCE_TAX + COMPANY_Production_Incentive_TAX) If (COMPANY_Experience_Incentive_TAX < 0) THEN (COMPANY_Experience_Incentive_TAX = 0) /*************************** Company Share Experience Incentive Tax**********************************/ /*************************** Company Meal Allowance 2 Tax**********************************/ Meal_Allowance_2 = XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Meal Allowance 2','Pay Value') + XXHR_GET_PAY_VALUE_IN_RANGE(PAY_PROC_PERIOD_START_DATE,PAY_PROC_PERIOD_END_DATE,'Meal Allowance 2 Retro','Pay Value') X = XXHR_PRINT_DEBUG('Meal_Allowance_2'||TO_CHAR(Meal_Allowance_2)) TAXABLE_MONTHLY = EMPLOYEE_SHARE + Monthly_Bonus + Complementary_Pension + Death_Cmp_Pesion + Plan_incentive_non_rec + Tranport_Allowance + Meal_Allowance + Production_Incentive + Experience_Incentive + Meal_Allowance_2 EXEMPTION = XXHR_TAX_EXEMPTION /*TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),-1)*/ TAX_POOL = TRUNC(((TAXABLE_MONTHLY * 12) - EXEMPTION),2) X = XXHR_PRINT_DEBUG('TAX_POOL'||TO_CHAR(TAX_POOL)) IF TAX_POOL <= 0 THEN Tax_Pool = 0 L_TAX_SLAB = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Tax Rate',to_text(Tax_Pool))) L_ADITIONAL_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Additional Amount',to_text(Tax_Pool))) L_REDUCED_AMOUNT = TO_NUMBER(GET_TABLE_VALUE('XXHR_EGYPT_INCOME_TAX_RATES','Reduced Amount',to_text(Tax_Pool))) PAYMENT = L_TAX_SLAB * (TAX_POOL - L_REDUCED_AMOUNT) + L_ADITIONAL_AMOUNT X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT)) X = XXHR_PRINT_DEBUG('L_TAX_SLAB'||TO_CHAR(L_TAX_SLAB)) X = XXHR_PRINT_DEBUG('L_REDUCED_AMOUNT'||TO_CHAR(L_REDUCED_AMOUNT)) X = XXHR_PRINT_DEBUG('L_ADITIONAL_AMOUNT'||TO_CHAR(L_ADITIONAL_AMOUNT)) PAYMENT = TRUNC((PAYMENT /12),2) COMPANY_Meal_Allowance_2_TAX = PAYMENT - (EMPLOYEE_TAX + COMPANY_PENSION_TAX + COMPANY_MONTHLY_BOUNS_TAX + COMPANY_PLAN_INCEN_TAX + COMPANY_TRANSPORT_ALLOWANCE_TAX + COMPANY_MEAL_ALLOWANCE_TAX + COMPANY_Production_Incentive_TAX + COMPANY_Experience_Incentive_TAX) If (COMPANY_Meal_Allowance_2_TAX < 0) THEN (COMPANY_Meal_Allowance_2_TAX = 0) /*************************** Company Meal Allowance 2 Tax**********************************/ ) ) RETURN EMPLOYEE_TAX, COMPANY_PENSION_TAX,COMPANY_MONTHLY_BOUNS_TAX,COMPANY_PLAN_INCEN_TAX,COMPANY_TRANSPORT_ALLOWANCE_TAX,
COMPANY_MEAL_ALLOWANCE_TAX,COMPANY_Production_Incentive_TAX,COMPANY_Experience_Incentive_TAX,COMPANY_Meal_Allowance _2_TAX Payroll Fast Formulas EPROM HRMS Implementation Project Page 51 of 185 XXHR_INITIAL_FAMILY_HEALTH_INSURANCE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Initial Family Health Insurance for an Employee. Element Requirements 1.Tax (R/W) User Defined Function Date Author Changes 15-Jult-2010 Kaushik Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN( PAYMENT = OVERRIDE_VALUE ) ELSE ( PAYMENT = XXHR_INITIAL_HEALTH_INSURANCE ) RETURN PAYMENT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 52 of 185 XXHR_MERE_BASIC Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 53 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Mere Basic for an Employee. Element Requirements 1.Tax (R/W) User Defined Function Date Author Changes 15-Jult-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS CURRENT_CONTRACT_VALUE_ASG_ITD AS CONTRACT_VALUE ALIAS PROD_CURRENT_CONTRACT_VALUE_ASG_ITD AS CONTRACT_VALUE_TEMP /* ====== Variables Value Defaults Begin ====== */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' DEFAULT FOR ASG_ASSIGNMENT_CATEGORY IS ' ' DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (Date) DEFAULT FOR ASG_ASSIGNMENT_CATEGORY IS ' ' DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE RATE =0 EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) msg = 'contract -' +TO_TEXT(CONTRACT_VALUE) MSG2 = 'ASG_ASSIGNMENT_CATEGORY' || ASG_ASSIGNMENT_CATEGORY MSG1 = 'ASG_EMPLOYMENT_CATEGORY' || ASG_EMPLOYMENT_CATEGORY IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN( PAYMENT = OVERRIDE_VALUE ) ELSE ( IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( /* X = XXHR_PRINT_DEBUG('CONTRACT_VALUE_TEMP '||TO_CHAR(CONTRACT_VALUE_TEMP))*/ RATE = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_TEMP_EMP_MERE_BASIC','Mere Basic Temp Value',TO_CHAR(CONTRACT_VALUE_TEMP),PAY_PROC_PERIOD_END_DATE)) PAYMENT = (RATE/100) * CONTRACT_VALUE_TEMP /*X = XXHR_PRINT_DEBUG('RATE '||TO_CHAR(RATE)) X = XXHR_PRINT_DEBUG('PAYMENT '||TO_CHAR(PAYMENT))*/ ) ELSE ( PAYMENT = XXHR_MERE_BASIC(PAY_PROC_PERIOD_END_DATE) ) ) RETURN PAYMENT,msg,MSG1,MSG2 Payroll Fast Formulas EPROM HRMS Implementation Project Page 54 of 185 ACCUMULATED_JOINED_RAISE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Accumulated Joined Raise for an Employee. Element Requirements 1.Accumulated Joined Raise (R/W) User Defined Function Date Author Changes 17-May-2010 Kaushik D ------------------------------------------------------------------ */ ALIAS JOINED_RAISES_ASG_ITD AS JOINED_RAISES DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR JOINED_AMOUNT is 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF Override_Value WAS NOT DEFAULTED THEN ( JOINED_AMOUNT = Override_Value ) JOINED_AMOUNT = JOINED_RAISES RETURN JOINED_AMOUNT /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 55 of 185 JOINED_RAISES Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate JOINED_RAISE for an Employee. Element Requirements 1.JOINED_RAISE (R/W) User Defined Function Date Author Changes 17-May-2010 Kaushik D Created ------------------------------------------------------------------ */ ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR JOINED_AMOUNT is 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR GRADE_MIDOR_EMPLOYEES_GRADE_RATE_MINIMUM IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Percentage,Override_Value IF Override_Value WAS NOT DEFAULTED THEN ( JOINED_AMOUNT = Override_Value RETURN JOINED_AMOUNT ) ELSE ( JOINED_AMOUNT = BASIC_SALARY * Percentage/100) IF Override_Value WAS DEFAULTED THEN ( UPD_REC = JOINED_AMOUNT RETURN UPD_REC,JOINED_AMOUNT ) RETURN JOINED_AMOUNT /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 56 of 185 NEW_HIRE_SPECIAL_INCREASES Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 57 of 185 /* ---------------------------------------------------------------- THIS FORMULA IS TO CALCULATE NEW HIRE SPECIAL INCREASES INFO FOR AN EMPLOYEE. ELEMENT REQUIREMENTS 1.NEW HIRE SPECIAL INCREASES INFO (R/W) USER DEFINED FUNCTION DATE AUTHOR CHANGES 17-May-2010 Kaushik D CREATED ------------------------------------------------------------------ */ /*********** ALIAS FOR USED BALANCES OR DATABASE ITEMS ********/ ALIAS MERE_BASIC_ASG_RUN AS BASIC_SALARY /************ DEFAULT VALUES SECTION *************/ DEFAULT FOR SPECIAL_INCREASE_1 IS 0 DEFAULT FOR SPECIAL_INCREASE_2 IS 0 DEFAULT FOR SPECIAL_INCREASE_3 IS 0 DEFAULT FOR SPECIAL_INCREASE_4 IS 0 DEFAULT FOR SPECIAL_INCREASE_5 IS 0 DEFAULT FOR ACCUMULATED_SPECIAL_INCREASES IS 0 DEFAULT FOR NEW_HIRE_ACCUMULATED_SPECIAL_INCREASES IS 0 DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '0001/12/31 00:00:00'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '0001/12/31 00:00:00'(DATE) /*************** INPUTS SECTIONS ***************/ INPUTS ARE SPECIAL_INCREASE_1 ,SPECIAL_INCREASE_2 ,SPECIAL_INCREASE_3,SPECIAL_INCREASE_4 ,SPECIAL_INCREASE_5,ACCUMULATED_SPECIAL_INCREASES IF (PAY_PROC_PERIOD_END_DATE < TO_DATE('3107'||TO_CHAR(PAY_PROC_PERIOD_END_DATE, 'YYYY'),'DDMMYYYY')) Then (YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 6) Else (YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 5) IF SPECIAL_INCREASE_1 WAS NOT DEFAULTED THEN NEW_HIRE_SPECIAL_INCREASE_1 = SPECIAL_INCREASE_1 ELSE( MAX_1 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Maximum',TO_CHAR(YEAR+1),PAY_PROC_PERIOD_END_DA TE)) MIN_1 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Minimum',TO_CHAR(YEAR+1),PAY_PROC_PERIOD_END_DAT E)) PER_1 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Percentage',TO_CHAR(YEAR+1),PAY_PROC_PERIOD_END_D ATE)) NEW_HIRE_SPECIAL_INCREASE_1 = BASIC_SALARY * PER_1/100 IF NEW_HIRE_SPECIAL_INCREASE_1 < MIN_1 THEN ( NEW_HIRE_SPECIAL_INCREASE_1 = MIN_1 ) ELSE IF NEW_HIRE_SPECIAL_INCREASE_1 > MAX_1 THEN ( NEW_HIRE_SPECIAL_INCREASE_1 = MAX_1 ) ) IF SPECIAL_INCREASE_2 WAS NOT DEFAULTED THEN NEW_HIRE_SPECIAL_INCREASE_2 = SPECIAL_INCREASE_2 ELSE ( MAX_2 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Maximum',TO_CHAR(YEAR+2),PAY_PROC_PERIOD_END_DA TE)) MIN_2 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Minimum',TO_CHAR(YEAR+2),PAY_PROC_PERIOD_END_DAT E)) PER_2 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Percentage',TO_CHAR(YEAR+2),PAY_PROC_PERIOD_END_D ATE)) Payroll Fast Formulas EPROM HRMS Implementation Project Page 58 of 185 NEW_HIRE_SPECIAL_INCREASE_2 = BASIC_SALARY * PER_2/100 IF NEW_HIRE_SPECIAL_INCREASE_2 < MIN_2 THEN ( NEW_HIRE_SPECIAL_INCREASE_2 = MIN_2 ) ELSE IF NEW_HIRE_SPECIAL_INCREASE_2 > MAX_2 THEN ( NEW_HIRE_SPECIAL_INCREASE_2 = MAX_2 ) ) IF SPECIAL_INCREASE_3 WAS NOT DEFAULTED THEN NEW_HIRE_SPECIAL_INCREASE_3 = SPECIAL_INCREASE_3 ELSE ( MAX_3 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Maximum',TO_CHAR(YEAR+3),PAY_PROC_PERIOD_END_DA TE)) MIN_3 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Minimum',TO_CHAR(YEAR+3),PAY_PROC_PERIOD_END_DAT E)) PER_3 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Percentage',TO_CHAR(YEAR+3),PAY_PROC_PERIOD_END_D ATE)) NEW_HIRE_SPECIAL_INCREASE_3 = BASIC_SALARY * PER_3/100 IF NEW_HIRE_SPECIAL_INCREASE_3 < MIN_3 THEN ( NEW_HIRE_SPECIAL_INCREASE_3 = MIN_3 ) ELSE IF NEW_HIRE_SPECIAL_INCREASE_3 > MAX_3 THEN ( NEW_HIRE_SPECIAL_INCREASE_3 = MAX_3 ) ) IF SPECIAL_INCREASE_4 WAS NOT DEFAULTED THEN NEW_HIRE_SPECIAL_INCREASE_4 = SPECIAL_INCREASE_4 ELSE ( MAX_4 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Maximum',TO_CHAR(YEAR+4),PAY_PROC_PERIOD_END_DA TE)) MIN_4 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Minimum',TO_CHAR(YEAR+4),PAY_PROC_PERIOD_END_DAT E)) PER_4 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Percentage',TO_CHAR(YEAR+4),PAY_PROC_PERIOD_END_D ATE)) NEW_HIRE_SPECIAL_INCREASE_4 = BASIC_SALARY * PER_4/100 IF NEW_HIRE_SPECIAL_INCREASE_4 < MIN_4 THEN ( NEW_HIRE_SPECIAL_INCREASE_4 = MIN_4 ) ELSE IF NEW_HIRE_SPECIAL_INCREASE_4 > MAX_4 THEN ( NEW_HIRE_SPECIAL_INCREASE_4 = MAX_4 ) ) IF SPECIAL_INCREASE_5 WAS NOT DEFAULTED THEN NEW_HIRE_SPECIAL_INCREASE_5 = SPECIAL_INCREASE_5 ELSE ( MAX_5 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Maximum',TO_CHAR(YEAR+5),PAY_PROC_PERIOD_END_DA TE)) MIN_5 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Minimum',TO_CHAR(YEAR+5),PAY_PROC_PERIOD_END_DAT E)) Payroll Fast Formulas EPROM HRMS Implementation Project Page 59 of 185 PER_5 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SOCIAL_RAISE_VALUES','Percentage',TO_CHAR(YEAR+5),PAY_PROC_PERIOD_END_D ATE)) NEW_HIRE_SPECIAL_INCREASE_5 = BASIC_SALARY * PER_5/100 IF NEW_HIRE_SPECIAL_INCREASE_5 < MIN_5 THEN ( NEW_HIRE_SPECIAL_INCREASE_5 = MIN_5 ) ELSE IF NEW_HIRE_SPECIAL_INCREASE_5 > MAX_5 THEN ( NEW_HIRE_SPECIAL_INCREASE_5 = MAX_5 ) ) RETURN NEW_HIRE_SPECIAL_INCREASE_1,NEW_HIRE_SPECIAL_INCREASE_2,NEW_HIRE_SPECIAL_INCREASE_3,NEW_HIRE_SPECIAL_INCREAS E_4, NEW_HIRE_SPECIAL_INCREASE_5 Payroll Fast Formulas EPROM HRMS Implementation Project Page 60 of 185 OVERRIDE_EARNINGS Formula Name Description /* ---------------------------------------------------------------- This Formula is a common formula to be used by all elements that use only the Override value for an Employee. Element Requirements User Defined Function Date Author Changes 14-June-2009 Arun Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF Override_Value WAS NOT DEFAULTED THEN ( AMOUNT = Override_Value RETURN AMOUNT ) Else ( Amount = 0 Return Amount ) /*====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 61 of 185 XXHR_DAYS_WORKED Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Monthly Days Worked for an Employee. Element Requirements 1.Days Worked (R/W) User Defined Function Date Author Changes 7-Jul-2010 Arun Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Days_Worked is 0 DEFAULT FOR MONTH_DAYS is 0 DEFAULT FOR TOTAL_DAYS is 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE1 is '1900/01/01 00:00:00' (DATE) DEFAULT FOR EMP_TERM_DATE1 IS '4712/12/31 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Days_Worked E_DATE = LEAST(PAY_PROC_PERIOD_END_DATE,EMP_TERM_DATE) S_DATE = GREATEST(PAY_PROC_PERIOD_START_DATE,EMP_HIRE_DATE) UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave') LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence') MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid') /*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/ UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,- 1)),'Unauthorized Absence') Total_Days = days_between(E_DATE,S_DATE)+1 EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( Total_Days = Total_Days/2 ) Month_Days = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE) RETURN MONTH_DAYS,Total_Days /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 62 of 185 XXHR_SPECIAL_SHIFT_ALLOWANCE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Special Shift allowance of an Employee.
Element Requirements 1. Special Shift allowance(R/W) User Defined Function 1. NONE User Defined Table Used 1. XXHR_SPECIAL_SHIFT_ALLOWANCE ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Override_Value is 0 DEFAULT FOR No_of_Days is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) DEFAULT FOR ASG_GRADE IS '0' DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS '0' DEFAULT FOR ORIGINAL_VLAUE IS 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS are Override_Value, No_of_Days GRADE = GREATEST(ASG_GRADE,GROUP_KF_DELEGATED_GRADE) Per_Diem = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SHIFT_ALLOWANCE','Value per shift day',GRADE)) Special_Shift_Allowance = Per_Diem * No_of_Days IF Override_Value was DEFAULTED THEN Special_Shift_Allowance = Special_Shift_Allowance ELSE Special_Shift_Allowance = Override_Value ORIGINAL_VLAUE = Special_Shift_Allowance Return Special_Shift_Allowance,ORIGINAL_VLAUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 63 of 185 XXHR_MEAL_ALLOWANCE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Meal Allowance of an Employee.
Element Requirements 1. Meal Allowance(R/W) User Defined Function 1. NONE Globals Used 1. XXHR_MEAL_ALLOWANCE ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Meal_Allowance is 0 DEFAULT FOR Override_Value is 0 DEFAULT FOR No_of_Days is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) DEFAULT FOR ORIGINAL_VLAUE IS 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS are Override_Value,No_of_Days Meal_Allowance = XXHR_MEAL_ALLOWANCE IF Override_Value was DEFAULTED THEN Meal_Allowance = Meal_Allowance * No_of_Days ELSE Meal_Allowance = Override_Value ORIGINAL_VLAUE = Meal_Allowance Return Meal_Allowance,ORIGINAL_VLAUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 64 of 185 XXHR_LABOR_INCENTIVE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Labor Incentive of an Employee.
Element Requirements 1. Labor Incentive(R/W) User Defined Function 1. NONE Globals Used 1. XXHR_LABOR_INCENTIVE_AMOUNT ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Labor_Incentive is 0 DEFAULT FOR Override_Value is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS are Override_Value ORIGINAL_VALUE = XXHR_LABOR_INCENTIVE_AMOUNT IF Override_Value was DEFAULTED THEN ORIGINAL_VALUE = ORIGINAL_VALUE ELSE ORIGINAL_VALUE = Override_value Labor_Incentive = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN) Return Labor_Incentive, ORIGINAL_VALUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 65 of 185 XXHR_CASHIER_ALLOWANCE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Cashier Allowance of an Employee.
Element Requirements 1. Cashier Allowance(R/W) User Defined Function 1. NONE Globals Used 1. XXHR_CASHIER_ALLOWANCE ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Cashier_Allowance is 0 DEFAULT FOR Override_Value is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS are Override_Value Cashier_Allowance = XXHR_CASHIER_ALLOWANCE IF Override_Value was DEFAULTED THEN ORIGINAL_VALUE = Cashier_Allowance ELSE ORIGINAL_VALUE = Override_Value Cashier_Allowance = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN / DAYS_IN_MONTH_ASG_RUN) Return ORIGINAL_VALUE, Cashier_Allowance /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 66 of 185 XXHR_INFECTION_ALLOWANCE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Infection Allowance of an Employee.
Element Requirements 1. Infection Allowance(R/W) User Defined Function 1. NONE Globals Used 1. XXHR_INFECTION_ALLOWANCE ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Infection_Allowance is 0 DEFAULT FOR Override_Value is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS are Override_Value ORIGINAL_VALUE = XXHR_INFECTION_ALLOWANCE IF Override_Value was DEFAULTED THEN ORIGINAL_VALUE = ORIGINAL_VALUE ELSE ORIGINAL_VALUE = Override_Value Infection_Allowance = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN / DAYS_IN_MONTH_ASG_RUN) Return Infection_Allowance, ORIGINAL_VALUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 67 of 185 XXHR_EXPERIENCE_INCENTIVE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Experience Incentive of an Employee.
Element Requirements 1. Experience Incentive(R/W) User Defined Function 1. NONE User Defined Table Used 1. XXHR_EXPERIENCE_INCENTIVE ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Override_Value is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) DEFAULT FOR ASG_GRADE IS '0' DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS '0' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS are Override_Value IF GROUP_KF_DELEGATED_GRADE WAS DEFAULTED THEN ( L_ASG_GRADE = ASG_GRADE ) ELSE ( L_ASG_GRADE = GROUP_KF_DELEGATED_GRADE ) Per_Diem = TO_NUMBER(GET_TABLE_VALUE('XXHR_EXPERIENCE_INCENTIVE','Grade Name',L_ASG_GRADE)) ORIGINAL_VALUE = Per_Diem IF Override_Value was DEFAULTED THEN ORIGINAL_VALUE = ORIGINAL_VALUE ELSE ORIGINAL_VALUE = Override_Value PAYMENT = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN / DAYS_IN_MONTH_ASG_RUN) Return PAYMENT, ORIGINAL_VALUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 68 of 185 XXHR_MERE_BASIC_PERM Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Monthly Basic Salary of an Employee. Element Requirements 1.Basic Salary (R/W) User Defined Function 1. XXFBN_PRORATION Date Author Changes 7-Jul-2010 Arun Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PERCENTAGE is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value E_DATE = LEAST(PAY_PROC_PERIOD_END_DATE,EMP_TERM_DATE) S_DATE = GREATEST(PAY_PROC_PERIOD_START_DATE,EMP_HIRE_DATE) /* Calling the function for getting the prorated value */ IF ASG_EMPLOYMENT_CATEGORY = 'Permanent' THEN (Monthly_Salary = XXEPROM_PRORATION('Mere Basic', 'Override Value', PAY_PROC_PERIOD_START_DATE, PAY_PROC_PERIOD_END_DATE, S_DATE, E_DATE)) RETURN Monthly_Salary /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 69 of 185 XXHR_MERE_BASIC_TEMP Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Monthly Basic Salary of an Employee. Element Requirements 1.Basic Salary (R/W) User Defined Function 1. XXFBN_PRORATION Date Author Changes 7-Jul-2010 Arun Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PERCENTAGE is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' DEFAULT FOR INITIAL_CONTRACT_VALUE_TEMP_AMOUNT_ENTRY_VALUE IS 0 DEFAULT FOR ASG_ASSIGNMENT_CATEGORY IS ' ' DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value E_DATE = LEAST(PAY_PROC_PERIOD_END_DATE,EMP_TERM_DATE) S_DATE = GREATEST(PAY_PROC_PERIOD_START_DATE,EMP_HIRE_DATE) /* Calling the function for getting the prorated value */ MSG = 'ASG_ASSIGNMENT_CATEGORY' || ASG_ASSIGNMENT_CATEGORY MSG1 = 'ASG_EMPLOYMENT_CATEGORY' || ASG_EMPLOYMENT_CATEGORY IF ASG_EMPLOYMENT_CATEGORY = 'XX_03' THEN PERCENTAGE = TO_NUMBER(GET_TABLE_VALUE('XXHR_TEMP_EMP_MERE_BASIC','Mere Basic Temp Value',TO_TEXT(INITIAL_CONTRACT_VALUE_TEMP_AMOUNT_ENTRY_VALUE),PAY_PROC_PERIOD_START_DATE)) /* Monthly_Salary = INITIAL_CONTRACT_VALUE_TEMP_AMOUNT_ENTRY_VALUE * (PERCENTAGE/100)) */ RETURN PERCENTAGE,MSG,MSG1 /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 70 of 185 XXHR_MONTHLY_BONUS Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Monthly Bonus of an Employee.
Element Requirements 1. Monthly Bonus(R/W) User Defined Function 1. NONE Globals Used 1. XXHR_CASHIER_ALLOWANCE ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAYMENT is 0 DEFAULT FOR Override_Value is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF Override_Value WAS NOT DEFAULTED THEN (ORIGINAL_VALUE = Override_Value) ELSE (ORIGINAL_VALUE = BASIC_SALARY_ASG_RUN * XXHR_MONTHLY_BONUS_PERCENT/100) PAYMENT = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN) RETURN PAYMENT, ORIGINAL_VALUE Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 71 of 185 XXHR_PRODUCTION_INCENTIVE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 72 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Production Incentive of an Employee.
Element Requirements 1. Production Incentive(R/W) User Defined Function 1. NONE Globals Used 1. XXHR_PRODUCTION_INCENTIVE_PERCENT ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAYMENT is 0 DEFAULT FOR Override_Value is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) DEFAULT FOR EMPLOYMENT_CATEGORY IS ' ' DEFAULT FOR DISCIPLINARY_WITHHOLD_PRODUCTION_INCENTIVE_PERCENTAGE_ENTRY_VALUE IS 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF Override_Value WAS NOT DEFAULTED THEN (ORIGINAL_VALUE = Override_Value) ELSE (ORIGINAL_VALUE = BASIC_SALARY_ASG_RUN * (XXHR_PRODUCTION_INCENTIVE_PERCENT)/100) IF EMPLOYMENT_CATEGORY = 'XX_03' THEN ( /*X = XXHR_PRINT_DEBUG('PROD_CURRENT_CONTRACT_VALUE_ASG_ITD'||TO_CHAR(PROD_CURRENT_CONTRACT_VALUE_ASG_ITD)) X = XXHR_PRINT_DEBUG('RAISES_ASG_ITD'||TO_CHAR(RAISES_ASG_ITD)) X = XXHR_PRINT_DEBUG('SPECIAL_INCREASE_TOTAL_ASG_RUN'||TO_CHAR(SPECIAL_INCREASE_TOTAL_ASG_RUN)) X = XXHR_PRINT_DEBUG('PRODUCTION_INCENTIVE_TEMP_ASG_RUN'||TO_CHAR(PRODUCTION_INCENTIVE_TEMP_ASG_RUN))*/ /*ORIGINAL_VALUE = CURRENT_CONTRACT_VALUE_ASG_ITD - PRODUCTION_INCENTIVE_TEMP_ASG_RUN*/ ORIGINAL_VALUE = ( PROD_CURRENT_CONTRACT_VALUE_ASG_ITD + RAISES_ASG_ITD * 3.8 + SPECIAL_INCREASE_TOTAL_ASG_RUN) - PRODUCTION_INCENTIVE_TEMP_ASG_RUN ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 73 of 185 X = XXHR_PRINT_DEBUG('RPODUCTION ORIGINAL_VALUE'||TO_CHAR(ORIGINAL_VALUE)) PAYMENT = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN) PAYMENT = PAYMENT * ((100 - DISCIPLINARY_WITHHOLD_PRODUCTION_INCENTIVE_PERCENTAGE_ENTRY_VALUE) /100) X = XXHR_PRINT_DEBUG('RPODUCTION PAYMENT'||TO_CHAR(PAYMENT)) RETURN PAYMENT, ORIGINAL_VALUE Payroll Fast Formulas EPROM HRMS Implementation Project Page 74 of 185 XXHR_REPRSENTATION_ALLOWANCE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Monthly Days Worked for an Employee. Element Requirements 1.Days Worked (R/W) User Defined Function Date Author Changes 7-Jul-2010 Arun Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Override_Value is 0 DEFAULT FOR MONTH_DAYS is 0 DEFAULT FOr HIRING_DAY is 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS '0' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF Override_Value WAS NOT DEFAULTED THEN (ORIGINAL_VALUE = Override_Value) ELSE ( IF GROUP_KF_DELEGATED_GRADE WAS DEFAULTED THEN ( L_ASG_GRADE = ASG_GRADE ) ELSE ( L_ASG_GRADE = GROUP_KF_DELEGATED_GRADE ) ORIGINAL_VALUE = TO_NUMBER(GET_TABLE_VALUE('XXHR_REPRESENTATION_ALLOWANCE_AMOUNT','Grade Name',L_ASG_GRADE))) PAYMENT = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN) RETURN PAYMENT, ORIGINAL_VALUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 75 of 185 XXHR_OMRA_DEDUCTION Formula Name Description /* ---------------------------------------------------------------- This Formula is developed to calculate OMRA Deduction. Element Requirements User Defined Function Date Author Changes 12-Jul-2010 Kaushik Created ------------------------------------------------------------------ */ ALIAS OMRA_PILGRIMAGE_COUNTER_ASG_ITD AS COUNT /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR COUNTER IS 0 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS COUNTER = COUNT IF COUNTER > (NUMBER_OF_MONTHS - 1) THEN ( STOP = 'Yes' COUNTER = (-1) * COUNTER DEDUCTION = 0 RETURN DEDUCTION, COUNTER, STOP ) ELSE ( IF RECOVER_LOAN_BALANCE_COUNT > 0 THEN ( DEDUCTION = AMOUNT * (NUMBER_OF_MONTHS - COUNTER) COUNTER = (-1) * (NUMBER_OF_MONTHS - COUNTER) STOP = 'Yes' ) ELSE ( COUNTER = 1 DEDUCTION = AMOUNT RETURN DEDUCTION, COUNTER ) ) Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 76 of 185 XXHR_PERSONAL_LOAN_DEDUCTION_2 Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 77 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15 ------------------------------------------------------------------ */ ALIAS PERSONAL_LOAN_2_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR AMOUNT IS 0 DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 DEFAULT FOR STOP_LOAN IS 'N' DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE) /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date) If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF AMOUNT WAS DEFAULTED THEN ( TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Personal Loan 2','Override Value')/NUMBER_OF_MONTHS ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ) ELSE ( Payroll Fast Formulas EPROM HRMS Implementation Project Page 78 of 185 IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ) ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 79 of 185 XXHR_PERSONAL_LOAN_DEDUCTION_3 Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 80 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15 ------------------------------------------------------------------ */ ALIAS PERSONAL_LOAN_3_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR AMOUNT IS 0 DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 DEFAULT FOR STOP_LOAN IS 'N' DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE) /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date) If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF AMOUNT WAS DEFAULTED THEN ( TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Advance Loans','Override Value')/NUMBER_OF_MONTHS ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ) ELSE ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date Payroll Fast Formulas EPROM HRMS Implementation Project Page 81 of 185 AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ) ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 82 of 185 XXHR_PERSONAL_LOAN_DEDUCTION_4 Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 83 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15 ------------------------------------------------------------------ */ ALIAS PERSONAL_LOAN_4_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR AMOUNT IS 0 DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 DEFAULT FOR STOP_LOAN IS 'N' DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE) /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date) If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF AMOUNT WAS DEFAULTED THEN ( TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Summer Loans','Override Value')/NUMBER_OF_MONTHS ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ) ELSE ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date Payroll Fast Formulas EPROM HRMS Implementation Project Page 84 of 185 AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ) ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 85 of 185 XXHR_PERSONAL_LOAN_DEDUCTION_5 Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 86 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15 ------------------------------------------------------------------ */ ALIAS PERSONAL_LOAN_5_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR AMOUNT IS 0 DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 DEFAULT FOR STOP_LOAN IS 'N' DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE) /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date) If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF AMOUNT WAS DEFAULTED THEN ( TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Winter Loans','Override Value')/NUMBER_OF_MONTHS ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ) ELSE ( Payroll Fast Formulas EPROM HRMS Implementation Project Page 87 of 185 IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ) ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 88 of 185 HOUSING_LOAN_DEDUCTION Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 89 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified ------------------------------------------------------------------ */ ALIAS HOUSING_LOAN_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR Recover_Outstanding_Loan_Balance_Flag_Entry_Value IS 'N' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (TOTAL_RECOVERABLE_THIS_MONTH = OVERRIDE_VALUE) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = (XXHR_HOUSING_LOAN_PERCENT / 100) * BASIC_SALARY IF TOTAL_RECOVERABLE_THIS_MONTH > XXHR_HOUSING_LOAN_MAX_VALUE THEN TOTAL_RECOVERABLE_THIS_MONTH = XXHR_HOUSING_LOAN_MAX_VALUE ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN (TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 90 of 185 ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 91 of 185 XXHR_PERSONAL_LOAN_DEDUCTION_1 Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 92 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15 ------------------------------------------------------------------ */ ALIAS PERSONAL_LOAN_1_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR AMOUNT IS 0 DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 DEFAULT FOR STOP_LOAN IS 'N' DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE) /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS,Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date) If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF AMOUNT WAS DEFAULTED THEN ( TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Personal Loan 1','Override Value')/NUMBER_OF_MONTHS ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ) ELSE ( Payroll Fast Formulas EPROM HRMS Implementation Project Page 93 of 185 IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ) ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 94 of 185 SPECIAL_INCREASE_6 Formula Name Description /* ---------------------------------------------------------------- THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE. ELEMENT REQUIREMENTS 1.SPECIAL INCREASE 6 (R/W) USER DEFINED FUNCTION DATE AUTHOR CHANGES 19-May-2010 Kaushik D CREATED ------------------------------------------------------------------ */ ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH /* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */ DEFAULT FOR PAYMENT IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR INCREASE_6 IS 0 DEFAULT FOR SPECIAL_INCREASE_6_ASG_ITD IS 0 /* ====== VARIABLES VALUE DEFAULTS ENDS ====== */ /* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '5712/12/01 00:00:00'(DATE) /* ====== DATABASE ITEMS DEFAULTS ENDS ====== */ /*************** INPUTS SECTIONS ***************/ INPUTS ARE OVERRIDE_VALUE INCREASE_6 = SPECIAL_INCREASE_6_ASG_ITD X = XXHR_PRINT_DEBUG ('INCREASE_6'||TO_CHAR(INCREASE_6)) IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( PAYMENT = OVERRIDE_VALUE ORIGINAL_PAYMENT = OVERRIDE_VALUE ) ELSE ( IF INCREASE_6 = 0 THEN ( INCREASE_6 = (JOINED_RAISES_ASG_ITD - JOINED_RAISES_ASG_RUN + BASIC_SALARY_A_ASG_RUN) * (SPECIAL_INCREASE_ADJUSTMENT_RATE/100) ) PAYMENT = INCREASE_6 ORIGINAL_PAYMENT = PAYMENT ) /*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/ PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH) RETURN PAYMENT, ORIGINAL_PAYMENT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 95 of 185 XXHR_TRAINING_ALLOWANCE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 96 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Training Allowance for an Employee. Element Requirements 1. User Defined Function Date Author Changes 24-Aug-2010 Kaushik D ------------------------------------------------------------------ */ DEFAULT FOR Trip_Nature IS ' ' DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4972/01/01 00:00:00' (DATE) DEFAULT FOR Start_Date IS '1951/01/01 00:00:00' (DATE) DEFAULT FOR Onward_Transportation_Means IS ' ' DEFAULT FOR Onward_Paid_By IS ' ' DEFAULT FOR Onward_Flight_Amount IS 0 DEFAULT FOR Return_Date IS '4972/01/01 00:00:00' (DATE) DEFAULT FOR Return_Transportation_Means IS ' ' DEFAULT FOR Return_Paid_By IS ' ' DEFAULT FOR Return_Flight_Amount IS 0 DEFAULT FOR Daily_Allowance IS ' ' DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR Onward_Fare IS 0 DEFAULT FOR Return_Fare IS 0 DEFAULT FOR PER_DIEM IS 0 DEFAULT FOR Meals IS 0 DEFAULT FOR Meal_Allowance IS 0 DEFAULT FOR Transportation_Allowance IS 0 DEFAULT FOR Transportation IS 0 DEFAULT FOR DAYS IS 0 INPUTS ARE Trip_Nature(TEXT), Start_Date(DATE), Onward_Transportation_Means(TEXT), Onward_Paid_By (TEXT), Onward_Flight_Amount, Return_Date(DATE), Return_Transportation_Means(TEXT), Return_Paid_By (TEXT), Return_Flight_Amount, Daily_Allowance(TEXT) DAYS = DAYS_BETWEEN(Return_Date,Start_Date) + 1 IF (Trip_Nature = 'XX_IM') THEN ( /*===================== For International Missions =======================================================*/ /*===============Fare =============================*/ IF (Onward_Paid_By = 'XX_EMP') THEN (Onward_fare = Onward_Flight_Amount) Else (Onward_fare = 0) IF (Return_Paid_By = 'XX_EMP') THEN Return_Fare = Return_Flight_Amount Else ( Return_Fare = 0 ) /*===============PER DIEM=============================*/ PER_DIEM = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', Payroll Fast Formulas EPROM HRMS Implementation Project Page 97 of 185 'XX_IM',ASG_GRADE,PAY_PROC_PERIOD_END_DATE)) IF (Daily_Allowance = 'XX_PER') THEN ( Allowance = PER_DIEM * DAYS ) ELSE IF (Daily_Allowance = 'XX_HB') THEN ( Allowance = PER_DIEM * DAYS * 0.75 ) ELSE IF (Daily_Allowance = 'XX_FB') THEN ( Allowance = PER_DIEM * DAYS * 0.5 ) ELSE ( Allowance = PER_DIEM * DAYS * 0.25 ) /*===============MEAL ALLLOWANCE=============================*/ MEALS = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', 'XX_MEALS_INTERNATIONAL',ASG_GRADE, PAY_PROC_PERIOD_END_DATE)) IF (Daily_Allowance = 'XX_PER') THEN ( Meal_Allowance = Meals * 3 ) ELSE IF (Daily_Allowance = 'XX_HB') THEN ( Meal_Allowance = Meals * 2 ) ELSE ( Meal_Allowance = 0 ) /*===============Internal Transportation allowance=============================*/ TRANSPORTATION = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', 'XX_INTERNAL_TRANSPORT_INTERNATIONAL',ASG_GRADE, PAY_PROC_PERIOD_END_DATE)) Transportation_Allowance = TRANSPORTATION * DAYS ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 98 of 185 ELSE ( /*===================== For National Missions / Training =======================================================*/ /*===============Fare =============================*/ IF (Onward_Paid_By = 'XX_EMP') THEN ( IF (Onward_Transportation_Means = 'XX_FLIGHT') THEN ( Onward_Fare = Onward_Flight_Amount ) Else (Onward_fare = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', Onward_Transportation_Means ,ASG_GRADE,PAY_PROC_PERIOD_END_DATE))) ) Else (Onward_fare = 0) IF (Return_Paid_By = 'XX_EMP') THEN ( IF (Return_Transportation_Means = 'XX_FLIGHT') THEN ( Return_Fare = Return_Flight_Amount ) Else (Return_Fare = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', Return_Transportation_Means ,ASG_GRADE,PAY_PROC_PERIOD_END_DATE))) ) Else ( Return_Fare = 0 ) /*===============PER DIEM=============================*/ PER_DIEM = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', 'XX_NM',ASG_GRADE, PAY_PROC_PERIOD_END_DATE)) IF (Daily_Allowance = 'XX_PER') THEN ( Payroll Fast Formulas EPROM HRMS Implementation Project Page 99 of 185 Allowance = PER_DIEM * DAYS ) ELSE IF (Daily_Allowance = 'XX_HB') THEN ( Allowance = PER_DIEM * DAYS * 0.75 ) ELSE IF (Daily_Allowance = 'XX_FB') THEN ( Allowance = PER_DIEM * DAYS * 0.5 ) ELSE ( Allowance = PER_DIEM * DAYS * 0.25 ) /*===============MEAL ALLLOWANCE=============================*/ MEALS = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', 'XX_MEALS_NATIONAL',ASG_GRADE, PAY_PROC_PERIOD_END_DATE)) IF (Daily_Allowance = 'XX_PER') THEN ( Meal_Allowance = Meals * 3 ) ELSE IF (Daily_Allowance = 'XX_HB') THEN ( Meal_Allowance = Meals * 2 ) ELSE ( Meal_Allowance = 0 ) /*===============Internal Transportation allowance=============================*/ TRANSPORTATION = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XX_TRAINING_ALLOWANCE', 'XX_INTERNAL_TRANSPORT_NATIONAL',ASG_GRADE, PAY_PROC_PERIOD_END_DATE)) Transportation_Allowance = TRANSPORTATION * DAYS ) TRAINING_ALLOWANCE = Onward_Fare + Return_Fare + Allowance + Meal_Allowance + Transportation_Allowance Return Training_Allowance Payroll Fast Formulas EPROM HRMS Implementation Project Page 100 of 185 XXHR_TOTAL_EARNINGS Formula Name Description /*----------------------------------------------------------- This Formula is to calculate the Employee Total Earnings Element Requirements User Defined Function Date Author Changes 07-Dec-2010 Rajesh Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Amount IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ Amount = PAYROLL_TOTAL_EARNINGS_ASG_PTD Return Amount /*====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 101 of 185 XXHR_TOTOAL_DEDUCTIONS Formula Name Description /*----------------------------------------------------------- This Formula is to calculate the Employee Total Deductions Element Requirements User Defined Function Date Author Changes 07-Dec-2010 Rajesh Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Amount IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ Amount = PAYROLL_TOTAL_DEDUCTIONS_ASG_PTD Return Amount /*====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 102 of 185 XXHR_NET_PAY Formula Name Description /*----------------------------------------------------------- This Formula is to calculate the Employee Net Pay Element Requirements User Defined Function Date Author Changes 07-Dec-2010 Rajesh Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Amount IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ Amount = PAYROLL_TOTAL_EARNINGS_ASG_PTD - PAYROLL_TOTAL_DEDUCTIONS_ASG_PTD Return Amount /*====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 103 of 185 XXHR_PERSONAL_LOAN_DEDUCTION_6 Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 104 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15 ------------------------------------------------------------------ */ ALIAS PERSONAL_LOAN_6_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR AMOUNT IS 0 DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 DEFAULT FOR STOP_LOAN IS 'N' DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE) /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date) If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF AMOUNT WAS DEFAULTED THEN ( TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Winter Loans2','Override Value')/NUMBER_OF_MONTHS ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ) ELSE ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date Payroll Fast Formulas EPROM HRMS Implementation Project Page 105 of 185 AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ) ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 106 of 185 XXHR_PERSONAL_LOAN_DEDUCTION_7 Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 107 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15 ------------------------------------------------------------------ */ ALIAS PERSONAL_LOAN_7_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR AMOUNT IS 0 DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 DEFAULT FOR STOP_LOAN IS 'N' DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE) /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date) If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF AMOUNT WAS DEFAULTED THEN ( TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Summer Loans2','Override Value')/NUMBER_OF_MONTHS ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ) ELSE ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date Payroll Fast Formulas EPROM HRMS Implementation Project Page 108 of 185 AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ) ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 109 of 185 XXHR_PERSONAL_LOAN_DEDUCTION_8 Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 110 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15 ------------------------------------------------------------------ */ ALIAS PERSONAL_LOAN_8_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR AMOUNT IS 0 DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 DEFAULT FOR STOP_LOAN IS 'N' DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE) /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date) If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF AMOUNT WAS DEFAULTED THEN ( TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Advance Loans2','Override Value')/NUMBER_OF_MONTHS ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ) ELSE ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date Payroll Fast Formulas EPROM HRMS Implementation Project Page 111 of 185 AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ) ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 112 of 185 SPECIAL_INCREASE_5 Formula Name Description /* ---------------------------------------------------------------- THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE. ELEMENT REQUIREMENTS 1.SPECIAL INCREASE 5 (R/W) USER DEFINED FUNCTION DATE AUTHOR CHANGES 19-May-2010 Kaushik D CREATED ------------------------------------------------------------------ */ ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH /* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */ DEFAULT FOR PAYMENT IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== VARIABLES VALUE DEFAULTS ENDS ====== */ /* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '5712/12/01 00:00:00'(DATE) /* ====== DATABASE ITEMS DEFAULTS ENDS ====== */ /*************** INPUTS SECTIONS ***************/ INPUTS ARE OVERRIDE_VALUE INCREASE_5 = SPECIAL_INCREASE_5_ASG_ITD IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( PAYMENT = OVERRIDE_VALUE ORIGINAL_PAYMENT = OVERRIDE_VALUE ) ELSE ( PAYMENT = INCREASE_5 ORIGINAL_PAYMENT = PAYMENT ) /*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/ PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH) RETURN PAYMENT, ORIGINAL_PAYMENT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 113 of 185 SPECIAL_INCREASE_1 Formula Name Description /* ---------------------------------------------------------------- THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE. ELEMENT REQUIREMENTS 1.SPECIAL INCREASE 1 (R/W) USER DEFINED FUNCTION DATE AUTHOR CHANGES 19-May-2010 Kaushik D CREATED ------------------------------------------------------------------ */ ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH /* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */ DEFAULT FOR PAYMENT IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== VARIABLES VALUE DEFAULTS ENDS ====== */ /* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/01 00:00:00'(DATE) /* ====== DATABASE ITEMS DEFAULTS ENDS ====== */ /*************** INPUTS SECTIONS ***************/ INPUTS ARE OVERRIDE_VALUE INCREASE_1 = SPECIAL_INCREASE_1_ASG_ITD IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( PAYMENT = OVERRIDE_VALUE ORIGINAL_PAYMENT = OVERRIDE_VALUE ) ELSE ( PAYMENT = INCREASE_1 ORIGINAL_PAYMENT = PAYMENT ) /*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/ PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH) RETURN PAYMENT, ORIGINAL_PAYMENT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 114 of 185 SPECIAL_INCREASE_2 Formula Name Description /* ---------------------------------------------------------------- THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE. ELEMENT REQUIREMENTS 1.SPECIAL INCREASE 2 (R/W) USER DEFINED FUNCTION DATE AUTHOR CHANGES 19-May-2010 Kaushik D CREATED ------------------------------------------------------------------ */ ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH /* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */ DEFAULT FOR PAYMENT IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== VARIABLES VALUE DEFAULTS ENDS ====== */ /* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/01 00:00:00'(DATE) /* ====== DATABASE ITEMS DEFAULTS ENDS ====== */ /*************** INPUTS SECTIONS ***************/ INPUTS ARE OVERRIDE_VALUE INCREASE_2 = SPECIAL_INCREASE_2_ASG_ITD IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( PAYMENT = OVERRIDE_VALUE ORIGINAL_PAYMENT = OVERRIDE_VALUE ) ELSE ( PAYMENT = INCREASE_2 ORIGINAL_PAYMENT = PAYMENT ) /*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/ PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH) RETURN PAYMENT, ORIGINAL_PAYMENT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 115 of 185 SPECIAL_INCREASE_3 Formula Name Description /* ---------------------------------------------------------------- THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE. ELEMENT REQUIREMENTS 1.SPECIAL INCREASE 3 (R/W) USER DEFINED FUNCTION DATE AUTHOR CHANGES 19-May-2010 Kaushik D CREATED ------------------------------------------------------------------ */ ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH /* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */ DEFAULT FOR PAYMENT IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== VARIABLES VALUE DEFAULTS ENDS ====== */ /* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/01 00:00:00'(DATE) /* ====== DATABASE ITEMS DEFAULTS ENDS ====== */ /*************** INPUTS SECTIONS ***************/ INPUTS ARE OVERRIDE_VALUE INCREASE_3 = SPECIAL_INCREASE_3_ASG_ITD IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( PAYMENT = OVERRIDE_VALUE ORIGINAL_PAYMENT = OVERRIDE_VALUE ) ELSE ( PAYMENT = INCREASE_3 ORIGINAL_PAYMENT = PAYMENT ) /*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/ PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH) RETURN PAYMENT, ORIGINAL_PAYMENT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 116 of 185 SPECIAL_INCREASE_4 Formula Name Description /* ---------------------------------------------------------------- THIS FORMULA IS TO CALCULATE SPECIAL INCREASE FOR AN EMPLOYEE. ELEMENT REQUIREMENTS 1.SPECIAL INCREASE 4 (R/W) USER DEFINED FUNCTION DATE AUTHOR CHANGES 19-May-2010 Kaushik D CREATED ------------------------------------------------------------------ */ ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH /* ====== VARIABLES VALUE DEFAULTS BEGIN ====== */ DEFAULT FOR PAYMENT IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== VARIABLES VALUE DEFAULTS ENDS ====== */ /* ====== DATABASE ITEMS DEFAULTS BEGIN ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1900/01/01 00:00:00'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/01 00:00:00'(DATE) /* ====== DATABASE ITEMS DEFAULTS ENDS ====== */ /*************** INPUTS SECTIONS ***************/ INPUTS ARE OVERRIDE_VALUE INCREASE_4 = SPECIAL_INCREASE_4_ASG_ITD IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( PAYMENT = OVERRIDE_VALUE ORIGINAL_PAYMENT = OVERRIDE_VALUE ) ELSE ( PAYMENT = INCREASE_4 ORIGINAL_PAYMENT = PAYMENT ) /*DAYS_IN_MONTH = DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) + 1*/ PAYMENT = PAYMENT * (DAYS_WORKED/DAYS_IN_MONTH) RETURN PAYMENT, ORIGINAL_PAYMENT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 117 of 185 INDUSTRIAL ALLOWANCE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 118 of 185 DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR PAYMENT IS 0 DEFAULT FOR SHIFT_DETAILS_SHIFT_DAY_8_HR_ENTRY_VALUE IS '0' DEFAULT FOR SHIFT_DETAILS_SHIFT_DAY_12_HR_ENTRY_VALUE IS '0' DEFAULT FOR SHIFT_DETAILS_REGULAR_DAYS_ENTRY_VALUE IS '0' DEFAULT FOR GROUP_KF_SHIFT_TYPE IS ' ' DEFAULT FOR EMP_HIRE_DATE IS '01-JAN-1900'(DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (PAYMENT = OVERRIDE_VALUE ) ELSE ( IF GROUP_KF_SHIFT_TYPE = 'XX_01' THEN ( DAY = TO_NUMBER(GET_TABLE_VALUE('XXHR_INDUSTRIAL_ALLOWANCE','Shift Type','Day',SYSDATE)) S_DATE = GREATEST(EMP_HIRE_DATE,ADD_MONTHS(PAY_PROC_PERIOD_START_DATE,-1)) E_DATE = GREATEST(EMP_HIRE_DATE,ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -1)) /*X = XXHR_PRINT_DEBUG('S_DATE'||TO_CHAR(S_DATE)) X = XXHR_PRINT_DEBUG('E_DATE'||TO_CHAR(E_DATE)) X = XXHR_PRINT_DEBUG('DAY'||TO_CHAR(DAY))*/ MISSION_LEAVE_DAYS = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Mission Leave Days') REST_DAYS = xxhr_hours_total('Rest Hours',S_DATE,E_DATE)/8 HOLIDAYS = XXHR_RETURN_HOLIYDAYS(S_DATE,E_DATE) TOTAL_DAYS = TO_NUMBER(SHIFT_DETAILS_REGULAR_DAYS_ENTRY_VALUE) + MISSION_LEAVE_DAYS + REST_DAYS + HOLIDAYS /*X = XXHR_PRINT_DEBUG('MISSION_LEAVE_DAYS'||TO_CHAR(MISSION_LEAVE_DAYS)) X = XXHR_PRINT_DEBUG('REST_DAYS'||TO_CHAR(REST_DAYS)) X = XXHR_PRINT_DEBUG('HOLIDAYS'||TO_CHAR(HOLIDAYS)) X = XXHR_PRINT_DEBUG('TOTAL_DAYS'||TO_CHAR(TOTAL_DAYS))*/ PAYMENT = (TOTAL_DAYS * DAY) /*X = XXHR_PRINT_DEBUG('PAYMENT'||TO_CHAR(PAYMENT))*/ ) ELSE ( DAY = TO_NUMBER(GET_TABLE_VALUE('XXHR_INDUSTRIAL_ALLOWANCE','Shift Type','Day',SYSDATE)) SHIFT_8 = TO_NUMBER(GET_TABLE_VALUE('XXHR_INDUSTRIAL_ALLOWANCE','Shift Type','Shift 8 hr',SYSDATE)) SHIFT_12 = TO_NUMBER(GET_TABLE_VALUE('XXHR_INDUSTRIAL_ALLOWANCE','Shift Type','shift 12 hr',SYSDATE)) PAYMENT = (TO_NUMBER(SHIFT_DETAILS_SHIFT_DAY_8_HR_ENTRY_VALUE) * SHIFT_8) + (TO_NUMBER(SHIFT_DETAILS_SHIFT_DAY_12_HR_ENTRY_VALUE)* SHIFT_12) + (TO_NUMBER(SHIFT_DETAILS_REGULAR_DAYS_ENTRY_VALUE) * DAY) ) ) Original_value = PAYMENT RETURN PAYMENT,Original_value Payroll Fast Formulas EPROM HRMS Implementation Project Page 119 of 185 /* ====== Formula Body Ends ====== */ Payroll Fast Formulas EPROM HRMS Implementation Project Page 120 of 185 RAMADAN_REWARD Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 121 of 185 /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR RAMADAN_REWARD IS 0 DEFAULT FOR INCREMENT IS 0 DEFAULT FOR MAX_INCREMENT IS 0 DEFAULT FOR APPRAISAL_SCORE IS ' ' DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR MIN_VAL IS 0 DEFAULT FOR MAX_VAL IS 0 /*DEFAULT FOR GRADE_XXHR_REWARDS_MINIMUM IS ' ' DEFAULT FOR GRADE_XXHR_REWARDS_MAXIMUM IS ' ' */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE E_DATE = LEAST(XXHR_RAMADAN_REWARD_DATE,EMP_TERM_DATE) S_DATE = GREATEST(ADD_DAYS(ADD_YEARS(XXHR_RAMADAN_REWARD_DATE,-1),1),EMP_HIRE_DATE) /*X = XXHR_PRINT_DEBUG('E_DATE'||TO_CHAR(E_DATE)) X = XXHR_PRINT_DEBUG('S_DATE'||TO_CHAR(S_DATE))*/ IF (TO_CHAR(PAY_PROC_PERIOD_END_DATE,'YYYY') = '2011') THEN ( /******************TOTOAL DAYS WORKED************************************/ UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave') LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence') MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid') /*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/ UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,- 1)),'Unauthorized Absence') /******************TOTOAL DAYS ************************************/ Total_Days = Days_Between(E_DATE, S_DATE) + 1 /******************TOTOAL DAYS ************************************/ EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( Total_Days = Total_Days/2 ) DAYS = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE) /******************TOTOAL DAYS WORKED************************************/ ) ELSE ( DAYS = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days Worked','Days Worked') Total_Days = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days in Month','Days') ) /*X = XXHR_PRINT_DEBUG('DAYS'||TO_CHAR(DAYS))*/ BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG') BASIC_SALARY = XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(XXHR_RAMADAN_REWARD_DATE,-1))) MIN_VAL = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'RAMADAN_REWARD_MIN',XXHR_RAMADAN_R Payroll Fast Formulas EPROM HRMS Implementation Project Page 122 of 185 EWARD_DATE)) MAX_VAL = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'RAMADAN_REWARD_MAX',XXHR_RAMADAN_R EWARD_DATE)) /*X = XXHR_PRINT_DEBUG('MIN_VAL'||TO_CHAR(MIN_VAL)) X = XXHR_PRINT_DEBUG('MAX_VAL'||TO_CHAR(MAX_VAL)) X = XXHR_PRINT_DEBUG('BASIC_SALARY'||TO_CHAR(BASIC_SALARY))*/ MAX_PER_DAY = MAX_VAL/30 BASIC_PER_DAY = BASIC_SALARY/30 IF BASIC_PER_DAY > MAX_PER_DAY THEN ( BASIC_PER_DAY = MAX_PER_DAY ) /*X = XXHR_PRINT_DEBUG('BASIC_PER_DAY'||TO_CHAR(BASIC_PER_DAY))*/ RAMADAN_REWARD = BASIC_PER_DAY * XXHR_RAMADAN_No_Of_DAYS * (DAYS/Total_Days) /*X = XXHR_PRINT_DEBUG('RAMADAN_REWARD'||TO_CHAR(RAMADAN_REWARD))*/ IF RAMADAN_REWARD < MIN_VAL THEN (RAMADAN_REWARD = MIN_VAL) /*IF RAMADAN_REWARD > MAX_VAL THEN (RAMADAN_REWARD = MAX_VAL)*/ RETURN RAMADAN_REWARD Payroll Fast Formulas EPROM HRMS Implementation Project Page 123 of 185 XXHR_JOINED_RAISES Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 124 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Accumulated Joined Raise for an Employee. Element Requirements 1.Accumulated Joined Raise (R/W) User Defined Function Date Author Changes 17-May-2010 Kaushik D updated on 04-July-2010 by Ganesh gopal ------------------------------------------------------------------ */ ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED ALIAS MERE_BASIC_ASG_RUN AS MERE_BASIC DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR JOINED_AMOUNT is 0 DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR RATE IS 0 DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' Default for Year is 1951 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE IS '1900/01/01 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF Override_Value WAS NOT DEFAULTED THEN ( JOINED_AMOUNT = Override_Value ) ELSE IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( RATE = XXHR_COMBINED_RAISE_PERCENTAGE/100 JOINED_AMOUNT = RATE * MERE_BASIC ) ELSE ( IF (PAY_PROC_PERIOD_END_DATE < TO_DATE('3107'||TO_CHAR(PAY_PROC_PERIOD_END_DATE, 'YYYY'),'DDMMYYYY') ) Then (YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 6) Else (YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 5) JOINED_AMOUNT = XXHR_COMBINED_RAISE(YEAR) * MERE_BASIC/100 ) RETURN JOINED_AMOUNT /* ====== Formula Body Ends ====== */ Payroll Fast Formulas EPROM HRMS Implementation Project Page 125 of 185 XXHR_BASIC_SALARY_A Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Basic Salary A for an Employee. Element Requirements 1.Accumulated Joined Raise (R/W) User Defined Function Date Author Changes 15-Jul-2010 Kaushik D Created 21-Sep-2010 Rajesh Added maximum limit check based on the Payscale ------------------------------------------------------------------ */ ALIAS RAISES_ASG_ITD AS BASIC_A ALIAS MERE_BASIC_ASG_RUN AS MERE_BASIC DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Begin ====== */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (ORIGINAL_VALUE = OVERRIDE_VALUE ) ELSE (ORIGINAL_VALUE = BASIC_A + MERE_BASIC) MAX_VAL = xxhr_basic_a_max_limit(PAY_PROC_PERIOD_END_DATE) IF ORIGINAL_VALUE > MAX_VAL THEN (ORIGINAL_VALUE = MAX_VAL) RETURN ORIGINAL_VALUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 126 of 185 XXHR_BASIC_SALARY Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 127 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Basic Salary A for an Employee. Element Requirements 1.Accumulated Joined Raise (R/W) User Defined Function Date Author Changes 15-Jul-2010 Kaushik D Created ------------------------------------------------------------------ */ ALIAS BASIC_SALARY_ASG_RUN AS BASIC_SALARY ALIAS DISCIPLINARY_SALARY_DEDUCTION_DAYS_ASG_RUN AS SALARY_PENALTY_DAYS ALIAS DISCIPLINARY_ANNUAL_INCREMENT_WITHHOLD_ASG_RUN AS ANNUAL_INCREMENT_PENALTY ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED ALIAS PROMOTION_RAISE_ADJUSTMENT_ASG_RUN AS ADJUSTMENT DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Begin ====== */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR DISCIPLINARY_SUSPENSION_TOTAL_SALARY_PERCENTAGE_ENTRY_VALUE IS 100 DEFAULT FOR L_SALARY_PENALTY_DAYS IS 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (ORIGINAL_VALUE = OVERRIDE_VALUE ) ELSE ( ORIGINAL_VALUE = BASIC_SALARY ) SUSPENSION = ORIGINAL_VALUE * DISCIPLINARY_SUSPENSION_TOTAL_SALARY_PERCENTAGE_ENTRY_VALUE/100 MSG = 'Suspension Value is ' + TO_TEXT(SUSPENSION) IF SUSPENSION > 0 THEN ( IF SALARY_PENALTY_DAYS < 0 THEN L_SALARY_PENALTY_DAYS = 0 ELSE L_SALARY_PENALTY_DAYS = SALARY_PENALTY_DAYS ACTUAL_VALUE = ((SUSPENSION * (DAYS_WORKED - L_SALARY_PENALTY_DAYS) / (DAYS_IN_MONTH_ASG_RUN)) - ANNUAL_INCREMENT_PENALTY - ADJUSTMENT)) ELSE (ACTUAL_VALUE = ORIGINAL_VALUE * (DAYS_WORKED /DAYS_IN_MONTH_ASG_RUN)) RETURN ORIGINAL_VALUE , ACTUAL_VALUE, MSG /* ====== Formula Body Ends ====== */ Payroll Fast Formulas EPROM HRMS Implementation Project Page 128 of 185 CURRENT CONTRACT TEMP Formula Name Description /* ------------------------------------------------------------------------ NAME : CURRENT_CONTRACT_TEMP This formula calculates the current cotract value AUTHOR : KAUSHIK DEVANATHAN VERSION 1ADATE : 24-Aug-2010 --------------------------------------------------------------------*/ Default for PAY_PROC_PERIOD_END_DATE is '1951/01/01 00:00:00' (Date) EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( PAYMENT = CURRENT_CONTRACT_VALUE_ASG_ITD ) ELSE ( PAYMENT = 0 ) RETURN PAYMENT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 129 of 185 SHIFT ALLOWANCE Formula Name Description DEFAULT FOR SHIFT_DETAILS_SHIFT_DAY_8_HR_ENTRY_VALUE IS '0' DEFAULT FOR SHIFT_DETAILS_SHIFT_DAY_12_HR_ENTRY_VALUE IS '0' DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (Date) DEFAULT FOR ORIGINAL_VLAUE IS 0 EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( DIEM_8 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SHIFT_ALLOWANCE_AMOUNT','Valu Per Shift Temp','8')) DIEM_12 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SHIFT_ALLOWANCE_AMOUNT','Valu Per Shift Temp','12'))) ELSE ( DIEM_8 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SHIFT_ALLOWANCE_AMOUNT','Valu Per Shift Perm','8')) DIEM_12 = TO_NUMBER(GET_TABLE_VALUE('XXHR_SHIFT_ALLOWANCE_AMOUNT','Valu Per Shift Perm','12'))) TOTAL_PERDIEUM = (DIEM_8 * to_number(SHIFT_DETAILS_SHIFT_DAY_8_HR_ENTRY_VALUE)) + (DIEM_12 * to_number(SHIFT_DETAILS_SHIFT_DAY_12_HR_ENTRY_VALUE)) ORIGINAL_VLAUE = TOTAL_PERDIEUM RETURN TOTAL_PERDIEUM,ORIGINAL_VLAUE Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 130 of 185 SPECIAL_SHIFT_ALLOWANCE Formula Name Description DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (Date) INPUTS ARE No_of_Days DIEM = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SHIFT_ALLOWANCE','Value Per Shift Day',ASG_GRADE)) TOTAL_PERDIEUM = (DIEM * No_of_Days) RETURN TOTAL_PERDIEUM Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 131 of 185 XXHR_WORK_NATURE_ALLOWANCE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 132 of 185 /*---------------------------------------------------------------- This Formula is to Calculate Work Nature allowance for an Employee. Element Requirements (R/W) User Defined Function Date Author Changes 17-Jul-2010 Sudhakar Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR PER_MARITAL_STATUS is 'X' DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (Date) DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR ASG_GROUP IS ' ' DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( ORIGINAL_VALUE = OVERRIDE_VALUE ) ELSE ( GRADE = GREATEST(ASG_GRADE,GROUP_KF_DELEGATED_GRADE) IF TO_NUMBER(GRADE) >= XXHR_WORK_NATURE_MAX_GRADE_PAYMENT THEN ( GRADE = ASG_GRADE ) IF TO_NUMBER(GRADE) < XXHR_WORK_NATURE_MAX_GRADE_PAYMENT THEN ( SPINAL_POINT_1 = XXHR_GET_GRADE_STEP1(GRADE,PAY_PROC_PERIOD_END_DATE) POSITION_FUNCTION = XXHR_POSITION_FUNCTION(PAY_PROC_PERIOD_END_DATE) RATE = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_WORK_NATURE_ALLOWANCE','Category',POSITION_FUNCTION,PAY_PROC_PERI OD_END_DATE)) IF RATE = 0 THEN ( RATE = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_WORK_NATURE_ALLOWANCE','Category',XXHR_WORK_NATURE_DEFAULT_POSF UNC,PAY_PROC_PERIOD_END_DATE)) ORIGINAL_VALUE = (RATE /100)* SPINAL_POINT_1 ) ELSE ( ORIGINAL_VALUE = (RATE /100)* SPINAL_POINT_1 ) PAYMENT = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN / DAYS_IN_MONTH_ASG_RUN) ) ELSE ( PAYMENT = 0 ORIGINAL_VALUE =0 ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 133 of 185 ) RETURN PAYMENT, ORIGINAL_VALUE Payroll Fast Formulas EPROM HRMS Implementation Project Page 134 of 185 XXHR_PLAN_ACCOMP_INCEN_REC Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Plan accomplishment incentive recurring for an Employee. Element Requirements (R/W) User Defined Function Date Author Changes 17-Jul-2010 Sudhakar Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR PER_MARITAL_STATUS is 'X' DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (Date) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ ALIAS BASIC_SALARY_ASG_PTD as Basic_Salary INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( PAYMENT = OVERRIDE_VALUE ) ELSE ( PAYMENT = ( XXHR_PLAN_AACOMP_INCEN_REC/100)* Basic_Salary ) RETURN PAYMENT Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 135 of 185 XXHR_PLAN_ACCOMP_INCEN_NON_REC Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 136 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Plan accomplishment incentive non-recurring for an Employee. Element Requirements (R/W) User Defined Function Date Author Changes 17-Jul-2010 Sudhakar Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR PER_MARITAL_STATUS is 'X' DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR DAYS_WORKED_1 IS 0 DEFAULT FOR DAYS_WORKED_2 IS 0 DEFAULT FOR DAYS_IN_MONTH_1 IS 0 DEFAULT FOR DAYS_IN_MONTH_2 IS 0 DEFAULT FOR Pay_vlaue IS 0 DEFAULT FOR Pay_vlaue_1 IS 0 DEFAULT FOR Pay_vlaue_2 IS 0 DEFAULT FOR Pay_vlaue_3 IS 0 DEFAULT FOR GROUP_KF_SHIFT_TYPE IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ ALIAS BASIC_SALARY_ASG_PTD as Basic_Salary INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( PAYMENT = OVERRIDE_VALUE Pay_vlaue = OVERRIDE_VALUE ) ELSE ( /* SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG') LAST_DATE_2 = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -2)) SALARY_2 = XXHR_ITD_BALANCE_ON_A_DATE(SALARY_BALANCE_ID,LAST_DATE_2) LAST_DATE_1 = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -1)) SALARY_1 = XXHR_ITD_BALANCE_ON_A_DATE(SALARY_BALANCE_ID,LAST_DATE_1) LAST_DATE_0 = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, 0)) SALARY_0 = XXHR_ITD_BALANCE_ON_A_DATE(SALARY_BALANCE_ID,LAST_DATE_0) PAYMENT = ((XXHR_PLAN_ACCOMP_INCEN_NON_REC/100)* Basic_Salary ) + ((XXHR_PLAN_ACCOMP_INCEN_NON_REC/100)* SALARY_1 ) + ((XXHR_PLAN_ACCOMP_INCEN_NON_REC/100)* SALARY_2 ) */ /*DAYS_WORKED_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('DAYS_WORKED','Assignment Processing Period To Date','EG') DAYS_IN_MONTH_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('DAYS_IN_MONTH','Assignment Processing Period To Date','EG') DLAST_DATE_2 = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -2)) DAYS_WORKED_2 = XXHR_ITD_BALANCE_ON_A_DATE(DAYS_WORKED_BALANCE_ID,DLAST_DATE_2) DAYS_IN_MONTH_2 = XXHR_ITD_BALANCE_ON_A_DATE(DAYS_IN_MONTH_BALANCE_ID,DLAST_DATE_2) DLAST_DATE_1 = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -1)) DAYS_WORKED_1 = XXHR_ITD_BALANCE_ON_A_DATE(DAYS_WORKED_BALANCE_ID,DLAST_DATE_1) DAYS_IN_MONTH_1 = XXHR_ITD_BALANCE_ON_A_DATE(DAYS_IN_MONTH_BALANCE_ID,DLAST_DATE_1) Payroll Fast Formulas EPROM HRMS Implementation Project Page 137 of 185 Pay_vlaue = PAYMENT * ((DAYS_WORKED_ASG_RUN + DAYS_WORKED_1 + DAYS_WORKED_2)/ (DAYS_IN_MONTH_ASG_RUN + DAYS_IN_MONTH_1 + DAYS_IN_MONTH_2)) */ PAYMENT = ((XXHR_PLAN_ACCOMP_INCEN_NON_REC/300)* Basic_Salary ) /* First Month */ START_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_START_DATE, -3) END_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -3) E_DATE = LEAST(END_DATE_1,EMP_TERM_DATE) S_DATE = GREATEST(START_DATE_1,EMP_HIRE_DATE) PENALITY = XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Salary Deduction','Salary Deduction Days',S_DATE,E_DATE) + XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Withhold Production Incentive','Percentage',S_DATE,E_DATE) IF PENALITY = 0 THEN ( ANNUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Annual Leave') CASUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Casual Leave') LABOR_LEAVE_PAID = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid') LONG_UNPAID_ABSENCE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence') PILGRIM_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Pilgrim Leave') SICK_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Sick Leave') UNAUTHORIZED_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence') UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave') Total_Days = days_between(E_DATE,S_DATE)+1 IF Total_Days =0 THEN ( Pay_vlaue_1 = 0 ) ELSE ( Plan_Acc_Days = Total_Days - (ANNUAL_LEAVE + CASUAL_LEAVE + LABOR_LEAVE_PAID + LONG_UNPAID_ABSENCE + PILGRIM_LEAVE + SICK_LEAVE + UNAUTHORIZED_LEAVE + UNPAID_LEAVE ) Pay_vlaue_1 = PAYMENT * (Plan_Acc_Days/Total_Days) ) ) ELSE( Pay_vlaue_1 = 0 ) /* Second Month*/ START_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_START_DATE, -2) END_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -2) E_DATE = LEAST(END_DATE_1,EMP_TERM_DATE) S_DATE = GREATEST(START_DATE_1,EMP_HIRE_DATE) PENALITY = XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Salary Deduction','Salary Deduction Days',S_DATE,E_DATE) + XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Withhold Production Incentive','Percentage',S_DATE,E_DATE) IF PENALITY = 0 THEN ( ANNUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Annual Leave') CASUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Casual Leave') LABOR_LEAVE_PAID = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid') LONG_UNPAID_ABSENCE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence') PILGRIM_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Pilgrim Leave') SICK_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Sick Leave') UNAUTHORIZED_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence') UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave') Total_Days = days_between(E_DATE,S_DATE)+1 IF Total_Days =0 THEN ( Payroll Fast Formulas EPROM HRMS Implementation Project Page 138 of 185 Pay_vlaue_2 = 0 ) ELSE ( Plan_Acc_Days = Total_Days - (ANNUAL_LEAVE + CASUAL_LEAVE + LABOR_LEAVE_PAID + LONG_UNPAID_ABSENCE + PILGRIM_LEAVE + SICK_LEAVE + UNAUTHORIZED_LEAVE + UNPAID_LEAVE ) Pay_vlaue_2 = PAYMENT * (Plan_Acc_Days/Total_Days) ) ) ELSE( Pay_vlaue_2 = 0 ) /* Third Month*/ START_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_START_DATE, -1) END_DATE_1 = ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, -1) E_DATE = LEAST(END_DATE_1,EMP_TERM_DATE) S_DATE = GREATEST(START_DATE_1,EMP_HIRE_DATE) PENALITY = XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Salary Deduction','Salary Deduction Days',S_DATE,E_DATE) + XXHR_GET_INPUT_VALUE_IN_RANGE('Disciplinary_Withhold Production Incentive','Percentage',S_DATE,E_DATE) IF PENALITY = 0 THEN ( ANNUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Annual Leave') CASUAL_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Casual Leave') LABOR_LEAVE_PAID = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid') LONG_UNPAID_ABSENCE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence') PILGRIM_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Pilgrim Leave') SICK_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Sick Leave') UNAUTHORIZED_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence') UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave') Total_Days = days_between(E_DATE,S_DATE)+1 IF Total_Days =0 THEN ( Pay_vlaue_3 = 0 ) ELSE ( Plan_Acc_Days = Total_Days - (ANNUAL_LEAVE + CASUAL_LEAVE + LABOR_LEAVE_PAID + LONG_UNPAID_ABSENCE + PILGRIM_LEAVE + SICK_LEAVE + UNAUTHORIZED_LEAVE + UNPAID_LEAVE ) Pay_vlaue_3 = PAYMENT * (Plan_Acc_Days/Total_Days) ) ) ELSE( Pay_vlaue_3 = 0 ) Pay_vlaue = Pay_vlaue_1 + Pay_vlaue_2 + Pay_vlaue_3 ) RETURN PAYMENT , Pay_vlaue Payroll Fast Formulas EPROM HRMS Implementation Project Page 139 of 185 XXHR_OVERTIME Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 140 of 185 /* ------------------------------------------------------------------------ NAME : XXHR_OVERTIME This formula calculates the Overtime and Non_Cash Hours(Eliminated Hours) AUTHOR : KAUSHIK DEVANATHAN VERSION 1ADATE : 24-Aug-2010 --------------------------------------------------------------------*/ Alias SHIFT_DETAILS_PAY_CASH_ENTRY_VALUE AS PAY_CASH Alias SHIFT_DETAILS_OVERTIME_HOURS_LESS_THAN_EQUAL_TO_7_ENTRY_VALUE AS CATEGORY_A_HOURS Alias SHIFT_DETAILS_OVERTIME_HOURS__GREATER_THAN_7_ENTRY_VALUE AS CATEGORY_B_HOURS Alias SHIFT_DETAILS_HOLIDAYS_WORKED_ENTRY_VALUE AS CATEGORY_C_HOURS Alias SHIFT_DETAILS_REST_HOURS_ENTRY_VALUE AS CONVERT_REST_HOURS Alias SHIFT_DETAILS_HOLIDAYS_NOT_WORKED_ENTRY_VALUE AS HOL_REST_HOURS Alias BASIC_SALARY_ASG_PTD as BAISC_SALARY Default for PAY_PROC_PERIOD_END_DATE is '1951/01/01 00:00:00' (Date) Default for Category_A_Hours is 0 Default for Category_B_Hours is 0 Default for Category_C_Hours is 0 Default for PAY_CASH IS 'N' Default for Rest_Hours is 0 Default for CONVERT_REST_HOURS IS 0 Default for HOL_REST_HOURS IS 0 A_Hours = Category_A_Hours B_Hours = Category_B_Hours C_Hours = Category_C_Hours Eliminated_Hours = 0 Rest_Hours = 0 RATE_1 = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_OVERTIME_ALLOWANCE','Details','CATEGORY_A',PAY_PROC_PERIOD_END_DAT E)) RATE_2 = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_OVERTIME_ALLOWANCE','Details','CATEGORY_B',PAY_PROC_PERIOD_END_DAT E)) RATE_3 = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_OVERTIME_ALLOWANCE','Details','CATEGORY_C',PAY_PROC_PERIOD_END_DAT E)) OVERTIME_HOURS = (RATE_1 * A_HOURS) + (RATE_2 * B_HOURS) + (RATE_3 * C_HOURS) /************************************Condition for Pay_cash = N***********************************/ If (PAY_CASH = 'N') then ( IF CONVERT_REST_HOURS was defaulted then (Eliminated_Hours = Overtime_hours)
else (Eliminated_Hours = LEAST(CONVERT_REST_HOURS,Overtime_hours)) Final_Eliminated_Hours = Overtime_hours - Eliminated_Hours IF Final_Eliminated_Hours < 0 THEN ( Final_Eliminated_Hours = 0 ) Overtime_value = 0 ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 141 of 185 /********************************************Condition for Pay_Cash = Y********************************************************/ ELSE ( IF OVERTIME_HOURS > XXHR_OVERTIME_MAX_HOURS THEN ( Final_Eliminated_Hours = OVERTIME_HOURS - XXHR_OVERTIME_MAX_HOURS OVERTIME_HOURS = XXHR_OVERTIME_MAX_HOURS ) ELSE ( OVERTIME_HOURS = OVERTIME_HOURS Final_Eliminated_Hours = 0 ) IF CONVERT_REST_HOURS was defaulted then (Eliminated_Hours = 0)
else (Eliminated_Hours = CONVERT_REST_HOURS) /*START_DATE = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE, 0)) SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG') SALARY = XXHR_ITD_BALANCE_ON_A_DATE(SALARY_BALANCE_ID,START_DATE)*/ SALARY_PER_HOUR = BAISC_SALARY/XXHR_OVERTIME_TOTAL_HOURS Overtime_Value = (SALARY_PER_HOUR * (OVERTIME_HOURS - Eliminated_Hours)) Eliminated_Hours = TRUNC(Eliminated_Hours) Rest_Hours = Eliminated_Hours ) Rest_Hours = Rest_Hours + HOL_REST_HOURS Return Overtime_Value, Eliminated_Hours, Rest_Hours , OVERTIME_HOURS Payroll Fast Formulas EPROM HRMS Implementation Project Page 142 of 185 XXHR_STOP_PAY Formula Name Description /* ---------------------------------------------------------------- This Formula is to Stop Pay for an Employee. Element Requirements 1.Accumulated Joined Raise (R/W) User Defined Function Date Author Changes 25-Aug-2010 Kaushik D Initial ------------------------------------------------------------------ */ ALIAS RELEASE_PAYMENT_ASG_ITD AS RELEASE_PAYMENT /* ====== Variables Value Defaults Begin ====== */ Default for STOP_PAY is 'N' /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE STOP_PAY IF STOP_PAY = 'Y' THEN ( WITHHOLD = TOTAL_PAYMENTS_ASG_RUN Balance_Payment = 0 ) ELSE ( WITHHOLD = 0 Balance_Payment = RELEASE_PAYMENT STOP = 'Yes' ) Return Withhold, Balance_Payment, STOP /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 143 of 185 XXHR_ADJUST_NEGATIVE_PAYMENT Formula Name Description /* ---------------------------------------------------------------- This Formula is to Adjust Negative Payment for an Employee. Element Requirements 1.Adjust Negative Payment User Defined Function Date Author Changes 26-Aug-2010 Kaushik D ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR ADJUST_NEGATIVE_PAY IS 0 DEFAULT FOR RECOVER_IN_NEXT_PAY_PERIOD IS 0 DEFAULT FOR SETTLEMENT_DUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR EMP_TERM_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) IF (TOTAL_PAYMENTS_ASG_RUN < 0) THEN ( IF (TO_CHAR(EMP_TERM_DATE,'MMYYYY') = TO_CHAR(PAY_PROC_PERIOD_END_DATE,'MMYYYY')) THEN ( ADJUST_NEGATIVE_PAY = 0 RECOVER_IN_NEXT_PAY_PERIOD = 0 SETTLEMENT_DUE = (-1) * TOTAL_PAYMENTS_ASG_RUN Return SETTLEMENT_DUE ) ELSE ( ADJUST_NEGATIVE_PAY = (-1) * TOTAL_PAYMENTS_ASG_RUN RECOVER_IN_NEXT_PAY_PERIOD = ADJUST_NEGATIVE_PAY Return ADJUST_NEGATIVE_PAY, RECOVER_IN_NEXT_PAY_PERIOD ) ) ELSE ( ADJUST_NEGATIVE_PAY = 0 RECOVER_IN_NEXT_PAY_PERIOD = 0 Return ADJUST_NEGATIVE_PAY, RECOVER_IN_NEXT_PAY_PERIOD ) Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 144 of 185 XXHR_RECOVER_PREVIOUS_PAYMENT_OUTSTANDING Formula Name Description /* ---------------------------------------------------------------- This Formula is to Recover Previous Payment Outstanding for an Employee. Element Requirements 1.Recover Previous Payment Outstanding User Defined Function Date Author Changes 26-Aug-2010 Kaushik D ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR RECOVER_PREVIOUS_DUES IS 0 RECOVER_PREVIOUS_DUES = RECOVER_PREVIOUS_OUTSTANDING_ASG_ITD Return RECOVER_PREVIOUS_DUES Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 145 of 185 XXHR_DAYS_IN_MONTH Formula Name Description DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_START_DATE IS '1951/01/31 00:00:00' (DATE) Days_in_Month = Days_Between(PAY_PROC_PERIOD_END_DATE, PAY_PROC_PERIOD_START_DATE) + 1 Return Days_in_Month Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 146 of 185 XXHR_FITR_REWARD Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 147 of 185 /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR FITR_REWARD IS 0 DEFAULT FOR INCREMENT IS 0 DEFAULT FOR MAX_INCREMENT IS 0 DEFAULT FOR APPRAISAL_SCORE IS ' ' DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR MIN_VAL IS 0 DEFAULT FOR MAX_VAL IS 0 /*DEFAULT FOR GRADE_XXHR_REWARDS_MINIMUM IS ' ' DEFAULT FOR GRADE_XXHR_REWARDS_MAXIMUM IS ' ' */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE /*E_DATE = LEAST(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1),EMP_TERM_DATE) S_DATE = GREATEST(ADD_YEARS(PAY_PROC_PERIOD_START_DATE,-1),EMP_HIRE_DATE)*/ E_DATE = LEAST(XHR_FITR_REWARD_DATE,EMP_TERM_DATE) S_DATE = GREATEST(ADD_DAYS(ADD_YEARS(XHR_FITR_REWARD_DATE,-1),1),EMP_HIRE_DATE) IF (TO_CHAR(PAY_PROC_PERIOD_END_DATE,'YYYY') = '2011') THEN ( /******************TOTOAL DAYS WORKED************************************/ UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave') LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence') MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid') /*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/ UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,- 1)),'Unauthorized Absence') /******************TOTOAL DAYS ************************************/ Total_Days = Days_Between(E_DATE, S_DATE) + 1 /******************TOTOAL DAYS ************************************/ EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( Total_Days = Total_Days/2 ) DAYS = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE) /******************TOTOAL DAYS WORKED************************************/ ) ELSE ( DAYS = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days Worked','Days Worked') Total_Days = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days in Month','Days') ) BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG') BASIC_SALARY = XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(XHR_FITR_REWARD_DATE,-1))) MIN_VAL = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'FITR_REWARD_MIN',XHR_FITR_REWARD_DAT E)) Payroll Fast Formulas EPROM HRMS Implementation Project Page 148 of 185 MAX_VAL = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'FITR_REWARD_MAX',XHR_FITR_REWARD_DAT E)) MAX_PER_DAY = MAX_VAL/30 BASIC_PER_DAY = BASIC_SALARY/30 IF BASIC_PER_DAY > MAX_PER_DAY THEN ( BASIC_PER_DAY = MAX_PER_DAY ) FITR_REWARD = BASIC_PER_DAY * XXHR_FITR_REWARD * (DAYS/Total_Days) /*X = XXHR_PRINT_DEBUG('FITR MIN_VAL'||TO_CHAR(MIN_VAL)) X = XXHR_PRINT_DEBUG('FITR MAX_VAL'||TO_CHAR(MAX_VAL))*/ IF FITR_REWARD < MIN_VAL THEN (FITR_REWARD = MIN_VAL) /*IF FITR_REWARD > MAX_VAL THEN (FITR_REWARD = MAX_VAL)*/ RETURN FITR_REWARD Payroll Fast Formulas EPROM HRMS Implementation Project Page 149 of 185 XXHR_ADHHA_REWARD Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 150 of 185 /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR ADHHA_REWARD IS 0 DEFAULT FOR INCREMENT IS 0 DEFAULT FOR MAX_INCREMENT IS 0 DEFAULT FOR APPRAISAL_SCORE IS ' ' DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR MIN_VAL IS 0 DEFAULT FOR MAX_VAL IS 0 /*DEFAULT FOR GRADE_XXHR_REWARDS_MINIMUM IS ' ' DEFAULT FOR GRADE_XXHR_REWARDS_MAXIMUM IS ' ' */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE /*E_DATE = LEAST(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1),EMP_TERM_DATE) S_DATE = GREATEST(ADD_YEARS(PAY_PROC_PERIOD_START_DATE,-1),EMP_HIRE_DATE)*/ E_DATE = LEAST(XXHR_ADHA_REWARD_DATE,EMP_TERM_DATE) S_DATE = GREATEST(ADD_DAYS(ADD_YEARS(XXHR_ADHA_REWARD_DATE,-1),1),EMP_HIRE_DATE) IF (TO_CHAR(PAY_PROC_PERIOD_END_DATE,'YYYY') = '2011') THEN ( /******************TOTOAL DAYS WORKED************************************/ UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave') LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence') MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid') /*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/ UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,- 1)),'Unauthorized Absence') /******************TOTOAL DAYS ************************************/ Total_Days = Days_Between(E_DATE, S_DATE) + 1 /******************TOTOAL DAYS ************************************/ EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( Total_Days = Total_Days/2 ) DAYS = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE) /******************TOTOAL DAYS WORKED************************************/ ) ELSE ( DAYS = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days Worked','Days Worked') Total_Days = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days in Month','Days') ) BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG') BASIC_SALARY = XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(XXHR_ADHA_REWARD_DATE,-1))) MAX_VAL = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'ADHHA_REWARD_MAX',XXHR_ADHA_REWARD _DATE)) Payroll Fast Formulas EPROM HRMS Implementation Project Page 151 of 185 MIN_VAL = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'ADHHA_REWARD_MIN',XXHR_ADHA_REWARD_ DATE)) MAX_PER_DAY = MAX_VAL/30 BASIC_PER_DAY = BASIC_SALARY/30 IF BASIC_PER_DAY > MAX_PER_DAY THEN ( BASIC_PER_DAY = MAX_PER_DAY ) ADHHA_REWARD = BASIC_PER_DAY * XXHR_ADHHA_REWARD * (DAYS/Total_Days) /*X = XXHR_PRINT_DEBUG(' ADHHA MIN_VAL'||TO_CHAR(MIN_VAL))*/ IF ADHHA_REWARD < MIN_VAL THEN (ADHHA_REWARD = MIN_VAL) /*X = XXHR_PRINT_DEBUG('ADHHA MAX_VAL'||TO_CHAR(MAX_VAL))*/ /*IF ADHHA_REWARD > MAX_VAL THEN (ADHHA_REWARD = MAX_VAL)*/ RETURN ADHHA_REWARD Payroll Fast Formulas EPROM HRMS Implementation Project Page 152 of 185 XXHR_PETROLEUM_REWARD Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 153 of 185 /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR PETROLEUM_REWARD IS 0 DEFAULT FOR INCREMENT IS 0 DEFAULT FOR MAX_INCREMENT IS 0 DEFAULT FOR APPRAISAL_SCORE IS ' ' DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR MIN_VAL IS 0 DEFAULT FOR MAX_VAL IS 0 /*DEFAULT FOR GRADE_XXHR_REWARDS_MINIMUM IS ' ' DEFAULT FOR GRADE_XXHR_REWARDS_MAXIMUM IS ' ' */ /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE /*E_DATE = LEAST(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1),EMP_TERM_DATE) S_DATE = GREATEST(ADD_YEARS(PAY_PROC_PERIOD_START_DATE,-1),EMP_HIRE_DATE)*/ E_DATE = LEAST(XXHR_PETROLEUM_REWARD_DATE,EMP_TERM_DATE) S_DATE = GREATEST(ADD_DAYS(ADD_YEARS(XXHR_PETROLEUM_REWARD_DATE,-1),1),EMP_HIRE_DATE) IF (TO_CHAR(PAY_PROC_PERIOD_END_DATE,'YYYY') = '2011') THEN ( /******************TOTOAL DAYS WORKED************************************/ UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave') LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence') MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid') /*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/ UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,- 1)),'Unauthorized Absence') /******************TOTOAL DAYS ************************************/ Total_Days = Days_Between(E_DATE, S_DATE) + 1 /******************TOTOAL DAYS ************************************/ EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( Total_Days = Total_Days/2 ) DAYS = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE) /******************TOTOAL DAYS WORKED************************************/ ) ELSE ( DAYS = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days Worked','Days Worked') Total_Days = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days in Month','Days') ) BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG') BASIC_SALARY = XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(XXHR_PETROLEUM_REWARD_DATE,-1))) MIN_VAL = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'PETROLEUM_REWARD_MIN',XXHR_PETROLEU M_REWARD_DATE)) Payroll Fast Formulas EPROM HRMS Implementation Project Page 154 of 185 MAX_VAL = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'PETROLEUM_REWARD_MAX',XXHR_PETROLE UM_REWARD_DATE)) MAX_PER_DAY = MAX_VAL/30 BASIC_PER_DAY = BASIC_SALARY/30 IF BASIC_PER_DAY > MAX_PER_DAY THEN ( BASIC_PER_DAY = MAX_PER_DAY ) PETROLEUM_REWARD = BASIC_PER_DAY * XXHR_PETROLEUM_REWARD * (DAYS/Total_Days) /* X = XXHR_PRINT_DEBUG('PETROLEUM MIN_VAL'||TO_CHAR(MIN_VAL)) X = XXHR_PRINT_DEBUG('PETROLEUM MAX_VAL'||TO_CHAR(MAX_VAL))*/ IF PETROLEUM_REWARD < MIN_VAL THEN (PETROLEUM_REWARD = MIN_VAL) /*IF PETROLEUM_REWARD > MAX_VAL THEN (PETROLEUM_REWARD = MAX_VAL)*/ RETURN PETROLEUM_REWARD Payroll Fast Formulas EPROM HRMS Implementation Project Page 155 of 185 XXHR_PROFIT_ALLOWANCE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 156 of 185 /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR EMP_TERM_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR PROFIT_REWARD IS 0 DEFAULT FOR INCREMENT IS 0 DEFAULT FOR MAX_INCREMENT IS 0 DEFAULT FOR APPRAISAL_SCORE IS ' ' DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR MIN_VAL IS 0 DEFAULT FOR MAX_VAL IS 0 /*DEFAULT FOR GRADE_XXHR_REWARDS_MINIMUM IS ' ' DEFAULT FOR GRADE_XXHR_REWARDS_MAXIMUM IS ' ' */ DEFAULT FOR EMP_LEAVING_REASON IS ' ' DEFAULT FOR EFFECTIVE_DATE IS '4712/12/31 00:00:00' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE, EFFECTIVE_DATE IF EMP_TERM_DATE < PAY_PROC_PERIOD_END_DATE THEN ( IF (EMP_LEAVING_REASON = 'Bad report twice') OR (EMP_LEAVING_REASON = ' ') OR (EMP_LEAVING_REASON = 'No Show Termination') OR (EMP_LEAVING_REASON = ' ') OR (EMP_LEAVING_REASON = 'Disqualified during Test Period') OR (EMP_LEAVING_REASON = ' ') OR (EMP_LEAVING_REASON = 'Termination') OR (EMP_LEAVING_REASON = '') OR (EMP_LEAVING_REASON = 'Lose Egyptian Nationality') OR (EMP_LEAVING_REASON = ' ') OR (EMP_LEAVING_REASON = 'Legal Punishment') OR (EMP_LEAVING_REASON = ' ') OR (EMP_LEAVING_REASON = 'Medically Unfit') OR (EMP_LEAVING_REASON = ' ') THEN ( E_DATE = TO_DATE('3112'||TO_CHAR(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-1),'YYYY'),'DDMMYYYY') S_DATE = GREATEST(TO_DATE('0101'||TO_CHAR(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,- 1),'YYYY'),'DDMMYYYY'),EMP_HIRE_DATE) SALARY_DATE = E_DATE ) ELSE ( E_DATE = EMP_TERM_DATE S_DATE = GREATEST(TO_DATE('0101'||TO_CHAR(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,- 1),'YYYY'),'DDMMYYYY'),EMP_HIRE_DATE) SALARY_DATE = LAST_DAY(EMP_TERM_DATE) ) ) Else ( E_DATE = LEAST(TO_DATE('3112'||TO_CHAR(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-1),'YYYY'),'DDMMYYYY'),EMP_TERM_DATE) S_DATE = GREATEST(TO_DATE('0101'||TO_CHAR(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,- 1),'YYYY'),'DDMMYYYY'),EMP_HIRE_DATE) /*SALARY_DATE = LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1))*/ SALARY_DATE = E_DATE ) /*DAYS = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days Worked','Days Worked') Total_Days = XXHR_GET_PAY_VALUE_IN_RANGE(S_DATE,E_DATE,'Days in Month','Days')*/ Payroll Fast Formulas EPROM HRMS Implementation Project Page 157 of 185 /******************TOTOAL DAYS WORKED************************************/ UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unpaid Leave') LONG_UNPAID_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Long Unpaid Absence') MATERNITY_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Maternity Leave Unpaid') /*UNAUTH_LEAVE = GET_ABSENCE_DURATION(S_DATE,E_DATE,'Unauthorized Absence')*/ UNAUTH_LEAVE = GET_ABSENCE_DURATION(ADD_DAYS(LAST_DAY(ADD_MONTHS(S_DATE,-2)),1),LAST_DAY(ADD_MONTHS(E_DATE,- 1)),'Unauthorized Absence') /******************TOTOAL DAYS ************************************/ Total_Days = Days_Between(E_DATE, S_DATE) + 1 /******************TOTOAL DAYS ************************************/ EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( Total_Days = Total_Days/2 ) DAYS = Total_Days - (UNPAID_LEAVE + LONG_UNPAID_LEAVE + MATERNITY_LEAVE + UNAUTH_LEAVE) /******************TOTOAL DAYS WORKED************************************/ /* X = XXHR_PRINT_DEBUG('UNPAID_LEAVE'||TO_CHAR(UNPAID_LEAVE)) X = XXHR_PRINT_DEBUG('LONG_UNPAID_LEAVE'||TO_CHAR(LONG_UNPAID_LEAVE)) X = XXHR_PRINT_DEBUG('MATERNITY_LEAVE'||TO_CHAR(MATERNITY_LEAVE)) X = XXHR_PRINT_DEBUG('UNAUTH_LEAVE'||TO_CHAR(UNAUTH_LEAVE))*/ PROFIT_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('PROFIT_BALANCE','Assignment Processing Period To Date','EG') PROFIT_SALARY = XXHR_ITD_BALANCE_ON_A_DATE(PROFIT_SALARY_BALANCE_ID,SALARY_DATE) /* X = XXHR_PRINT_DEBUG('PROFIT_SALARY'||TO_CHAR(PROFIT_SALARY)) X = XXHR_PRINT_DEBUG('XXHR_PROFIT_REWARD'||TO_CHAR(XXHR_PROFIT_REWARD)) X = XXHR_PRINT_DEBUG('DAYS'||TO_CHAR(DAYS)) X = XXHR_PRINT_DEBUG('E_DATE'||TO_CHAR(E_DATE)) X = XXHR_PRINT_DEBUG('S_DATE'||TO_CHAR(S_DATE))*/ /*PROFIT_REWARD = PROFIT_SALARY * XXHR_PROFIT_REWARD * (DAYS/365)*/ PROFIT_REWARD = PROFIT_SALARY * XXHR_PROFIT_REWARD * (DAYS/Total_Days) MIN_VAL = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'PROFIT_REWARD_MIN',PAY_PROC_PERIOD_E ND_DATE)) MAX_VAL = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_GRADE_REWARDS',ASG_GRADE,'PROFIT_REWARD_MAX',PAY_PROC_PERIOD_E ND_DATE)) /* X = XXHR_PRINT_DEBUG('PROF MIN_VAL'||TO_CHAR(MIN_VAL)) X = XXHR_PRINT_DEBUG('PROF MAX_VAL'||TO_CHAR(MAX_VAL))*/ IF PROFIT_REWARD < MIN_VAL THEN (PROFIT_REWARD = MIN_VAL) IF PROFIT_REWARD > MAX_VAL THEN (PROFIT_REWARD = MAX_VAL) RETURN PROFIT_REWARD Payroll Fast Formulas EPROM HRMS Implementation Project Page 158 of 185 XXHR_PERSONAL_LOAN_DEDUCTION_9 Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 159 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15 ------------------------------------------------------------------ */ ALIAS PERSONAL_LOAN_9_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR AMOUNT IS 0 DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 DEFAULT FOR STOP_LOAN IS 'N' DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE) /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date) If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF AMOUNT WAS DEFAULTED THEN ( TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Personal Loan 3','Override Value')/NUMBER_OF_MONTHS ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ) ELSE ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date Payroll Fast Formulas EPROM HRMS Implementation Project Page 160 of 185 AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ) ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 161 of 185 XXHR_PERSONAL_LOAN_DEDUCTION_10 Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 162 of 185 /* ---------------------------------------------------------------- This Formula is for Loan Deduction for an Employee. Element Requirements 1.PERSONAL_LOAN_PAYMENT_ASG_ITD User Defined Function Date Author Changes 12-Jul-2010 Kaushik Modified 26-Sep-2010 Rajesh Modified for Issue NO : PAYROLL_15 ------------------------------------------------------------------ */ ALIAS PERSONAL_LOAN_10_BALANCE_ASG_ITD AS PAYMENT_OUTSTANDING DEFAULT FOR TOTAL_RECOVERABLE_THIS_MONTH IS 0 DEFAULT FOR AMOUNT IS 0 DEFAULT FOR NUMBER_OF_INSTALLMENTS IS 1 DEFAULT FOR RECOVER_LOAN_BALANCE_COUNT IS 0 DEFAULT FOR STOP_LOAN IS 'N' DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_Start_Date is '31-DEC-4712'(DATE) DEFAULT FOR Loan_Stop_End_Date is '01-JAN-1900'(DATE) /* ====== Database Items Defaults Begin ====== */ /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE AMOUNT, NUMBER_OF_MONTHS, Loan_Stop_Start_Date(date), Loan_Stop_End_Date(date) If (RECOVER_LOAN_BALANCE_COUNT > 0) THEN ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'Yes' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ELSE ( IF AMOUNT WAS DEFAULTED THEN ( TOTAL_RECOVERABLE_THIS_MONTH = XXHR_GET_LOAN_INPUT_VALUE('Personal Loan 4','Override Value')/NUMBER_OF_MONTHS ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = AMOUNT ) Outstanding = PAYMENT_OUTSTANDING - TOTAL_RECOVERABLE_THIS_MONTH If (Outstanding < 0) OR (Outstanding = 0) THEN ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = PAYMENT_OUTSTANDING STOP = 'YES' RETURN TOTAL_RECOVERABLE_THIS_MONTH, STOP ) ) ELSE ( IF PAY_PROC_PERIOD_START_DATE >= Loan_Stop_Start_Date Payroll Fast Formulas EPROM HRMS Implementation Project Page 163 of 185 AND PAY_PROC_PERIOD_END_DATE <= Loan_Stop_End_Date THEN ( TOTAL_RECOVERABLE_THIS_MONTH = 0 RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ELSE ( TOTAL_RECOVERABLE_THIS_MONTH = TOTAL_RECOVERABLE_THIS_MONTH RETURN TOTAL_RECOVERABLE_THIS_MONTH ) ) ) Payroll Fast Formulas EPROM HRMS Implementation Project Page 164 of 185 XXHR_DISTINCTION_RAISE Formula Name Description /* ------------------------------------------------------------ This Formula is to Calculate Disctinction Raise for an Employee. Element Requirements User Defined Function Date Author Changes 13-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' DEFAULT FOR RAISE IS 0 DEFAULT FOR INCREMENT IS 0 DEFAULT FOR APPRAISAL_SCORE IS ' ' DEFAULT FOR ASG_GRADE IS ' ' /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( RAISE = OVERRIDE_VALUE ) ELSE ( APPRAISAL_SCORE = XXHR_APPRAISAL_SCORE(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-1)) BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG') BASIC_SALARY = XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1))) INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE _DETAILS','Details',APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE )))/100 RAISE = BASIC_SALARY * INCREMENT ) MAX_RAISE = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE_MIN',ASG_GRADE,APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE ))) RAISE = LEAST(MAX_RAISE, RAISE) RETURN RAISE Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 165 of 185 XXHR_MOTIVATION_RAISE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 166 of 185 /* ------------------------------------------------------------- This Formula is to Calculate Motivation ORIGINAL_VALUE for an Employee. Element Requirements User Defined Function Date Author Changes 13-JuLY-2010 Kaushik Created 20-Sep-2010 Rajesh Modified for Issue No : HRMS_13 ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR EMPLOYMENT_CATEGORY IS ' ' DEFAULT FOR ORIGINAL_VALUE IS 0 DEFAULT FOR INCREMENT IS 0 DEFAULT FOR APPRAISAL_SCORE IS ' ' /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( ORIGINAL_VALUE = 0 RETURN ORIGINAL_VALUE ) ELSE ( IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( ORIGINAL_VALUE = OVERRIDE_VALUE ) ELSE ( BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG') BASIC_SALARY = XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1))) INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_MOTIVATION_RAISE','Motivation Raise','Percentage',PAY_PROC_PERIOD_END_DATE )))/100 ORIGINAL_VALUE = BASIC_SALARY * INCREMENT MINIMUM = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_MOTIVATION_RAISE','Motivation Raise','Minimum Value',PAY_PROC_PERIOD_END_DATE )) IF ORIGINAL_VALUE < MINIMUM THEN ( ORIGINAL_VALUE = MINIMUM Payroll Fast Formulas EPROM HRMS Implementation Project Page 167 of 185 ) ELSE ( ORIGINAL_VALUE = ORIGINAL_VALUE ) IF(XX_QUALIFICATION_NAME(PAY_PROC_PERIOD_END_DATE) = 'Doctorate') OR (XX_QUALIFICATION_NAME(PAY_PROC_PERIOD_END_DATE) = '') THEN ( ORIGINAL_VALUE = GREATEST(ORIGINAL_VALUE, XXHR_MOTIVATION_RAISE_PHD_MINIMUM) ) ) ) RAISE = ORIGINAL_VALUE RETURN RAISE Payroll Fast Formulas EPROM HRMS Implementation Project Page 168 of 185 XXHR_PROMOTION_RAISE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 169 of 185 /* ------------------------------------------------------------- This Formula is to Calculate Promotion Raise for an Employee. Element Requirements User Defined Function Date Author Changes 13-JuLY-2010 Kaushik Created ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR EFFECTIVE_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMPLOYMENT_CATEGORY IS ' ' DEFAULT FOR RAISE IS 0 DEFAULT FOR INCREMENT IS 0 DEFAULT FOR APPRAISAL_SCORE IS ' ' DEFAULT FOR RAISE_ADJUSTMENT IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE OVERRIDE_VALUE, EFFECTIVE_DATE EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( RAISE = 0 RAISE_ADJUSTMENT = 0 RETURN RAISE ) ELSE ( IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( RAISE = OVERRIDE_VALUE RAISE_ADJUSTMENT = RAISE - (RAISE * (DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,EFFECTIVE_DATE) +1)/ (DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) +1)) ) ELSE ( APPRAISAL_SCORE = XXHR_APPRAISAL_SCORE(ADD_YEARS(PAY_PROC_PERIOD_END_DATE,-1)) BASIC_SALARY_BALANCE_ID = XXHR_GET_DEFINED_BALANCE_ID('BASIC_SALARY','Assignment Processing Period To Date','EG') BASIC_SALARY = XXHR_ITD_BALANCE_ON_A_DATE(BASIC_SALARY_BALANCE_ID,LAST_DAY(ADD_MONTHS(PAY_PROC_PERIOD_END_DATE,-1))) INCREMENT = (TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_RAISE _DETAILS','Details',APPRAISAL_SCORE,PAY_PROC_PERIOD_END_DATE )))/100 RAISE = BASIC_SALARY * INCREMENT RAISE_ADJUSTMENT = (RAISE - (RAISE * (DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,EFFECTIVE_DATE) +1)/ (DAYS_BETWEEN(PAY_PROC_PERIOD_END_DATE,PAY_PROC_PERIOD_START_DATE) +1))) ) ) RAISE_ADJUSTMENT=0 Payroll Fast Formulas EPROM HRMS Implementation Project Page 170 of 185 RETURN RAISE, RAISE_ADJUSTMENT Payroll Fast Formulas EPROM HRMS Implementation Project Page 171 of 185 XXHR_SOCIAL_ALLOWANCE Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 172 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Social Raise Allowance for an Employee. Element Requirements 1.Social Raise (R/W) User Defined Function Date Author Changes 14-June-2009 Arun Created 29-Sep-2010 Rajesh Modified ------------------------------------------------------------------ */ ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR PER_MARITAL_STATUS IS 'SINGLE' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF Override_Value WAS NOT DEFAULTED THEN ( RAISE_AMOUNT = Override_Value RETURN RAISE_AMOUNT ) /*X = XXHR_PRINT_DEBUG(PER_MARITAL_STATUS)*/ IF (PER_MARITAL_STATUS = 'Single') THEN ( ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','Details','SINGLE',PAY_PROC_PERIOD_END_DATE)) RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN) ) ELSE ( no_of_children = XXHR_NUMBER_OF_CHILDREN(PAY_PROC_PERIOD_END_DATE) /*x = XXHR_PRINT_DEBUG(to_char(no_of_children))*/ If no_of_children = 0 THEN ( If (PER_MARITAL_STATUS = 'Divorced') OR (PER_MARITAL_STATUS = 'Widowed') THEN ( ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','DIVORCED OR WIDOWED NO CHILDREN',PAY_PROC_PERIOD_END_DATE)) RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN) ) ELSE ( Payroll Fast Formulas EPROM HRMS Implementation Project Page 173 of 185 ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','MARRIED',PAY_PROC_PERIOD_END_DATE)) RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN) ) ) ELSE If no_of_children = 1 THEN ( If (PER_MARITAL_STATUS = 'Divorced') OR (PER_MARITAL_STATUS = 'Widowed') THEN ( ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','DIVORCED OR WIDOWED ONE CHILD',PAY_PROC_PERIOD_END_DATE)) RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN) ) ELSE ( ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','MARRIED WITH 1 CHILD',PAY_PROC_PERIOD_END_DATE))
RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN) ) ) ELSE If no_of_children = 2 THEN ( If (PER_MARITAL_STATUS = 'Divorced') OR (PER_MARITAL_STATUS = 'Widowed') THEN ( ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','DIVORCED OR WIDOWED TWO CHILD',PAY_PROC_PERIOD_END_DATE)) RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN) ) ELSE ( ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','MARRIED WITH 2 CHILD',PAY_PROC_PERIOD_END_DATE))
RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN) ) ) ELSE ( If (PER_MARITAL_STATUS = 'Divorced') OR (PER_MARITAL_STATUS = 'Widowed') THEN ( ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','DIVORCED OR WIDOWED THREE OR MORE CHILDREN',PAY_PROC_PERIOD_END_DATE)) RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN) ) ELSE ( Payroll Fast Formulas EPROM HRMS Implementation Project Page 174 of 185 ORIGINAL_AMOUNT = TO_NUMBER(GET_ASSIGNMENT_TABLE_VALUE('XXHR_SOCIAL_ALLOWANCE','DETAILS','MARRIED WITH 3 OR MORE CHILDREN',PAY_PROC_PERIOD_END_DATE))
RAISE_AMOUNT = ORIGINAL_AMOUNT * (DAYS_WORKED / DAYS_IN_MONTH_ASG_RUN) ) ) ) RETURN RAISE_AMOUNT, ORIGINAL_AMOUNT /* ====== Formula Body Ends ====== */ Payroll Fast Formulas EPROM HRMS Implementation Project Page 175 of 185 ADDITIONAL SHIFT ALLOWANCE Formula Name Description DEFAULT FOR ASG_PAYROLL IS ' ' DEFAULT FOR PAYMENT IS 0 DEFAULT FOR PAY_PROC_PERIOD_END_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR ORIGINAL_VLAUE IS 0 DEFAULT FOR ADDITIONAL_SHIFT_ALLOWANCE_PAY_VALUE_END_DATE IS '4712/12/31 00:00:00' (DATE) DEFAULT FOR ADDITIONAL_SHIFT_ALLOWANCE_PAY_VALUE_START_DATE is '1900/01/01 00:00:00' (DATE) INPUTS ARE OVERRIDE_VALUE PAYMENT = 0 IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN ( PAYMENT = OVERRIDE_VALUE ) ELSE IF ASG_PAYROLL = 'MIDOR' THEN (PAYMENT = SHIFT_ALLOWANCE_ASG_RUN) /*EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF (EMPLOYMENT_CATEGORY = 'XX_02') or (EMPLOYMENT_CATEGORY = ' ') THEN ( PAYMENT = PAYMENT/2 )*/ ORIGINAL_VLAUE = PAYMENT RETURN PAYMENT,ORIGINAL_VLAUE Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 176 of 185 XXHR_OVER_TIME_ALLOWANCE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Special Shift allowance of an Employee.
Element Requirements 1. Special Shift allowance(R/W) User Defined Function 1. NONE User Defined Table Used 1. XXHR_SPECIAL_SHIFT_ALLOWANCE ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Override_Value is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) DEFAULT FOR ASG_GRADE IS '0' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS are Override_Value, No_of_Days Per_Diem = TO_NUMBER(GET_TABLE_VALUE('XXHR_SPECIAL_SHIFT_ALLOWANCE','Value per shift day',ASG_GRADE)) Special_Shift_Allowance = Per_Diem * No_of_Days IF Override_Value was DEFAULTED THEN Special_Shift_Allowance = Special_Shift_Allowance ELSE Special_Shift_Allowance = Override_Value Return Special_Shift_Allowance /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 177 of 185 XXHR_COMBINED_ADJUSTMENT Formula Name Description Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 178 of 185 /* ---------------------------------------------------------------- This Formula is to Calculate Accumulated Joined Raise for an Employee. Element Requirements 1.Accumulated Joined Raise (R/W) User Defined Function Date Author Changes 17-May-2010 Kaushik D updated on 04-July-2010 by Ganesh gopal ------------------------------------------------------------------ */ ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED ALIAS MERE_BASIC_ASG_RUN AS MERE_BASIC ALIAS JOINED_RAISES_ASG_ITD AS JOINED_RAISES DEFAULT FOR OVERRIDE_VALUE IS 0 /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR JOINED_AMOUNT is 0 DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR RATE IS 0 DEFAULT FOR ASG_EMPLOYMENT_CATEGORY IS ' ' Default for Year is 1951 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR EMP_HIRE_DATE IS '1900/01/01 00:00:00' (DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value EMPLOYMENT_CATEGORY = XXHR_EMPLOYEE_CATEGORY(PAY_PROC_PERIOD_END_DATE) IF Override_Value WAS NOT DEFAULTED THEN ( JOINED_AMOUNT = Override_Value ) ELSE IF (EMPLOYMENT_CATEGORY = 'XX_03') or (EMPLOYMENT_CATEGORY = '') THEN ( RATE = XXHR_COMBINED_RAISE_PERCENTAGE/100 JOINED_AMOUNT = RATE * MERE_BASIC ) ELSE ( IF (PAY_PROC_PERIOD_END_DATE < TO_DATE('3107'||TO_CHAR(PAY_PROC_PERIOD_END_DATE, 'YYYY'),'DDMMYYYY') ) Then (YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 6) Else (YEAR = to_Number(to_Char(PAY_PROC_PERIOD_END_DATE,'YYYY')) - 5) JOINED_AMOUNT = XXHR_COMBINED_RAISE(YEAR) * MERE_BASIC/100 ) Old_value = JOINED_RAISES New_value = JOINED_AMOUNT RETURN Old_value, New_value Payroll Fast Formulas EPROM HRMS Implementation Project Page 179 of 185 /* ====== Formula Body Ends ====== */ Payroll Fast Formulas EPROM HRMS Implementation Project Page 180 of 185 XXHR_INITIAL_CONTRACT_VALUE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Monthly Bonus of an Employee.
Element Requirements 1. Monthly Bonus(R/W) User Defined Function 1. NONE ------------------------------------------------------------------ */ ALIAS PROD_CURRENT_CONTRACT_VALUE_ASG_ITD AS CONTRACT_VALUE_TEMP /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR PAYMENT is 0 DEFAULT FOR Amount is 0 DEFAULT FOR E_DATE is '31-DEC-4712' (DATE) DEFAULT FOR S_DATE is '01-JAN-1900' (DATE) /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR EMP_HIRE_DATE is '01-JAN-1900'(DATE) DEFAULT FOR EMP_TERM_DATE IS '31-DEC-4712'(DATE) /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Amount IF Amount WAS NOT DEFAULTED THEN (PAYMENT = Amount old_payment = CONTRACT_VALUE_TEMP ) ELSE (PAYMENT = CONTRACT_VALUE_ASG_RUN * XXHR_INITIAL_CONTRACT_VALUE/100) RETURN PAYMENT,old_payment Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 181 of 185 TRANSPORTATION ALLOWANCE Formula Name Description ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS '0' DEFAULT FOR PAYMENT IS 0 /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (ORIGINAL_VALUE = OVERRIDE_VALUE ) ELSE (ZONE = XX_ADDRESS_DFF(PAY_PROC_PERIOD_END_DATE) IF GROUP_KF_DELEGATED_GRADE WAS DEFAULTED THEN ( L_ASG_GRADE = ASG_GRADE ) ELSE ( L_ASG_GRADE = GROUP_KF_DELEGATED_GRADE ) ORIGINAL_VALUE = TO_NUMBER(GET_TABLE_VALUE('XXHR_TRANSPORTATION_ALLOWANCE',L_ASG_GRADE,ZONE,SYSDATE)) ) PAYMENT = ORIGINAL_VALUE * DAYS_WORKED / DAYS_IN_MONTH RETURN PAYMENT, ORIGINAL_VALUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 182 of 185 DEDICATION ALLOWANCE Formula Name Description ALIAS DAYS_IN_MONTH_ASG_RUN AS DAYS_IN_MONTH ALIAS DAYS_WORKED_ASG_RUN AS DAYS_WORKED DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '1900/01/01 00:00:00' (DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '4712/12/31 00:00:00' (DATE) DEFAULT FOR ASG_GRADE IS ' ' DEFAULT FOR PAYMENT IS 0 DEFAULT FOR ORIGINAL_VALUE IS 0 DEFAULT FOR OVERRIDE_VALUE IS 0 DEFAULT FOR GROUP_KF_DELEGATED_GRADE IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS ARE Override_Value IF OVERRIDE_VALUE WAS NOT DEFAULTED THEN (ORIGINAL_VALUE = OVERRIDE_VALUE ) ELSE ( GRADE = GREATEST(ASG_GRADE,GROUP_KF_DELEGATED_GRADE) ZONE = XX_QUALIFICATION_DFF(PAY_PROC_PERIOD_END_DATE) IF ((ZONE = 'ENG') OR (ZONE = 'LAW') OR (ZONE = 'MEDICINE') OR (ZONE = 'SCIENCE')) THEN ( ORIGINAL_VALUE = TO_NUMBER(GET_TABLE_VALUE('XXHR_DEDICATION_ALLOWANCE_GRADE',GRADE,ZONE,PAY_PROC_PERIOD_END_DATE)) ) ELSE ( ORIGINAL_VALUE = 0 ) IF ZONE = 'LAW' then (ORIGINAL_VALUE = mere_basic_asg_run * ORIGINAL_VALUE/100 if ORIGINAL_VALUE > XXHR_FACULTY_LAW_MAX_AMT then (ORIGINAL_VALUE = XXHR_FACULTY_LAW_MAX_AMT) ) ) PAYMENT = ORIGINAL_VALUE * DAYS_WORKED/DAYS_IN_MONTH RETURN PAYMENT, ORIGINAL_VALUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 183 of 185 US_EVS Formula Name Employee Verification Service (EVS) Formula Description /* dbdrv: none +======================================================================+ | Copyright (c) 2005 Oracle Corporation | | Redwood Shores, California, USA | | All rights reserved. | +======================================================================+ Description : Employee Verification Service Report Formula Name : US_EVS */ inputs are LAST_NAME (text) ,MIDDLE_NAME (text) ,FIRST_NAME (text) ,SSN (text) ,DATE_OF_BIRTH (text) ,GENDER (text) ,REQUESTER_ID_CODE (text) ,USER_CONTROL_DATA (text) ,MULTI_REQ_INDICATOR (text) ERROR_MSG = 'ERROR:Requester Identification Code is a mandatory field for the report. Please enter Requester Identification Code in EVS Filing for a GRE. ' MULTI_REQ_IND = MULTI_REQ_INDICATOR IF MULTI_REQ_IND = ' ' THEN MULTI_REQ_IND = '0' IF REQUESTER_ID_CODE = ' ' THEN Return ERROR_MSG ELSE ( WRITE_F1 = rpad(SSN,9,' ') + 'TPV' + '214' + rpad(LAST_NAME,13,' ') + rpad(FIRST_NAME,10,' ') + rpad(MIDDLE_NAME,7,' ') + rpad(DATE_OF_BIRTH,8,' ') + rpad(GENDER,1,' ') + rpad(' ',35,' ') + rpad(USER_CONTROL_DATA,14,' ') + rpad(' ',20,' ') + rpad(REQUESTER_ID_CODE,4,' ') + rpad(MULTI_REQ_IND,3,'0') return WRITE_F1 ) /* ** End of Formula */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 184 of 185 XXHR_MEAL_ALLOWANCE_2 Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Meal Allowance 2 of an Employee.
Element Requirements 1. Meal Allowance 2(R/W) User Defined Function 1. NONE Globals Used 1. XXHR_Meal_Allowance_2_VALUE ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR Meal_Allowance_2 is 0 DEFAULT FOR Override_Value is 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR GROUP_KF_SHIFT_TYPE IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS are Override_Value Meal_Allowance_2 = XXHR_Meal_Allowance_2_VALUE IF Override_Value was NOT DEFAULTED THEN ( Meal_Allowance_2 = Override_Value ORIGINAL_VALUE = Meal_Allowance_2 ) ELSE ( IF GROUP_KF_SHIFT_TYPE = 'XX_01' THEN ( ORIGINAL_VALUE = Meal_Allowance_2 Meal_Allowance_2 = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN) ) ELSE ( ORIGINAL_VALUE = 0 Meal_Allowance_2 = 0 ) ) Return Meal_Allowance_2,ORIGINAL_VALUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type Payroll Fast Formulas EPROM HRMS Implementation Project Page 185 of 185 XXHR_RISK_ALLOWANCE Formula Name Description /* ---------------------------------------------------------------- This Formula is to Calculate Risk Allowance of an Employee.
Element Requirements 1. Risk Allowance 2(R/W) User Defined Function 1. NONE Globals Used 1. XXHR_RISK_ALLOWANCE ------------------------------------------------------------------ */ /* ====== Variables Value Defaults Begin ====== */ DEFAULT FOR RISK_ALLOWANCE is 0 DEFAULT FOR Override_Value is 0 /* ====== Variables Value Defaults Ends ====== */ /* ====== Database Items Defaults Begin ====== */ DEFAULT FOR PAY_PROC_PERIOD_START_DATE is '01-JAN-1900'(DATE) DEFAULT FOR PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(DATE) DEFAULT FOR GROUP_KF_SHIFT_TYPE IS ' ' /* ====== Database Items Defaults Ends ====== */ /* ====== Formula Body Starts ====== */ INPUTS are Override_Value RISK_ALLOWANCE = XXHR_RISK_ALLOWANCE IF Override_Value was NOT DEFAULTED THEN ( RISK_ALLOWANCE = Override_Value ORIGINAL_VALUE = RISK_ALLOWANCE ) ELSE ( IF XXHR_POSITION_RISK_ALLOWANCE(PAY_PROC_PERIOD_END_DATE) = 'Yes' THEN ( ORIGINAL_VALUE = RISK_ALLOWANCE RISK_ALLOWANCE = ORIGINAL_VALUE * (DAYS_WORKED_ASG_RUN/DAYS_IN_MONTH_ASG_RUN) ) ELSE ( ORIGINAL_VALUE = 0 RISK_ALLOWANCE = 0 ) ) Return RISK_ALLOWANCE,ORIGINAL_VALUE /* ====== Formula Body Ends ====== */ Formula Text Oracle Payroll Formula Type