21:
22:
23: BEGIN
24:
25: hr_utility.set_location('Start of range_code',1);
26: --------------------------------------------------------------------------------+
27: -- Call to range_code from common apac package 'pay_apac_payslip_archive'
28: -- to archive the payroll action level data and EIT defintions.
29: --------------------------------------------------------------------------------+
32: pay_core_payslip_utils.range_cursor( p_payroll_action_id,
33: p_sql
34: );
35: --
36: hr_utility.set_location('End of range_code',2);
37: EXCEPTION
38: WHEN OTHERS THEN
39: hr_utility.set_location('Error in range code',2);
40: RAISE;
35: --
36: hr_utility.set_location('End of range_code',2);
37: EXCEPTION
38: WHEN OTHERS THEN
39: hr_utility.set_location('Error in range code',2);
40: RAISE;
41:
42: END range_code;
43:
52: PROCEDURE initialization_code (p_payroll_action_id IN pay_payroll_actions.payroll_action_id%TYPE) IS
53:
54:
55: BEGIN
56: hr_utility.set_location('Start of initialization_code',1);
57:
58: g_archive_pact := p_payroll_action_id;
59:
60: ------------------------------------------------------------------+
64: ------------------------------------------------------------------+
65:
66: pay_apac_payslip_archive.initialization_code(p_payroll_action_id => p_payroll_action_id);
67:
68: hr_utility.set_location('End of initialization_code',2);
69:
70: EXCEPTION
71: WHEN OTHERS THEN
72: hr_utility.set_location('Error in initialization_code',2);
68: hr_utility.set_location('End of initialization_code',2);
69:
70: EXCEPTION
71: WHEN OTHERS THEN
72: hr_utility.set_location('Error in initialization_code',2);
73: RAISE;
74:
75: END initialization_code;
76:
96: p_start_person IN per_all_people_f.person_id%TYPE,
97: p_end_person IN per_all_people_f.person_id%TYPE,
98: p_chunk IN NUMBER) IS
99: BEGIN
100: hr_utility.set_location('Start of Assignment_Action_Code',1);
101: pay_core_payslip_utils.action_creation ( p_payroll_action_id,
102: p_start_person,
103: p_end_person,
104: p_chunk,
103: p_end_person,
104: p_chunk,
105: 'SG_PAYSLIP_ARCHIVE',
106: 'SG');
107: hr_utility.set_location('End of Assignment_Action_Code',2);
108: EXCEPTION
109: WHEN OTHERS THEN
110: hr_utility.set_location('Error in Assignment_Action_Code',2);
111: RAISE;
106: 'SG');
107: hr_utility.set_location('End of Assignment_Action_Code',2);
108: EXCEPTION
109: WHEN OTHERS THEN
110: hr_utility.set_location('Error in Assignment_Action_Code',2);
111: RAISE;
112: END assignment_action_code;
113:
114:
147: l_procedure_name VARCHAR2(80) ;
148:
149: BEGIN
150: l_procedure_name := 'archive_stat_elements';
151: hr_utility.set_location('Entering Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
152:
153: FOR csr_rec IN csr_std_elements(p_assignment_action_id,p_assignment_id)
154:
155: LOOP
153: FOR csr_rec IN csr_std_elements(p_assignment_action_id,p_assignment_id)
154:
155: LOOP
156:
157: hr_utility.set_location('Archiving Standard Element Details',20);
158:
159: /* Start of Bug No : 2643038 */
160: IF nvl(csr_rec.exchange_rate,0) <> 0 THEN
161: l_foreign_currency_amount := csr_rec.amount / csr_rec.exchange_rate;
187: , p_action_information12 => csr_rec.foreign_currency_code);
188:
189:
190: END LOOP;
191: hr_utility.trace('Closing Cursor csr_std_elements');
192: hr_utility.set_location('End of archive Standard Element',4);
193: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
194:
195: EXCEPTION
188:
189:
190: END LOOP;
191: hr_utility.trace('Closing Cursor csr_std_elements');
192: hr_utility.set_location('End of archive Standard Element',4);
193: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
194:
195: EXCEPTION
196: WHEN OTHERS THEN
189:
190: END LOOP;
191: hr_utility.trace('Closing Cursor csr_std_elements');
192: hr_utility.set_location('End of archive Standard Element',4);
193: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
194:
195: EXCEPTION
196: WHEN OTHERS THEN
197: hr_utility.set_location('Error in archiving Standard Elements ',5);
193: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
194:
195: EXCEPTION
196: WHEN OTHERS THEN
197: hr_utility.set_location('Error in archiving Standard Elements ',5);
198: RAISE;
199:
200: END archive_stat_elements;
201:
216: l_procedure_name VARCHAR2(80);
217:
218: BEGIN
219: l_procedure_name := 'archive_balances';
220: hr_utility.set_location('Entering Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
221: hr_utility.set_location('archiving balances :',10);
222:
223: -- Archive Statutory balances
224:
217:
218: BEGIN
219: l_procedure_name := 'archive_balances';
220: hr_utility.set_location('Entering Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
221: hr_utility.set_location('archiving balances :',10);
222:
223: -- Archive Statutory balances
224:
225: pay_action_information_api.create_action_information
236: , p_action_information3 => NULL
237: , p_action_information4 => fnd_number.number_to_canonical(p_ytd) -- Bug 3604110
238: );
239:
240: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
241:
242:
243: EXCEPTION
244: WHEN OTHERS THEN
241:
242:
243: EXCEPTION
244: WHEN OTHERS THEN
245: hr_utility.set_location('Error in archiving balance :',11);
246: RAISE;
247:
248: END archive_balances;
249:
263: l_procedure_name VARCHAR2(80);
264:
265: BEGIN
266: l_procedure_name := 'archive_cpf_balances';
267: hr_utility.set_location('Entering Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
268: hr_utility.set_location('archiving cpf balances :',10);
269:
270: -- Archive CPF balances
271:
264:
265: BEGIN
266: l_procedure_name := 'archive_cpf_balances';
267: hr_utility.set_location('Entering Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
268: hr_utility.set_location('archiving cpf balances :',10);
269:
270: -- Archive CPF balances
271:
272: pay_action_information_api.create_action_information
284: , p_action_information4 => fnd_number.number_to_canonical(p_curr) -- Bug 3604110
285: , p_action_information5 => fnd_number.number_to_canonical(p_ytd) -- Bug 3604110
286: );
287:
288: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
289:
290:
291: EXCEPTION
292: WHEN OTHERS THEN
289:
290:
291: EXCEPTION
292: WHEN OTHERS THEN
293: hr_utility.set_location('Error in archiving CPF_balances :',11);
294: RAISE;
295:
296: END archive_cpf_balances;
297:
337: /* Bug 2824397 */
338:
339: BEGIN
340: l_procedure_name := 'archive_stat_balances';
341: hr_utility.set_location('Entering Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
342: hr_utility.set_location('Calling balance_total from pay_sg_soe_pkg',20);
343:
344: /* Bug 2824397 */
345: open c_person_id(p_assignment_id);
338:
339: BEGIN
340: l_procedure_name := 'archive_stat_balances';
341: hr_utility.set_location('Entering Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
342: hr_utility.set_location('Calling balance_total from pay_sg_soe_pkg',20);
343:
344: /* Bug 2824397 */
345: open c_person_id(p_assignment_id);
346: fetch c_person_id into l_person_id;
371: );
372:
373: l_narrative := 'Gross Income';
374:
375: hr_utility.set_location('Archiving value for ' || l_narrative,30);
376:
377: archive_balances(p_effective_date =>p_effective_date
378: ,p_assact_id =>p_assact_id
379: ,p_narrative =>l_narrative
381:
382:
383: l_narrative := 'Statutory Deductions';
384:
385: hr_utility.set_location('Archiving value for ' || l_narrative,40);
386:
387: archive_balances(p_effective_date => p_effective_date
388: ,p_assact_id => p_assact_id
389: ,p_narrative => l_narrative
391:
392:
393: l_narrative := 'Other Deductions';
394:
395: hr_utility.set_location('Archiving value for ' || l_narrative,50);
396:
397: archive_balances(p_effective_date => p_effective_date
398: ,p_assact_id => p_assact_id
399: ,p_narrative => l_narrative
401:
402:
403: l_narrative := 'Net Payment';
404:
405: hr_utility.set_location('Archiving value for ' || l_narrative,60);
406:
407: archive_balances(p_effective_date => p_effective_date
408: ,p_assact_id => p_assact_id
409: ,p_narrative => l_narrative
411:
412:
413: l_narrative := 'Non Payroll Payments';
414:
415: hr_utility.set_location('Archiving value for ' || l_narrative,70);
416:
417: archive_balances(p_effective_date => p_effective_date
418: ,p_assact_id => p_assact_id
419: ,p_narrative => l_narrative
421:
422:
423: l_narrative := 'Employee';
424:
425: hr_utility.set_location('Archiving value for ' || l_narrative,70);
426:
427: archive_cpf_balances(p_effective_date => p_effective_date
428: ,p_assact_id => p_assact_id
429: ,p_narrative => l_narrative
433:
434:
435: l_narrative := 'Employer';
436:
437: hr_utility.set_location('Archiving value for ' || l_narrative,70);
438:
439: archive_cpf_balances(p_effective_date => p_effective_date
440: ,p_assact_id => p_assact_id
441: ,p_narrative => l_narrative
442: ,p_curr => l_employer_cpf_current
443: ,p_ytd => l_employer_cpf_ytd);
444:
445:
446: hr_utility.set_location('End of Archiving Stat Balances ',100);
447:
448: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,110);
449:
450: EXCEPTION
444:
445:
446: hr_utility.set_location('End of Archiving Stat Balances ',100);
447:
448: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,110);
449:
450: EXCEPTION
451: WHEN OTHERS THEN
452: hr_utility.set_location('error in calling archive balance code :',11);
448: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,110);
449:
450: EXCEPTION
451: WHEN OTHERS THEN
452: hr_utility.set_location('error in calling archive balance code :',11);
453: RAISE;
454:
455: END archive_stat_balances;
456:
549: l_currency_code VARCHAR2(15);
550:
551: BEGIN
552: l_procedure_name := 'archive_employee_details';
553: hr_utility.set_location('Entering Procedure pay_sg_payslip_archive.'|| l_procedure_name,10);
554:
555:
556: -- call generic procedure to retrieve and archive all data for
557: -- EMPLOYEE DETAILS, ADDRESS DETAILS and EMPLOYEE NET PAY DISTRIBUTION
555:
556: -- call generic procedure to retrieve and archive all data for
557: -- EMPLOYEE DETAILS, ADDRESS DETAILS and EMPLOYEE NET PAY DISTRIBUTION
558:
559: hr_utility.trace('Opening Cursor csr_tax_unit_id');
560: OPEN csr_tax_unit_id(p_curr_pymt_ass_act_id);
561: FETCH csr_tax_unit_id INTO l_tax_unit_id;
562: CLOSE csr_tax_unit_id;
563: hr_utility.trace('Closing Cursor csr_tax_unit_id');
559: hr_utility.trace('Opening Cursor csr_tax_unit_id');
560: OPEN csr_tax_unit_id(p_curr_pymt_ass_act_id);
561: FETCH csr_tax_unit_id INTO l_tax_unit_id;
562: CLOSE csr_tax_unit_id;
563: hr_utility.trace('Closing Cursor csr_tax_unit_id');
564: hr_utility.set_location('Calling pay_emp_action_arch.get_personal_information ',20);
565:
566: pay_emp_action_arch.get_personal_information
567: (p_payroll_action_id => p_payroll_action_id -- archive payroll_action_id
560: OPEN csr_tax_unit_id(p_curr_pymt_ass_act_id);
561: FETCH csr_tax_unit_id INTO l_tax_unit_id;
562: CLOSE csr_tax_unit_id;
563: hr_utility.trace('Closing Cursor csr_tax_unit_id');
564: hr_utility.set_location('Calling pay_emp_action_arch.get_personal_information ',20);
565:
566: pay_emp_action_arch.get_personal_information
567: (p_payroll_action_id => p_payroll_action_id -- archive payroll_action_id
568: , p_assactid => p_assactid -- archive assignment_action_id
576: , p_ppp_source_action_id => NULL
577: , p_run_action_id => p_pay_assignment_action_id
578: );
579:
580: hr_utility.set_location('Returned from pay_emp_action_arch.csr_personal_information ',30);
581:
582: hr_utility.set_location('Calling update Net Pay Distribution',80);
583:
584: hr_utility.trace('Opening Cursor csr_action_information_id');
578: );
579:
580: hr_utility.set_location('Returned from pay_emp_action_arch.csr_personal_information ',30);
581:
582: hr_utility.set_location('Calling update Net Pay Distribution',80);
583:
584: hr_utility.trace('Opening Cursor csr_action_information_id');
585:
586: FOR net_pay_rec in csr_action_information_id(p_assactid)
580: hr_utility.set_location('Returned from pay_emp_action_arch.csr_personal_information ',30);
581:
582: hr_utility.set_location('Calling update Net Pay Distribution',80);
583:
584: hr_utility.trace('Opening Cursor csr_action_information_id');
585:
586: FOR net_pay_rec in csr_action_information_id(p_assactid)
587:
588: LOOP
586: FOR net_pay_rec in csr_action_information_id(p_assactid)
587:
588: LOOP
589:
590: hr_utility.trace('Opening Cursor csr_bank_details');
591: OPEN csr_bank_details(p_curr_pymt_ass_act_id , net_pay_rec.action_information2, net_pay_rec.action_information1); /* Bug No : 2538781,2672510 */
592: FETCH csr_bank_details INTO l_account_type /* Bug 5435029 */
593: , l_bank_name
594: , l_percentage
593: , l_bank_name
594: , l_percentage
595: , l_currency_code;
596: CLOSE csr_bank_details;
597: hr_utility.trace('Closing Cursor csr_bank_details');
598:
599: l_ovn := 1;
600:
601: pay_action_information_api.update_action_information
608: );
609:
610: END LOOP;
611:
612: hr_utility.trace('Closing Cursor csr_action_information_id');
613:
614: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
615:
616: EXCEPTION
610: END LOOP;
611:
612: hr_utility.trace('Closing Cursor csr_action_information_id');
613:
614: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
615:
616: EXCEPTION
617: WHEN OTHERS THEN
618: hr_utility.set_location('Error in archiving Employee details ',5);
614: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
615:
616: EXCEPTION
617: WHEN OTHERS THEN
618: hr_utility.set_location('Error in archiving Employee details ',5);
619: RAISE;
620:
621: END archive_employee_details;
622:
685: l_leave_taken NUMBER;
686:
687: BEGIN
688: l_procedure_name := 'archive_employee_details';
689: hr_utility.set_location('Start of accrual archival code',1);
690:
691: hr_utility.set_location('Entering Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
692:
693: OPEN csr_leave_balance(p_assignment_action_id,p_assignment_id);
687: BEGIN
688: l_procedure_name := 'archive_employee_details';
689: hr_utility.set_location('Start of accrual archival code',1);
690:
691: hr_utility.set_location('Entering Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
692:
693: OPEN csr_leave_balance(p_assignment_action_id,p_assignment_id);
694: FETCH csr_leave_balance INTO
695: l_accrual_plan_name,
702: CLOSE csr_leave_balance;
703:
704: -- Call to get annual leave balance
705:
706: hr_utility.set_location('Archiving Annual leave Balance information',2);
707:
708: l_annual_leave_balance := pay_sg_soe.net_accrual( p_assignment_id
709: , l_accrual_plan_id
710: , l_payroll_id
715: IF l_annual_leave_balance IS NULL THEN
716: l_annual_leave_balance := 0;
717: END IF;
718:
719: hr_utility.set_location('Archiving Leave Taken information',2);
720:
721: l_leave_taken := per_accrual_calc_functions.get_absence
722: (p_assignment_id,
723: l_accrual_plan_id,
748: );
749:
750: END IF;
751:
752: hr_utility.set_location('Leaving Procedure pay_sg_payslip_archive.' || l_procedure_name,10);
753:
754:
755: EXCEPTION
756: WHEN OTHERS THEN
753:
754:
755: EXCEPTION
756: WHEN OTHERS THEN
757: hr_utility.set_location('Error raised in archiving Accruals and Leave Taken ',5);
758: RAISE;
759:
760: END archive_accrual_details;
761:
851: l_pre_pay_assact_id NUMBER :=0;
852: l_payment_date DATE :=NULL;
853:
854: BEGIN
855: hr_utility.set_location('Start of archive code',20);
856: --
857: pay_core_payslip_utils.generate_child_actions( p_assignment_action_id,
858: p_effective_date
859: );
929: END IF;
930: l_pre_pay_assact_id := csr_rec.pre_assignment_action_id;
931: END LOOP;
932: --
933: hr_utility.set_location('End of archive code',37);
934: EXCEPTION
935: WHEN OTHERS THEN
936: hr_utility.set_location('Error in archive code :',11);
937: RAISE;
932: --
933: hr_utility.set_location('End of archive code',37);
934: EXCEPTION
935: WHEN OTHERS THEN
936: hr_utility.set_location('Error in archive code :',11);
937: RAISE;
938: END archive_code;
939:
940: