134: v_curr_date := NULL;
135: v_curr_day :=NULL;
136:
137: -- Check for valid range
138: hr_utility.trace('Entered standard_hours_worked');
139:
140: IF p_range_start > p_range_end THEN
141: hr_utility.trace('p_range_start greater than p_range_end');
142: RETURN v_total_hours;
137: -- Check for valid range
138: hr_utility.trace('Entered standard_hours_worked');
139:
140: IF p_range_start > p_range_end THEN
141: hr_utility.trace('p_range_start greater than p_range_end');
142: RETURN v_total_hours;
143: -- hr_utility.set_message(801,'PAY_xxxx_INVALID_DATE_RANGE');
144: -- hr_utility.raise_error;
145: END IF;
139:
140: IF p_range_start > p_range_end THEN
141: hr_utility.trace('p_range_start greater than p_range_end');
142: RETURN v_total_hours;
143: -- hr_utility.set_message(801,'PAY_xxxx_INVALID_DATE_RANGE');
144: -- hr_utility.raise_error;
145: END IF;
146: --
147:
140: IF p_range_start > p_range_end THEN
141: hr_utility.trace('p_range_start greater than p_range_end');
142: RETURN v_total_hours;
143: -- hr_utility.set_message(801,'PAY_xxxx_INVALID_DATE_RANGE');
144: -- hr_utility.raise_error;
145: END IF;
146: --
147:
148: IF UPPER(p_std_freq) = 'WEEK' THEN
145: END IF;
146: --
147:
148: IF UPPER(p_std_freq) = 'WEEK' THEN
149: hr_utility.trace('p_std_freq = WEEK ');
150:
151: v_wrkday_hours := p_std_hrs / c_wkdays_per_week;
152:
153: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
149: hr_utility.trace('p_std_freq = WEEK ');
150:
151: v_wrkday_hours := p_std_hrs / c_wkdays_per_week;
152:
153: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
154: hr_utility.trace('c_wkdays_per_week ='||to_number(c_wkdays_per_week));
155: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
156:
157: ELSIF UPPER(p_std_freq) = 'MONTH' THEN
150:
151: v_wrkday_hours := p_std_hrs / c_wkdays_per_week;
152:
153: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
154: hr_utility.trace('c_wkdays_per_week ='||to_number(c_wkdays_per_week));
155: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
156:
157: ELSIF UPPER(p_std_freq) = 'MONTH' THEN
158:
151: v_wrkday_hours := p_std_hrs / c_wkdays_per_week;
152:
153: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
154: hr_utility.trace('c_wkdays_per_week ='||to_number(c_wkdays_per_week));
155: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
156:
157: ELSIF UPPER(p_std_freq) = 'MONTH' THEN
158:
159: hr_utility.trace('p_std_freq = MONTH ');
155: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
156:
157: ELSIF UPPER(p_std_freq) = 'MONTH' THEN
158:
159: hr_utility.trace('p_std_freq = MONTH ');
160:
161: v_wrkday_hours := p_std_hrs / c_wkdays_per_month;
162:
163:
160:
161: v_wrkday_hours := p_std_hrs / c_wkdays_per_month;
162:
163:
164: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
165: hr_utility.trace('c_wkdays_per_month ='||to_number(c_wkdays_per_month));
166: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
167:
168: ELSIF UPPER(p_std_freq) = 'YEAR' THEN
161: v_wrkday_hours := p_std_hrs / c_wkdays_per_month;
162:
163:
164: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
165: hr_utility.trace('c_wkdays_per_month ='||to_number(c_wkdays_per_month));
166: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
167:
168: ELSIF UPPER(p_std_freq) = 'YEAR' THEN
169:
162:
163:
164: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
165: hr_utility.trace('c_wkdays_per_month ='||to_number(c_wkdays_per_month));
166: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
167:
168: ELSIF UPPER(p_std_freq) = 'YEAR' THEN
169:
170: hr_utility.trace('p_std_freq = YEAR ');
166: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
167:
168: ELSIF UPPER(p_std_freq) = 'YEAR' THEN
169:
170: hr_utility.trace('p_std_freq = YEAR ');
171: v_wrkday_hours := p_std_hrs / c_wkdays_per_year;
172:
173: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
174: hr_utility.trace('c_wkdays_per_year ='||to_number(c_wkdays_per_year));
169:
170: hr_utility.trace('p_std_freq = YEAR ');
171: v_wrkday_hours := p_std_hrs / c_wkdays_per_year;
172:
173: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
174: hr_utility.trace('c_wkdays_per_year ='||to_number(c_wkdays_per_year));
175: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
176:
177: ELSE
170: hr_utility.trace('p_std_freq = YEAR ');
171: v_wrkday_hours := p_std_hrs / c_wkdays_per_year;
172:
173: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
174: hr_utility.trace('c_wkdays_per_year ='||to_number(c_wkdays_per_year));
175: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
176:
177: ELSE
178: hr_utility.trace('p_std_freq in ELSE ');
171: v_wrkday_hours := p_std_hrs / c_wkdays_per_year;
172:
173: hr_utility.trace('p_std_hrs ='||to_number(p_std_hrs));
174: hr_utility.trace('c_wkdays_per_year ='||to_number(c_wkdays_per_year));
175: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
176:
177: ELSE
178: hr_utility.trace('p_std_freq in ELSE ');
179: v_wrkday_hours := p_std_hrs;
174: hr_utility.trace('c_wkdays_per_year ='||to_number(c_wkdays_per_year));
175: hr_utility.trace('v_wrkday_hours ='||to_number(v_wrkday_hours));
176:
177: ELSE
178: hr_utility.trace('p_std_freq in ELSE ');
179: v_wrkday_hours := p_std_hrs;
180: END IF;
181:
182: v_curr_date := p_range_start;
180: END IF;
181:
182: v_curr_date := p_range_start;
183:
184: hr_utility.trace('v_curr_date is range start'||to_char(v_curr_date));
185:
186:
187: LOOP
188:
193:
194:
195: v_total_hours := nvl(v_total_hours,0) + v_wrkday_hours;
196:
197: hr_utility.trace(' v_day_no = '||to_char(v_day_no));
198: hr_utility.trace(' v_total_hours = '||to_char(v_total_hours));
199: END IF;
200:
201: v_curr_date := v_curr_date + 1;
194:
195: v_total_hours := nvl(v_total_hours,0) + v_wrkday_hours;
196:
197: hr_utility.trace(' v_day_no = '||to_char(v_day_no));
198: hr_utility.trace(' v_total_hours = '||to_char(v_total_hours));
199: END IF;
200:
201: v_curr_date := v_curr_date + 1;
202: EXIT WHEN v_curr_date > p_range_end;
200:
201: v_curr_date := v_curr_date + 1;
202: EXIT WHEN v_curr_date > p_range_end;
203: END LOOP;
204: hr_utility.trace(' Final v_total_hours = '||to_char(v_total_hours));
205: hr_utility.trace(' Leaving standard_hours_worked' );
206: --
207: RETURN v_total_hours;
208: --
201: v_curr_date := v_curr_date + 1;
202: EXIT WHEN v_curr_date > p_range_end;
203: END LOOP;
204: hr_utility.trace(' Final v_total_hours = '||to_char(v_total_hours));
205: hr_utility.trace(' Leaving standard_hours_worked' );
206: --
207: RETURN v_total_hours;
208: --
209: END standard_hours_worked;
286: -- Selecting "count" because we want to continue processing even if
287: -- the from_freq is not a pay basis.
288: --
289:
290: hr_utility.trace(' Entered Get_Annualizing_Factor ');
291:
292: BEGIN -- Is Freq pay basis?
293:
294: --
295: -- Decode pay basis and set v_annualizing_factor accordingly.
296: -- PAY_BASIS "Meaning" is passed from FF !
297: --
298:
299: hr_utility.trace(' Getting lookup code for lookup_type = PAY_BASIS');
300: hr_utility.trace(' p_freq = '||p_freq);
301:
302: SELECT lookup_code
303: INTO v_pay_basis
296: -- PAY_BASIS "Meaning" is passed from FF !
297: --
298:
299: hr_utility.trace(' Getting lookup code for lookup_type = PAY_BASIS');
300: hr_utility.trace(' p_freq = '||p_freq);
301:
302: SELECT lookup_code
303: INTO v_pay_basis
304: FROM hr_lookups lkp
305: WHERE lkp.application_id = 800
306: AND lkp.lookup_type = 'PAY_BASIS'
307: AND lkp.meaning = p_freq;
308:
309: hr_utility.trace(' Lookup_code ie v_pay_basis ='||v_pay_basis);
310:
311: v_use_pay_basis := 1;
312:
313: IF v_pay_basis = 'MONTHLY' THEN
311: v_use_pay_basis := 1;
312:
313: IF v_pay_basis = 'MONTHLY' THEN
314:
315: hr_utility.trace(' Entered for MONTHLY v_pay_basis');
316:
317: v_annualizing_factor := 12;
318:
319: hr_utility.trace(' v_annualizing_factor = 12 ');
315: hr_utility.trace(' Entered for MONTHLY v_pay_basis');
316:
317: v_annualizing_factor := 12;
318:
319: hr_utility.trace(' v_annualizing_factor = 12 ');
320:
321: ELSIF v_pay_basis = 'HOURLY' THEN
322:
323: hr_utility.trace(' Entered for HOURLY v_pay_basis');
319: hr_utility.trace(' v_annualizing_factor = 12 ');
320:
321: ELSIF v_pay_basis = 'HOURLY' THEN
322:
323: hr_utility.trace(' Entered for HOURLY v_pay_basis');
324:
325: IF p_period_start_date IS NOT NULL THEN
326:
327: hr_utility.trace(' p_period_start_date IS NOT NULL ' ||
323: hr_utility.trace(' Entered for HOURLY v_pay_basis');
324:
325: IF p_period_start_date IS NOT NULL THEN
326:
327: hr_utility.trace(' p_period_start_date IS NOT NULL ' ||
328: ' v_period_hours=T');
329:
330: v_range_start := p_period_start_date;
331: v_range_end := p_period_end_date;
332: v_period_hours := TRUE;
333:
334: ELSE
335:
336: hr_utility.trace(' p_period_start_date IS NULL');
337:
338: v_range_start := sysdate;
339: v_range_end := sysdate + 6;
340: v_period_hours := FALSE;
345:
346: -- Hourly employee using work schedule.
347: -- Get work schedule name
348:
349: hr_utility.trace(' Hourly employee using work schedule');
350: hr_utility.trace(' Get work schedule name');
351:
352: v_ws_id := fnd_number.canonical_to_number(p_asg_work_sched);
353:
346: -- Hourly employee using work schedule.
347: -- Get work schedule name
348:
349: hr_utility.trace(' Hourly employee using work schedule');
350: hr_utility.trace(' Get work schedule name');
351:
352: v_ws_id := fnd_number.canonical_to_number(p_asg_work_sched);
353:
354: hr_utility.trace(' v_ws_id ='||to_number(v_ws_id));
350: hr_utility.trace(' Get work schedule name');
351:
352: v_ws_id := fnd_number.canonical_to_number(p_asg_work_sched);
353:
354: hr_utility.trace(' v_ws_id ='||to_number(v_ws_id));
355:
356:
357: SELECT user_column_name
358: INTO v_work_sched_name
360: WHERE user_column_id = v_ws_id
361: AND NVL(business_group_id, p_bg) = p_bg
362: AND NVL(legislation_code,'MX') = 'MX';
363:
364: hr_utility.trace(' v_work_sched_name ='||v_work_sched_name);
365: hr_utility.trace(' Calling Work_Sch_Total_Hours_or_Days');
366:
367: v_hrs_per_range :=
368: Work_Sch_Total_Hours_or_Days(p_bg,
361: AND NVL(business_group_id, p_bg) = p_bg
362: AND NVL(legislation_code,'MX') = 'MX';
363:
364: hr_utility.trace(' v_work_sched_name ='||v_work_sched_name);
365: hr_utility.trace(' Calling Work_Sch_Total_Hours_or_Days');
366:
367: v_hrs_per_range :=
368: Work_Sch_Total_Hours_or_Days(p_bg,
369: v_work_sched_name,
371: v_range_end);
372:
373: ELSE-- Hourly emp using Standard Hours on asg.
374:
375: hr_utility.trace(' Hourly emp using Standard Hours on asg');
376: hr_utility.trace(' calling Standard_Hours_Worked');
377:
378: v_hrs_per_range := Standard_Hours_Worked(p_asg_std_hrs,
379: v_range_start,
372:
373: ELSE-- Hourly emp using Standard Hours on asg.
374:
375: hr_utility.trace(' Hourly emp using Standard Hours on asg');
376: hr_utility.trace(' calling Standard_Hours_Worked');
377:
378: v_hrs_per_range := Standard_Hours_Worked(p_asg_std_hrs,
379: v_range_start,
380: v_range_end,
383: END IF;
384:
385: IF v_period_hours THEN
386:
387: hr_utility.trace(' v_period_hours is TRUE');
388:
389: SELECT TPT.number_per_fiscal_year
390: INTO v_periods_per_fiscal_yr
391: FROM pay_payrolls_f PPF,
407: END IF;
408:
409: ELSIF v_pay_basis = 'PERIOD' THEN
410:
411: hr_utility.trace(' v_pay_basis = PERIOD');
412:
413: SELECT TPT.number_per_fiscal_year
414: INTO v_annualizing_factor
415: FROM pay_payrolls_f PRL,
425:
426: ELSIF v_pay_basis = 'ANNUAL' THEN
427:
428:
429: hr_utility.trace(' v_pay_basis = ANNUAL');
430:
431: v_annualizing_factor := 1;
432:
433: ELSE
434:
435: -- Did not recognize "pay basis", return -999 as annualizing factor.
436: -- Remember this for debugging when zeroes come out as results!!!
437:
438: hr_utility.trace(' Did not recognize pay basis');
439:
440: v_annualizing_factor := 0;
441:
442: RETURN v_annualizing_factor;
446: EXCEPTION
447:
448: WHEN NO_DATA_FOUND THEN
449:
450: hr_utility.trace(' When no data found' );
451: v_use_pay_basis := 0;
452:
453: END; /* SELECT LOOKUP CODE */
454:
453: END; /* SELECT LOOKUP CODE */
454:
455: IF v_use_pay_basis = 0 THEN
456:
457: hr_utility.trace(' Not using pay basis as frequency');
458:
459: -- Not using pay basis as frequency...
460:
461: IF (p_freq IS NULL) OR
464: THEN
465:
466: -- Get "annuallizing factor" from period type of the payroll.
467:
468: hr_utility.trace('Get annuallizing factor from period '||
469: 'type of the payroll');
470:
471: SELECT TPT.number_per_fiscal_year
472: INTO v_annualizing_factor
479: AND PRL.effective_end_date
480: AND PRL.payroll_id = p_payroll
481: AND PRL.business_group_id + 0 = p_bg;
482:
483: hr_utility.trace('v_annualizing_factor ='||
484: to_number(v_annualizing_factor));
485:
486: ELSIF UPPER(p_freq) = 'DAILY' THEN
487:
484: to_number(v_annualizing_factor));
485:
486: ELSIF UPPER(p_freq) = 'DAILY' THEN
487:
488: hr_utility.trace(' Daily Employee');
489:
490: v_annualizing_factor :=
491: pay_mx_utility.get_days_in_year(p_bg, p_txu_id, p_payroll);
492:
492:
493:
494: ELSIF UPPER(p_freq) = 'HOURLY' THEN -- Hourly employee...
495:
496: hr_utility.trace(' Hourly Employee');
497:
498: IF p_period_start_date IS NOT NULL THEN
499: v_range_start := p_period_start_date;
500: v_range_end := p_period_end_date;
527: v_range_end);
528:
529: ELSE-- Hourly emp using Standard Hours on asg.
530:
531: hr_utility.trace(' Hourly emp using Standard Hours on asg');
532:
533: hr_utility.trace('calling Standard_Hours_Worked');
534:
535: v_hrs_per_range := Standard_Hours_Worked(p_asg_std_hrs,
529: ELSE-- Hourly emp using Standard Hours on asg.
530:
531: hr_utility.trace(' Hourly emp using Standard Hours on asg');
532:
533: hr_utility.trace('calling Standard_Hours_Worked');
534:
535: v_hrs_per_range := Standard_Hours_Worked(p_asg_std_hrs,
536: v_range_start,
537: v_range_end,
536: v_range_start,
537: v_range_end,
538: p_asg_std_freq);
539:
540: hr_utility.trace('returned Standard_Hours_Worked');
541: END IF;
542:
543:
544: IF v_period_hours THEN
542:
543:
544: IF v_period_hours THEN
545:
546: hr_utility.trace('v_period_hours = TRUE');
547:
548: SELECT TPT.number_per_fiscal_year
549: INTO v_periods_per_fiscal_yr
550: FROM pay_payrolls_f ppf,
558:
559: v_annualizing_factor :=
560: v_hrs_per_range * v_periods_per_fiscal_yr;
561:
562: hr_utility.trace('v_hrs_per_range ='||
563: to_number(v_hrs_per_range));
564: hr_utility.trace('v_periods_per_fiscal_yr ='||
565: to_number(v_periods_per_fiscal_yr));
566: hr_utility.trace('v_annualizing_factor ='||
560: v_hrs_per_range * v_periods_per_fiscal_yr;
561:
562: hr_utility.trace('v_hrs_per_range ='||
563: to_number(v_hrs_per_range));
564: hr_utility.trace('v_periods_per_fiscal_yr ='||
565: to_number(v_periods_per_fiscal_yr));
566: hr_utility.trace('v_annualizing_factor ='||
567: to_number(v_annualizing_factor));
568:
562: hr_utility.trace('v_hrs_per_range ='||
563: to_number(v_hrs_per_range));
564: hr_utility.trace('v_periods_per_fiscal_yr ='||
565: to_number(v_periods_per_fiscal_yr));
566: hr_utility.trace('v_annualizing_factor ='||
567: to_number(v_annualizing_factor));
568:
569: ELSE
570:
567: to_number(v_annualizing_factor));
568:
569: ELSE
570:
571: hr_utility.trace('v_period_hours = FALSE');
572:
573: v_annualizing_factor := v_hrs_per_range * c_weeks_per_year;
574:
575: hr_utility.trace('v_hrs_per_range ='||
571: hr_utility.trace('v_period_hours = FALSE');
572:
573: v_annualizing_factor := v_hrs_per_range * c_weeks_per_year;
574:
575: hr_utility.trace('v_hrs_per_range ='||
576: to_number(v_hrs_per_range));
577: hr_utility.trace('c_weeks_per_year ='||
578: to_number(c_weeks_per_year));
579: hr_utility.trace('v_annualizing_factor ='||
573: v_annualizing_factor := v_hrs_per_range * c_weeks_per_year;
574:
575: hr_utility.trace('v_hrs_per_range ='||
576: to_number(v_hrs_per_range));
577: hr_utility.trace('c_weeks_per_year ='||
578: to_number(c_weeks_per_year));
579: hr_utility.trace('v_annualizing_factor ='||
580: to_number(v_annualizing_factor));
581:
575: hr_utility.trace('v_hrs_per_range ='||
576: to_number(v_hrs_per_range));
577: hr_utility.trace('c_weeks_per_year ='||
578: to_number(c_weeks_per_year));
579: hr_utility.trace('v_annualizing_factor ='||
580: to_number(v_annualizing_factor));
581:
582: END IF;
583:
584: ELSE
585:
586: -- Not hourly, an actual time period type!
587:
588: hr_utility.trace('Not hourly - an actual time period type');
589:
590: BEGIN
591:
592: hr_utility.trace(' selecting from per_time_period_types');
588: hr_utility.trace('Not hourly - an actual time period type');
589:
590: BEGIN
591:
592: hr_utility.trace(' selecting from per_time_period_types');
593:
594: SELECT PT.number_per_fiscal_year
595: INTO v_annualizing_factor
596: FROM per_time_period_types PT
595: INTO v_annualizing_factor
596: FROM per_time_period_types PT
597: WHERE UPPER(PT.period_type) = UPPER(p_freq);
598:
599: hr_utility.trace('v_annualizing_factor ='||
600: to_number(v_annualizing_factor));
601:
602: EXCEPTION WHEN no_data_found THEN
603:
607: -- 'Day' or 'Month' which do not map to a time period type.
608: -- So we'll do these by hand.
609:
610: IF UPPER(p_freq) = 'DAY' THEN
611: hr_utility.trace(' p_freq = DAY');
612: v_annualizing_factor := c_days_per_year;
613: ELSIF UPPER(p_freq) = 'MONTH' THEN
614: v_annualizing_factor := c_months_per_year;
615: hr_utility.trace(' p_freq = MONTH');
611: hr_utility.trace(' p_freq = DAY');
612: v_annualizing_factor := c_days_per_year;
613: ELSIF UPPER(p_freq) = 'MONTH' THEN
614: v_annualizing_factor := c_months_per_year;
615: hr_utility.trace(' p_freq = MONTH');
616: END IF;
617:
618: END;
619:
621:
622: END IF; -- (v_use_pay_basis = 0)
623:
624:
625: hr_utility.trace(' Getting out of Get_Annualizing_Factor for '||
626: v_pay_basis);
627: RETURN v_annualizing_factor;
628:
629: END Get_Annualizing_Factor;
632: BEGIN -- Convert Figure
633:
634: --begin_convert_period_type
635:
636: --hr_utility.trace_on(null,'UDFS');
637:
638: hr_utility.trace('UDFS Entered Convert_Period_Type');
639:
640: hr_utility.trace(' p_bus_grp_id: '|| p_bus_grp_id);
634: --begin_convert_period_type
635:
636: --hr_utility.trace_on(null,'UDFS');
637:
638: hr_utility.trace('UDFS Entered Convert_Period_Type');
639:
640: hr_utility.trace(' p_bus_grp_id: '|| p_bus_grp_id);
641: hr_utility.trace(' p_payroll_id: '||p_payroll_id);
642: hr_utility.trace(' p_tax_unit_id: '||p_tax_unit_id);
636: --hr_utility.trace_on(null,'UDFS');
637:
638: hr_utility.trace('UDFS Entered Convert_Period_Type');
639:
640: hr_utility.trace(' p_bus_grp_id: '|| p_bus_grp_id);
641: hr_utility.trace(' p_payroll_id: '||p_payroll_id);
642: hr_utility.trace(' p_tax_unit_id: '||p_tax_unit_id);
643: hr_utility.trace(' p_asst_work_schedule: '||p_asst_work_schedule);
644: hr_utility.trace(' p_asst_std_hours: '||p_asst_std_hours);
637:
638: hr_utility.trace('UDFS Entered Convert_Period_Type');
639:
640: hr_utility.trace(' p_bus_grp_id: '|| p_bus_grp_id);
641: hr_utility.trace(' p_payroll_id: '||p_payroll_id);
642: hr_utility.trace(' p_tax_unit_id: '||p_tax_unit_id);
643: hr_utility.trace(' p_asst_work_schedule: '||p_asst_work_schedule);
644: hr_utility.trace(' p_asst_std_hours: '||p_asst_std_hours);
645: hr_utility.trace(' p_figure: '||p_figure);
638: hr_utility.trace('UDFS Entered Convert_Period_Type');
639:
640: hr_utility.trace(' p_bus_grp_id: '|| p_bus_grp_id);
641: hr_utility.trace(' p_payroll_id: '||p_payroll_id);
642: hr_utility.trace(' p_tax_unit_id: '||p_tax_unit_id);
643: hr_utility.trace(' p_asst_work_schedule: '||p_asst_work_schedule);
644: hr_utility.trace(' p_asst_std_hours: '||p_asst_std_hours);
645: hr_utility.trace(' p_figure: '||p_figure);
646: hr_utility.trace(' p_from_freq : '||p_from_freq);
639:
640: hr_utility.trace(' p_bus_grp_id: '|| p_bus_grp_id);
641: hr_utility.trace(' p_payroll_id: '||p_payroll_id);
642: hr_utility.trace(' p_tax_unit_id: '||p_tax_unit_id);
643: hr_utility.trace(' p_asst_work_schedule: '||p_asst_work_schedule);
644: hr_utility.trace(' p_asst_std_hours: '||p_asst_std_hours);
645: hr_utility.trace(' p_figure: '||p_figure);
646: hr_utility.trace(' p_from_freq : '||p_from_freq);
647: hr_utility.trace(' p_to_freq: '||p_to_freq);
640: hr_utility.trace(' p_bus_grp_id: '|| p_bus_grp_id);
641: hr_utility.trace(' p_payroll_id: '||p_payroll_id);
642: hr_utility.trace(' p_tax_unit_id: '||p_tax_unit_id);
643: hr_utility.trace(' p_asst_work_schedule: '||p_asst_work_schedule);
644: hr_utility.trace(' p_asst_std_hours: '||p_asst_std_hours);
645: hr_utility.trace(' p_figure: '||p_figure);
646: hr_utility.trace(' p_from_freq : '||p_from_freq);
647: hr_utility.trace(' p_to_freq: '||p_to_freq);
648: hr_utility.trace(' p_period_start_date: '||p_period_start_date);
641: hr_utility.trace(' p_payroll_id: '||p_payroll_id);
642: hr_utility.trace(' p_tax_unit_id: '||p_tax_unit_id);
643: hr_utility.trace(' p_asst_work_schedule: '||p_asst_work_schedule);
644: hr_utility.trace(' p_asst_std_hours: '||p_asst_std_hours);
645: hr_utility.trace(' p_figure: '||p_figure);
646: hr_utility.trace(' p_from_freq : '||p_from_freq);
647: hr_utility.trace(' p_to_freq: '||p_to_freq);
648: hr_utility.trace(' p_period_start_date: '||p_period_start_date);
649:
642: hr_utility.trace(' p_tax_unit_id: '||p_tax_unit_id);
643: hr_utility.trace(' p_asst_work_schedule: '||p_asst_work_schedule);
644: hr_utility.trace(' p_asst_std_hours: '||p_asst_std_hours);
645: hr_utility.trace(' p_figure: '||p_figure);
646: hr_utility.trace(' p_from_freq : '||p_from_freq);
647: hr_utility.trace(' p_to_freq: '||p_to_freq);
648: hr_utility.trace(' p_period_start_date: '||p_period_start_date);
649:
650: hr_utility.trace(' p_period_end_date: '||p_period_end_date);
643: hr_utility.trace(' p_asst_work_schedule: '||p_asst_work_schedule);
644: hr_utility.trace(' p_asst_std_hours: '||p_asst_std_hours);
645: hr_utility.trace(' p_figure: '||p_figure);
646: hr_utility.trace(' p_from_freq : '||p_from_freq);
647: hr_utility.trace(' p_to_freq: '||p_to_freq);
648: hr_utility.trace(' p_period_start_date: '||p_period_start_date);
649:
650: hr_utility.trace(' p_period_end_date: '||p_period_end_date);
651: hr_utility.trace(' p_asst_std_freq: '||p_asst_std_freq);
644: hr_utility.trace(' p_asst_std_hours: '||p_asst_std_hours);
645: hr_utility.trace(' p_figure: '||p_figure);
646: hr_utility.trace(' p_from_freq : '||p_from_freq);
647: hr_utility.trace(' p_to_freq: '||p_to_freq);
648: hr_utility.trace(' p_period_start_date: '||p_period_start_date);
649:
650: hr_utility.trace(' p_period_end_date: '||p_period_end_date);
651: hr_utility.trace(' p_asst_std_freq: '||p_asst_std_freq);
652:
646: hr_utility.trace(' p_from_freq : '||p_from_freq);
647: hr_utility.trace(' p_to_freq: '||p_to_freq);
648: hr_utility.trace(' p_period_start_date: '||p_period_start_date);
649:
650: hr_utility.trace(' p_period_end_date: '||p_period_end_date);
651: hr_utility.trace(' p_asst_std_freq: '||p_asst_std_freq);
652:
653: --
654: -- If From_Freq and To_Freq are the same, then we're done.
647: hr_utility.trace(' p_to_freq: '||p_to_freq);
648: hr_utility.trace(' p_period_start_date: '||p_period_start_date);
649:
650: hr_utility.trace(' p_period_end_date: '||p_period_end_date);
651: hr_utility.trace(' p_asst_std_freq: '||p_asst_std_freq);
652:
653: --
654: -- If From_Freq and To_Freq are the same, then we're done.
655: --
660: RETURN p_figure;
661:
662: END IF;
663:
664: hr_utility.trace('Calling Get_Annualizing_Factor for FROM case');
665:
666: v_from_annualizing_factor := Get_Annualizing_Factor(
667: p_bg => p_bus_grp_id,
668: p_payroll => p_payroll_id,
671: p_asg_work_sched => p_asst_work_schedule,
672: p_asg_std_hrs => p_asst_std_hours,
673: p_asg_std_freq => p_asst_std_freq);
674:
675: hr_utility.trace('Calling Get_Annualizing_Factor for TO case');
676:
677: v_to_annualizing_factor := Get_Annualizing_Factor(
678: p_bg => p_bus_grp_id,
679: p_payroll => p_payroll_id,
686: --
687: -- Annualize "Figure" and convert to To_Freq.
688: --
689:
690: hr_utility.trace('v_from_annualizing_factor ='||
691: to_char(v_from_annualizing_factor));
692: hr_utility.trace('v_to_annualizing_factor ='||
693: to_char(v_to_annualizing_factor));
694:
688: --
689:
690: hr_utility.trace('v_from_annualizing_factor ='||
691: to_char(v_from_annualizing_factor));
692: hr_utility.trace('v_to_annualizing_factor ='||
693: to_char(v_to_annualizing_factor));
694:
695: IF v_to_annualizing_factor = 0 OR
696: v_to_annualizing_factor = -999 OR
696: v_to_annualizing_factor = -999 OR
697: v_from_annualizing_factor = -999
698: THEN
699:
700: hr_utility.trace(' v_to_ann =0 or -999 or v_from = -999');
701:
702: v_converted_figure := 0;
703:
704: ELSE
702: v_converted_figure := 0;
703:
704: ELSE
705:
706: hr_utility.trace(' v_to_ann NOT 0 or -999 or v_from = -999');
707:
708: hr_utility.trace('p_figure Monthly Salary = '||p_figure);
709: hr_utility.trace('v_from_annualizing_factor = '||
710: v_from_annualizing_factor);
704: ELSE
705:
706: hr_utility.trace(' v_to_ann NOT 0 or -999 or v_from = -999');
707:
708: hr_utility.trace('p_figure Monthly Salary = '||p_figure);
709: hr_utility.trace('v_from_annualizing_factor = '||
710: v_from_annualizing_factor);
711: hr_utility.trace('v_to_annualizing_factor = '||
712: v_to_annualizing_factor);
705:
706: hr_utility.trace(' v_to_ann NOT 0 or -999 or v_from = -999');
707:
708: hr_utility.trace('p_figure Monthly Salary = '||p_figure);
709: hr_utility.trace('v_from_annualizing_factor = '||
710: v_from_annualizing_factor);
711: hr_utility.trace('v_to_annualizing_factor = '||
712: v_to_annualizing_factor);
713:
707:
708: hr_utility.trace('p_figure Monthly Salary = '||p_figure);
709: hr_utility.trace('v_from_annualizing_factor = '||
710: v_from_annualizing_factor);
711: hr_utility.trace('v_to_annualizing_factor = '||
712: v_to_annualizing_factor);
713:
714: v_converted_figure :=
715: (p_figure * v_from_annualizing_factor) / v_to_annualizing_factor;
713:
714: v_converted_figure :=
715: (p_figure * v_from_annualizing_factor) / v_to_annualizing_factor;
716:
717: hr_utility.trace('conv figure is monthly_sal * ann_from div by ann to');
718:
719: END IF;
720:
721:
718:
719: END IF;
720:
721:
722: hr_utility.trace('UDFS v_converted_figure := '||v_converted_figure);
723:
724: --hr_utility.trace_off;
725:
726: RETURN v_converted_figure;
720:
721:
722: hr_utility.trace('UDFS v_converted_figure := '||v_converted_figure);
723:
724: --hr_utility.trace_off;
725:
726: RETURN v_converted_figure;
727:
728: END Convert_Period_Type;
759: v_day_no NUMBER;
760:
761: BEGIN -- Work_Sch_Total_Hours_or_Days
762:
763: --hr_utility.trace_on(null,'UDFS');
764: hr_utility.trace('p_bg_id '||p_bg_id);
765: hr_utility.trace('p_ws_name '||p_ws_name);
766: hr_utility.trace('p_range_start '||p_range_start);
767: hr_utility.trace('p_range_end '||p_range_end);
760:
761: BEGIN -- Work_Sch_Total_Hours_or_Days
762:
763: --hr_utility.trace_on(null,'UDFS');
764: hr_utility.trace('p_bg_id '||p_bg_id);
765: hr_utility.trace('p_ws_name '||p_ws_name);
766: hr_utility.trace('p_range_start '||p_range_start);
767: hr_utility.trace('p_range_end '||p_range_end);
768: hr_utility.trace('p_mode '||p_mode);
761: BEGIN -- Work_Sch_Total_Hours_or_Days
762:
763: --hr_utility.trace_on(null,'UDFS');
764: hr_utility.trace('p_bg_id '||p_bg_id);
765: hr_utility.trace('p_ws_name '||p_ws_name);
766: hr_utility.trace('p_range_start '||p_range_start);
767: hr_utility.trace('p_range_end '||p_range_end);
768: hr_utility.trace('p_mode '||p_mode);
769:
762:
763: --hr_utility.trace_on(null,'UDFS');
764: hr_utility.trace('p_bg_id '||p_bg_id);
765: hr_utility.trace('p_ws_name '||p_ws_name);
766: hr_utility.trace('p_range_start '||p_range_start);
767: hr_utility.trace('p_range_end '||p_range_end);
768: hr_utility.trace('p_mode '||p_mode);
769:
770: /* Init */
763: --hr_utility.trace_on(null,'UDFS');
764: hr_utility.trace('p_bg_id '||p_bg_id);
765: hr_utility.trace('p_ws_name '||p_ws_name);
766: hr_utility.trace('p_range_start '||p_range_start);
767: hr_utility.trace('p_range_end '||p_range_end);
768: hr_utility.trace('p_mode '||p_mode);
769:
770: /* Init */
771:
764: hr_utility.trace('p_bg_id '||p_bg_id);
765: hr_utility.trace('p_ws_name '||p_ws_name);
766: hr_utility.trace('p_range_start '||p_range_start);
767: hr_utility.trace('p_range_end '||p_range_end);
768: hr_utility.trace('p_mode '||p_mode);
769:
770: /* Init */
771:
772: v_total_units := 0;
901: END IF;
902:
903: v_total_units := v_total_units + v_unit;
904:
905: hr_utility.trace('v_day_no '||v_day_no);
906: hr_utility.trace('v_unit '||v_unit);
907: hr_utility.trace('v_total_units '||v_total_units);
908:
909: v_curr_date := v_curr_date + 1;
902:
903: v_total_units := v_total_units + v_unit;
904:
905: hr_utility.trace('v_day_no '||v_day_no);
906: hr_utility.trace('v_unit '||v_unit);
907: hr_utility.trace('v_total_units '||v_total_units);
908:
909: v_curr_date := v_curr_date + 1;
910:
903: v_total_units := v_total_units + v_unit;
904:
905: hr_utility.trace('v_day_no '||v_day_no);
906: hr_utility.trace('v_unit '||v_unit);
907: hr_utility.trace('v_total_units '||v_total_units);
908:
909: v_curr_date := v_curr_date + 1;
910:
911: --
918: END LOOP;
919:
920: --
921:
922: --hr_utility.trace_off;
923:
924: RETURN v_total_units;
925:
926: --
1039:
1040: OPEN c_get_variable_idw_value (p_assignment_id,
1041: p_effective_date );
1042: FETCH c_get_variable_idw_value INTO ln_variable_idw;
1043: hr_utility.trace('ln_variable_idw '|| ln_variable_idw);
1044:
1045: CLOSE c_get_variable_idw_value ;
1046: /* get the value for var_expiration_date input value */
1047:
1048: IF ln_variable_idw > 0 THEN
1049: OPEN c_get_var_expiration_date (p_assignment_id,
1050: p_effective_date );
1051: FETCH c_get_var_expiration_date INTO ln_var_expiration_date;
1052: hr_utility.trace('ln_var_expiration_date '|| ln_var_expiration_date);
1053:
1054: CLOSE c_get_var_expiration_date ;
1055: --
1056:
1055: --
1056:
1057: IF ln_var_expiration_date > ln_date_paid then
1058: ln_idw := ln_idw - p_variable_idw + ln_variable_idw;
1059: hr_utility.trace('ln_idw 300 '|| ln_idw);
1060: hr_utility.trace('p_variable_idw 300 '|| p_variable_idw);
1061: hr_utility.trace('ln_variable_idw '|| ln_variable_idw);
1062: p_variable_idw := ln_variable_idw;
1063: END IF;
1056:
1057: IF ln_var_expiration_date > ln_date_paid then
1058: ln_idw := ln_idw - p_variable_idw + ln_variable_idw;
1059: hr_utility.trace('ln_idw 300 '|| ln_idw);
1060: hr_utility.trace('p_variable_idw 300 '|| p_variable_idw);
1061: hr_utility.trace('ln_variable_idw '|| ln_variable_idw);
1062: p_variable_idw := ln_variable_idw;
1063: END IF;
1064: hr_utility.trace('p_variable_idw 310 '|| p_variable_idw);
1057: IF ln_var_expiration_date > ln_date_paid then
1058: ln_idw := ln_idw - p_variable_idw + ln_variable_idw;
1059: hr_utility.trace('ln_idw 300 '|| ln_idw);
1060: hr_utility.trace('p_variable_idw 300 '|| p_variable_idw);
1061: hr_utility.trace('ln_variable_idw '|| ln_variable_idw);
1062: p_variable_idw := ln_variable_idw;
1063: END IF;
1064: hr_utility.trace('p_variable_idw 310 '|| p_variable_idw);
1065: hr_utility.trace('p_fixed_idw 310 '|| p_fixed_idw);
1060: hr_utility.trace('p_variable_idw 300 '|| p_variable_idw);
1061: hr_utility.trace('ln_variable_idw '|| ln_variable_idw);
1062: p_variable_idw := ln_variable_idw;
1063: END IF;
1064: hr_utility.trace('p_variable_idw 310 '|| p_variable_idw);
1065: hr_utility.trace('p_fixed_idw 310 '|| p_fixed_idw);
1066: hr_utility.trace('ln_idw 310 '|| ln_idw);
1067: hr_utility.trace('ln_var_expiration_date 310 '|| ln_var_expiration_date);
1068: hr_utility.trace('ln_date_paid 310 '|| ln_date_paid);
1061: hr_utility.trace('ln_variable_idw '|| ln_variable_idw);
1062: p_variable_idw := ln_variable_idw;
1063: END IF;
1064: hr_utility.trace('p_variable_idw 310 '|| p_variable_idw);
1065: hr_utility.trace('p_fixed_idw 310 '|| p_fixed_idw);
1066: hr_utility.trace('ln_idw 310 '|| ln_idw);
1067: hr_utility.trace('ln_var_expiration_date 310 '|| ln_var_expiration_date);
1068: hr_utility.trace('ln_date_paid 310 '|| ln_date_paid);
1069: END IF;
1062: p_variable_idw := ln_variable_idw;
1063: END IF;
1064: hr_utility.trace('p_variable_idw 310 '|| p_variable_idw);
1065: hr_utility.trace('p_fixed_idw 310 '|| p_fixed_idw);
1066: hr_utility.trace('ln_idw 310 '|| ln_idw);
1067: hr_utility.trace('ln_var_expiration_date 310 '|| ln_var_expiration_date);
1068: hr_utility.trace('ln_date_paid 310 '|| ln_date_paid);
1069: END IF;
1070: ELSE
1063: END IF;
1064: hr_utility.trace('p_variable_idw 310 '|| p_variable_idw);
1065: hr_utility.trace('p_fixed_idw 310 '|| p_fixed_idw);
1066: hr_utility.trace('ln_idw 310 '|| ln_idw);
1067: hr_utility.trace('ln_var_expiration_date 310 '|| ln_var_expiration_date);
1068: hr_utility.trace('ln_date_paid 310 '|| ln_date_paid);
1069: END IF;
1070: ELSE
1071:
1064: hr_utility.trace('p_variable_idw 310 '|| p_variable_idw);
1065: hr_utility.trace('p_fixed_idw 310 '|| p_fixed_idw);
1066: hr_utility.trace('ln_idw 310 '|| ln_idw);
1067: hr_utility.trace('ln_var_expiration_date 310 '|| ln_var_expiration_date);
1068: hr_utility.trace('ln_date_paid 310 '|| ln_date_paid);
1069: END IF;
1070: ELSE
1071:
1072: /* old logic of get_idw executes here if p_execute_old_idw_code not equal to 'Y' */
1227: RETURN rn_rate;
1228:
1229: EXCEPTION WHEN OTHERS
1230: THEN
1231: hr_utility.raise_error;
1232: RETURN rn_rate;
1233: END get_fixed_idw;
1234:
1235: BEGIN
1272: --
1273: -- IDW Factor Table Method Modification
1274: --
1275: -- Get the idw calc method
1276: hr_utility.trace('Get IDW Calc Method ');
1277: hr_utility.trace('p_tax_unit_id ='||to_char(p_tax_unit_id));
1278: hr_utility.trace('p_effective_date ='||to_char(p_effective_date));
1279:
1280: lv_idw_calc_method := 'A';
1273: -- IDW Factor Table Method Modification
1274: --
1275: -- Get the idw calc method
1276: hr_utility.trace('Get IDW Calc Method ');
1277: hr_utility.trace('p_tax_unit_id ='||to_char(p_tax_unit_id));
1278: hr_utility.trace('p_effective_date ='||to_char(p_effective_date));
1279:
1280: lv_idw_calc_method := 'A';
1281: OPEN c_get_idw_calc_method (p_tax_unit_id,
1274: --
1275: -- Get the idw calc method
1276: hr_utility.trace('Get IDW Calc Method ');
1277: hr_utility.trace('p_tax_unit_id ='||to_char(p_tax_unit_id));
1278: hr_utility.trace('p_effective_date ='||to_char(p_effective_date));
1279:
1280: lv_idw_calc_method := 'A';
1281: OPEN c_get_idw_calc_method (p_tax_unit_id,
1282: p_effective_date );
1282: p_effective_date );
1283: FETCH c_get_idw_calc_method INTO lv_idw_calc_method;
1284: CLOSE c_get_idw_calc_method;
1285:
1286: hr_utility.trace('lv_idw_calc_method = '|| nvl(lv_idw_calc_method,'null'));
1287:
1288: IF lv_idw_calc_method is null or lv_idw_calc_method ='A' then
1289:
1290: hr_utility.trace('calculating using Method A Earnings Method' );
1286: hr_utility.trace('lv_idw_calc_method = '|| nvl(lv_idw_calc_method,'null'));
1287:
1288: IF lv_idw_calc_method is null or lv_idw_calc_method ='A' then
1289:
1290: hr_utility.trace('calculating using Method A Earnings Method' );
1291:
1292: -- calculate using Method A Earnings Method
1293: ln_rate := 0;
1294: ln_rate := get_mx_historic_rate (
1300: ,p_rate_code => 'MX_IDWF' );
1301:
1302: ELSIF lv_idw_calc_method ='B' then
1303:
1304: hr_utility.trace('calculating using Method B Factor Table Method' );
1305: hr_utility.trace('Get IDW Factor Table Name' );
1306: hr_utility.trace('assignment_id ='||to_char(asg_rec.assignment_id));
1307:
1308: -- calculate using Method B IDW Factor Method
1301:
1302: ELSIF lv_idw_calc_method ='B' then
1303:
1304: hr_utility.trace('calculating using Method B Factor Table Method' );
1305: hr_utility.trace('Get IDW Factor Table Name' );
1306: hr_utility.trace('assignment_id ='||to_char(asg_rec.assignment_id));
1307:
1308: -- calculate using Method B IDW Factor Method
1309: -- Get the IDW Factor table name entered in
1302: ELSIF lv_idw_calc_method ='B' then
1303:
1304: hr_utility.trace('calculating using Method B Factor Table Method' );
1305: hr_utility.trace('Get IDW Factor Table Name' );
1306: hr_utility.trace('assignment_id ='||to_char(asg_rec.assignment_id));
1307:
1308: -- calculate using Method B IDW Factor Method
1309: -- Get the IDW Factor table name entered in
1310: -- Integrated Daily Wage element
1313: FETCH c_get_idw_factor_tab_name INTO lv_idw_lookup_code
1314: ,lv_idw_factor_tab_name;
1315: CLOSE c_get_idw_factor_tab_name ;
1316:
1317: hr_utility.trace('lv_idw_factor_tab_name='||lv_idw_factor_tab_name);
1318:
1319: IF lv_idw_factor_tab_name is null then
1320: --hr_utility.raise_error;
1321: RETURN rn_idw;
1316:
1317: hr_utility.trace('lv_idw_factor_tab_name='||lv_idw_factor_tab_name);
1318:
1319: IF lv_idw_factor_tab_name is null then
1320: --hr_utility.raise_error;
1321: RETURN rn_idw;
1322: END IF;
1323:
1324: -- Check user table exists or not for lv_idw_factor_tab_name
1356:
1357: END IF;
1358:
1359: -- get the seniority
1360: hr_utility.trace('Get Seniority' );
1361:
1362: ln_seniority_years := hr_mx_utility.get_seniority_social_security(
1363: p_person_id => asg_rec.person_id
1364: ,p_effective_date => p_effective_date);
1362: ln_seniority_years := hr_mx_utility.get_seniority_social_security(
1363: p_person_id => asg_rec.person_id
1364: ,p_effective_date => p_effective_date);
1365:
1366: hr_utility.trace('ln_seniority_years = '||ln_seniority_years);
1367:
1368: -- get the FACTOR from the table
1369: -- by passing seniority years,
1370: -- Added fnd_number.canonical_to_number for bug 6815180
1374: p_col_name => 'Factor',
1375: p_row_value => ln_seniority_years,
1376: p_effective_date => p_effective_date));
1377:
1378: hr_utility.trace('ln_idw_factor = '||to_char(ln_idw_factor));
1379:
1380: hr_utility.trace('Get Base Pay ');
1381: hr_utility.trace('lv_contract_name =' || lv_contract_name );
1382:
1376: p_effective_date => p_effective_date));
1377:
1378: hr_utility.trace('ln_idw_factor = '||to_char(ln_idw_factor));
1379:
1380: hr_utility.trace('Get Base Pay ');
1381: hr_utility.trace('lv_contract_name =' || lv_contract_name );
1382:
1383: -- Get the Base Pay using historic rates
1384: ln_basepay_rate := 0;
1377:
1378: hr_utility.trace('ln_idw_factor = '||to_char(ln_idw_factor));
1379:
1380: hr_utility.trace('Get Base Pay ');
1381: hr_utility.trace('lv_contract_name =' || lv_contract_name );
1382:
1383: -- Get the Base Pay using historic rates
1384: ln_basepay_rate := 0;
1385: ln_basepay_rate := get_daily_base_pay (
1389: ,p_payroll_id => asg_rec.payroll_id
1390: ,p_effective_date => p_effective_date);
1391:
1392:
1393: hr_utility.trace('ln_basepay_rate = '||to_char(ln_basepay_rate));
1394:
1395: -- Calculate the fixed portion of idw
1396: ln_rate := ln_basepay_rate * ln_idw_factor ;
1397:
1394:
1395: -- Calculate the fixed portion of idw
1396: ln_rate := ln_basepay_rate * ln_idw_factor ;
1397:
1398: hr_utility.trace('fixed portion of idw ln_rate = '||to_char(ln_rate));
1399:
1400: END IF ; -- lv_idw_calc_method
1401:
1402: p_fixed_idw := p_fixed_idw + ln_rate;
1403: rn_idw := rn_idw + ln_rate;
1404:
1405: /* Bug#9921174: l_vidw_effective_date is date paid of the payroll process, this date should
1406: be used to get previous bimonth start and report dates */
1407: hr_utility.trace('Variable IDW effective_date-l_vidw_effective_date = '||l_vidw_effective_date);
1408: IF (p_mode LIKE '%REPORT')
1409: THEN
1410: --{
1411: SELECT
1717: BEGIN
1718: --{
1719:
1720: lb_contract_exists := TRUE;
1721: hr_utility.trace('Entering pay_mx_ff_udfs.get_contract_name');
1722: pay_mx_utility.get_no_of_days_for_org(
1723: p_business_group_id => p_business_group_id,
1724: p_org_id => p_tax_unit_id,
1725: p_gre_or_le => 'GRE',
1740: p_gre_or_le => 'LE',
1741: p_days_year => ln_days_year,
1742: p_days_month => ln_days_month);
1743:
1744: hr_utility.trace('ln_days_year = '|| to_char(ln_days_year));
1745: IF (ln_days_year IS NULL)
1746: THEN
1747: --{
1748: SELECT period_type
1770: rv_contract_name := 'IDW CALCULATION (Ten Days PAYROLL)';
1771: --}
1772: ELSE
1773: --{
1774: hr_utility.raise_error;
1775: --}
1776: END IF;
1777:
1778: --}
1795:
1796: BEGIN
1797: --{
1798: ln_contract_days := NULL;
1799: hr_utility.trace('Getting contract days..');
1800: ln_contract_days := fnd_number.canonical_to_number(hruserdt.get_table_value(
1801: p_bus_group_id => p_business_group_id,
1802: p_table_name => 'PQP_CONTRACT_TYPES',
1803: p_col_name => 'Days Divisor',
1802: p_table_name => 'PQP_CONTRACT_TYPES',
1803: p_col_name => 'Days Divisor',
1804: p_row_value => rv_contract_name,
1805: p_effective_date => p_calculation_date));
1806: hr_utility.trace('ln_contract_days = '|| TO_CHAR (ln_contract_days));
1807: EXCEPTION
1808: WHEN NO_DATA_FOUND THEN
1809: lb_contract_exists := FALSE;
1810: --}
1818: p_days_in_year => ln_days_year,
1819: p_exists => lb_contract_exists);
1820: --}
1821: END IF;
1822: hr_utility.trace('leaving pay_mx_ff_udfs.get_contract_name');
1823: RETURN rv_contract_name;
1824: --}
1825:
1826: END get_contract_name;
1835: p_business_group_id => p_business_group_id,
1836: p_tax_unit_id => p_tax_unit_id,
1837: p_payroll_id => p_payroll_id,
1838: p_calculation_date => p_effective_date);
1839: hr_utility.trace('before getting the rate from pqp..');
1840: ln_rate := pqp_rates_history_calc.get_historic_rate(
1841: p_assignment_id => p_assignment_id,
1842: p_rate_name => lv_rate_name,
1843: p_effective_date => p_effective_date,
1843: p_effective_date => p_effective_date,
1844: p_time_dimension => 'D',
1845: p_rate_type_or_element => 'R',
1846: p_contract_type => lv_contract_name);
1847: hr_utility.trace('pqp_rates_history_calc.get_historic_rate');
1848: RETURN ln_rate;
1849:
1850: EXCEPTION
1851: WHEN others THEN
1863: ln_daily_base_pay NUMBER;
1864:
1865: BEGIN
1866:
1867: hr_utility.trace('Get Daily Base Pay ');
1868:
1869: -- Get the Base Pay using historic rates
1870: ln_daily_base_pay := 0;
1871: ln_daily_base_pay := get_mx_historic_rate (
1875: ,p_payroll_id => p_payroll_id
1876: ,p_effective_date => p_effective_date
1877: ,p_rate_code => 'MX_BASE' );
1878:
1879: hr_utility.trace('ln_daily_base_pay = '||to_char(ln_daily_base_pay));
1880:
1881: RETURN ln_daily_base_pay;
1882:
1883: EXCEPTION
1899: ln_days_in_a_month NUMBER;
1900: lv_period_type pay_all_payrolls_f.period_type%TYPE;
1901:
1902: BEGIN
1903: hr_utility.trace('Begin Get Base Pay for Tax Calculation');
1904:
1905: -- Get the Base Pay using historic rates
1906: ln_daily_base_pay := 0;
1907: ln_daily_base_pay := get_daily_base_pay (
1910: ,p_tax_unit_id => p_tax_unit_id
1911: ,p_payroll_id => p_payroll_id
1912: ,p_effective_date => p_effective_date);
1913:
1914: hr_utility.trace('ln_daily_base_pay = '||ln_daily_base_pay);
1915:
1916: IF p_month_or_pay_period = 'MONTH' THEN
1917:
1918: ln_days_in_a_month := pay_mx_utility.get_days_in_month(
1962:
1963:
1964: END IF;
1965:
1966: hr_utility.trace('ln_base_pay = '|| ln_base_pay);
1967: hr_utility.trace('End Get Base Pay for Tax Calculation');
1968:
1969: RETURN ( ln_base_pay );
1970:
1963:
1964: END IF;
1965:
1966: hr_utility.trace('ln_base_pay = '|| ln_base_pay);
1967: hr_utility.trace('End Get Base Pay for Tax Calculation');
1968:
1969: RETURN ( ln_base_pay );
1970:
1971: EXCEPTION
1985: INTO ln_date_paid from pay_payroll_actions
1986: WHERE payroll_action_id=p_payroll_action_id;
1987:
1988:
1989: hr_utility.trace('assignment date paid '||ln_date_paid);
1990: return ln_date_paid;
1991: EXCEPTION
1992: WHEN OTHERS THEN
1993: hr_utility.trace('No paid date for assignment '||ln_date_paid );
1989: hr_utility.trace('assignment date paid '||ln_date_paid);
1990: return ln_date_paid;
1991: EXCEPTION
1992: WHEN OTHERS THEN
1993: hr_utility.trace('No paid date for assignment '||ln_date_paid );
1994: return null;
1995: END; /* get_date_paid */
1996:
1997: /*
2031:
2032:
2033: BEGIN
2034:
2035: hr_utility.trace('Entering into the function pay_mx_ff_udfs.get_tax_balance ');
2036: OPEN c_get_def_bal_id;
2037: FETCH c_get_def_bal_id INTO ln_def_bal_id;
2038:
2039: IF c_get_def_bal_id%FOUND then
2036: OPEN c_get_def_bal_id;
2037: FETCH c_get_def_bal_id INTO ln_def_bal_id;
2038:
2039: IF c_get_def_bal_id%FOUND then
2040: hr_utility.trace('def bal id for '||p_entity_name||'is '||ln_def_bal_id);
2041: ln_balance_value := pay_balance_pkg.get_value(ln_def_bal_id,
2042: p_assignment_action_id,
2043: p_tax_unit_id,
2044: null,
2048: null,
2049: null,
2050: 'TRUE');
2051: ELSE
2052: hr_utility.trace('def bal id NOT FOUND for '||p_entity_name||'is '||ln_def_bal_id);
2053: hr_utility.raise_error;
2054: END IF;
2055: CLOSE c_get_def_bal_id;
2056: hr_utility.trace('ln_balance_value '||ln_balance_value);
2049: null,
2050: 'TRUE');
2051: ELSE
2052: hr_utility.trace('def bal id NOT FOUND for '||p_entity_name||'is '||ln_def_bal_id);
2053: hr_utility.raise_error;
2054: END IF;
2055: CLOSE c_get_def_bal_id;
2056: hr_utility.trace('ln_balance_value '||ln_balance_value);
2057:
2052: hr_utility.trace('def bal id NOT FOUND for '||p_entity_name||'is '||ln_def_bal_id);
2053: hr_utility.raise_error;
2054: END IF;
2055: CLOSE c_get_def_bal_id;
2056: hr_utility.trace('ln_balance_value '||ln_balance_value);
2057:
2058: hr_utility.trace('Leaving the function pay_mx_ff_udfs.get_tax_balance ');
2059: RETURN ln_balance_value;
2060:
2054: END IF;
2055: CLOSE c_get_def_bal_id;
2056: hr_utility.trace('ln_balance_value '||ln_balance_value);
2057:
2058: hr_utility.trace('Leaving the function pay_mx_ff_udfs.get_tax_balance ');
2059: RETURN ln_balance_value;
2060:
2061: END; /*GET_TAX_BALANCE*/
2062: