135: l_procedure VARCHAR2(100);
136:
137: BEGIN
138:
139: g_debug := hr_utility.debug_enabled;
140: IF g_debug
141: THEN
142: l_procedure := g_package||'.set_accrual_ids';
143: hr_utility.set_location('Entering procedure '||l_procedure,1000);
139: g_debug := hr_utility.debug_enabled;
140: IF g_debug
141: THEN
142: l_procedure := g_package||'.set_accrual_ids';
143: hr_utility.set_location('Entering procedure '||l_procedure,1000);
144: hr_utility.set_location('p_accrual_plan_id '||p_accrual_plan_id,1000);
145: END IF;
146:
147: OPEN csr_fw_plan_details(p_accrual_plan_id);
140: IF g_debug
141: THEN
142: l_procedure := g_package||'.set_accrual_ids';
143: hr_utility.set_location('Entering procedure '||l_procedure,1000);
144: hr_utility.set_location('p_accrual_plan_id '||p_accrual_plan_id,1000);
145: END IF;
146:
147: OPEN csr_fw_plan_details(p_accrual_plan_id);
148: FETCH csr_fw_plan_details INTO l_csr_details;
172: END IF;
173:
174: IF g_debug
175: THEN
176: hr_utility.set_location('g_plan_id '||g_plan_id,1000);
177: hr_utility.set_location('g_fw_plan_id '||g_fw_plan_id,1000);
178: hr_utility.set_location('Leaving procedure '||l_procedure,1000);
179: END IF;
180:
173:
174: IF g_debug
175: THEN
176: hr_utility.set_location('g_plan_id '||g_plan_id,1000);
177: hr_utility.set_location('g_fw_plan_id '||g_fw_plan_id,1000);
178: hr_utility.set_location('Leaving procedure '||l_procedure,1000);
179: END IF;
180:
181: END set_accrual_ids;
174: IF g_debug
175: THEN
176: hr_utility.set_location('g_plan_id '||g_plan_id,1000);
177: hr_utility.set_location('g_fw_plan_id '||g_fw_plan_id,1000);
178: hr_utility.set_location('Leaving procedure '||l_procedure,1000);
179: END IF;
180:
181: END set_accrual_ids;
182:
272: l_get_days_ppl number := 0;
273:
274: begin
275:
276: g_debug := hr_utility.debug_enabled;
277: IF g_debug
278: THEN
279: hr_utility.set_location('Entering function '||l_proc,1);
280: hr_utility.set_location('p_start_date '||p_start_date,1);
275:
276: g_debug := hr_utility.debug_enabled;
277: IF g_debug
278: THEN
279: hr_utility.set_location('Entering function '||l_proc,1);
280: hr_utility.set_location('p_start_date '||p_start_date,1);
281: hr_utility.set_location('p_end_date '||p_end_date,1);
282: END IF;
283:
276: g_debug := hr_utility.debug_enabled;
277: IF g_debug
278: THEN
279: hr_utility.set_location('Entering function '||l_proc,1);
280: hr_utility.set_location('p_start_date '||p_start_date,1);
281: hr_utility.set_location('p_end_date '||p_end_date,1);
282: END IF;
283:
284: l_date_start := nvl(p_start_date, to_date('01/01/2011','DD/MM/YYYY'));
277: IF g_debug
278: THEN
279: hr_utility.set_location('Entering function '||l_proc,1);
280: hr_utility.set_location('p_start_date '||p_start_date,1);
281: hr_utility.set_location('p_end_date '||p_end_date,1);
282: END IF;
283:
284: l_date_start := nvl(p_start_date, to_date('01/01/2011','DD/MM/YYYY'));
285:
319: l_not_accrued_dates := l_not_accrued_end_date - l_not_accrued_before_date;
320: l_tot_not_accrued_dates := l_tot_not_accrued_dates + l_not_accrued_dates;
321:
322: IF g_debug THEN
323: hr_utility.set_location('l_not_accrued_dates: '||l_not_accrued_dates,10) ;
324: END IF;
325:
326: end if;
327:
327:
328: end loop;
329:
330: IF g_debug THEN
331: hr_utility.set_location('l_tot_not_accrued_dates: '||l_tot_not_accrued_dates,20) ;
332: hr_utility.set_location('Leaving: '||l_proc,20) ;
333: END IF;
334:
335: return l_tot_not_accrued_dates;
328: end loop;
329:
330: IF g_debug THEN
331: hr_utility.set_location('l_tot_not_accrued_dates: '||l_tot_not_accrued_dates,20) ;
332: hr_utility.set_location('Leaving: '||l_proc,20) ;
333: END IF;
334:
335: return l_tot_not_accrued_dates;
336:
370:
371: IF g_debug
372: THEN
373: l_proc_name := g_package||'.get_fw_dates';
374: hr_utility.set_location('Entering Procedure '||l_proc_name,1010);
375: hr_utility.set_location('g_assignment_id '||g_assignment_id,1010);
376: hr_utility.set_location('p_assignment_id '||p_assignment_id,1010);
377: END IF;
378:
371: IF g_debug
372: THEN
373: l_proc_name := g_package||'.get_fw_dates';
374: hr_utility.set_location('Entering Procedure '||l_proc_name,1010);
375: hr_utility.set_location('g_assignment_id '||g_assignment_id,1010);
376: hr_utility.set_location('p_assignment_id '||p_assignment_id,1010);
377: END IF;
378:
379: IF (g_assignment_id <> p_assignment_id) OR (g_assignment_id IS NULL)
372: THEN
373: l_proc_name := g_package||'.get_fw_dates';
374: hr_utility.set_location('Entering Procedure '||l_proc_name,1010);
375: hr_utility.set_location('g_assignment_id '||g_assignment_id,1010);
376: hr_utility.set_location('p_assignment_id '||p_assignment_id,1010);
377: END IF;
378:
379: IF (g_assignment_id <> p_assignment_id) OR (g_assignment_id IS NULL)
380: THEN
430: p_fw_j_tab := l_fw_j_tab;
431:
432: IF g_debug
433: THEN
434: hr_utility.set_location('Leaving Procedure '||l_proc_name,1010);
435: END IF;
436:
437: END get_fw_dates;
438:
479: l_net_ent_start NUMBER;
480:
481: BEGIN
482:
483: g_debug := hr_utility.debug_enabled;
484:
485: IF g_debug
486: THEN
487: l_procedure := g_package||'.au_adjust_fw_accruals';
484:
485: IF g_debug
486: THEN
487: l_procedure := g_package||'.au_adjust_fw_accruals';
488: hr_utility.set_location('Entering function '||l_procedure,1000);
489: END IF;
490:
491: get_fw_dates
492: (p_assignment_id => p_assignment_id
548: p_net_ent := l_tot_accrual;
549:
550: IF g_debug
551: THEN
552: hr_utility.set_location('p_net_ent '||p_net_ent,1000);
553: hr_utility.set_location('Leaving function '||l_procedure,1000);
554: END IF;
555:
556: END au_adjust_fw_accruals;
549:
550: IF g_debug
551: THEN
552: hr_utility.set_location('p_net_ent '||p_net_ent,1000);
553: hr_utility.set_location('Leaving function '||l_procedure,1000);
554: END IF;
555:
556: END au_adjust_fw_accruals;
557:
690: Adjustment type and initialised values
691:
692: */
693:
694: g_debug := hr_utility.debug_enabled;
695: IF g_debug
696: THEN
697: l_proc_name := g_package||'.get_accrual_entitlement_2010';
698: hr_utility.set_location('Entering: '||l_proc_name,1020) ;
694: g_debug := hr_utility.debug_enabled;
695: IF g_debug
696: THEN
697: l_proc_name := g_package||'.get_accrual_entitlement_2010';
698: hr_utility.set_location('Entering: '||l_proc_name,1020) ;
699: END IF;
700:
701: l_assignment_id := p_assignment_id ;
702: l_plan_id := p_plan_id ;
748: CLOSE c_get_end_date;
749:
750: l_enrol_end_date := LEAST(l_enrol_end_date,check_periods(l_payroll_id));
751:
752: hr_utility.set_location('l_enrol_start_date '||l_enrol_start_date,1020);
753: hr_utility.set_location('l_enrol_end_date '||l_enrol_end_date,1020);
754:
755: /* Step (3) Get the Initialise element values */
756:
749:
750: l_enrol_end_date := LEAST(l_enrol_end_date,check_periods(l_payroll_id));
751:
752: hr_utility.set_location('l_enrol_start_date '||l_enrol_start_date,1020);
753: hr_utility.set_location('l_enrol_end_date '||l_enrol_end_date,1020);
754:
755: /* Step (3) Get the Initialise element values */
756:
757: l_initialise_type := 'Leave Accrual Initialise';
938: + (l_other_ent_period + l_other_acc_period);
939:
940: IF g_debug
941: THEN
942: hr_utility.set_location('l_fw_leave_end_ent '||l_fw_leave_end_ent,1020);
943: hr_utility.set_location('l_fw_leave_calc_date '||l_fw_leave_calc_date,1020);
944: hr_utility.set_location('l_leave_end_ent '||l_leave_end_ent,1020);
945: hr_utility.set_location('l_leave_calc_date '||l_leave_calc_date,1020);
946: hr_utility.set_location('l_accrual_ent_period '||l_accrual_ent_period,1020);
939:
940: IF g_debug
941: THEN
942: hr_utility.set_location('l_fw_leave_end_ent '||l_fw_leave_end_ent,1020);
943: hr_utility.set_location('l_fw_leave_calc_date '||l_fw_leave_calc_date,1020);
944: hr_utility.set_location('l_leave_end_ent '||l_leave_end_ent,1020);
945: hr_utility.set_location('l_leave_calc_date '||l_leave_calc_date,1020);
946: hr_utility.set_location('l_accrual_ent_period '||l_accrual_ent_period,1020);
947: hr_utility.set_location('l_accrual_acc_period '||l_accrual_acc_period,1020);
940: IF g_debug
941: THEN
942: hr_utility.set_location('l_fw_leave_end_ent '||l_fw_leave_end_ent,1020);
943: hr_utility.set_location('l_fw_leave_calc_date '||l_fw_leave_calc_date,1020);
944: hr_utility.set_location('l_leave_end_ent '||l_leave_end_ent,1020);
945: hr_utility.set_location('l_leave_calc_date '||l_leave_calc_date,1020);
946: hr_utility.set_location('l_accrual_ent_period '||l_accrual_ent_period,1020);
947: hr_utility.set_location('l_accrual_acc_period '||l_accrual_acc_period,1020);
948: hr_utility.set_location('l_abs_ent_period '||l_abs_ent_period,1020);
941: THEN
942: hr_utility.set_location('l_fw_leave_end_ent '||l_fw_leave_end_ent,1020);
943: hr_utility.set_location('l_fw_leave_calc_date '||l_fw_leave_calc_date,1020);
944: hr_utility.set_location('l_leave_end_ent '||l_leave_end_ent,1020);
945: hr_utility.set_location('l_leave_calc_date '||l_leave_calc_date,1020);
946: hr_utility.set_location('l_accrual_ent_period '||l_accrual_ent_period,1020);
947: hr_utility.set_location('l_accrual_acc_period '||l_accrual_acc_period,1020);
948: hr_utility.set_location('l_abs_ent_period '||l_abs_ent_period,1020);
949: hr_utility.set_location('l_abs_acc_period '||l_abs_acc_period,1020);
942: hr_utility.set_location('l_fw_leave_end_ent '||l_fw_leave_end_ent,1020);
943: hr_utility.set_location('l_fw_leave_calc_date '||l_fw_leave_calc_date,1020);
944: hr_utility.set_location('l_leave_end_ent '||l_leave_end_ent,1020);
945: hr_utility.set_location('l_leave_calc_date '||l_leave_calc_date,1020);
946: hr_utility.set_location('l_accrual_ent_period '||l_accrual_ent_period,1020);
947: hr_utility.set_location('l_accrual_acc_period '||l_accrual_acc_period,1020);
948: hr_utility.set_location('l_abs_ent_period '||l_abs_ent_period,1020);
949: hr_utility.set_location('l_abs_acc_period '||l_abs_acc_period,1020);
950: hr_utility.set_location('l_other_ent_period '||l_other_ent_period,1020);
943: hr_utility.set_location('l_fw_leave_calc_date '||l_fw_leave_calc_date,1020);
944: hr_utility.set_location('l_leave_end_ent '||l_leave_end_ent,1020);
945: hr_utility.set_location('l_leave_calc_date '||l_leave_calc_date,1020);
946: hr_utility.set_location('l_accrual_ent_period '||l_accrual_ent_period,1020);
947: hr_utility.set_location('l_accrual_acc_period '||l_accrual_acc_period,1020);
948: hr_utility.set_location('l_abs_ent_period '||l_abs_ent_period,1020);
949: hr_utility.set_location('l_abs_acc_period '||l_abs_acc_period,1020);
950: hr_utility.set_location('l_other_ent_period '||l_other_ent_period,1020);
951: hr_utility.set_location('l_other_acc_period '||l_other_acc_period,1020);
944: hr_utility.set_location('l_leave_end_ent '||l_leave_end_ent,1020);
945: hr_utility.set_location('l_leave_calc_date '||l_leave_calc_date,1020);
946: hr_utility.set_location('l_accrual_ent_period '||l_accrual_ent_period,1020);
947: hr_utility.set_location('l_accrual_acc_period '||l_accrual_acc_period,1020);
948: hr_utility.set_location('l_abs_ent_period '||l_abs_ent_period,1020);
949: hr_utility.set_location('l_abs_acc_period '||l_abs_acc_period,1020);
950: hr_utility.set_location('l_other_ent_period '||l_other_ent_period,1020);
951: hr_utility.set_location('l_other_acc_period '||l_other_acc_period,1020);
952: hr_utility.set_location('l_int_net_accrual '||l_int_net_accrual,1020);
945: hr_utility.set_location('l_leave_calc_date '||l_leave_calc_date,1020);
946: hr_utility.set_location('l_accrual_ent_period '||l_accrual_ent_period,1020);
947: hr_utility.set_location('l_accrual_acc_period '||l_accrual_acc_period,1020);
948: hr_utility.set_location('l_abs_ent_period '||l_abs_ent_period,1020);
949: hr_utility.set_location('l_abs_acc_period '||l_abs_acc_period,1020);
950: hr_utility.set_location('l_other_ent_period '||l_other_ent_period,1020);
951: hr_utility.set_location('l_other_acc_period '||l_other_acc_period,1020);
952: hr_utility.set_location('l_int_net_accrual '||l_int_net_accrual,1020);
953: hr_utility.set_location('l_int_net_entitlement '||l_int_net_entitlement,1020);
946: hr_utility.set_location('l_accrual_ent_period '||l_accrual_ent_period,1020);
947: hr_utility.set_location('l_accrual_acc_period '||l_accrual_acc_period,1020);
948: hr_utility.set_location('l_abs_ent_period '||l_abs_ent_period,1020);
949: hr_utility.set_location('l_abs_acc_period '||l_abs_acc_period,1020);
950: hr_utility.set_location('l_other_ent_period '||l_other_ent_period,1020);
951: hr_utility.set_location('l_other_acc_period '||l_other_acc_period,1020);
952: hr_utility.set_location('l_int_net_accrual '||l_int_net_accrual,1020);
953: hr_utility.set_location('l_int_net_entitlement '||l_int_net_entitlement,1020);
954: END IF;
947: hr_utility.set_location('l_accrual_acc_period '||l_accrual_acc_period,1020);
948: hr_utility.set_location('l_abs_ent_period '||l_abs_ent_period,1020);
949: hr_utility.set_location('l_abs_acc_period '||l_abs_acc_period,1020);
950: hr_utility.set_location('l_other_ent_period '||l_other_ent_period,1020);
951: hr_utility.set_location('l_other_acc_period '||l_other_acc_period,1020);
952: hr_utility.set_location('l_int_net_accrual '||l_int_net_accrual,1020);
953: hr_utility.set_location('l_int_net_entitlement '||l_int_net_entitlement,1020);
954: END IF;
955:
948: hr_utility.set_location('l_abs_ent_period '||l_abs_ent_period,1020);
949: hr_utility.set_location('l_abs_acc_period '||l_abs_acc_period,1020);
950: hr_utility.set_location('l_other_ent_period '||l_other_ent_period,1020);
951: hr_utility.set_location('l_other_acc_period '||l_other_acc_period,1020);
952: hr_utility.set_location('l_int_net_accrual '||l_int_net_accrual,1020);
953: hr_utility.set_location('l_int_net_entitlement '||l_int_net_entitlement,1020);
954: END IF;
955:
956:
949: hr_utility.set_location('l_abs_acc_period '||l_abs_acc_period,1020);
950: hr_utility.set_location('l_other_ent_period '||l_other_ent_period,1020);
951: hr_utility.set_location('l_other_acc_period '||l_other_acc_period,1020);
952: hr_utility.set_location('l_int_net_accrual '||l_int_net_accrual,1020);
953: hr_utility.set_location('l_int_net_entitlement '||l_int_net_entitlement,1020);
954: END IF;
955:
956:
957: /* Step (10) - Based on Other Adjustment Types,
992: p_next_period_end := l_accrual_period_end_date;
993:
994: IF g_debug
995: THEN
996: hr_utility.set_location('p_net_accrual '||p_net_accrual,1020);
997: hr_utility.set_location('p_net_entitlement '||p_net_entitlement,1020);
998: hr_utility.set_location('p_calc_start_date '||p_calc_start_date,1020);
999: hr_utility.set_location('p_last_accrual '||p_last_accrual,1020);
1000: hr_utility.set_location('p_next_period_end '||p_next_period_end,1020);
993:
994: IF g_debug
995: THEN
996: hr_utility.set_location('p_net_accrual '||p_net_accrual,1020);
997: hr_utility.set_location('p_net_entitlement '||p_net_entitlement,1020);
998: hr_utility.set_location('p_calc_start_date '||p_calc_start_date,1020);
999: hr_utility.set_location('p_last_accrual '||p_last_accrual,1020);
1000: hr_utility.set_location('p_next_period_end '||p_next_period_end,1020);
1001: hr_utility.set_location('Leaving '||l_proc_name,20);
994: IF g_debug
995: THEN
996: hr_utility.set_location('p_net_accrual '||p_net_accrual,1020);
997: hr_utility.set_location('p_net_entitlement '||p_net_entitlement,1020);
998: hr_utility.set_location('p_calc_start_date '||p_calc_start_date,1020);
999: hr_utility.set_location('p_last_accrual '||p_last_accrual,1020);
1000: hr_utility.set_location('p_next_period_end '||p_next_period_end,1020);
1001: hr_utility.set_location('Leaving '||l_proc_name,20);
1002: END IF;
995: THEN
996: hr_utility.set_location('p_net_accrual '||p_net_accrual,1020);
997: hr_utility.set_location('p_net_entitlement '||p_net_entitlement,1020);
998: hr_utility.set_location('p_calc_start_date '||p_calc_start_date,1020);
999: hr_utility.set_location('p_last_accrual '||p_last_accrual,1020);
1000: hr_utility.set_location('p_next_period_end '||p_next_period_end,1020);
1001: hr_utility.set_location('Leaving '||l_proc_name,20);
1002: END IF;
1003:
996: hr_utility.set_location('p_net_accrual '||p_net_accrual,1020);
997: hr_utility.set_location('p_net_entitlement '||p_net_entitlement,1020);
998: hr_utility.set_location('p_calc_start_date '||p_calc_start_date,1020);
999: hr_utility.set_location('p_last_accrual '||p_last_accrual,1020);
1000: hr_utility.set_location('p_next_period_end '||p_next_period_end,1020);
1001: hr_utility.set_location('Leaving '||l_proc_name,20);
1002: END IF;
1003:
1004:
997: hr_utility.set_location('p_net_entitlement '||p_net_entitlement,1020);
998: hr_utility.set_location('p_calc_start_date '||p_calc_start_date,1020);
999: hr_utility.set_location('p_last_accrual '||p_last_accrual,1020);
1000: hr_utility.set_location('p_next_period_end '||p_next_period_end,1020);
1001: hr_utility.set_location('Leaving '||l_proc_name,20);
1002: END IF;
1003:
1004:
1005: RETURN(0);
1056: l_ppl_accrual number; -- bug 10212532
1057:
1058: BEGIN
1059:
1060: g_debug := hr_utility.debug_enabled;
1061: IF g_debug
1062: THEN
1063: l_proc_name := g_package||'get_net_accrual_2010';
1064: hr_utility.set_location('Entering function '||l_proc_name,1050);
1060: g_debug := hr_utility.debug_enabled;
1061: IF g_debug
1062: THEN
1063: l_proc_name := g_package||'get_net_accrual_2010';
1064: hr_utility.set_location('Entering function '||l_proc_name,1050);
1065: END IF;
1066:
1067: l_assignment_id := p_assignment_id ;
1068: l_plan_id := p_plan_id ;
1160: END IF;
1161:
1162: IF g_debug
1163: THEN
1164: hr_utility.set_location('l_net_entitlement '||l_net_entitlement,1050);
1165: hr_utility.set_location('Leaving function '||l_proc_name,1050);
1166: END IF;
1167:
1168: RETURN l_net_entitlement;
1161:
1162: IF g_debug
1163: THEN
1164: hr_utility.set_location('l_net_entitlement '||l_net_entitlement,1050);
1165: hr_utility.set_location('Leaving function '||l_proc_name,1050);
1166: END IF;
1167:
1168: RETURN l_net_entitlement;
1169:
1208: AND pap.accrual_category = p_plan_category
1209: AND NVL(pap.information3,'N') = 'N'; /* Bug 9950136 */
1210:
1211: BEGIN
1212: hr_utility.set_location(' Entering::'||l_proc,5);
1213:
1214: OPEN csr_get_accrual_plan_id(p_assignment_id, p_effective_date, p_plan_category) ;
1215:
1216: FETCH csr_get_accrual_plan_id INTO l_accrual_plan_id;
1217:
1218: IF csr_get_accrual_plan_id%NOTFOUND
1219: THEN
1220: CLOSE csr_get_accrual_plan_id;
1221: hr_utility.set_location('Plan Not Found '||l_proc,10);
1222: hr_utility.set_message(801, 'HR_AU_ACCRUAL_PLAN_NOT_FOUND');
1223: hr_utility.raise_error;
1224: end if ;
1225:
1218: IF csr_get_accrual_plan_id%NOTFOUND
1219: THEN
1220: CLOSE csr_get_accrual_plan_id;
1221: hr_utility.set_location('Plan Not Found '||l_proc,10);
1222: hr_utility.set_message(801, 'HR_AU_ACCRUAL_PLAN_NOT_FOUND');
1223: hr_utility.raise_error;
1224: end if ;
1225:
1226: FETCH csr_get_accrual_plan_id INTO l_dummy ;
1219: THEN
1220: CLOSE csr_get_accrual_plan_id;
1221: hr_utility.set_location('Plan Not Found '||l_proc,10);
1222: hr_utility.set_message(801, 'HR_AU_ACCRUAL_PLAN_NOT_FOUND');
1223: hr_utility.raise_error;
1224: end if ;
1225:
1226: FETCH csr_get_accrual_plan_id INTO l_dummy ;
1227:
1227:
1228: IF csr_get_accrual_plan_id%FOUND
1229: THEN
1230: CLOSE csr_get_accrual_plan_id;
1231: hr_utility.set_location('Enrolled in Multiple Plans '||l_proc,15);
1232: hr_utility.set_message(801, 'HR_AU_TOO_MANY_ACCRUAL_PLANS');
1233: hr_utility.raise_error;
1234: END IF;
1235:
1228: IF csr_get_accrual_plan_id%FOUND
1229: THEN
1230: CLOSE csr_get_accrual_plan_id;
1231: hr_utility.set_location('Enrolled in Multiple Plans '||l_proc,15);
1232: hr_utility.set_message(801, 'HR_AU_TOO_MANY_ACCRUAL_PLANS');
1233: hr_utility.raise_error;
1234: END IF;
1235:
1236: CLOSE csr_get_accrual_plan_id;
1229: THEN
1230: CLOSE csr_get_accrual_plan_id;
1231: hr_utility.set_location('Enrolled in Multiple Plans '||l_proc,15);
1232: hr_utility.set_message(801, 'HR_AU_TOO_MANY_ACCRUAL_PLANS');
1233: hr_utility.raise_error;
1234: END IF;
1235:
1236: CLOSE csr_get_accrual_plan_id;
1237: hr_utility.set_location('Leaving:'||l_proc,20);
1233: hr_utility.raise_error;
1234: END IF;
1235:
1236: CLOSE csr_get_accrual_plan_id;
1237: hr_utility.set_location('Leaving:'||l_proc,20);
1238:
1239: RETURN l_accrual_plan_id;
1240:
1241: -- EXCEPTION
1239: RETURN l_accrual_plan_id;
1240:
1241: -- EXCEPTION
1242: -- WHEN OTHERS THEN
1243: -- hr_utility.set_location('Leaving:'||l_proc,99);
1244: -- RETURN NULL;
1245: END get_accrual_plan_by_category;
1246:
1247:
1288:
1289: l_ppl_accrual number;
1290:
1291: BEGIN
1292: hr_utility.set_location('Entering: '||l_proc,10) ;
1293: l_assignment_id := p_assignment_id ;
1294: l_plan_id := p_plan_id ;
1295: l_payroll_id := p_payroll_id ;
1296: l_business_group_id := p_business_group_id ;
1377: --------------------------------------
1378: -- Bug No : 2132299 End
1379: --------------------------------------
1380:
1381: hr_utility.set_location('Leaving '||l_proc,20);
1382: RETURN l_net_entitlement ;
1383:
1384: END get_net_accrual ;
1385:
1496: l_ppl_accrual number := 0; -- 10212532
1497:
1498: BEGIN
1499:
1500: g_debug := hr_utility.debug_enabled;
1501: hr_utility.set_location('Entering: '||l_proc,10) ;
1502: l_assignment_id := p_assignment_id ;
1503: l_plan_id := p_plan_id ;
1504: l_payroll_id := p_payroll_id ;
1497:
1498: BEGIN
1499:
1500: g_debug := hr_utility.debug_enabled;
1501: hr_utility.set_location('Entering: '||l_proc,10) ;
1502: l_assignment_id := p_assignment_id ;
1503: l_plan_id := p_plan_id ;
1504: l_payroll_id := p_payroll_id ;
1505: l_business_group_id := p_business_group_id ;
1538: p_next_period_end := l_accrual_period_end_date;
1539:
1540: IF g_debug
1541: THEN
1542: hr_utility.set_location('Leaving '||l_proc,20);
1543: END IF;
1544:
1545: RETURN(0);
1546: END IF;
1729: p_calc_start_date := l_start_date;
1730: p_last_accrual := l_accrual_end_date;
1731: p_next_period_end := l_accrual_period_end_date - 1;
1732:
1733: hr_utility.set_location('Leaving '||l_proc,20);
1734: RETURN (0);
1735:
1736: -- EXCEPTION
1737: -- WHEN OTHERS
1735:
1736: -- EXCEPTION
1737: -- WHEN OTHERS
1738: -- THEN
1739: -- hr_utility.set_location('Leaving:'||l_proc,99);
1740: -- RETURN -99;
1741:
1742: END get_accrual_entitlement ;
1743:
1778: WHERE lookup_type = 'ABSENCE_CATEGORY'
1779: AND meaning = 'Annual Leave');
1780:
1781: BEGIN
1782: hr_utility.set_location('Entering: '||l_proc,5);
1783: OPEN csr_annual_leave_accrual_plan (p_business_group_id
1784: ,p_calculation_date
1785: ,p_assignment_id);
1786:
1785: ,p_assignment_id);
1786:
1787: FETCH csr_annual_leave_accrual_plan INTO l_plan_id;
1788: CLOSE csr_annual_leave_accrual_plan;
1789: hr_utility.set_location('Leaving:'||l_proc,10);
1790: RETURN l_plan_id;
1791:
1792: -- EXCEPTION
1793: -- WHEN OTHERS
1791:
1792: -- EXCEPTION
1793: -- WHEN OTHERS
1794: -- THEN
1795: -- hr_utility.set_location('Leaving:'||l_proc,99);
1796: -- RETURN NULL;
1797: END;
1798:
1799:
1846: AND hrl.lookup_type = 'NAME_TRANSLATIONS'
1847: AND hrl.lookup_code = 'PTO_CONTINUOUS_SD';
1848:
1849: BEGIN
1850: hr_utility.set_location('Entering:'||l_proc,5);
1851: OPEN csr_continuous_service_date (p_business_group_id
1852: ,p_accrual_plan_id
1853: ,p_calculation_date
1854: ,p_assignment_id);
1853: ,p_calculation_date
1854: ,p_assignment_id);
1855: FETCH csr_continuous_service_date INTO l_csd;
1856: CLOSE csr_continuous_service_date;
1857: hr_utility.set_location('Leaving:'||l_proc,10);
1858: RETURN l_csd;
1859:
1860: -- EXCEPTION
1861: -- WHEN OTHERS
1859:
1860: -- EXCEPTION
1861: -- WHEN OTHERS
1862: -- THEN
1863: -- hr_utility.set_location('Leaving:'||l_proc,99);
1864: -- RETURN NULL;
1865: END;
1866:
1867:
1971: l_band_notfound_flag boolean := true ;
1972:
1973: begin
1974:
1975: hr_utility.trace(' In: ' || l_procedure_name) ;
1976:
1977: -- loop through the PL/SQL table looking for a likely accrual band
1978: while l_accrual_band_cache.count > 0
1979: and l_band_notfound_flag
2000: raise e_accrual_function_failure ;
2001:
2002: end if ;
2003:
2004: hr_utility.trace(' Out: ' || l_procedure_name ||' '|| l_annual_accrual) ;
2005: return l_annual_accrual ;
2006:
2007: end accrual_annual_rate ;
2008:
2017: l_hours_notfound_flag boolean := true ;
2018:
2019: begin
2020:
2021: hr_utility.trace(' In: ' || l_procedure_name) ;
2022: hr_utility.trace('p_effective_date = '||to_char(p_effective_date, 'DD-MON-YYYY'));
2023:
2024: -- loop through the PL/SQL table looking for a likely accrual band
2025: while l_asg_work_day_info_cache.count > 0
2018:
2019: begin
2020:
2021: hr_utility.trace(' In: ' || l_procedure_name) ;
2022: hr_utility.trace('p_effective_date = '||to_char(p_effective_date, 'DD-MON-YYYY'));
2023:
2024: -- loop through the PL/SQL table looking for a likely accrual band
2025: while l_asg_work_day_info_cache.count > 0
2026: and l_hours_notfound_flag
2044: -- raise error if no working hours found
2045: if l_hours_notfound_flag
2046: then
2047:
2048: hr_utility.trace(' Failed_mk: ' || l_procedure_name ) ;
2049: hr_utility.trace(' End Date: ' || to_char(l_asg_work_day_info_cache(l_counter).effective_end_date, 'DD-MON-YYYY'));
2050: raise e_accrual_function_failure ;
2051:
2052: end if ;
2045: if l_hours_notfound_flag
2046: then
2047:
2048: hr_utility.trace(' Failed_mk: ' || l_procedure_name ) ;
2049: hr_utility.trace(' End Date: ' || to_char(l_asg_work_day_info_cache(l_counter).effective_end_date, 'DD-MON-YYYY'));
2050: raise e_accrual_function_failure ;
2051:
2052: end if ;
2053:
2050: raise e_accrual_function_failure ;
2051:
2052: end if ;
2053:
2054: hr_utility.trace(' Out: ' || l_procedure_name) ;
2055: return l_asg_working_hours ;
2056:
2057:
2058:
2059: end asg_working_hours ;
2060:
2061: begin
2062:
2063: hr_utility.trace('In: ' || l_procedure_name) ;
2064: hr_utility.trace(' p_payroll_id: ' || to_char(p_payroll_id)) ;
2065: hr_utility.trace(' p_accrual_plan_id: ' || to_char(p_accrual_plan_id)) ;
2066: hr_utility.trace(' p_assignment_id: ' || to_char(p_assignment_id)) ;
2067: hr_utility.trace(' p_calculation_start_date: ' || to_char(p_calculation_start_date, 'DD-MM-YYYY')) ;
2060:
2061: begin
2062:
2063: hr_utility.trace('In: ' || l_procedure_name) ;
2064: hr_utility.trace(' p_payroll_id: ' || to_char(p_payroll_id)) ;
2065: hr_utility.trace(' p_accrual_plan_id: ' || to_char(p_accrual_plan_id)) ;
2066: hr_utility.trace(' p_assignment_id: ' || to_char(p_assignment_id)) ;
2067: hr_utility.trace(' p_calculation_start_date: ' || to_char(p_calculation_start_date, 'DD-MM-YYYY')) ;
2068: hr_utility.trace(' p_calculation_end_date: ' || to_char(p_calculation_end_date, 'DD-MM-YYYY')) ;
2061: begin
2062:
2063: hr_utility.trace('In: ' || l_procedure_name) ;
2064: hr_utility.trace(' p_payroll_id: ' || to_char(p_payroll_id)) ;
2065: hr_utility.trace(' p_accrual_plan_id: ' || to_char(p_accrual_plan_id)) ;
2066: hr_utility.trace(' p_assignment_id: ' || to_char(p_assignment_id)) ;
2067: hr_utility.trace(' p_calculation_start_date: ' || to_char(p_calculation_start_date, 'DD-MM-YYYY')) ;
2068: hr_utility.trace(' p_calculation_end_date: ' || to_char(p_calculation_end_date, 'DD-MM-YYYY')) ;
2069: hr_utility.trace(' p_service_start_date: ' || to_char(p_service_start_date, 'DD-MM-YYYY')) ;
2062:
2063: hr_utility.trace('In: ' || l_procedure_name) ;
2064: hr_utility.trace(' p_payroll_id: ' || to_char(p_payroll_id)) ;
2065: hr_utility.trace(' p_accrual_plan_id: ' || to_char(p_accrual_plan_id)) ;
2066: hr_utility.trace(' p_assignment_id: ' || to_char(p_assignment_id)) ;
2067: hr_utility.trace(' p_calculation_start_date: ' || to_char(p_calculation_start_date, 'DD-MM-YYYY')) ;
2068: hr_utility.trace(' p_calculation_end_date: ' || to_char(p_calculation_end_date, 'DD-MM-YYYY')) ;
2069: hr_utility.trace(' p_service_start_date: ' || to_char(p_service_start_date, 'DD-MM-YYYY')) ;
2070: hr_utility.trace(' p_business_group_hours: ' || to_char(p_business_group_hours)) ;
2063: hr_utility.trace('In: ' || l_procedure_name) ;
2064: hr_utility.trace(' p_payroll_id: ' || to_char(p_payroll_id)) ;
2065: hr_utility.trace(' p_accrual_plan_id: ' || to_char(p_accrual_plan_id)) ;
2066: hr_utility.trace(' p_assignment_id: ' || to_char(p_assignment_id)) ;
2067: hr_utility.trace(' p_calculation_start_date: ' || to_char(p_calculation_start_date, 'DD-MM-YYYY')) ;
2068: hr_utility.trace(' p_calculation_end_date: ' || to_char(p_calculation_end_date, 'DD-MM-YYYY')) ;
2069: hr_utility.trace(' p_service_start_date: ' || to_char(p_service_start_date, 'DD-MM-YYYY')) ;
2070: hr_utility.trace(' p_business_group_hours: ' || to_char(p_business_group_hours)) ;
2071: hr_utility.trace(' p_business_group_freq: ' || p_business_group_freq) ;
2064: hr_utility.trace(' p_payroll_id: ' || to_char(p_payroll_id)) ;
2065: hr_utility.trace(' p_accrual_plan_id: ' || to_char(p_accrual_plan_id)) ;
2066: hr_utility.trace(' p_assignment_id: ' || to_char(p_assignment_id)) ;
2067: hr_utility.trace(' p_calculation_start_date: ' || to_char(p_calculation_start_date, 'DD-MM-YYYY')) ;
2068: hr_utility.trace(' p_calculation_end_date: ' || to_char(p_calculation_end_date, 'DD-MM-YYYY')) ;
2069: hr_utility.trace(' p_service_start_date: ' || to_char(p_service_start_date, 'DD-MM-YYYY')) ;
2070: hr_utility.trace(' p_business_group_hours: ' || to_char(p_business_group_hours)) ;
2071: hr_utility.trace(' p_business_group_freq: ' || p_business_group_freq) ;
2072:
2065: hr_utility.trace(' p_accrual_plan_id: ' || to_char(p_accrual_plan_id)) ;
2066: hr_utility.trace(' p_assignment_id: ' || to_char(p_assignment_id)) ;
2067: hr_utility.trace(' p_calculation_start_date: ' || to_char(p_calculation_start_date, 'DD-MM-YYYY')) ;
2068: hr_utility.trace(' p_calculation_end_date: ' || to_char(p_calculation_end_date, 'DD-MM-YYYY')) ;
2069: hr_utility.trace(' p_service_start_date: ' || to_char(p_service_start_date, 'DD-MM-YYYY')) ;
2070: hr_utility.trace(' p_business_group_hours: ' || to_char(p_business_group_hours)) ;
2071: hr_utility.trace(' p_business_group_freq: ' || p_business_group_freq) ;
2072:
2073: -- cache the assignment's work day history
2066: hr_utility.trace(' p_assignment_id: ' || to_char(p_assignment_id)) ;
2067: hr_utility.trace(' p_calculation_start_date: ' || to_char(p_calculation_start_date, 'DD-MM-YYYY')) ;
2068: hr_utility.trace(' p_calculation_end_date: ' || to_char(p_calculation_end_date, 'DD-MM-YYYY')) ;
2069: hr_utility.trace(' p_service_start_date: ' || to_char(p_service_start_date, 'DD-MM-YYYY')) ;
2070: hr_utility.trace(' p_business_group_hours: ' || to_char(p_business_group_hours)) ;
2071: hr_utility.trace(' p_business_group_freq: ' || p_business_group_freq) ;
2072:
2073: -- cache the assignment's work day history
2074:
2067: hr_utility.trace(' p_calculation_start_date: ' || to_char(p_calculation_start_date, 'DD-MM-YYYY')) ;
2068: hr_utility.trace(' p_calculation_end_date: ' || to_char(p_calculation_end_date, 'DD-MM-YYYY')) ;
2069: hr_utility.trace(' p_service_start_date: ' || to_char(p_service_start_date, 'DD-MM-YYYY')) ;
2070: hr_utility.trace(' p_business_group_hours: ' || to_char(p_business_group_hours)) ;
2071: hr_utility.trace(' p_business_group_freq: ' || p_business_group_freq) ;
2072:
2073: -- cache the assignment's work day history
2074:
2075: l_counter := 1 ;
2253: l_accrual := l_accrual + l_period_accrual ;
2254:
2255: end loop ; -- c_periods
2256:
2257: hr_utility.trace('Out: ' || l_procedure_name) ;
2258: return l_accrual ;
2259:
2260: -- exception
2261: -- when e_accrual_function_failure
2259:
2260: -- exception
2261: -- when e_accrual_function_failure
2262: -- then
2263: -- hr_utility.set_message(801, 'HR_AU_ACCRUAL_FUNCTION_FAILURE') ;
2264: -- hr_utility.raise_error ;
2265:
2266: end accrual_daily_basis ;
2267:
2260: -- exception
2261: -- when e_accrual_function_failure
2262: -- then
2263: -- hr_utility.set_message(801, 'HR_AU_ACCRUAL_FUNCTION_FAILURE') ;
2264: -- hr_utility.raise_error ;
2265:
2266: end accrual_daily_basis ;
2267:
2268:
2304: l_days_suspended NUMBER := 0;
2305:
2306: BEGIN
2307:
2308: hr_utility.set_location('Entering'||l_proc,5);
2309: -- hr_utility.trace(TO_CHAR(p_start_date,'DD-MM-YYYY')||' and '
2310: -- ||TO_CHAR(p_end_date,'DD-MM-YYYY'));
2311:
2312: IF (p_start_date > p_end_date) THEN
2305:
2306: BEGIN
2307:
2308: hr_utility.set_location('Entering'||l_proc,5);
2309: -- hr_utility.trace(TO_CHAR(p_start_date,'DD-MM-YYYY')||' and '
2310: -- ||TO_CHAR(p_end_date,'DD-MM-YYYY'));
2311:
2312: IF (p_start_date > p_end_date) THEN
2313: hr_utility.set_message(801,'HR_AU_INVALID_DATE_RANGE');
2309: -- hr_utility.trace(TO_CHAR(p_start_date,'DD-MM-YYYY')||' and '
2310: -- ||TO_CHAR(p_end_date,'DD-MM-YYYY'));
2311:
2312: IF (p_start_date > p_end_date) THEN
2313: hr_utility.set_message(801,'HR_AU_INVALID_DATE_RANGE');
2314: hr_utility.raise_error;
2315: END IF;
2316:
2317: OPEN csr_days_suspended(p_assignment_id
2310: -- ||TO_CHAR(p_end_date,'DD-MM-YYYY'));
2311:
2312: IF (p_start_date > p_end_date) THEN
2313: hr_utility.set_message(801,'HR_AU_INVALID_DATE_RANGE');
2314: hr_utility.raise_error;
2315: END IF;
2316:
2317: OPEN csr_days_suspended(p_assignment_id
2318: ,p_start_date
2319: ,p_end_date);
2320: FETCH csr_days_suspended INTO l_days_suspended;
2321: CLOSE csr_days_suspended;
2322:
2323: hr_utility.trace('Days Suspended between '
2324: ||TO_CHAR(p_start_date,'DD-MM-YYYY')||' and '
2325: ||TO_CHAR(p_end_date,'DD-MM-YYYY')||' = '
2326: ||TO_CHAR(l_days_suspended));
2327: hr_utility.set_location('Leaving:'||l_proc,10);
2323: hr_utility.trace('Days Suspended between '
2324: ||TO_CHAR(p_start_date,'DD-MM-YYYY')||' and '
2325: ||TO_CHAR(p_end_date,'DD-MM-YYYY')||' = '
2326: ||TO_CHAR(l_days_suspended));
2327: hr_utility.set_location('Leaving:'||l_proc,10);
2328:
2329: RETURN l_days_suspended;
2330:
2331: -- EXCEPTION
2329: RETURN l_days_suspended;
2330:
2331: -- EXCEPTION
2332: -- WHEN others THEN
2333: -- hr_utility.set_location('Leaving:'||l_proc,99);
2334: -- RETURN NULL;
2335:
2336: END days_suspended;
2337:
2356: from per_time_periods tp
2357: where tp.payroll_id = p_payroll_id;
2358: begin
2359:
2360: hr_utility.set_location(' In: ' || l_proc,5) ;
2361:
2362: -- check payroll periods exist up to calculation_end_date
2363:
2364: open c_last_period ( p_payroll_id );
2364: open c_last_period ( p_payroll_id );
2365: fetch c_last_period into l_end_date;
2366: close c_last_period;
2367:
2368: hr_utility.set_location(' Out: ' || l_proc,10) ;
2369:
2370: return(l_end_date);
2371:
2372: -- EXCEPTION
2370: return(l_end_date);
2371:
2372: -- EXCEPTION
2373: -- WHEN others THEN
2374: -- hr_utility.trace('Error - payroll periods not found for payroll_id '||to_char(p_payroll_id));
2375: -- hr_utility.set_location('Leaving:'||l_proc,99);
2376: -- RETURN NULL;
2377:
2378: end check_periods ;
2371:
2372: -- EXCEPTION
2373: -- WHEN others THEN
2374: -- hr_utility.trace('Error - payroll periods not found for payroll_id '||to_char(p_payroll_id));
2375: -- hr_utility.set_location('Leaving:'||l_proc,99);
2376: -- RETURN NULL;
2377:
2378: end check_periods ;
2379:
2398: l_adjust_date date := p_adjust_date;
2399:
2400: begin
2401:
2402: hr_utility.set_location(' In: ' || l_proc,5) ;
2403:
2404: -- loop to check each new period added on for suspended assignments
2405:
2406: while (l_days_suspended > 0) and (l_adjust_date < p_end_date) loop
2416: if l_adjust_date > p_end_date then
2417: l_adjust_date := p_end_date;
2418: end if;
2419:
2420: hr_utility.set_location(' Out: ' || l_proc,10) ;
2421:
2422: return (l_adjust_date);
2423:
2424: -- EXCEPTION
2422: return (l_adjust_date);
2423:
2424: -- EXCEPTION
2425: -- WHEN others THEN
2426: -- hr_utility.set_location('Leaving:'||l_proc,99);
2427: -- RETURN NULL;
2428:
2429: end adjust_for_suspend_assign ;
2430:
2502: );*/
2503:
2504: begin
2505:
2506: hr_utility.set_location(' In: ' || l_proc,5) ;
2507:
2508: -- find total leave initialise - should return zero if none entered
2509:
2510: open c_get_initialise (p_assignment_id
2515: ,p_end_date );
2516: fetch c_get_initialise into l_initialise;
2517: close c_get_initialise;
2518:
2519: hr_utility.trace('Initialise : '||to_char(l_initialise));
2520: hr_utility.set_location(' Out: ' || l_proc,10) ;
2521:
2522: return(nvl(l_initialise,0));
2523:
2516: fetch c_get_initialise into l_initialise;
2517: close c_get_initialise;
2518:
2519: hr_utility.trace('Initialise : '||to_char(l_initialise));
2520: hr_utility.set_location(' Out: ' || l_proc,10) ;
2521:
2522: return(nvl(l_initialise,0));
2523:
2524: end get_leave_initialise ;
2565: ab.lower_limit ;
2566:
2567: begin
2568:
2569: hr_utility.set_location(' In: ' || l_proc, 5) ;
2570:
2571: open c_accrual_bands (p_accrual_plan_id);
2572: fetch c_accrual_bands into l_first_period;
2573: fetch c_accrual_bands into l_subsequent_periods;
2572: fetch c_accrual_bands into l_first_period;
2573: fetch c_accrual_bands into l_subsequent_periods;
2574: close c_accrual_bands;
2575:
2576: hr_utility.trace('First : '||to_char(l_first_period) );
2577: hr_utility.trace('Subsequent : '||to_char(l_subsequent_periods) );
2578:
2579: if (l_first_period <= 0) OR (l_subsequent_periods <= 0) then
2580: hr_utility.set_message(801,'HR_AU_INVALID_LSL_PERIODS');
2573: fetch c_accrual_bands into l_subsequent_periods;
2574: close c_accrual_bands;
2575:
2576: hr_utility.trace('First : '||to_char(l_first_period) );
2577: hr_utility.trace('Subsequent : '||to_char(l_subsequent_periods) );
2578:
2579: if (l_first_period <= 0) OR (l_subsequent_periods <= 0) then
2580: hr_utility.set_message(801,'HR_AU_INVALID_LSL_PERIODS');
2581: hr_utility.raise_error;
2576: hr_utility.trace('First : '||to_char(l_first_period) );
2577: hr_utility.trace('Subsequent : '||to_char(l_subsequent_periods) );
2578:
2579: if (l_first_period <= 0) OR (l_subsequent_periods <= 0) then
2580: hr_utility.set_message(801,'HR_AU_INVALID_LSL_PERIODS');
2581: hr_utility.raise_error;
2582: end if;
2583:
2584: -- set entitlement date to end of first period plus any suspension
2577: hr_utility.trace('Subsequent : '||to_char(l_subsequent_periods) );
2578:
2579: if (l_first_period <= 0) OR (l_subsequent_periods <= 0) then
2580: hr_utility.set_message(801,'HR_AU_INVALID_LSL_PERIODS');
2581: hr_utility.raise_error;
2582: end if;
2583:
2584: -- set entitlement date to end of first period plus any suspension
2585: -- adjustment
2608: ,l_eot);
2609:
2610: end loop;
2611:
2612: hr_utility.set_location(' Out: ' || l_proc, 10) ;
2613:
2614: return (l_entitlement_date);
2615:
2616: -- EXCEPTION
2614: return (l_entitlement_date);
2615:
2616: -- EXCEPTION
2617: -- WHEN others THEN
2618: -- hr_utility.trace('Error - cursor c_accrual_bands failed - Accrual Plan ID: '||to_char(p_accrual_plan_id) );
2619: -- hr_utility.set_location('Leaving: '||l_proc,99);
2620: -- RETURN (p_service_start_date - 1);
2621:
2622: end get_lsl_entitlement_date;
2615:
2616: -- EXCEPTION
2617: -- WHEN others THEN
2618: -- hr_utility.trace('Error - cursor c_accrual_bands failed - Accrual Plan ID: '||to_char(p_accrual_plan_id) );
2619: -- hr_utility.set_location('Leaving: '||l_proc,99);
2620: -- RETURN (p_service_start_date - 1);
2621:
2622: end get_lsl_entitlement_date;
2623:
2645: and pap.accrual_plan_name = v_entry_value;
2646:
2647: begin
2648:
2649: hr_utility.set_location(' In: ' || l_proc, 5) ;
2650:
2651: open c_plan_name ( p_business_group_id
2652: ,p_entry_value);
2653: fetch c_plan_name into l_plan_exists;
2657: end if;
2658:
2659: close c_plan_name;
2660:
2661: hr_utility.set_location(' Out: ' || l_proc, 10) ;
2662:
2663: return (l_plan_exists);
2664:
2665: --EXCEPTION
2663: return (l_plan_exists);
2664:
2665: --EXCEPTION
2666: -- WHEN others THEN
2667: -- hr_utility.set_location('Leaving: '||l_proc,99);
2668: -- RETURN (99);
2669:
2670: end validate_accrual_plan_name;
2671: