94: l_Pay_Periods_Year := per_formula_functions.get_number('PAYROLL_YEAR_NUMBER_OF_PERIODS');
95: l_Acc_Freq := per_formula_functions.get_text('ACCRUING_FREQUENCY');
96: l_Acc_Mult := per_formula_functions.get_number('ACCRUING_MULTIPLIER');
97:
98: hr_utility.set_location('ZA_PTO_ANNLEAVE_PERIOD_LOOP', 26);
99:
100: /* - P.Vaish - Defined for Bug No. - 2266289 - */
101: l_diff := LAST_DAY(l_Last_Period_ED) - l_Last_Period_ED + 1;
102:
107: l_last_period := l_Last_Period_ED;
108: END IF;
109:
110: IF (months_between(l_Last_Period,l_Beginning_Calc_Year_SD) >= 12 ) THEN
111: hr_utility.trace('Setting l_calculation_year to l_Beginning_Calc_Year_SD + 1 ');
112: l_calculation_year := add_months(l_Beginning_Calc_Year_SD,12);
113: ELSE
114: hr_utility.trace('Setting l_calculation_year to l_Beginning_Calc_Year_SD');
115: l_calculation_year := l_Beginning_Calc_Year_SD;
110: IF (months_between(l_Last_Period,l_Beginning_Calc_Year_SD) >= 12 ) THEN
111: hr_utility.trace('Setting l_calculation_year to l_Beginning_Calc_Year_SD + 1 ');
112: l_calculation_year := add_months(l_Beginning_Calc_Year_SD,12);
113: ELSE
114: hr_utility.trace('Setting l_calculation_year to l_Beginning_Calc_Year_SD');
115: l_calculation_year := l_Beginning_Calc_Year_SD;
116: END IF;
117:
118: IF to_char(l_CSDate,'DDMM') = '2902' THEN
135:
136: l_Years_Service := Floor(Months_Between(l_calculation_year,l_CSDate) / 12);
137:
138: IF ((l_Years_Service > 0) and (l_six_month_current >= l_Last_Period_ED)) THEN
139: hr_utility.trace('Before Six Month');
140: l_Left_Over := per_accrual_calc_functions.GET_CARRY_OVER(p_Assignment_id, p_Plan_id, (l_last_end_period + 1), l_last_start_period) +
141: per_accrual_calc_functions.GET_OTHER_NET_CONTRIBUTION(p_Assignment_id, p_Plan_id, (l_last_end_period + 1), l_last_start_period) -
142: per_accrual_calc_functions.GET_ABSENCE(p_Assignment_id, p_Plan_id, l_last_end_period, l_last_start_period);
143:
162: IF ((to_char(p_calculation_date,'DDMM') = to_char(l_CSDate - 1,'DDMM')) AND NOT l_Continue_Processing_Flag) THEN
163: l_Continue_Processing_Flag := TRUE;
164: END IF;
165: ELSIF ((l_Years_Service > 0) and (l_six_month_current < l_Last_Period_ED)) THEN
166: hr_utility.trace('After Six Month');
167: IF (per_utility_functions.get_accrual_band(p_Plan_ID, l_Years_Service) = 0 ) THEN
168: l_Left_Over := per_formula_functions.get_number('MAX_CARRY_OVER');
169: l_Annual_Rate := 0;
170: l_Upper_Limit := 0;
176: l_Left_Over := 0;
177: END IF;
178: /**/
179:
180: hr_utility.set_location('Before LOOP', 27);
181:
182: while l_Continue_Processing_Flag loop
183: l_Period_SD := per_formula_functions.get_date('PERIOD_SD');
184: l_Period_ED := per_formula_functions.get_date('PERIOD_ED');
279: l_Accrual_Rate := per_formula_functions.get_number('ZA_SICK_LEAVE_ACCRUAL_RATE');
280: l_Acc_Freq := per_formula_functions.get_text('ACCRUING_FREQUENCY');
281: l_Acc_Mult := per_formula_functions.get_number('ACCRUING_MULTIPLIER');
282:
283: hr_utility.set_location(l_proc,5);
284: hr_utility.trace('l_Accrual_Rate: '||to_char(l_Accrual_Rate));
285: while l_Continue_Processing_Flag loop
286: l_Period_SD := per_formula_functions.get_date('PERIOD_SD');
287: l_Period_ED := per_formula_functions.get_date('PERIOD_ED');
280: l_Acc_Freq := per_formula_functions.get_text('ACCRUING_FREQUENCY');
281: l_Acc_Mult := per_formula_functions.get_number('ACCRUING_MULTIPLIER');
282:
283: hr_utility.set_location(l_proc,5);
284: hr_utility.trace('l_Accrual_Rate: '||to_char(l_Accrual_Rate));
285: while l_Continue_Processing_Flag loop
286: l_Period_SD := per_formula_functions.get_date('PERIOD_SD');
287: l_Period_ED := per_formula_functions.get_date('PERIOD_ED');
288:
288:
289: -- Bug 5043294; Removed comments and unnessary if/else logic
290: -- Calculating the working days in the period
291: l_daysoff :=PER_ZA_ABS_DURATION.ZA_DAYSOFF(l_Period_SD,l_Period_ED);
292: hr_utility.trace('l_daysoff: '||to_char(l_daysoff));
293: l_Total_Accrued_PTO := round(l_Total_Accrued_PTO + (((l_Period_ED - l_Period_SD)+1) - l_daysoff)/l_Accrual_Rate , 2);
294: --l_Total_Accrued_PTO := round(l_Total_Accrued_PTO + l_Accrual_Rate, 2);
295:
296: if l_Period_SD = l_Last_Period_SD then
368: ,P_Accrual => l_total_accrual2
369: ,P_Net_Entitlement => l_net_entitlement2
370: );
371:
372: hr_utility.set_location(l_proc, 10);
373: hr_utility.trace('l_total_accrual2: '||to_char(l_total_accrual2));
374: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2)); */
375:
376: /* The above code is commented so that to avoid the calculation
369: ,P_Net_Entitlement => l_net_entitlement2
370: );
371:
372: hr_utility.set_location(l_proc, 10);
373: hr_utility.trace('l_total_accrual2: '||to_char(l_total_accrual2));
374: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2)); */
375:
376: /* The above code is commented so that to avoid the calculation
377: l_net_entitlement > l_max_carryover while fixing the bug 2932073 */
370: );
371:
372: hr_utility.set_location(l_proc, 10);
373: hr_utility.trace('l_total_accrual2: '||to_char(l_total_accrual2));
374: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2)); */
375:
376: /* The above code is commented so that to avoid the calculation
377: l_net_entitlement > l_max_carryover while fixing the bug 2932073 */
378: hr_utility.set_location(l_proc,5);
374: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2)); */
375:
376: /* The above code is commented so that to avoid the calculation
377: l_net_entitlement > l_max_carryover while fixing the bug 2932073 */
378: hr_utility.set_location(l_proc,5);
379: hr_utility.trace('p_assignment_id: '||to_char(p_assignment_id));
380: hr_utility.trace('p_plan_id: '||to_char(p_plan_id));
381: hr_utility.trace('l_payroll_id: '||to_char(l_payroll_id));
382: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
375:
376: /* The above code is commented so that to avoid the calculation
377: l_net_entitlement > l_max_carryover while fixing the bug 2932073 */
378: hr_utility.set_location(l_proc,5);
379: hr_utility.trace('p_assignment_id: '||to_char(p_assignment_id));
380: hr_utility.trace('p_plan_id: '||to_char(p_plan_id));
381: hr_utility.trace('l_payroll_id: '||to_char(l_payroll_id));
382: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
383: hr_utility.trace('l_total_accrual: '||to_char(l_total_accrual));
376: /* The above code is commented so that to avoid the calculation
377: l_net_entitlement > l_max_carryover while fixing the bug 2932073 */
378: hr_utility.set_location(l_proc,5);
379: hr_utility.trace('p_assignment_id: '||to_char(p_assignment_id));
380: hr_utility.trace('p_plan_id: '||to_char(p_plan_id));
381: hr_utility.trace('l_payroll_id: '||to_char(l_payroll_id));
382: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
383: hr_utility.trace('l_total_accrual: '||to_char(l_total_accrual));
384: hr_utility.trace('l_net_entitlement: '||to_char(l_net_entitlement));
377: l_net_entitlement > l_max_carryover while fixing the bug 2932073 */
378: hr_utility.set_location(l_proc,5);
379: hr_utility.trace('p_assignment_id: '||to_char(p_assignment_id));
380: hr_utility.trace('p_plan_id: '||to_char(p_plan_id));
381: hr_utility.trace('l_payroll_id: '||to_char(l_payroll_id));
382: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
383: hr_utility.trace('l_total_accrual: '||to_char(l_total_accrual));
384: hr_utility.trace('l_net_entitlement: '||to_char(l_net_entitlement));
385: hr_utility.trace('l_max_carryover: '||to_char(l_max_carryover));
378: hr_utility.set_location(l_proc,5);
379: hr_utility.trace('p_assignment_id: '||to_char(p_assignment_id));
380: hr_utility.trace('p_plan_id: '||to_char(p_plan_id));
381: hr_utility.trace('l_payroll_id: '||to_char(l_payroll_id));
382: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
383: hr_utility.trace('l_total_accrual: '||to_char(l_total_accrual));
384: hr_utility.trace('l_net_entitlement: '||to_char(l_net_entitlement));
385: hr_utility.trace('l_max_carryover: '||to_char(l_max_carryover));
386:
379: hr_utility.trace('p_assignment_id: '||to_char(p_assignment_id));
380: hr_utility.trace('p_plan_id: '||to_char(p_plan_id));
381: hr_utility.trace('l_payroll_id: '||to_char(l_payroll_id));
382: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
383: hr_utility.trace('l_total_accrual: '||to_char(l_total_accrual));
384: hr_utility.trace('l_net_entitlement: '||to_char(l_net_entitlement));
385: hr_utility.trace('l_max_carryover: '||to_char(l_max_carryover));
386:
387: if l_net_entitlement <= l_max_carryover then
380: hr_utility.trace('p_plan_id: '||to_char(p_plan_id));
381: hr_utility.trace('l_payroll_id: '||to_char(l_payroll_id));
382: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
383: hr_utility.trace('l_total_accrual: '||to_char(l_total_accrual));
384: hr_utility.trace('l_net_entitlement: '||to_char(l_net_entitlement));
385: hr_utility.trace('l_max_carryover: '||to_char(l_max_carryover));
386:
387: if l_net_entitlement <= l_max_carryover then
388: --
381: hr_utility.trace('l_payroll_id: '||to_char(l_payroll_id));
382: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
383: hr_utility.trace('l_total_accrual: '||to_char(l_total_accrual));
384: hr_utility.trace('l_net_entitlement: '||to_char(l_net_entitlement));
385: hr_utility.trace('l_max_carryover: '||to_char(l_max_carryover));
386:
387: if l_net_entitlement <= l_max_carryover then
388: --
389: hr_utility.set_location(l_proc,10);
385: hr_utility.trace('l_max_carryover: '||to_char(l_max_carryover));
386:
387: if l_net_entitlement <= l_max_carryover then
388: --
389: hr_utility.set_location(l_proc,10);
390: l_Beginning_Calc_Year := per_formula_functions.get_date('BEGINNING_OF_CALCULATION_YEAR');
391: --
392: IF (l_net_entitlement <= 0
393: AND to_char(l_effective_date + 1,'MM') <> to_char(l_Beginning_Calc_Year,'MM')
401: p_assignment_id => p_assignment_id,
402: p_plan_id => p_plan_id,
403: p_start_date => (l_effective_date-30),
404: p_calculation_date => (l_effective_date-1));
405: hr_utility.trace('l_carryover_pre: '||to_char(l_carryover_pre));
406: IF l_carryover_pre < 0 THEN
407: l_carryover := l_carryover_pre;
408: END IF ;
409: hr_utility.set_location(l_proc,50);
405: hr_utility.trace('l_carryover_pre: '||to_char(l_carryover_pre));
406: IF l_carryover_pre < 0 THEN
407: l_carryover := l_carryover_pre;
408: END IF ;
409: hr_utility.set_location(l_proc,50);
410: ELSE
411: l_carryover := round(l_net_entitlement, 3);
412: hr_utility.set_location(l_proc,60);
413: END IF;
408: END IF ;
409: hr_utility.set_location(l_proc,50);
410: ELSE
411: l_carryover := round(l_net_entitlement, 3);
412: hr_utility.set_location(l_proc,60);
413: END IF;
414: --End for bug no 2932073 14-Aug-2003
415: l_residual := 0;
416: --
441: -- Only for semi-annual run.
442: l_Beginning_Calc_Year := per_formula_functions.get_date('BEGINNING_OF_CALCULATION_YEAR');
443:
444: IF to_char(l_effective_date + 1,'MM') <> to_char(l_Beginning_Calc_Year,'MM') THEN
445: hr_utility.set_location(l_proc, 15);
446: l_other2 := per_accrual_calc_functions.Get_Other_Net_Contribution(
447: P_Assignment_ID => p_assignment_id
448: ,P_Plan_ID => p_plan_id
449: ,p_start_date => l_start_date
452: ELSE
453: l_other2 := 0;
454: END IF;
455: --
456: hr_utility.set_location(l_proc, 20);
457: hr_utility.trace('l_total_accrual2: '||to_char(l_total_accrual2));
458: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2));
459: hr_utility.trace('l_other2: '||to_char(l_other2));
460: hr_utility.trace('l_start_date: '||to_char(l_start_date));
453: l_other2 := 0;
454: END IF;
455: --
456: hr_utility.set_location(l_proc, 20);
457: hr_utility.trace('l_total_accrual2: '||to_char(l_total_accrual2));
458: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2));
459: hr_utility.trace('l_other2: '||to_char(l_other2));
460: hr_utility.trace('l_start_date: '||to_char(l_start_date));
461: hr_utility.trace('l_end_date: '||to_char(l_end_date));
454: END IF;
455: --
456: hr_utility.set_location(l_proc, 20);
457: hr_utility.trace('l_total_accrual2: '||to_char(l_total_accrual2));
458: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2));
459: hr_utility.trace('l_other2: '||to_char(l_other2));
460: hr_utility.trace('l_start_date: '||to_char(l_start_date));
461: hr_utility.trace('l_end_date: '||to_char(l_end_date));
462: hr_utility.trace('l_Beginning_Calc_Year: '||to_char(l_Beginning_Calc_Year));
455: --
456: hr_utility.set_location(l_proc, 20);
457: hr_utility.trace('l_total_accrual2: '||to_char(l_total_accrual2));
458: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2));
459: hr_utility.trace('l_other2: '||to_char(l_other2));
460: hr_utility.trace('l_start_date: '||to_char(l_start_date));
461: hr_utility.trace('l_end_date: '||to_char(l_end_date));
462: hr_utility.trace('l_Beginning_Calc_Year: '||to_char(l_Beginning_Calc_Year));
463: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
456: hr_utility.set_location(l_proc, 20);
457: hr_utility.trace('l_total_accrual2: '||to_char(l_total_accrual2));
458: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2));
459: hr_utility.trace('l_other2: '||to_char(l_other2));
460: hr_utility.trace('l_start_date: '||to_char(l_start_date));
461: hr_utility.trace('l_end_date: '||to_char(l_end_date));
462: hr_utility.trace('l_Beginning_Calc_Year: '||to_char(l_Beginning_Calc_Year));
463: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
464: --
457: hr_utility.trace('l_total_accrual2: '||to_char(l_total_accrual2));
458: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2));
459: hr_utility.trace('l_other2: '||to_char(l_other2));
460: hr_utility.trace('l_start_date: '||to_char(l_start_date));
461: hr_utility.trace('l_end_date: '||to_char(l_end_date));
462: hr_utility.trace('l_Beginning_Calc_Year: '||to_char(l_Beginning_Calc_Year));
463: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
464: --
465: hr_utility.set_location(l_proc, 30);
458: hr_utility.trace('l_net_entitlement2: '||to_char(l_net_entitlement2));
459: hr_utility.trace('l_other2: '||to_char(l_other2));
460: hr_utility.trace('l_start_date: '||to_char(l_start_date));
461: hr_utility.trace('l_end_date: '||to_char(l_end_date));
462: hr_utility.trace('l_Beginning_Calc_Year: '||to_char(l_Beginning_Calc_Year));
463: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
464: --
465: hr_utility.set_location(l_proc, 30);
466: l_carryover := round(l_max_carryover, 3);
459: hr_utility.trace('l_other2: '||to_char(l_other2));
460: hr_utility.trace('l_start_date: '||to_char(l_start_date));
461: hr_utility.trace('l_end_date: '||to_char(l_end_date));
462: hr_utility.trace('l_Beginning_Calc_Year: '||to_char(l_Beginning_Calc_Year));
463: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
464: --
465: hr_utility.set_location(l_proc, 30);
466: l_carryover := round(l_max_carryover, 3);
467: l_residual := round((l_net_entitlement - l_max_carryover - l_total_accrual2 - l_other2), 3);
461: hr_utility.trace('l_end_date: '||to_char(l_end_date));
462: hr_utility.trace('l_Beginning_Calc_Year: '||to_char(l_Beginning_Calc_Year));
463: hr_utility.trace('l_effective_date: '||to_char(l_effective_date));
464: --
465: hr_utility.set_location(l_proc, 30);
466: l_carryover := round(l_max_carryover, 3);
467: l_residual := round((l_net_entitlement - l_max_carryover - l_total_accrual2 - l_other2), 3);
468: --Bug 4293298 if residual value is -ve ..then it is set to 0
469: IF l_residual < 0 THEN
470: l_residual := 0;
471: END IF ;
472: --
473: end if;
474: hr_utility.set_location(l_proc, 40);
475: hr_utility.trace('l_carryover: '||to_char(l_carryover));
476: hr_utility.trace('l_residual: '||to_char(l_residual));
477:
478:
471: END IF ;
472: --
473: end if;
474: hr_utility.set_location(l_proc, 40);
475: hr_utility.trace('l_carryover: '||to_char(l_carryover));
476: hr_utility.trace('l_residual: '||to_char(l_residual));
477:
478:
479: End ZA_PTO_CARRYOVER_RESI_VALUE;
472: --
473: end if;
474: hr_utility.set_location(l_proc, 40);
475: hr_utility.trace('l_carryover: '||to_char(l_carryover));
476: hr_utility.trace('l_residual: '||to_char(l_residual));
477:
478:
479: End ZA_PTO_CARRYOVER_RESI_VALUE;
480: