DBA Data[Home] [Help]

PACKAGE: APPS.PAY_FR_PTO_PKG

Source


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;