1: package body pay_advance_pay_pkg as
2: /* $Header: paywsahp.pkb 120.2 2012/01/19 08:27:56 rpahune ship $ */
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:
117: and fue.business_group_id = asg.business_group_id)));
118: --
119: begin
120: --
121: hr_utility.set_location('pay_advance_pay_pkg.get_balance', 5);
122:
123: open creator_id;
124: fetch creator_id into l_creator_id;
125: --
133: close creator_id;
134:
135: return l_balance_value;
136:
137: hr_utility.set_location('pay_advance_pay_pkg.get_balance', 80);
138:
139: end get_balance;
140: -------------------------------------------------------------------------------
141: function get_processed_flag
242: ptp.end_date >= p_session_date;
243: --
244: begin
245: --
246: hr_utility.set_location('pay_advance_pay_pkg.get_period_end_date' , 5);
247:
248: open period_end_date;
249: fetch period_end_date into l_period_end_date;
250:
257: close period_end_date;
258: --
259: return l_period_end_date;
260: --
261: hr_utility.set_location('pay_advance_pay_pkg.get_period_end_date' , 80);
262: --
263: end get_period_end_date;
264: ------------------------------------------------------------------------
265: function get_period_start_date
292: ptp.end_date >= p_session_date;
293:
294: begin
295:
296: hr_utility.set_location('pay_advance_pay_pkg.get_period_start_date' , 5);
297:
298: open period_start_date;
299: fetch period_start_date into l_period_start_date;
300:
306: close period_start_date;
307: --
308: return l_period_start_date;
309: --
310: hr_utility.set_location('pay_advance_pay_pkg.get_period_start_date' , 80);
311: --
312: end get_period_start_date;
313: ------------------------------------------------------------------------
314: function get_advance_period_start_date
367: aptp.end_date >= ptp.regular_payment_date;
368:
369: begin
370:
371: hr_utility.set_location('pay_advance_pay_pkg.get_advance_period_start_date' , 5);
372: if p_flag = 'N' then
373: open period_start_date;
374: fetch period_start_date into l_period_start_date;
375:
394: end if;
395: --
396: return l_period_start_date;
397: --
398: hr_utility.set_location('pay_advance_pay_pkg.get_advance_period_start_date' , 80);
399: --
400: end get_advance_period_start_date;
401: ------------------------------------------------------------------------
402: function get_advance_period_end_date
455: aptp.end_date >= ptp.regular_payment_date;
456:
457: begin
458:
459: hr_utility.set_location('pay_advance_pay_pkg.get_advance_period_end_date' , 5);
460:
461: if p_flag = 'N' then
462: --
463: open period_start_date;
485: end if;
486: --
487: return l_period_start_date;
488: --
489: hr_utility.set_location('pay_advance_pay_pkg.get_advance_period_end_date' , 80);
490: --
491: end get_advance_period_end_date;
492: ------------------------------------------------------------------------
493: procedure insert_indicator_entries
526: l_pai_element_entry_id number;
527: --
528: begin
529: --
530: hr_utility.set_location('pay_advance_pay_pkg.insert_indicator_entries', 5);
531: --
532: l_arrears_offset := 0;
533: l_advance_pay := 'Y';
534: l_defer_pay := p_defer_flag;
539: -- Pay Advance Indicator Entry.
540: --
541: -- entry start and end dates are both end of the period. If assignment starts
542: -- or finishes in the middle of the period, entry will still be created.
543: l_element_entry_start_date := pay_advance_pay_pkg.get_period_end_date
544: (
545: p_assignment_id,
546: l_session_date
547: );
547: );
548: --
549: l_element_entry_end_date := l_element_entry_start_date;
550:
551: hr_utility.set_location('pay_advance_pay_pkg.insert_indicator_entries', 60);
552: --
553: hr_entry_api.insert_element_entry
554: (
555: p_effective_start_date => l_element_entry_start_date,
589:
590: hr_utility.trace('l_element_entry_start_date (1): ' ||
591: fnd_date.date_to_canonical(l_element_entry_start_date));
592:
593: l_element_entry_end_date := pay_advance_pay_pkg.get_period_end_date
594: (
595: p_assignment_id,
596: l_element_entry_start_date
597: );
611: l_pay_periods = (p_periods_advanced + l_arrears_offset) then
612: l_defer_pay := 'N';
613: end if;
614: --
615: hr_utility.set_location('pay_advance_pay_pkg.insert_indicator_entries', 70);
616: --
617: hr_entry_api.insert_element_entry
618: (
619: p_effective_start_date => l_element_entry_start_date,
639: -- move to the next pay period
640: --
641: hr_utility.trace('l_element_entry_start_date (2): ' ||
642: fnd_date.date_to_canonical(l_element_entry_start_date));
643: l_element_entry_start_date := pay_advance_pay_pkg.get_period_end_date
644: (
645: p_assignment_id,
646: l_element_entry_start_date
647: ) + 1;
648: --
649: hr_utility.trace('l_element_entry_start_date (3): ' ||
650: fnd_date.date_to_canonical(l_element_entry_start_date));
651: --
652: l_element_entry_end_date := pay_advance_pay_pkg.get_period_end_date
653: (
654: p_assignment_id,
655: l_element_entry_start_date
656: );
659: --
660: p_session_date := l_session_date;
661: p_pai_element_entry_id := l_pai_element_entry_id;
662: --
663: hr_utility.set_location('pay_advance_pay_pkg.insert_indicator_entries', 80);
664: --
665: end insert_indicator_entries;
666: ------------------------------------------------------------------------
667: procedure delete_indicator_entries
715: and l_indicators_end_date;
716:
717: begin
718: --
719: hr_utility.set_location('pay_advance_pay_pkg.delete_indicator_entries' , 5);
720: --
721: -- fetch advance dates
722: open advance_dates;
723: fetch advance_dates into l_indicators_start_date,
734: );
735: --
736: -- for arrears payroll, there will be an aditional Advance Indicator entry
737: if p_arrears_flag = 'Y' then
738: l_indicators_start_date := pay_advance_pay_pkg.get_period_start_date
739: (
740: p_assignment_id,
741: l_indicators_start_date - 1
742: );
756: l_effective_start_date;
757:
758: while corresponding_ai_entries%found loop
759:
760: hr_utility.set_location('pay_advance_pay_pkg.delete_indicator_entries' , 10);
761:
762: hr_entry_api.delete_element_entry
763: (
764: p_dt_delete_mode =>'ZAP',
773: end loop;
774:
775: close corresponding_ai_entries;
776:
777: hr_utility.set_location('pay_advance_pay_pkg.delete_indicator_entries' , 80);
778:
779: end delete_indicator_entries;
780: ------------------------------------------------------------------------
781: end pay_advance_pay_pkg;
777: hr_utility.set_location('pay_advance_pay_pkg.delete_indicator_entries' , 80);
778:
779: end delete_indicator_entries;
780: ------------------------------------------------------------------------
781: end pay_advance_pay_pkg;