1 package pay_fr_pto_pkg AUTHID CURRENT_USER as
2 /* $Header: pyfrhpto.pkh 120.1 2005/08/30 02:52:53 ayegappa noship $ */
3
4 Type g_fr_payslip_info_rec is record (
5 Assignment_id Number
6 ,plan_name Varchar2(50)
7 ,Accrual Number
8 ,Entitlement Number
9 ,Taken Number
10 ,Balance Number
11 );
12
13 Type g_fr_payslip_inf_tab is table of g_fr_payslip_info_rec index by binary_integer;
14 g_fr_payslip_info g_fr_payslip_inf_tab;
15
16 Type g_fr_pay_info is record (
17 pay_reg_element_id Number
18 ,pay_reg_payment_input_ID Number
19 ,pay_reg_plan_input_ID Number
20 ,pay_reg_date_input_ID Number
21 ,pay_element_id Number
22 ,pay_total_days_input_ID Number
23 ,pay_protected_days_input_ID Number
24 ,pay_accrual_date_input_ID Number
25 ,pay_payment_input_ID Number
26 ,pay_flag_input_ID Number
27 ,pay_plan_input_ID Number
28 ,pay_abs_attend_input_id Number
29 );
30
31
32 Type g_fr_plan_info is record (
33 accrual_plan_id number
34 ,accrual_date date
35 ,accrual_year_start date
36 ,accrual_year_end date
37 ,accrual_start_month number
38 ,entitlement_offset number
39 ,entitlement_duration number
40 ,working_days Number
41 ,protected_days Number
42 ,accounting_method Varchar2(30)
43 ,ent_accrual_date_iv_id number
44 ,ent_reference_sal_iv_id number
45 ,ent_reference_days_iv_id number
46 ,ent_m_iv_id number
47 ,ent_p_iv_id number
48 ,ent_c_iv_id number
49 ,ent_s_iv_id number
50 ,ent_y_iv_id number
51 ,ent_acp_iv_id Number
52 ,obs_accrual_date_iv_id number
53 ,obs_m_iv_id number
54 ,obs_p_iv_id number
55 ,obs_c_iv_id number
56 ,obs_s_iv_id number
57 ,obs_y_iv_id number
58 ,obs_acp_iv_id Number
59 ,adj_accrual_date_iv_id number
60 ,adj_m_iv_id number
61 ,adj_p_iv_id number
62 ,adj_c_iv_id number
63 ,adj_s_iv_id number
64 ,adj_y_iv_id number
65 ,adj_acp_iv_id Number
66 ,main_holiday_acc_plan_id number
67 ,holiday_element_id Number
68 ,accrual_plan_element_id Number
69 ,working_days_iv_id Number
70 ,protected_days_iv_id Number
71 ,business_Group_id Number
72 ,ent_element_id Number
73 ,obs_element_id Number
74 ,adj_element_id Number
75 -- added 3 parameters for termination processing
76 ,term_element_id Number
77 ,term_accrual_date_iv_id Number
78 ,term_days_iv_id Number);
79
80 type rate_rec is record (
81 main_rate number
82 ,protected_rate number
83 ,start_date date
84 ,end_date date);
85 type rate_tab is table of rate_rec index by binary_integer;
86 g_rate_assignment_in_table number;
87 g_plan_in_table number;
88
89 -------------------------------------------------------------------------------
90 -- LOAD_FR_PAYSLIP_ACCRUAL_DATA Archiver Call
91 -------------------------------------------------------------------------------
92 Procedure load_fr_payslip_accrual_data
93 (P_assignment_id IN Number
94 ,p_date_earned IN Date
95 ,p_business_Group_id IN Number);
96 --
97 -------------------------------------------------------------------------------
98 -- GET_FR_NET_ENTITLEMENT
99 -------------------------------------------------------------------------------
100 procedure get_fr_net_entitlement /* gets the net entitlement per type of accrual for a given */
101 /* assignment / accrual plan. */
102 (p_accrual_plan_id IN Number
103 ,p_effective_date IN Date /* a date in the ACCRUAL year */
104 ,p_assignment_id IN Number
105 ,p_ignore_ent_adjustments IN Varchar2 default 'N' /* used by entitlement storage CM program */
106 -- adding extra parameter for additional holidays
107 -- to get correct accrual dates
108 ,p_accrual_type IN varchar2 default null
109 ,p_legal_period_end IN date default null
110 --
111 ,p_remaining OUT NOCOPY Number /* the total of the remaining net entitlement */
112 ,p_net_main OUT NOCOPY Number
113 ,p_net_protected OUT NOCOPY Number
114 ,p_net_young_mothers OUT NOCOPY Number
115 ,p_net_seniority OUT NOCOPY Number
116 ,p_net_conventional OUT NOCOPY Number
117 ,p_ent_main OUT NOCOPY Number
118 ,p_ent_protected OUT NOCOPY Number
119 ,p_ent_young_mothers OUT NOCOPY Number
120 ,p_ent_seniority OUT NOCOPY Number
121 ,p_ent_conventional OUT NOCOPY Number
122 ,p_accrual_start_date OUT NOCOPY Date
123 ,p_accrual_end_date OUT NOCOPY Date
124 ,p_type_calculation IN Varchar2 default 'N' /* Normal, Y=Payslip A=Archive */
125 ,p_paid_days_to IN Date default null
126 );
127 -------------------------------------------------------------------------------
128 -- FUNCTION GET_REG_PAYMENT_GLOBALS
129 -------------------------------------------------------------------------------
130 function get_payment_globals
131 return g_fr_pay_info;
132 -------------------------------------------------------------------------------
133 -- FUNCTION FR_LATEST_PLAN_START_DATE
134 -------------------------------------------------------------------------------
135 function fr_latest_plan_start_date (p_element_entry_id in number)
136 return date;
137 -------------------------------------------------------------------------------
138 -- FUNCTION GET_PAYMENT_GLOBALS_R
139 -------------------------------------------------------------------------------
140 function get_payment_globals_r
141 return g_fr_pay_info;
142 -------------------------------------------------------------------------------
143 -- Get FR_HOLIDAY_REG_DETAILS REG Fast Formula
144 -------------------------------------------------------------------------------
145 function Get_fr_holiday_reg_details
146 (P_assignment_id IN Number
147 ,p_date_earned IN Date
148 ,P_accrual_plan_id IN Number
149 ,P_accrual_date IN Date
150 ,P_accrue_start_Date OUT NOCOPY Date /* period start date of accrual year */
151 ,P_accrue_end_date OUT NOCOPY Date /* period start date of accrual year */
152 ,P_reference_entitlement OUT NOCOPY Number /* The main days of entitlement in the accrual year */
153 ,p_reference_salary OUT NOCOPY Number /* the salary (stored on entitlement element) */
154 ,p_session_date OUT NOCOPY Date /* The sesssion date */
155 ,p_regularization_possible OUT NOCOPY Varchar2 /* flag if this accrual period is not yet closed as at effective date */
156 ,p_total_days_paid OUT NOCOPY Number /* The number of days paid in this accrual year */
157 ,p_total_payment_made OUT NOCOPY Number /*The original payment made for those days */
158 ,p_previous_reg_payments OUT NOCOPY Number /* Any previous regularization payments made */
159 )
160 return number;
161 --
162 -------------------------------------------------------------------------------
163 -- Get NEW Accrual PLAN INFO
164 -------------------------------------------------------------------------------
165 Function get_fr_accrual_plan_info(
166 p_accrual_plan_id IN number
167 ,p_element_entry_id IN number default null
168 ,p_accrual_date IN date default null
169 ) return g_fr_plan_info;
170 --
171 -------------------------------------------------------------------------------
172 -- Write Regularization Payments
173 -------------------------------------------------------------------------------
174 Function write_regularization_payment
175 (p_accrual_plan_id number,
176 p_y0_reg_payment number,
177 p_y0_accrual_date date,
178 p_y1_reg_payment number,
179 p_y1_accrual_date date,
180 p_y2_reg_payment number,
181 p_y2_accrual_date date,
182 p_y3_reg_payment number,
183 p_y3_accrual_date date
184 ) return number;
185 --
186 -------------------------------------------------------------------------------
187 -- FUNCTION READ_REGULARIZATION_PAYMENT --
188 -------------------------------------------------------------------------------
189 Function read_regularization_payment
190 (p_accrual_plan_id IN number,
191 p_index IN number,
192 p_reg_payment OUT NOCOPY number,
193 p_accrual_date OUT NOCOPY date,
194 p_next_payment OUT NOCOPY number)
195 return number;
196 --
197 -------------------------------------------------------------------------------
198 -- FUNCTION GET_FR_REG_PAYMENTS --
199 -------------------------------------------------------------------------------
200 function Get_fr_reg_payments
201 (p_assignment_id IN Number
202 ,p_date_earned IN Date
203 ,p_accrual_plan_id IN Number
204 ,p_calculation_date IN Date
205 ,p_y0_term_payments IN Number
206 ,p_y1_term_payments IN Number
207 ,p_global_reg_sal_pct IN Number
208 ,p_daily_rate IN Number
209 ,p_y0_regularized_amt OUT NOCOPY Number
210 ,p_y1_regularized_amt OUT NOCOPY Number
211 ,p_y2_regularized_amt OUT NOCOPY Number
212 ,p_y3_regularized_amt OUT NOCOPY Number
213 ,p_y0_accrual_date OUT NOCOPY Date
214 ,p_y1_accrual_date OUT NOCOPY Date
215 ,p_y2_accrual_date OUT NOCOPY Date
216 ,p_y3_accrual_date OUT NOCOPY Date
217 ,p_reg_option_flg OUT NOCOPY Varchar2
218 ) return number;
219 --
220 -------------------------------------------------------------------------------
221 -- FR_CREATE_ENTITLEMENT CONCURRENT MANAGER PROGRAM
222 -------------------------------------------------------------------------------
223 procedure fr_create_entitlement
224 (ERRBUF OUT NOCOPY varchar2
225 ,RETCODE OUT NOCOPY number
226 ,P_business_group_id IN number
227 ,p_assignment_id IN number DEFAULT Null
228 ,P_calculation_date IN varchar2
229 ,P_accrual_date IN varchar2
230 ,P_plan_id IN number
231 ,P_type IN varchar2);
232
233 --
234 -------------------------------------------------------------------------------
235 -- FR_GET_ACCRUAL HIGH
236 -------------------------------------------------------------------------------
237 procedure FR_Get_Accrual
238 (P_Assignment_ID IN Number
239 ,P_Calculation_Date IN Date /* as at date, also identifies the accrual plan */
240 ,p_accrual_start_date IN Date /* extra date parameter for now */
241 ,P_Plan_ID IN Number
242 ,P_Business_Group_ID IN Number
243 ,P_Payroll_ID IN Number
244 ,P_Assignment_Action_ID IN Number default null
245 ,P_Accrual_Latest_Balance IN Number default null
246 ,p_create_all IN Varchar2 default 'N' /* inicator to show if all types should be created */
247 /* if set to 'N' default will be to just return */
248 /* main and protected, but user implementation can */
249 /* change this */
250 ,p_reprocess_whole_period IN Varchar2 default 'N' /* indicates if the accrual should be evaluaed from the */
251 /* last entitlement storage date, or from accrual year start */
252 /* This will be set yo 'Y' for entitlement creation process */
253 /* which must reevaluate the entire accrual to overcome */
254 /* rounding errors */
255 ,p_payslip_process IN Varchar2 default 'N' /* indicates if called via payslip - if so do not deduct holidays */
256 /* as they wil be shown against entitlements */
257 -- Added extra inputs for additional days requirements
258 ,p_legal_period_start_date IN Date default null
259 ,p_entitlement_offset IN Number default null
260 ,p_main_holiday_acc_plan_id IN Number default null
261 ,p_type IN Varchar2 default null
262 --
263 ,P_Start_Date OUT NOCOPY Date /* accrual year start date */
264 ,P_End_Date OUT NOCOPY Date /* calculation date */
265 ,P_Accrual_End_Date OUT NOCOPY Date /* accrual end date */
266 ,P_total_accrued_pto OUT NOCOPY number
267 ,P_total_Accrued_protected OUT NOCOPY number
268 ,P_total_Accrued_seniority OUT NOCOPY number
269 ,P_total_Accrued_mothers OUT NOCOPY number
270 ,P_total_Accrued_conventional OUT NOCOPY number
271 ) ;
272 --
273 -------------------------------------------------------------------------------
274 -- FR_CALCULATE_ACRUAL LOW
275 -------------------------------------------------------------------------------
276 procedure FR_Calculate_Accrual
277 (P_Assignment_ID IN Number
278 ,P_Plan_ID IN Number
279 ,P_Payroll_ID IN Number
280 ,P_Business_Group_ID IN Number
281 ,P_Accrual_formula_ID IN Number
282 ,P_Assignment_Action_ID IN Number default null
283 ,P_Calculation_Date IN Date
284 ,p_accrual_START_date IN Date
285 -- Added extra inputs for additional days requirements
286 ,p_legal_period_start_date IN Date default null
287 ,p_entitlement_offset IN Number default null
288 ,p_main_holiday_acc_plan_id IN Number default null
289 ,p_type IN Varchar2 default null
290 --
291 ,P_Accrual_Latest_Balance IN Number default null
292 ,P_Total_Accrued_PTO OUT NOCOPY Number
293 ,p_total_accrued_protected OUT NOCOPY Number
294 ,p_total_accrued_seniority OUT NOCOPY Number
295 ,p_total_accrued_mothers OUT NOCOPY Number
296 ,p_total_accrued_conventional OUT NOCOPY Number
297 ,P_Effective_Start_Date OUT NOCOPY Date /* returned by formula */
298 ,P_Effective_End_Date OUT NOCOPY Date /* returned by formula */
299 ,P_Accrual_End_date OUT NOCOPY Date) ; /* returned by formula */
300 --
301
302 -------------------------------------------------------------------------------
303 -- OBSOLETION_PROCEDURE
304 -------------------------------------------------------------------------------
305 procedure obsoletion_procedure
306 (p_business_group_id IN number
307 ,p_assignment_id IN number default null
308 ,p_accrual_plan_id IN number
309 ,p_effective_date IN date
310 ,p_accrual_date IN date
311 ,p_formula_id IN number
312 ,p_payroll_id IN number
313 ,p_net_entitlement IN number
314 ,p_net_main_days IN number
315 ,p_net_conven_days IN number
316 ,p_net_seniority_days IN number
320 ,p_new_conven_days OUT NOCOPY number
317 ,p_net_protected_days IN number
318 ,p_net_youngmother_days IN number
319 ,p_new_main_days OUT NOCOPY number
321 ,p_new_seniority_days OUT NOCOPY number
322 ,p_new_protected_days OUT NOCOPY number
323 ,p_new_youngmother_days OUT NOCOPY number) ;
324 --
325 -------------------------------------------------------------------------------
326 -- GET_FR_HOLIDAYS_BOOKED_LIST
327 -------------------------------------------------------------------------------
328 function Get_fr_holidays_booked_list
329 (P_assignment_id IN Number /* the assignment */
330 ,p_business_Group_id IN Number
331 ,P_accrual_plan_id IN Number
332 ,p_accrual_start_date IN Date
333 ,p_accrual_end_date IN Date
334 ,p_holiday_element_id IN Number
335 ,p_total_m OUT NOCOPY Number
336 ,p_total_p OUT NOCOPY Number
337 ,p_total_c OUT NOCOPY Number
338 ,p_total_s OUT NOCOPY Number
339 ,p_total_y OUT NOCOPY Number
340 ) return number;
341 --
342 -------------------------------------------------------------------------------
343 -- GET_FR_HOLIDAYS_BOOKED FORMULA FUNCTION
344 -------------------------------------------------------------------------------
345 function Get_fr_holidays_booked
346 (P_assignment_id IN Number /* the assignment */
347 ,p_business_Group_id IN Number
348 ,P_accrual_plan_id IN Number
349 ,p_accrual_start_date IN Date
350 ,p_total_booked OUT NOCOPY Number
351 ) return number;
352 --
353 -------------------------------------------------------------------------------
354 -- GET_FR_YOUNG_MOTHERS_DAYS
355 -------------------------------------------------------------------------------
356 function Get_fr_young_mothers_days
357 (P_assignment_id IN Number /* the assignment */
358 ,p_business_Group_id IN Number
359 ,P_child_age_date IN Date /* CHILD COMPARISON DATE */
360 ,p_child_age IN Number /* max age of eligible children */
361 ,p_no_of_children OUT NOCOPY Number /* number of children below age */
362 /* p_child_age on p_effective_date */
363 ) return number; /* 1 = true */
364 -------------------------------------------------------------------------------
365 -- SET_FR_ACCRUAL_RATE_CHANGES ACCRUALS FORMULA FUNCTION
366 -------------------------------------------------------------------------------
367 function set_fr_Accrual_rate_changes
368 (p_assignment_id IN Number
369 ,p_plan_id IN Number
370 ,p_start_date IN Date
371 ,p_end_date IN Date )
372 return number ;
373 -------------------------------------------------------------------------------
374 -- GET_FR_ACCRUAL_RATE_CHANGES ACCRUALS FORMULA FUNCTION
375 -------------------------------------------------------------------------------
376 function get_fr_accrual_rate_changes
377 (p_assignment_id IN Number
378 ,p_plan_id IN Number
379 ,p_month_in_date IN Date
380 ,p_main_rate OUT NOCOPY Number
381 ,p_protected_rate OUT NOCOPY Number)
382 return number ;
383 -------------------------------------------------------------------------------
384 -- Get GET_FR_LATEST_ENT_DATE SUPORTS ACCRUAL FORM
385 -------------------------------------------------------------------------------
386 function get_fr_latest_ent_date
387 (p_assignment_id IN Number
388 ,p_accrual_plan_id IN Number
389 ,p_effective_date IN Date /* a date in the accrual plan */
390 ,p_latest_date OUT NOCOPY Date /* out - the latest date of storage, or null */
391 ,p_entitlement_start_date OUT NOCOPY Date /* out - the ent start relative to effective_date */
392 ,p_accrual_start_date OUT NOCOPY Date
393 ,p_accrual_end_date OUT NOCOPY Date )
394 return number ;
395 -------------------------------------------------------------------------------
396 -- Get Accrual PLAN INFO
397 -------------------------------------------------------------------------------
398 procedure get_accrual_plan_info(
399 p_accrual_plan_id IN OUT NOCOPY number
400 ,p_element_entry_id IN number default null
401 ,p_accrual_date IN date default null
402 ,p_accrual_year_start OUT NOCOPY date
403 ,p_accrual_year_end OUT NOCOPY date
404 ,p_accrual_start_month OUT NOCOPY number
405 ,p_entitlement_offset OUT NOCOPY number
406 ,p_entitlement_duration OUT NOCOPY number
407 ,p_working_days OUT NOCOPY Number
408 ,p_protected_days OUT NOCOPY Number
409 ,p_accounting_method OUT NOCOPY Varchar2
410 ,p_ent_accrual_date_iv_id OUT NOCOPY number
411 ,p_ent_reference_sal_iv_id OUT NOCOPY number
412 ,p_ent_reference_days_iv_id OUT NOCOPY number
413 ,p_ent_m_iv_id OUT NOCOPY number
414 ,p_ent_p_iv_id OUT NOCOPY number
415 ,p_ent_c_iv_id OUT NOCOPY number
416 ,p_ent_s_iv_id OUT NOCOPY number
417 ,p_ent_y_iv_id OUT NOCOPY number
418 ,p_ent_acp_iv_id OUT NOCOPY Number
419 ,p_obs_accrual_date_iv_id OUT NOCOPY number
423 ,p_obs_s_iv_id OUT NOCOPY number
420 ,p_obs_m_iv_id OUT NOCOPY number
421 ,p_obs_p_iv_id OUT NOCOPY number
422 ,p_obs_c_iv_id OUT NOCOPY number
424 ,p_obs_y_iv_id OUT NOCOPY number
425 ,p_obs_acp_iv_id OUT NOCOPY Number
426 ,p_adj_accrual_date_iv_id OUT NOCOPY number
427 ,p_adj_m_iv_id OUT NOCOPY number
428 ,p_adj_p_iv_id OUT NOCOPY number
429 ,p_adj_c_iv_id OUT NOCOPY number
430 ,p_adj_s_iv_id OUT NOCOPY number
431 ,p_adj_y_iv_id OUT NOCOPY number
432 ,p_adj_acp_iv_id OUT NOCOPY Number
433 ,p_main_holiday_acc_plan_id OUT NOCOPY number
434 ,p_holiday_element_id OUT NOCOPY Number
435 ,p_accrual_plan_element_id OUT NOCOPY Number
436 ,p_working_days_iv_id OUT NOCOPY Number
437 ,p_protected_days_iv_id OUT NOCOPY Number
438 ,p_business_Group_id OUT NOCOPY Number
439 ,p_ent_element_id OUT NOCOPY Number
440 ,P_obs_element_id OUT NOCOPY Number
441 ,P_adj_element_id OUT NOCOPY Number) ;
442 --
443 -------------------------------------------------------------------------------
444 -- Get_Payment_info
445 -------------------------------------------------------------------------------
446 procedure get_payment_info(
447 p_days_input_id OUT NOCOPY number
448 ,p_protected_days_input_id OUT NOCOPY number
449 ,p_element_type_id OUT NOCOPY number
450 ,p_absence_input_id OUT NOCOPY Number);
451 -------------------------------------------------------------------------------
452 -- GET_REFERENCE_ENTITLEMENT --
453 -------------------------------------------------------------------------------
454 procedure get_reference_entitlement
455 (p_accrual_plan_id IN Number
456 ,p_accrual_start_date IN Date
457 ,p_accrual_end_date IN Date
458 ,p_assignment_id IN Number
459 ,p_ent_ref_days_id IN Number default null
460 ,p_ent_ref_salary_id IN Number default null
461 ,p_ent_accrual_date_iv_id IN Number default null
462 ,p_ref_main_days OUT NOCOPY Number
463 ,p_ref_salary OUT NOCOPY Number ) ;
464
465 --
466 -------------------------------------------------------------------------------
467 -- Get Accrual Plan Data
468 -------------------------------------------------------------------------------
469 procedure get_accrual_plan_data(
470 p_accrual_plan_id IN OUT NOCOPY number
471 ,p_element_entry_id IN number default null
472 ,p_accrual_date IN date default null
473 ,p_accrual_year_start OUT NOCOPY date
474 ,p_accrual_year_end OUT NOCOPY date
475 ,p_accounting_method OUT NOCOPY varchar2
476 ,p_entitlement_offset OUT NOCOPY Number
477 ,p_ent_ref_days_id OUT NOCOPY number
478 ,p_ent_ref_salary_id OUT NOCOPY number
479 ,p_ent_accrual_date_iv_id OUT NOCOPY Number
480 ,p_holiday_element_id OUT NOCOPY Number
481 );
482 -------------------------------------------------------------------------------
483 -- Get Accrual Plan Overrides
484 -------------------------------------------------------------------------------
485 procedure get_accrual_plan_overrides(
486 p_accrual_plan_id IN number
487 ,p_accrual_plan_element_id OUT NOCOPY Number
488 ,p_working_days_iv_id OUT NOCOPY Number
489 ,p_protected_days_iv_id OUT NOCOPY Number
490 ,p_main_rate_defualt_value OUT NOCOPY Number
491 ,p_protected_rate_defualt_value OUT NOCOPY Number
492 );
493 -------------------------------------------------------------------------------
494 -- GET_PREVIOUS_HOLIDAY_ABSENCE
495 -------------------------------------------------------------------------------
496 procedure get_previous_holiday_absence(
497 p_absence_attendance_id IN Number
498 ,p_assignment_id IN Number
499 ,p_paid_element_type_id IN Number default null
500 ,p_days_input_id IN Number default null
501 ,p_protected_days_input_id IN Number default null
502 ,p_absence_attendance_input_ID IN Number default null
503 ,p_total_days_paid OUT NOCOPY Number
504 ,p_protected_days_paid OUT NOCOPY Number ) ;
505 --
506 -------------------------------------------------------------------------------
507 -- GET_FR_HOLIDAY_DETAILS
508 -------------------------------------------------------------------------------
509 function Get_fr_holiday_details
510 (P_ELEMENT_ENTRY_ID IN Number
511 ,p_date_earned IN Date
512 ,p_prorate_end IN Date /* the proration period end date - may be null */
513 ,P_Absence_attendance_ID OUT NOCOPY Number /* Identifier of the Absence Record */
514 ,P_accrual_plan_id OUT NOCOPY Number /* Identifier of the Accrual plan */
515 ,P_Entry_Start_Date OUT NOCOPY Date /* The element entry start date of the keyed absence */
516 ,P_Entry_End_Date OUT NOCOPY Date /* The element entry end date of the keyed absence */
517 ,P_Date_Accrued OUT NOCOPY Date /* keyed absence ddf accrued date */
518 ,P_total_Main_Days OUT NOCOPY Number /* keyed absence ddf main days in whole absence */
519 ,P_total_Seniority_Days OUT NOCOPY Number /* keyed absence ddf seniority days in whole absence */
520 ,P_total_Young_Mothers_Days OUT NOCOPY Number /* keyed absence ddf YM days in whole absence */
524 ,P_taken_protected_Days OUT NOCOPY Number /* protected days paid for this absence in previous periods */
521 ,P_total_Conventional_Days OUT NOCOPY Number /* keyed absence ddf Conventional days in whole absence */
522 ,P_total_Protected_Days OUT NOCOPY Number /* keyed absence ddf Protected days in whole absence */
523 ,P_taken_total_days OUT NOCOPY Number /* total days paid for this absence in previous periods */
525 ,P_proration_period OUT NOCOPY Varchar2 /* LAST - This is the last of proration period */
526 ,p_regularize_possible OUT NOCOPY Varchar2 /* if reference values are stored (Y/N) if can do a reg payt*/
527 ,p_session_date OUT NOCOPY Date /* the session date applicable to this session */
528 ,p_accrue_start_date OUT NOCOPY Date /* The accrual start date, relative to the DDF date_accrued */
529 ,p_accrue_end_date OUT NOCOPY Date /* The accrual end date, relative to the accrual start date */
530 ,P_Assignment_id OUT NOCOPY Number /* The assignment ID owning the absence */
531 ,p_ref_total_accrued OUT NOCOPY Number /* The total accrued in the period, for main and protected */
532 ,p_reference_salary OUT NOCOPY Number /* The reference salary for the accrual period - if available */
533 ,p_accounting_method OUT NOCOPY Varchar2 /* The accounting method from the accrual plan ddf */
534 ) return number;
535 --
536 -------------------------------------------------------------------------------
537 -- GET_ACCRUAL_RATE_PERCENTAGE
538 -------------------------------------------------------------------------------
539 function Get_accrual_rate_percentage
540 (P_DATE_EARNED IN Date
541 ,P_ASSIGNMENT_ID IN Number
542 ,P_PROCESS_TYPE IN Varchar2
543 ,P_CHARGES_PERCENTAGE OUT NOCOPY Number
544 ) return number;
545 -------------------------------------------------------------------------------
546 -- GET_ACCOUNTING_DETAILS
547 -------------------------------------------------------------------------------
548 function Get_accounting_details
549 (P_ELEMENT_ENTRY_ID IN Number
550 ,P_PAYROLL_ID IN NUMBER
551 ,P_ASSIGNMENT_ID IN NUMBER
552 -- added 2 new parameters and modified 1 parameter for termination
553 ,P_ACCOUNTING_DATE IN DATE /* Replaced with new date parameter for termination*/
554 ,p_accounting_plan_id OUT NOCOPY Number /* the accrual plan id*/
555 ,p_accrual_start_month OUT NOCOPY Number /* the accrual plan's start month*/
556 --
557 ,p_accounting_method OUT NOCOPY Varchar2 /* the accrual plan's accounting method */
558 ,p_y0_net_days OUT NOCOPY Number /* the assignment's net days to pay for this year */
559 ,P_y0_ref_salary OUT NOCOPY Number /* the assignment's reference salary for this year */
560 ,P_y0_ref_days OUT NOCOPY Number /* the assignment's reference days accrued for this year */
561 ,p_y1_net_days OUT NOCOPY Number /* the assignment's net days to pay for this year */
562 ,P_y1_ref_salary OUT NOCOPY Number /* the assignment's reference salary for this year */
563 ,P_y1_ref_days OUT NOCOPY Number /* the assignment's reference days accrued for this year */
564 ,p_y2_net_days OUT NOCOPY Number /* the assignment's net days to pay for this year */
565 ,P_y2_ref_salary OUT NOCOPY Number /* the assignment's reference salary for this year */
566 ,P_y2_ref_days OUT NOCOPY Number /* the assignment's reference days accrued for this year */
567 ,p_y3_net_days OUT NOCOPY Number /* the assignment's net days to pay for this year */
568 ,P_y3_ref_salary OUT NOCOPY Number /* the assignment's reference salary for this year */
569 ,P_y3_ref_days OUT NOCOPY Number /* the assignment's reference days accrued for this year */
570 ) return number;
571 --
572
573 -------------------------------------------------------------------------------
574 -- WRITE_TERMINATION_PAYMENT
575 -------------------------------------------------------------------------------
576
577 Function write_termination_payment
578 (p_accrual_plan_id number,
579 p_y0_payment number,
580 p_y0_payment_days number,
581 p_y0_payment_rate number,
582 p_y0_accrual_year date,
583 p_y1_payment number,
584 p_y1_payment_days number,
585 p_y1_payment_rate number,
586 p_y1_accrual_year date,
587 p_y2_payment number,
588 p_y2_payment_days number,
589 p_y2_payment_rate number,
590 p_y2_accrual_year date,
591 p_y3_payment number,
592 p_y3_payment_days number,
593 p_y3_payment_rate number,
594 p_y3_accrual_year date
595 ) return number;
596 --
597 -------------------------------------------------------------------------------
598 -- READ_TERMINATION_PAYMENT
599 -------------------------------------------------------------------------------
600
601 Function read_termination_payment
602 (p_accrual_plan_id IN NUMBER,
603 p_index IN number,
604 p_payment OUT NOCOPY number,
605 p_days OUT NOCOPY number,
606 p_daily_rate OUT NOCOPY number,
607 p_accrual_date OUT NOCOPY date,
608 p_next_payment OUT NOCOPY number)
609 return number;
610 --
611 -------------------------------------------------------------------------------
612 -- VALID_FIXED_TERM_CONTRACT_REF
616 (p_assignment_id in number
613 -- Used by FR_FIXED_TERM_CONTRACT_INDEMNITY_REFERENCE Element Input Validation
614 -------------------------------------------------------------------------------
615 function Valid_Fixed_Term_Contract_Ref
617 ,p_date_earned in date
618 ,p_reference in varchar2) return varchar2;
619 --
620 -------------------------------------------------------------------------------
621 -- CONTRACT_ACTIVE_END_DATE
622 -- Used by FR_FIXED_TERM_CONTRACT_INDEMNITY formula
623 -------------------------------------------------------------------------------
624 function contract_active_end_date
625 (p_assignment_id in number
626 ,p_date_earned in date
627 ,p_reference in varchar2) /* entry ref input value */
628 return date;
629 --
630 -------------------------------------------------------------------------------
631 -- GET_FIXED_TERM_CTR_ENTRY_INFO
632 -- Used by FR_FIXED_TERM_CONTRACT_INDEMNITY formula
633 -------------------------------------------------------------------------------
634 function Get_Fixed_Term_Ctr_Entry_info
635 (p_assignment_id in number
636 ,p_date_earned in date
637 ,p_reference in varchar2 /* the ref of the entry value */
638 ,p_deferred_payment out nocopy varchar2 /* payment to be deferred? */
639 ) return number;
640 --
641 -------------------------------------------------------------------------
642 -- Check booked holidays for a given plan and period
643 -- Used by FR_HOLIDAY_PAY_ACCOUNTING_ACCRUAL_SAMPLE formula
644 -------------------------------------------------------------------------
645 function Check_fr_holidays_booked
646 (P_assignment_id IN Number /* the assignment */
647 ,P_accrual_plan_id IN Number
648 ,p_start_date IN Date
649 ,p_end_date IN Date
650 ) return number;
651 -------------------------------------------------------------------------
652
653 --
654 --------------------------------------------------------------------
655 -- Function Check_fr_consecutive_holidays_booked
656 -- Function will return 1 if successful otherewise
657 -- will return 0. Bug#3030610
658 --------------------------------------------------------------------------
659 function Check_fr_cons_holidays_booked
660 (P_assignment_id IN Number /* the assignment */
661 ,P_accrual_plan_id IN Number
662 ,p_start_date IN Date
663 ,p_end_date IN Date
664 ) return number ;
665 ---------------------------------------------------------------------------
666 --
667 ----------------------------------------------------------------------------
668 -- Procedure get_fr_add_net_ent
669 -- called from HREMEA.pld to calculate net additional entitlement
670 ---------------------------------------------------------------------------
671 PROCEDURE get_fr_add_net_ent(
672 p_absence_attendance_type_id in number,
673 p_abs_date_start in date,
674 p_abs_date_end in date,
675 p_person_id in number,
676 p_accrual_plan_id in number,
677 p_total_ent out nocopy number,
678 p_net_ent out nocopy number);
679 ---------------------------------------------------------------------------
680 function get_contr_dates(p_assignment_id in number,
681 p_calculation_start_date in date,
682 p_contract_start_date out nocopy date,
683 p_contract_end_date out nocopy date,
684 p_contract_category out nocopy varchar2)return number;
685 ------------------------------------------------------------
686 -- Function called from the DIF sub accrual formula
687 -- to get the working time values.
688 -- Added for bugs 4099667 and 4103779.
689 ------------------------------------------------------------
690 function get_time_values(p_business_group_id in number,
691 p_assignment_id in number,
692 p_effective_date in date,
693 p_working_hours out nocopy number,
694 p_working_frequency out nocopy varchar2,
695 p_cipdz_catg out nocopy varchar2) return number;
696 -------------------------------------------------------
697 --Function to retreive the first Rate value for termiantion payments
698 --Bug 4538139
699 -------------------------------------------------------
700 Function read_termination_payment_rate(p_accrual_plan_id IN NUMBER,
701 p_days OUT NOCOPY NUMBER)
702 return number;
703 -------------------------------------------------------
704 end;