1 PACKAGE BODY pay_no_holiday_pay AS
2 /* $Header: pynoholp.pkb 120.1.12020000.2 2012/09/21 11:24:06 mkuppuch ship $ */
3 -- Function to get the G value.
4 FUNCTION get_grate(p_business_group_id IN NUMBER, p_effective_date IN DATE) RETURN NUMBER IS l_g_rate NUMBER;
5 BEGIN
6 -- Get the daily rate value
7 BEGIN
8
9 -- Bug Fix 5566622 : Value of G (National Insurance Base Rate) to be taken from Global and not user table.
10
11 -- l_g_rate := to_number(hruserdt.get_table_value(p_business_group_id, 'NO_GLOBAL_CONSTANTS', 'Value', 'NATIONAL_INSURANCE_BASE_RATE', p_effective_date));
12
13 select to_number(GLOBAL_VALUE)
14 into l_g_rate
15 from ff_globals_f
16 where global_name = 'NO_NATIONAL_INSURANCE_BASE_RATE'
17 and LEGISLATION_CODE = 'NO'
18 and BUSINESS_GROUP_ID IS NULL
19 and p_effective_date between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE ;
20
21
22 EXCEPTION
23 WHEN no_data_found THEN
24 l_g_rate := NULL;
25 END;
26
27 RETURN l_g_rate;
28 END get_grate;
29
30 --Function to get the age of a person as on 31-AUG of the holiday year.
31 FUNCTION get_age(p_payroll_proc_start_date IN DATE, p_date_of_birth IN DATE) RETURN NUMBER IS l_age NUMBER;
32 l_effective_date DATE;
33 BEGIN
34 --l_effective_date := to_date('31/08/' || to_char(p_payroll_proc_start_date, 'YYYY'), 'DD/MM/YYYY');
35 l_effective_date := to_date('31/12/' || to_char(p_payroll_proc_start_date, 'YYYY'), 'DD/MM/YYYY'); -- Bug#9529805 fix
36 l_age := FLOOR(months_between(l_effective_date, p_date_of_birth) / 12);
37 RETURN l_age;
38 END get_age;
39
40 /* Function to whether the payroll run is the last payroll run of the year in order
41 recalulate the holiday pay over 60*/ FUNCTION get_last_payroll(p_payroll_id IN NUMBER, p_pay_proc_period_end_date IN DATE) RETURN VARCHAR2 IS l_next_period_start_date DATE;
42 l_next_period_end_date DATE;
43 l_flag VARCHAR2(1);
44
45 CURSOR csr_next_pay_proc_end_date(p_start_date DATE) IS
46 SELECT end_date
47 FROM per_time_periods ptp
48 WHERE ptp.payroll_id = p_payroll_id
49 AND ptp.start_date = p_start_date;
50
51 BEGIN
52 l_next_period_start_date := p_pay_proc_period_end_date + 1;
53
54 OPEN csr_next_pay_proc_end_date(l_next_period_start_date);
55 FETCH csr_next_pay_proc_end_date
56 INTO l_next_period_end_date;
57 CLOSE csr_next_pay_proc_end_date;
58
59 IF(to_char(p_pay_proc_period_end_date, 'YYYY') <> to_char(l_next_period_start_date, 'YYYY')) THEN
60 l_flag := 'Y';
61 RETURN l_flag;
62 ELSIF(to_char(l_next_period_start_date, 'YYYY') <> to_char(l_next_period_end_date, 'YYYY')) THEN
63 l_flag := 'Y';
64 RETURN l_flag;
65 ELSE
66 l_flag := 'N';
67 RETURN l_flag;
68 END IF;
69
70 END;
71
72 -- Function to get the assignments status.
73 FUNCTION get_assg_status(p_business_group_id IN NUMBER, p_asg_id IN NUMBER, p_pay_proc_period_start_date IN DATE, p_pay_proc_period_end_date IN DATE) RETURN VARCHAR2 IS
74
75 CURSOR csr_asg IS
76 SELECT MIN(paaf.effective_start_date) effective_start_date
77 FROM per_all_assignments_f paaf
78 WHERE paaf.business_group_id = p_business_group_id
79 AND paaf.assignment_id = p_asg_id
80 AND paaf.assignment_status_type_id = 3;
81
82 l_flag VARCHAR2(1);
83 l_asg_status csr_asg % rowtype;
84
85 BEGIN
86
87 OPEN csr_asg;
88 FETCH csr_asg
89 INTO l_asg_status;
90 CLOSE csr_asg;
91
92 IF l_asg_status.effective_start_date >= p_pay_proc_period_start_date
93 AND l_asg_status.effective_start_date <=(p_pay_proc_period_end_date + 1) THEN
94 l_flag := 'T';
95 ELSE
96 l_flag := 'A';
97 END IF;
98
99 RETURN l_flag;
100
101 END get_assg_status;
102
103 -- Function to get the entitlement days as years last payroll run end date.
104 FUNCTION get_entitlement_days(p_business_group_id IN NUMBER, p_asg_id IN NUMBER, p_tax_unit_id IN NUMBER, p_effective_date IN DATE, p_above_60 IN VARCHAR2, p_entit_days OUT nocopy NUMBER,
105 p_entit_days_over_60 OUT nocopy NUMBER) RETURN NUMBER IS CURSOR csr_assig_details IS
106 SELECT hsck.segment15 holiday_entitlement,
107 hsck.segment16 holiday_pay_calc_basis
108 FROM per_all_assignments_f paaf,
109 hr_soft_coding_keyflex hsck
110 WHERE paaf.business_group_id = p_business_group_id
111 AND paaf.assignment_id = p_asg_id
112 AND p_effective_date BETWEEN paaf.effective_start_date
113 AND paaf.effective_end_date
114 AND hsck.soft_coding_keyflex_id = paaf.soft_coding_keyflex_id;
115
116 CURSOR csr_person_details IS
117 SELECT papf.per_information16 holiday_entitlement,
118 papf.per_information17 holiday_pay_calc_basis
119 FROM per_all_people_f papf,
120 per_all_assignments_f paaf
121 WHERE paaf.business_group_id = p_business_group_id
122 AND paaf.assignment_id = p_asg_id
123 AND papf.person_id = paaf.person_id
124 AND p_effective_date BETWEEN papf.effective_start_date
125 AND papf.effective_end_date;
126
127 --Added Cursor to get the legal employer details
128 CURSOR csr_le_details IS
129 SELECT hoi.org_information1 holiday_entitlement,
130 hoi.org_information2 holiday_pay_calc_basis
131 FROM hr_organization_information hoi
132 WHERE hoi.organization_id = p_tax_unit_id
133 AND hoi.org_information_context = 'NO_HOLIDAY_PAY_DETAILS';
134
135 CURSOR csr_globals(p_global_name VARCHAR2) IS
136 SELECT fgf.global_value
137 FROM ff_globals_f fgf
138 WHERE fgf.global_name = p_global_name
139 AND fgf.legislation_code = 'NO'
140 AND p_effective_date BETWEEN fgf.effective_start_date
141 AND fgf.effective_end_date;
142
143 l_holiday_entitlement VARCHAR2(150);
144 l_holiday_pay_calc_basis VARCHAR2(150);
145 l_entit_days NUMBER;
146 l_entit_days_over_60 NUMBER;
147 l_assig_details csr_assig_details % rowtype;
148 l_person_details csr_person_details % rowtype;
149 l_le_details csr_le_details % rowtype;
150 l_global_name ff_globals_f.global_name%TYPE;
151 BEGIN
152
153 /*Bug 5346834 fix*/
154
155 OPEN csr_assig_details;
156 FETCH csr_assig_details
157 INTO l_assig_details;
158 CLOSE csr_assig_details;
159
160 OPEN csr_person_details;
161 FETCH csr_person_details
162 INTO l_person_details;
163 CLOSE csr_person_details;
164
165 OPEN csr_le_details;
166 FETCH csr_le_details
167 INTO l_le_details;
168 CLOSE csr_le_details;
169
170 IF(l_assig_details.holiday_entitlement IS NOT NULL) THEN
171 l_holiday_entitlement := l_assig_details.holiday_entitlement;
172 ELSIF(l_person_details.holiday_entitlement IS NOT NULL) THEN
173 l_holiday_entitlement := l_person_details.holiday_entitlement;
174 ELSIF(l_person_details.holiday_entitlement IS NOT NULL) THEN
175 l_holiday_entitlement := l_person_details.holiday_entitlement;
176 ELSIF(l_le_details.holiday_entitlement IS NOT NULL) THEN
177 l_holiday_entitlement := l_le_details.holiday_entitlement;
178 ELSE
179 l_holiday_entitlement := 'HA';
180 END IF;
181
182 IF(l_assig_details.holiday_pay_calc_basis IS NOT NULL) THEN
183 l_holiday_pay_calc_basis := l_assig_details.holiday_pay_calc_basis;
184 ELSIF(l_person_details.holiday_pay_calc_basis IS NOT NULL) THEN
185 l_holiday_pay_calc_basis := l_person_details.holiday_pay_calc_basis;
186 ELSIF(l_le_details.holiday_pay_calc_basis IS NOT NULL) THEN
187 l_holiday_pay_calc_basis := l_le_details.holiday_pay_calc_basis;
188 ELSE
189 l_holiday_pay_calc_basis := '5DAY';
190 END IF;
191
192 IF(l_holiday_entitlement = 'HA'
193 AND l_holiday_pay_calc_basis = '5DAY') THEN
194 l_global_name := 'NO_HOLACT_5DAY_ENTITLMENT';
195
196 ELSIF(l_holiday_entitlement = 'HA'
197 AND l_holiday_pay_calc_basis = '6DAY') THEN
198 l_global_name := 'NO_HOLACT_6DAY_ENTITLMENT';
199 ELSIF(l_holiday_entitlement = 'CA'
200 AND l_holiday_pay_calc_basis = '5DAY') THEN
201 l_global_name := 'NO_COLAGR_5DAY_ENTITLMENT';
202 ELSIF(l_holiday_entitlement = 'CA'
203 AND l_holiday_pay_calc_basis = '6DAY') THEN
204 l_global_name := 'NO_COLAGR_6DAY_ENTITLMENT';
205 END IF;
206
207 OPEN csr_globals(l_global_name);
208 FETCH csr_globals
209 INTO p_entit_days;
210 CLOSE csr_globals;
211
212 IF p_above_60 = 'Y' THEN
213
214 IF(l_holiday_pay_calc_basis = '5DAY') THEN
215 l_global_name := 'NO_HOL_5DAY_OVER60_ENTITLEMENT';
216 ELSE
217 l_global_name := 'NO_HOL_6DAY_OVER60_ENTITLEMENT';
218 END IF;
219 OPEN csr_globals(l_global_name);
220 FETCH csr_globals
221 INTO p_entit_days_over_60;
222 CLOSE csr_globals;
223
224 ELSE
225 p_entit_days_over_60 := 0;
226 END IF;
227
228 RETURN 1;
229 END get_entitlement_days;
230
231 -- Function to get the fixed period for a payroll.
232 FUNCTION get_fixed_period(p_payroll_id IN NUMBER, p_start_date IN DATE) RETURN NUMBER IS l_fixed_period NUMBER;
233
234 CURSOR csr_fixed_period IS
235 SELECT period_num
236 FROM per_time_periods
237 WHERE payroll_id = p_payroll_id
238 AND to_char(start_date, 'YYYY') = to_char(p_start_date, 'YYYY')
239 AND prd_information2 = 'Y';
240 BEGIN
241
242 OPEN csr_fixed_period;
243 FETCH csr_fixed_period
244 INTO l_fixed_period;
245 CLOSE csr_fixed_period;
246
247 RETURN l_fixed_period;
248
249 END get_fixed_period;
250
251 -- Function to get the previous employer details.
252 FUNCTION get_prev_employer_days(p_business_group_id IN NUMBER, p_assg_id IN NUMBER, p_emp_hire_date IN DATE, p_asg_start_date IN DATE) RETURN NUMBER IS
253
254 l_person_id per_all_people_f.person_id%TYPE;
255
256 CURSOR csr_person_id IS
257 SELECT paaf.person_id
258 FROM per_all_assignments_f paaf
259 WHERE paaf.business_group_id = p_business_group_id
260 AND paaf.assignment_id = p_assg_id;
261 /*Bug 5344736 fix - getting the previous employer days */
262 /* Bug 5344736 fix - added condition to check the assignment start year*/
263 CURSOR csr_prev_employer_days(p_person_id NUMBER) IS
264 SELECT SUM(to_number(ppe.pem_information2))
265 FROM per_previous_employers ppe
266 WHERE ppe.business_group_id = p_business_group_id
267 AND ppe.person_id = p_person_id
268 AND to_char(ppe.end_date, 'YYYY') = to_char(p_emp_hire_date, 'YYYY')
269 AND to_char(ppe.end_date, 'YYYY') = to_char(p_asg_start_date, 'YYYY');
270
271 l_prev_employer_days per_previous_employers.pem_information2%TYPE;
272 BEGIN
273
274 OPEN csr_person_id;
275 FETCH csr_person_id
276 INTO l_person_id;
277 CLOSE csr_person_id;
278
279 OPEN csr_prev_employer_days(l_person_id);
280 FETCH csr_prev_employer_days
281 INTO l_prev_employer_days;
282 CLOSE csr_prev_employer_days;
283 RETURN nvl(l_prev_employer_days, 0);
284 END get_prev_employer_days;
285
286 -- Function to get the holiday details required for hoiliday pay calculation.
287 FUNCTION get_hol_parameters(p_bus_group_id IN NUMBER, p_assignment_id IN NUMBER, p_date_earned IN DATE, p_tax_unit_id IN NUMBER, p_hourly_salaried_code IN OUT nocopy VARCHAR2,
288 p_holiday_entitlement IN OUT nocopy VARCHAR2, p_holiday_pay_calc_basis IN OUT nocopy VARCHAR2, p_holiday_pay_in_fixed_period IN OUT nocopy VARCHAR2,
289 p_hol_pay_over60_in_fix_period IN OUT nocopy VARCHAR2, p_holiday_pay_to_be_adjusted IN OUT nocopy VARCHAR2, p_res_hol_pay_to_6g_for_over60 IN OUT nocopy VARCHAR2) RETURN NUMBER IS
290
291 CURSOR csr_assg_details IS
292 SELECT paaf.hourly_salaried_code hourly_salaried_code,
293 hsck.segment15 holiday_entitlement,
294 hsck.segment16 holiday_pay_calc_basis,
295 hsck.segment17 holiday_pay_in_fixed_period,
296 hsck.segment18 hol_pay_over60_in_fix_period,
297 hsck.segment19 holiday_pay_to_be_adjusted
298 FROM per_all_assignments_f paaf,
299 hr_soft_coding_keyflex hsck
300 WHERE paaf.business_group_id = p_bus_group_id
301 AND paaf.assignment_id = p_assignment_id
302 AND p_date_earned BETWEEN paaf.effective_start_date
303 AND paaf.effective_end_date
304 AND hsck.soft_coding_keyflex_id = paaf.soft_coding_keyflex_id;
305
306 CURSOR csr_person_details IS
307 SELECT papf.per_information6 hourly_salaried_code,
308 papf.per_information16 holiday_entitlement,
309 papf.per_information17 holiday_pay_calc_basis,
310 papf.per_information18 holiday_pay_in_fixed_period,
311 papf.per_information19 hol_pay_over60_in_fix_period,
312 papf.per_information20 holiday_pay_to_be_adjusted,
313 papf.per_information21 res_hol_pay_to_6g_for_over60
314 FROM per_all_people_f papf,
315 per_all_assignments_f paaf
316 WHERE paaf.business_group_id = p_bus_group_id
317 AND paaf.assignment_id = p_assignment_id
318 AND papf.person_id = paaf.person_id
319 AND p_date_earned BETWEEN papf.effective_start_date
320 AND papf.effective_end_date;
321
322 --Added Cursor to get the legal employer details
323 CURSOR csr_le_details IS
324 SELECT hoi.org_information1 holiday_entitlement,
325 hoi.org_information2 holiday_pay_calc_basis,
326 hoi.org_information3 holiday_pay_in_fixed_period,
327 hoi.org_information4 hol_pay_over60_in_fix_period,
328 hoi.org_information5 holiday_pay_to_be_adjusted,
329 hoi.org_information6 res_hol_pay_to_6g_for_over60
330 FROM hr_organization_information hoi
331 WHERE hoi.organization_id = p_tax_unit_id
332 AND hoi.org_information_context = 'NO_HOLIDAY_PAY_DETAILS';
333
334 CURSOR csr_le_hourly_sal IS
335 SELECT hoi.org_information5 hourly_salaried_code
336 FROM hr_organization_information hoi
337 WHERE hoi.organization_id = p_tax_unit_id
338 AND hoi.org_information_context = 'NO_ABSENCE_PAYMENT_DETAILS';
339
340 l_person_details csr_person_details % rowtype;
341 l_le_details csr_le_details % rowtype;
342 l_le_hourly_sal csr_le_hourly_sal % rowtype;
343
344 BEGIN
345
346 OPEN csr_assg_details;
347 FETCH csr_assg_details
348 INTO p_hourly_salaried_code,
349 p_holiday_entitlement,
350 p_holiday_pay_calc_basis,
351 p_holiday_pay_in_fixed_period,
352 p_hol_pay_over60_in_fix_period,
353 p_holiday_pay_to_be_adjusted;
354 CLOSE csr_assg_details;
355
356 OPEN csr_person_details;
357 FETCH csr_person_details
358 INTO l_person_details;
359 CLOSE csr_person_details;
360
361 OPEN csr_le_details;
362 FETCH csr_le_details
363 INTO l_le_details;
364 CLOSE csr_le_details;
365
366 OPEN csr_le_hourly_sal;
367 FETCH csr_le_hourly_sal
368 INTO l_le_hourly_sal;
369 CLOSE csr_le_hourly_sal;
370
371 IF(p_hourly_salaried_code IS NULL) THEN
372
373 IF(l_person_details.hourly_salaried_code IS NOT NULL) THEN
374 p_hourly_salaried_code := l_person_details.hourly_salaried_code;
375 ELSIF(l_le_hourly_sal.hourly_salaried_code IS NOT NULL) THEN
376 p_hourly_salaried_code := l_le_hourly_sal.hourly_salaried_code;
377 ELSE
378 p_hourly_salaried_code := 'S';
379 END IF;
380
381 END IF;
382
383 IF p_holiday_entitlement IS NULL THEN
384
385 IF(l_person_details.holiday_entitlement IS NOT NULL) THEN
386 p_holiday_entitlement := l_person_details.holiday_entitlement;
387 ELSIF(l_le_details.holiday_entitlement IS NOT NULL) THEN
388 p_holiday_entitlement := l_le_details.holiday_entitlement;
389 ELSE
390 p_holiday_entitlement := 'HA';
391 END IF;
392
393 END IF;
394
395 IF p_holiday_pay_calc_basis IS NULL THEN
396
397 IF(l_person_details.holiday_pay_calc_basis IS NOT NULL) THEN
398 p_holiday_pay_calc_basis := l_person_details.holiday_pay_calc_basis;
399 ELSIF(l_le_details.holiday_pay_calc_basis IS NOT NULL) THEN
400 p_holiday_pay_calc_basis := l_le_details.holiday_pay_calc_basis;
401 ELSE
402 p_holiday_pay_calc_basis := '5DAY';
403 END IF;
404
405 END IF;
406
407 IF p_holiday_pay_in_fixed_period IS NULL THEN
408
409 IF(l_person_details.holiday_pay_in_fixed_period IS NOT NULL) THEN
410 p_holiday_pay_in_fixed_period := l_person_details.holiday_pay_in_fixed_period;
411 p_hol_pay_over60_in_fix_period := l_person_details.hol_pay_over60_in_fix_period;
412 p_holiday_pay_to_be_adjusted := l_person_details.holiday_pay_to_be_adjusted;
413 ELSIF(l_le_details.holiday_pay_in_fixed_period IS NOT NULL) THEN
414 p_holiday_pay_in_fixed_period := l_le_details.holiday_pay_in_fixed_period;
415 p_hol_pay_over60_in_fix_period := l_le_details.hol_pay_over60_in_fix_period;
416 p_holiday_pay_to_be_adjusted := l_le_details.holiday_pay_to_be_adjusted;
417
418 ELSE
419 p_holiday_pay_in_fixed_period := 'N';
420 p_hol_pay_over60_in_fix_period := 'N';
421 p_holiday_pay_to_be_adjusted := 'N';
422 END IF;
423
424 END IF;
425
426 IF(l_person_details.res_hol_pay_to_6g_for_over60 IS NOT NULL) THEN
427 p_res_hol_pay_to_6g_for_over60 := l_person_details.res_hol_pay_to_6g_for_over60;
428 ELSIF(l_le_details.res_hol_pay_to_6g_for_over60 IS NOT NULL) THEN
429 p_res_hol_pay_to_6g_for_over60 := l_le_details.res_hol_pay_to_6g_for_over60;
430 ELSE
431 p_res_hol_pay_to_6g_for_over60 := 'Y';
432 END IF;
433
434 RETURN 1;
435 END get_hol_parameters;
436
437 -- Function to get the assignment start date.
438
439 /*Bug 5334894 fix- Added a new function to get the assignment start date*/
440 FUNCTION get_asg_start_date(p_business_group_id IN NUMBER, p_assignment_id IN NUMBER, p_asg_start_date OUT nocopy DATE) RETURN NUMBER IS CURSOR csr_asg_start_date IS
441 SELECT MIN(paaf.effective_start_date)
442 FROM per_all_assignments_f paaf
443 WHERE paaf.business_group_id = p_business_group_id
444 AND paaf.assignment_id = p_assignment_id
445 AND paaf.assignment_status_type_id = 1;
446
447 BEGIN
448
449 OPEN csr_asg_start_date;
450 FETCH csr_asg_start_date
451 INTO p_asg_start_date;
452 CLOSE csr_asg_start_date;
453 RETURN 1;
454 END get_asg_start_date;
455
456 --Function to get the accrual act information from absence details
457 FUNCTION get_abs_hol_accr_entitl (p_bus_group_id IN NUMBER, p_assignment_id IN NUMBER, p_date_earned IN DATE, p_tax_unit_id IN NUMBER
458 , p_hol_accrual_entit OUT nocopy VARCHAR2) RETURN NUMBER IS
459
460 CURSOR csr_person_details IS
461 SELECT
462 papf.per_information13 hol_accrual_entit
463 FROM per_all_people_f papf,
464 per_all_assignments_f paaf
465 WHERE paaf.business_group_id = p_bus_group_id
466 AND paaf.assignment_id = p_assignment_id
467 AND papf.person_id = paaf.person_id
468 AND p_date_earned BETWEEN papf.effective_start_date
469 AND papf.effective_end_date;
470
471 --Added Cursor to get the legal employer details
472 CURSOR csr_le_details IS
473 SELECT hoi.org_information9 hol_accrual_entit
474 FROM hr_organization_information hoi
475 WHERE hoi.organization_id = p_tax_unit_id
476 AND hoi.org_information_context = 'NO_ABSENCE_PAYMENT_DETAILS';
477
478 l_person_details csr_person_details % rowtype;
479 l_le_details csr_le_details % rowtype;
480
481 BEGIN
482
483
484 OPEN csr_person_details;
485 FETCH csr_person_details
486 INTO l_person_details;
487 CLOSE csr_person_details;
488
489 OPEN csr_le_details;
490 FETCH csr_le_details
491 INTO l_le_details;
492 CLOSE csr_le_details;
493
494 p_hol_accrual_entit := NVL(NVL(l_person_details.hol_accrual_entit,l_le_details.hol_accrual_entit),'HA');
495
496 RETURN 1;
497
498 EXCEPTION WHEN OTHERS THEN
499 RETURN 0 ;
500
501 END get_abs_hol_accr_entitl;
502
503 FUNCTION get_holiday_pay_base_asg_run
504 (p_assignment_action_id IN number
505 , p_payroll_action_id IN number
506 , p_business_group_id IN number
507 , p_effective_date DATE
508 , p_entity_name IN varchar2) RETURN number IS
509
510 ln_def_bal_id number;
511 ln_balance_value number;
512 ln_business_group_id number;
513
514 CURSOR c_get_def_bal_id IS
515 SELECT creator_id
516 FROM ff_user_entities
517 WHERE user_entity_name = p_entity_name
518 AND (
519 (
520 legislation_code = 'NO'
521 AND business_group_id IS NULL
522 )
523 OR (
524 legislation_code IS NULL
525 AND business_group_id = p_business_group_id
526 )
527 )
528 AND creator_type = 'B';
529
530 BEGIN
531 hr_utility.trace ('Entering into the function PAY_NO_HOLIDAY_PAY.GET_HOLIDAY_PAY_BASE_ASG_RUN');
532
533 OPEN c_get_def_bal_id;
534
535 FETCH c_get_def_bal_id
536 INTO ln_def_bal_id;
537
538 IF c_get_def_bal_id%FOUND THEN
539 hr_utility.trace ('def bal id for ' || p_entity_name || 'is ' || ln_def_bal_id);
540
541 ln_balance_value := pay_balance_pkg.get_value (ln_def_bal_id, p_assignment_action_id
542 , NULL, NULL
543 , NULL, NULL
544 , NULL, NULL
545 , NULL, 'TRUE');
546 ELSE
547 hr_utility.trace ('def bal id NOT FOUND for ' || p_entity_name || 'is ' || ln_def_bal_id);
548 hr_utility.raise_error;
549 END IF;
550
551 CLOSE c_get_def_bal_id;
552
553 hr_utility.trace ('ln_balance_value '|| ln_balance_value);
554
555 hr_utility.trace ('Leaving the function PAY_NO_HOLIDAY_PAY.GET_HOLIDAY_PAY_BASE_ASG_RUN');
556
557 RETURN ln_balance_value;
558
559 END get_holiday_pay_base_asg_run;
560
561 END;