1: package body pay_advance_pay_pkg as
2: /* $Header: paywsahp.pkb 120.0 2005/05/29 02:44:29 appldev noship $ */
3: --
4: --------------------------------------------------------------------------------
5: /*
9: | All rights reserved. |
10: +==============================================================================+
11: --
12: Name
13: PAY_ADVANCE_PAY_PKG
14:
15: Purpose
16: Server agent for PAYWSAHP form.
17:
115: and fue.business_group_id = asg.business_group_id)));
116: --
117: begin
118: --
119: hr_utility.set_location('pay_advance_pay_pkg.get_balance', 5);
120:
121: open creator_id;
122: fetch creator_id into l_creator_id;
123: --
131: close creator_id;
132:
133: return l_balance_value;
134:
135: hr_utility.set_location('pay_advance_pay_pkg.get_balance', 80);
136:
137: end get_balance;
138: -------------------------------------------------------------------------------
139: function get_processed_flag
240: ptp.end_date >= p_session_date;
241: --
242: begin
243: --
244: hr_utility.set_location('pay_advance_pay_pkg.get_period_end_date' , 5);
245:
246: open period_end_date;
247: fetch period_end_date into l_period_end_date;
248:
255: close period_end_date;
256: --
257: return l_period_end_date;
258: --
259: hr_utility.set_location('pay_advance_pay_pkg.get_period_end_date' , 80);
260: --
261: end get_period_end_date;
262: ------------------------------------------------------------------------
263: function get_period_start_date
290: ptp.end_date >= p_session_date;
291:
292: begin
293:
294: hr_utility.set_location('pay_advance_pay_pkg.get_period_start_date' , 5);
295:
296: open period_start_date;
297: fetch period_start_date into l_period_start_date;
298:
304: close period_start_date;
305: --
306: return l_period_start_date;
307: --
308: hr_utility.set_location('pay_advance_pay_pkg.get_period_start_date' , 80);
309: --
310: end get_period_start_date;
311: ------------------------------------------------------------------------
312: function get_advance_period_start_date
365: aptp.end_date >= ptp.regular_payment_date;
366:
367: begin
368:
369: hr_utility.set_location('pay_advance_pay_pkg.get_advance_period_start_date' , 5);
370: if p_flag = 'N' then
371: open period_start_date;
372: fetch period_start_date into l_period_start_date;
373:
392: end if;
393: --
394: return l_period_start_date;
395: --
396: hr_utility.set_location('pay_advance_pay_pkg.get_advance_period_start_date' , 80);
397: --
398: end get_advance_period_start_date;
399: ------------------------------------------------------------------------
400: function get_advance_period_end_date
453: aptp.end_date >= ptp.regular_payment_date;
454:
455: begin
456:
457: hr_utility.set_location('pay_advance_pay_pkg.get_advance_period_end_date' , 5);
458:
459: if p_flag = 'N' then
460: --
461: open period_start_date;
483: end if;
484: --
485: return l_period_start_date;
486: --
487: hr_utility.set_location('pay_advance_pay_pkg.get_advance_period_end_date' , 80);
488: --
489: end get_advance_period_end_date;
490: ------------------------------------------------------------------------
491: procedure insert_indicator_entries
524: l_pai_element_entry_id number;
525: --
526: begin
527: --
528: hr_utility.set_location('pay_advance_pay_pkg.insert_indicator_entries', 5);
529: --
530: l_arrears_offset := 0;
531: l_advance_pay := 'Y';
532: l_defer_pay := p_defer_flag;
537: -- Pay Advance Indicator Entry.
538: --
539: -- entry start and end dates are both end of the period. If assignment starts
540: -- or finishes in the middle of the period, entry will still be created.
541: l_element_entry_start_date := pay_advance_pay_pkg.get_period_end_date
542: (
543: p_assignment_id,
544: l_session_date
545: );
545: );
546: --
547: l_element_entry_end_date := l_element_entry_start_date;
548:
549: hr_utility.set_location('pay_advance_pay_pkg.insert_indicator_entries', 60);
550: --
551: hr_entry_api.insert_element_entry
552: (
553: p_effective_start_date => l_element_entry_start_date,
587:
588: hr_utility.trace('l_element_entry_start_date (1): ' ||
589: fnd_date.date_to_canonical(l_element_entry_start_date));
590:
591: l_element_entry_end_date := pay_advance_pay_pkg.get_period_end_date
592: (
593: p_assignment_id,
594: l_element_entry_start_date
595: );
609: l_pay_periods = (p_periods_advanced + l_arrears_offset) then
610: l_defer_pay := 'N';
611: end if;
612: --
613: hr_utility.set_location('pay_advance_pay_pkg.insert_indicator_entries', 70);
614: --
615: hr_entry_api.insert_element_entry
616: (
617: p_effective_start_date => l_element_entry_start_date,
637: -- move to the next pay period
638: --
639: hr_utility.trace('l_element_entry_start_date (2): ' ||
640: fnd_date.date_to_canonical(l_element_entry_start_date));
641: l_element_entry_start_date := pay_advance_pay_pkg.get_period_end_date
642: (
643: p_assignment_id,
644: l_element_entry_start_date
645: ) + 1;
646: --
647: hr_utility.trace('l_element_entry_start_date (3): ' ||
648: fnd_date.date_to_canonical(l_element_entry_start_date));
649: --
650: l_element_entry_end_date := pay_advance_pay_pkg.get_period_end_date
651: (
652: p_assignment_id,
653: l_element_entry_start_date
654: );
657: --
658: p_session_date := l_session_date;
659: p_pai_element_entry_id := l_pai_element_entry_id;
660: --
661: hr_utility.set_location('pay_advance_pay_pkg.insert_indicator_entries', 80);
662: --
663: end insert_indicator_entries;
664: ------------------------------------------------------------------------
665: procedure delete_indicator_entries
713: and l_indicators_end_date;
714:
715: begin
716: --
717: hr_utility.set_location('pay_advance_pay_pkg.delete_indicator_entries' , 5);
718: --
719: -- fetch advance dates
720: open advance_dates;
721: fetch advance_dates into l_indicators_start_date,
732: );
733: --
734: -- for arrears payroll, there will be an aditional Advance Indicator entry
735: if p_arrears_flag = 'Y' then
736: l_indicators_start_date := pay_advance_pay_pkg.get_period_start_date
737: (
738: p_assignment_id,
739: l_indicators_start_date - 1
740: );
754: l_effective_start_date;
755:
756: while corresponding_ai_entries%found loop
757:
758: hr_utility.set_location('pay_advance_pay_pkg.delete_indicator_entries' , 10);
759:
760: hr_entry_api.delete_element_entry
761: (
762: p_dt_delete_mode =>'ZAP',
771: end loop;
772:
773: close corresponding_ai_entries;
774:
775: hr_utility.set_location('pay_advance_pay_pkg.delete_indicator_entries' , 80);
776:
777: end delete_indicator_entries;
778: ------------------------------------------------------------------------
779: end pay_advance_pay_pkg;
775: hr_utility.set_location('pay_advance_pay_pkg.delete_indicator_entries' , 80);
776:
777: end delete_indicator_entries;
778: ------------------------------------------------------------------------
779: end pay_advance_pay_pkg;