49: from per_business_groups pbg
50: where pbg.business_group_id = p_business_group_id;
51: --
52: begin
53: hr_utility.set_location('Entering:'|| l_proc, 10);
54: --
55: -- Validation in addition to Row Handlers
56: --
57: -- Check that the specified business group is valid.
55: -- Validation in addition to Row Handlers
56: --
57: -- Check that the specified business group is valid.
58: --
59: hr_utility.trace('Inside pay_gb_ins_p45_3');
60: open csr_bg;
61: fetch csr_bg
62: into l_legislation_code;
63: if csr_bg%notfound then
61: fetch csr_bg
62: into l_legislation_code;
63: if csr_bg%notfound then
64: close csr_bg;
65: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
66: hr_utility.raise_error;
67: end if;
68: close csr_bg;
69: --
62: into l_legislation_code;
63: if csr_bg%notfound then
64: close csr_bg;
65: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
66: hr_utility.raise_error;
67: end if;
68: close csr_bg;
69: --
70: -- Check that the legislation of the specified business group is 'GB'.
69: --
70: -- Check that the legislation of the specified business group is 'GB'.
71: --
72: if l_legislation_code <> 'GB' then
73: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
74: hr_utility.set_message_token('LEG_CODE','GB');
75: hr_utility.raise_error;
76: end if;
77:
70: -- Check that the legislation of the specified business group is 'GB'.
71: --
72: if l_legislation_code <> 'GB' then
73: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
74: hr_utility.set_message_token('LEG_CODE','GB');
75: hr_utility.raise_error;
76: end if;
77:
78: hr_utility.set_location(l_proc, 6);
71: --
72: if l_legislation_code <> 'GB' then
73: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
74: hr_utility.set_message_token('LEG_CODE','GB');
75: hr_utility.raise_error;
76: end if;
77:
78: hr_utility.set_location(l_proc, 6);
79: -- Bug 3454500 check for Send EDI flag
74: hr_utility.set_message_token('LEG_CODE','GB');
75: hr_utility.raise_error;
76: end if;
77:
78: hr_utility.set_location(l_proc, 6);
79: -- Bug 3454500 check for Send EDI flag
80: if (p_aei_information8 is null) then
81: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
82: hr_utility.set_message_token('TYPE','P45(3)');
77:
78: hr_utility.set_location(l_proc, 6);
79: -- Bug 3454500 check for Send EDI flag
80: if (p_aei_information8 is null) then
81: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
82: hr_utility.set_message_token('TYPE','P45(3)');
83: hr_utility.raise_error;
84: end if;
85: --
78: hr_utility.set_location(l_proc, 6);
79: -- Bug 3454500 check for Send EDI flag
80: if (p_aei_information8 is null) then
81: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
82: hr_utility.set_message_token('TYPE','P45(3)');
83: hr_utility.raise_error;
84: end if;
85: --
86: -- Call the Assignment Extra Information Business API
79: -- Bug 3454500 check for Send EDI flag
80: if (p_aei_information8 is null) then
81: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
82: hr_utility.set_message_token('TYPE','P45(3)');
83: hr_utility.raise_error;
84: end if;
85: --
86: -- Call the Assignment Extra Information Business API
87: --
107: ,p_aei_information12 => p_aei_information12 -- Bug 6994632 added for Prev Tax Pay Notified
108: ,p_object_version_number => p_object_version_number
109: ,p_assignment_extra_info_id => p_assignment_extra_info_id);
110:
111: hr_utility.set_location(' Leaving:'||l_proc, 40);
112: end pay_gb_ins_p45_3;
113: --
114: --
115: --
153: from per_business_groups pbg
154: where pbg.business_group_id = p_business_group_id;
155: --
156: begin
157: hr_utility.set_location('Entering:'|| l_proc, 10);
158: --
159: -- Validation in addition to Row Handlers
160: --
161: -- Check that the specified business group is valid.
164: fetch csr_bg
165: into l_legislation_code;
166: if csr_bg%notfound then
167: close csr_bg;
168: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
169: hr_utility.raise_error;
170: end if;
171: close csr_bg;
172: --
165: into l_legislation_code;
166: if csr_bg%notfound then
167: close csr_bg;
168: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
169: hr_utility.raise_error;
170: end if;
171: close csr_bg;
172: --
173: -- Check that the legislation of the specified business group is 'GB'.
172: --
173: -- Check that the legislation of the specified business group is 'GB'.
174: --
175: if l_legislation_code <> 'GB' then
176: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
177: hr_utility.set_message_token('LEG_CODE','GB');
178: hr_utility.raise_error;
179: end if;
180:
173: -- Check that the legislation of the specified business group is 'GB'.
174: --
175: if l_legislation_code <> 'GB' then
176: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
177: hr_utility.set_message_token('LEG_CODE','GB');
178: hr_utility.raise_error;
179: end if;
180:
181: hr_utility.set_location(l_proc, 6);
174: --
175: if l_legislation_code <> 'GB' then
176: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
177: hr_utility.set_message_token('LEG_CODE','GB');
178: hr_utility.raise_error;
179: end if;
180:
181: hr_utility.set_location(l_proc, 6);
182: --
177: hr_utility.set_message_token('LEG_CODE','GB');
178: hr_utility.raise_error;
179: end if;
180:
181: hr_utility.set_location(l_proc, 6);
182: --
183: -- Call the Assignment Extra Information Business API
184: --
185: -- Bug 1843915 Added the parameter p_aei_information8 to update the column
203: ,p_aei_information11 => P_aei_information11
204: ,p_aei_information12 => P_aei_information12 -- Bug 6994632 added for Prev Tax Pay Notified
205: );
206:
207: hr_utility.set_location(' Leaving:'||l_proc, 40);
208: end pay_gb_upd_p45_3;
209: --
210: -----------------------------------------------------------------------------
211: -- |-------------------------< pay_gb_ins_p45_info>-----------------------|
349: l_latest_aggr_start_date date;
350: --
351:
352: begin
353: -- hr_utility.trace_on(null, 'ARUL');
354: hr_utility.set_location('Entering:'|| l_proc, 10);
355: --
356: -- Validation in addition to Row Handlers
357: --
350: --
351:
352: begin
353: -- hr_utility.trace_on(null, 'ARUL');
354: hr_utility.set_location('Entering:'|| l_proc, 10);
355: --
356: -- Validation in addition to Row Handlers
357: --
358: -- Check that the specified business group is valid.
360: fetch csr_bg
361: into l_legislation_code;
362: if csr_bg%notfound then
363: close csr_bg;
364: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
365: hr_utility.raise_error;
366: end if;
367: close csr_bg;
368: hr_utility.set_location(l_proc,20);
361: into l_legislation_code;
362: if csr_bg%notfound then
363: close csr_bg;
364: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
365: hr_utility.raise_error;
366: end if;
367: close csr_bg;
368: hr_utility.set_location(l_proc,20);
369: --
364: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
365: hr_utility.raise_error;
366: end if;
367: close csr_bg;
368: hr_utility.set_location(l_proc,20);
369: --
370: -- Check that the legislation of the specified business group is 'GB'.
371: --
372: if l_legislation_code <> 'GB' then
369: --
370: -- Check that the legislation of the specified business group is 'GB'.
371: --
372: if l_legislation_code <> 'GB' then
373: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
374: hr_utility.set_message_token('LEG_CODE','GB');
375: hr_utility.raise_error;
376: end if;
377:
370: -- Check that the legislation of the specified business group is 'GB'.
371: --
372: if l_legislation_code <> 'GB' then
373: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
374: hr_utility.set_message_token('LEG_CODE','GB');
375: hr_utility.raise_error;
376: end if;
377:
378: hr_utility.set_location(l_proc, 30);
371: --
372: if l_legislation_code <> 'GB' then
373: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
374: hr_utility.set_message_token('LEG_CODE','GB');
375: hr_utility.raise_error;
376: end if;
377:
378: hr_utility.set_location(l_proc, 30);
379:
374: hr_utility.set_message_token('LEG_CODE','GB');
375: hr_utility.raise_error;
376: end if;
377:
378: hr_utility.set_location(l_proc, 30);
379:
380: -- inserting the extra info for the current assignment.
381: --
382: hr_assignment_extra_info_api.create_assignment_extra_info
397: -- first insert/update EIT info based on the manual issue date then
398: -- continue the same based on override date
399:
400:
401: hr_utility.set_location(l_proc,50);
402: --
403: -- considering the manual issue date as the effective date
404: --
405: l_effective_date := fnd_date.canonical_to_date(p_aei_information3);
404: --
405: l_effective_date := fnd_date.canonical_to_date(p_aei_information3);
406: --
407:
408: hr_utility.set_location(l_proc,50);
409: --
410: -- fetching the Aggregated PAYE flag at manual issue date
411: --
412: open csr_aggr_paye_flag(p_person_id, l_effective_date);
413: fetch csr_aggr_paye_flag into l_aggregated_paye_flag;
414: close csr_aggr_paye_flag;
415: --
416:
417: hr_utility.set_location(l_proc,60);
418:
419: -- if PAYE flag 'Y' then
420: -- Call the Assignment Extra Information Business API
421: -- For each agg assignment.
421: -- For each agg assignment.
422:
423: if nvl(l_aggregated_paye_flag,'X') = 'Y' and l_effective_date is not null then
424:
425: hr_utility.set_location(l_proc, 70);
426: -- Aggregated paye, so loop through active/suspended assignments
427: -- in current Tax District, and insert/update a row for each
428: -- based on record already exists (or) not, manual issue date is null
429: open tax_district(p_assignment_id, l_effective_date);
439: fetch csr_latest_aggr_start_date into l_latest_aggr_start_date;
440: close csr_latest_aggr_start_date;
441: --
442:
443: hr_utility.set_location(l_proc, 80);
444:
445: --
446: -- if extra info already exists for the asg and manual issue date is null then update
447: -- if extra info not found for the asg then insert extra info for that asg.
448: for r_rec in csr_person_agg_asg(p_person_id, l_asg_tax_dist,
449: l_effective_date, p_assignment_id,
450: l_period_of_service_id) loop
451:
452: hr_utility.set_location(l_proc, 90);
453:
454: --
455: -- fetch the last active/susp status of the r_rec assignemnt
456: --
472:
473: if l_found and l_rec_asg_tax_dist = l_asg_tax_dist and
474: l_rec_period_of_service_id = l_period_of_service_id then
475:
476: hr_utility.set_location(l_proc, 100);
477:
478: if l_latest_aggr_start_date is not null then
479: hr_utility.set_location(l_proc, 110);
480: --
475:
476: hr_utility.set_location(l_proc, 100);
477:
478: if l_latest_aggr_start_date is not null then
479: hr_utility.set_location(l_proc, 110);
480: --
481: -- to check whther the given assignment present between
482: -- the earliest aggregation start date and manual issue date
483: --
488: --
489: end if;
490:
491: if l_found then
492: hr_utility.set_location(l_proc, 120);
493: -- extra info id null then insert only the manual issue date
494: if r_rec.assignment_extra_info_id is null then
495: hr_utility.set_location(l_proc, 130);
496:
491: if l_found then
492: hr_utility.set_location(l_proc, 120);
493: -- extra info id null then insert only the manual issue date
494: if r_rec.assignment_extra_info_id is null then
495: hr_utility.set_location(l_proc, 130);
496:
497: hr_assignment_extra_info_api.create_assignment_extra_info
498: (p_validate => p_validate
499: ,p_assignment_id => r_rec.assignment_id
507: ,p_assignment_extra_info_id => l_assignment_extra_info_id);
508:
509: -- extra info id not null and manual issue date is null then update
510: elsif r_rec.assignment_extra_info_id is not null and r_rec.aei_information3 is null then
511: hr_utility.set_location(l_proc, 140);
512: l_object_version_number := r_rec.ovn;
513: hr_assignment_extra_info_api.update_assignment_extra_info
514: (p_validate => p_validate
515: ,p_assignment_extra_info_id => r_rec.assignment_extra_info_id
525: end if; -- paye reference, period of service id same
526: --
527: end loop;
528: --
529: hr_utility.set_location(l_proc, 150);
530: end if;
531: -- insert/update based on manual issue date ends
532:
533:
536: --
537: l_effective_date := fnd_date.canonical_to_date(p_aei_information4);
538: --
539:
540: hr_utility.set_location(l_proc,160);
541: -- fetching the Aggregated PAYE flag at override date
542: --
543: open csr_aggr_paye_flag(p_person_id, l_effective_date);
544: fetch csr_aggr_paye_flag into l_aggregated_paye_flag;
544: fetch csr_aggr_paye_flag into l_aggregated_paye_flag;
545: close csr_aggr_paye_flag;
546: --
547:
548: hr_utility.set_location(l_proc,170);
549: --
550: -- if PAYE flag 'Y' then
551: -- Call the Assignment Extra Information Business API
552: -- For each agg assignment.
550: -- if PAYE flag 'Y' then
551: -- Call the Assignment Extra Information Business API
552: -- For each agg assignment.
553: if nvl(l_aggregated_paye_flag,'X') = 'Y' and l_effective_date is not null then
554: hr_utility.set_location(l_proc, 180);
555: -- Aggregated paye, so loop through active assignments
556: -- in current Tax District, and insert/update a row for each
557: -- based on record already exists (or) not, override date is null
558: open tax_district(p_assignment_id, l_effective_date);
568: fetch csr_latest_aggr_start_date into l_latest_aggr_start_date;
569: close csr_latest_aggr_start_date;
570: --
571:
572: hr_utility.set_location(l_proc, 190);
573:
574: --
575: -- if extra info already exists for the asg and override date is null then update
576: -- if extra info not found for the asg then insert extra info for that asg.
577: for r_rec in csr_person_agg_asg(p_person_id, l_asg_tax_dist,
578: l_effective_date, p_assignment_id,
579: l_period_of_service_id) loop
580:
581: hr_utility.set_location(l_proc, 200);
582: --
583: -- fetch the last active/susp status of the r_rec assignemnt
584: --
585: l_asg_last_active_date := null;
600:
601: if l_found and l_rec_asg_tax_dist = l_asg_tax_dist and
602: l_rec_period_of_service_id = l_period_of_service_id then
603:
604: hr_utility.set_location(l_proc, 210);
605:
606: if l_latest_aggr_start_date is not null then
607: hr_utility.set_location(l_proc, 220);
608: --
603:
604: hr_utility.set_location(l_proc, 210);
605:
606: if l_latest_aggr_start_date is not null then
607: hr_utility.set_location(l_proc, 220);
608: --
609: -- to check whther the given assignment present between
610: -- the earliest aggregation start date and override date
611: --
616: --
617: end if;
618:
619: if l_found then
620: hr_utility.set_location(l_proc, 230);
621: -- extra info id null then insert only the override date
622: if r_rec.assignment_extra_info_id is null then
623: hr_utility.set_location(l_proc, 240);
624: hr_assignment_extra_info_api.create_assignment_extra_info
619: if l_found then
620: hr_utility.set_location(l_proc, 230);
621: -- extra info id null then insert only the override date
622: if r_rec.assignment_extra_info_id is null then
623: hr_utility.set_location(l_proc, 240);
624: hr_assignment_extra_info_api.create_assignment_extra_info
625: (p_validate => p_validate
626: ,p_assignment_id => r_rec.assignment_id
627: ,p_information_type => p_information_type
634: ,p_assignment_extra_info_id => l_assignment_extra_info_id);
635:
636: -- extra info id not null and override date is null then update
637: elsif r_rec.assignment_extra_info_id is not null and r_rec.aei_information4 is null then
638: hr_utility.set_location(l_proc, 250);
639: l_object_version_number := r_rec.ovn;
640: hr_assignment_extra_info_api.update_assignment_extra_info
641: (p_validate => p_validate
642: ,p_assignment_extra_info_id => r_rec.assignment_extra_info_id
652: end if; -- paye reference, period of service id same
653: --
654: end loop;
655: --
656: hr_utility.set_location(l_proc, 260);
657: end if;
658: -- insert/update based on override date ends
659:
660: hr_utility.set_location(' Leaving:'||l_proc, 300);
656: hr_utility.set_location(l_proc, 260);
657: end if;
658: -- insert/update based on override date ends
659:
660: hr_utility.set_location(' Leaving:'||l_proc, 300);
661: -- hr_utility.trace_off;
662: end pay_gb_ins_p45_info;
663: -- -----------------------------------------------------------------------
664: -- |-------------------------< pay_gb_upd_p45_info>-----------------------|
657: end if;
658: -- insert/update based on override date ends
659:
660: hr_utility.set_location(' Leaving:'||l_proc, 300);
661: -- hr_utility.trace_off;
662: end pay_gb_ins_p45_info;
663: -- -----------------------------------------------------------------------
664: -- |-------------------------< pay_gb_upd_p45_info>-----------------------|
665: -- -----------------------------------------------------------------------
821: l_old_latest_aggr_start_date date;
822: --
823:
824: begin
825: -- hr_utility.trace_on(null, 'ARUL');
826: hr_utility.set_location('Entering:'|| l_proc, 10);
827: -- Validation in addition to Row Handlers
828: --
829: -- Check that the specified business group is valid.
822: --
823:
824: begin
825: -- hr_utility.trace_on(null, 'ARUL');
826: hr_utility.set_location('Entering:'|| l_proc, 10);
827: -- Validation in addition to Row Handlers
828: --
829: -- Check that the specified business group is valid.
830: --
832: fetch csr_bg
833: into l_legislation_code;
834: if csr_bg%notfound then
835: close csr_bg;
836: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
837: hr_utility.raise_error;
838: end if;
839: close csr_bg;
840: --
833: into l_legislation_code;
834: if csr_bg%notfound then
835: close csr_bg;
836: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
837: hr_utility.raise_error;
838: end if;
839: close csr_bg;
840: --
841:
838: end if;
839: close csr_bg;
840: --
841:
842: hr_utility.set_location(l_proc,20);
843: -- Check that the legislation of the specified business group is 'GB'.
844: --
845: if l_legislation_code <> 'GB' then
846: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
842: hr_utility.set_location(l_proc,20);
843: -- Check that the legislation of the specified business group is 'GB'.
844: --
845: if l_legislation_code <> 'GB' then
846: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
847: hr_utility.set_message_token('LEG_CODE','GB');
848: hr_utility.raise_error;
849: end if;
850: --
843: -- Check that the legislation of the specified business group is 'GB'.
844: --
845: if l_legislation_code <> 'GB' then
846: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
847: hr_utility.set_message_token('LEG_CODE','GB');
848: hr_utility.raise_error;
849: end if;
850: --
851:
844: --
845: if l_legislation_code <> 'GB' then
846: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
847: hr_utility.set_message_token('LEG_CODE','GB');
848: hr_utility.raise_error;
849: end if;
850: --
851:
852: hr_utility.set_location(l_proc, 30);
848: hr_utility.raise_error;
849: end if;
850: --
851:
852: hr_utility.set_location(l_proc, 30);
853: hr_utility.trace('p_assignment_extra_info_id = ' || p_assignment_extra_info_id);
854: hr_utility.trace('p_aggregated_paye_flag = ' || p_aggregated_paye_flag);
855: hr_utility.trace('p_aei_information1 = ' || p_aei_information1);
856: hr_utility.trace('p_aei_information2 = ' || p_aei_information2);
849: end if;
850: --
851:
852: hr_utility.set_location(l_proc, 30);
853: hr_utility.trace('p_assignment_extra_info_id = ' || p_assignment_extra_info_id);
854: hr_utility.trace('p_aggregated_paye_flag = ' || p_aggregated_paye_flag);
855: hr_utility.trace('p_aei_information1 = ' || p_aei_information1);
856: hr_utility.trace('p_aei_information2 = ' || p_aei_information2);
857: hr_utility.trace('p_aei_information3 = ' || p_aei_information3);
850: --
851:
852: hr_utility.set_location(l_proc, 30);
853: hr_utility.trace('p_assignment_extra_info_id = ' || p_assignment_extra_info_id);
854: hr_utility.trace('p_aggregated_paye_flag = ' || p_aggregated_paye_flag);
855: hr_utility.trace('p_aei_information1 = ' || p_aei_information1);
856: hr_utility.trace('p_aei_information2 = ' || p_aei_information2);
857: hr_utility.trace('p_aei_information3 = ' || p_aei_information3);
858: hr_utility.trace('p_aei_information4 = ' || p_aei_information4);
851:
852: hr_utility.set_location(l_proc, 30);
853: hr_utility.trace('p_assignment_extra_info_id = ' || p_assignment_extra_info_id);
854: hr_utility.trace('p_aggregated_paye_flag = ' || p_aggregated_paye_flag);
855: hr_utility.trace('p_aei_information1 = ' || p_aei_information1);
856: hr_utility.trace('p_aei_information2 = ' || p_aei_information2);
857: hr_utility.trace('p_aei_information3 = ' || p_aei_information3);
858: hr_utility.trace('p_aei_information4 = ' || p_aei_information4);
859: --
852: hr_utility.set_location(l_proc, 30);
853: hr_utility.trace('p_assignment_extra_info_id = ' || p_assignment_extra_info_id);
854: hr_utility.trace('p_aggregated_paye_flag = ' || p_aggregated_paye_flag);
855: hr_utility.trace('p_aei_information1 = ' || p_aei_information1);
856: hr_utility.trace('p_aei_information2 = ' || p_aei_information2);
857: hr_utility.trace('p_aei_information3 = ' || p_aei_information3);
858: hr_utility.trace('p_aei_information4 = ' || p_aei_information4);
859: --
860:
853: hr_utility.trace('p_assignment_extra_info_id = ' || p_assignment_extra_info_id);
854: hr_utility.trace('p_aggregated_paye_flag = ' || p_aggregated_paye_flag);
855: hr_utility.trace('p_aei_information1 = ' || p_aei_information1);
856: hr_utility.trace('p_aei_information2 = ' || p_aei_information2);
857: hr_utility.trace('p_aei_information3 = ' || p_aei_information3);
858: hr_utility.trace('p_aei_information4 = ' || p_aei_information4);
859: --
860:
861: -- fething the old manual issue date, old override date for the current assignment extra info id
854: hr_utility.trace('p_aggregated_paye_flag = ' || p_aggregated_paye_flag);
855: hr_utility.trace('p_aei_information1 = ' || p_aei_information1);
856: hr_utility.trace('p_aei_information2 = ' || p_aei_information2);
857: hr_utility.trace('p_aei_information3 = ' || p_aei_information3);
858: hr_utility.trace('p_aei_information4 = ' || p_aei_information4);
859: --
860:
861: -- fething the old manual issue date, old override date for the current assignment extra info id
862: open csr_old_aei_info(p_assignment_extra_info_id);
862: open csr_old_aei_info(p_assignment_extra_info_id);
863: fetch csr_old_aei_info into l_old_aei_information3, l_old_aei_information4, l_information_type;
864: close csr_old_aei_info;
865:
866: hr_utility.set_location(l_proc, 40);
867:
868: --
869: -- update the current asg extra information if manual issue date or override date changed
870: -- so no need to update this current record again
870: -- so no need to update this current record again
871: --
872: if nvl(l_old_aei_information3,'X') <> nvl(p_aei_information3,'X') or
873: nvl(l_old_aei_information4,'X') <> nvl(p_aei_information4,'X') then
874: hr_utility.set_location(l_proc, 50);
875: hr_assignment_extra_info_api.update_assignment_extra_info
876: (p_validate => p_validate
877: ,p_assignment_extra_info_id => p_assignment_extra_info_id
878: ,p_object_version_number => p_object_version_number
890: -- the entered manual issue date, old manual issue date are different
891: -- then will have to clear(update as null) all the agg. asg EIT's associated at old manual issue date and
892: -- update agg asg's extra info as of new manual issue date
893: if nvl(l_old_aei_information3,'X') <> nvl(p_aei_information3,'X') then
894: hr_utility.set_location(l_proc, 60);
895:
896: --
897: -- considering the manual issue date as the effective date
898: --
898: --
899: l_old_effective_date := fnd_date.canonical_to_date(l_old_aei_information3);
900: --
901:
902: hr_utility.set_location(l_proc, 70);
903: --
904: open csr_aggr_paye_flag(p_person_id, l_old_effective_date);
905: fetch csr_aggr_paye_flag into l_old_aggregated_paye_flag;
906: close csr_aggr_paye_flag;
908:
909: -- Aggregated PAYE, loop through agg assignments in
910: --
911: if nvl(l_old_aggregated_paye_flag,'X') = 'Y' and l_old_effective_date is not null then
912: hr_utility.set_location(l_proc, 80);
913: -- Aggregated paye, so loop through active/suspended assignments
914: -- in old Tax District, and update manual issue date as null
915: -- for each row
916: open tax_district(p_assignment_id, l_old_effective_date);
926: fetch csr_latest_aggr_start_date into l_old_latest_aggr_start_date;
927: close csr_latest_aggr_start_date;
928: --
929:
930: hr_utility.set_location(l_proc, 90);
931: --
932: -- fetching all the agg asg's based on the manual issue date
933: --
934: for r_rec in csr_per_agg_asg_extra(p_person_id, l_old_asg_tax_dist,
935: l_old_effective_date,
936: l_information_type, p_assignment_id,
937: l_old_period_of_service_id)
938: loop
939: hr_utility.set_location(l_proc, 100);
940: --
941: -- fetch the last active/susp status of the r_rec assignemnt
942: --
943: l_asg_last_active_date := null;
958:
959: if l_found and l_rec_asg_tax_dist = l_old_asg_tax_dist and
960: l_rec_period_of_service_id = l_old_period_of_service_id then
961:
962: hr_utility.set_location(l_proc, 110);
963:
964: if l_old_latest_aggr_start_date is not null then
965: hr_utility.set_location(l_proc, 120);
966: --
961:
962: hr_utility.set_location(l_proc, 110);
963:
964: if l_old_latest_aggr_start_date is not null then
965: hr_utility.set_location(l_proc, 120);
966: --
967: -- to check whther the given assignment present between
968: -- the earliest aggregation start date and old manual issue date
969: --
974: --
975: end if;
976:
977: if l_found then
978: hr_utility.set_location(l_proc, 130);
979: --
980: -- if extra info id already exists for the asg and manual issue date is same, then update as null
981: --
982: if r_rec.assignment_extra_info_id is not null and r_rec.aei_information3 = l_old_aei_information3 then
979: --
980: -- if extra info id already exists for the asg and manual issue date is same, then update as null
981: --
982: if r_rec.assignment_extra_info_id is not null and r_rec.aei_information3 = l_old_aei_information3 then
983: hr_utility.set_location(l_proc, 140);
984:
985: l_object_version_number := r_rec.ovn;
986: hr_assignment_extra_info_api.update_assignment_extra_info
987: (p_validate => p_validate
998: end if; -- paye reference, period of service id same
999: end loop;
1000: end if;
1001:
1002: hr_utility.set_location(l_proc, 150);
1003:
1004: --
1005: -- considering the entered manual issue date as the effective date
1006: --
1006: --
1007: l_effective_date := fnd_date.canonical_to_date(p_aei_information3);
1008: --
1009:
1010: hr_utility.set_location(l_proc, 160);
1011: --
1012: open csr_aggr_paye_flag(p_person_id, l_effective_date);
1013: fetch csr_aggr_paye_flag into l_aggregated_paye_flag;
1014: close csr_aggr_paye_flag;
1013: fetch csr_aggr_paye_flag into l_aggregated_paye_flag;
1014: close csr_aggr_paye_flag;
1015: --
1016:
1017: hr_utility.set_location(l_proc, 170);
1018:
1019: if nvl(l_aggregated_paye_flag,'X') = 'Y' and l_effective_date is not null then -- PAYE as 'Y'
1020:
1021: -- Aggregated PAYE, loop through agg assignments in
1019: if nvl(l_aggregated_paye_flag,'X') = 'Y' and l_effective_date is not null then -- PAYE as 'Y'
1020:
1021: -- Aggregated PAYE, loop through agg assignments in
1022: -- current tax district
1023: hr_utility.set_location(l_proc, 180);
1024:
1025:
1026: -- Aggregated paye, so loop through active assignments
1027: -- in current Tax District, and insert a row for each.
1038: fetch csr_latest_aggr_start_date into l_latest_aggr_start_date;
1039: close csr_latest_aggr_start_date;
1040: --
1041:
1042: hr_utility.set_location(l_proc, 190);
1043:
1044: --
1045: -- if extra info already exists for the asg and manual issue date is null then update
1046: -- if extra info not found for the asg then insert extra info for that asg.
1047: --
1048: for r_rec in csr_per_agg_asg_extra(p_person_id, l_asg_tax_dist,
1049: l_effective_date, l_information_type,
1050: p_assignment_id, l_period_of_service_id) loop
1051: hr_utility.set_location(l_proc, 200);
1052: --
1053: -- fetch the last active/susp status of the r_rec assignemnt
1054: --
1055: l_asg_last_active_date := null;
1070:
1071: if l_found and l_rec_asg_tax_dist = l_asg_tax_dist and
1072: l_rec_period_of_service_id = l_period_of_service_id then
1073:
1074: hr_utility.set_location(l_proc, 210);
1075:
1076: if l_latest_aggr_start_date is not null then
1077: hr_utility.set_location(l_proc, 220);
1078: --
1073:
1074: hr_utility.set_location(l_proc, 210);
1075:
1076: if l_latest_aggr_start_date is not null then
1077: hr_utility.set_location(l_proc, 220);
1078: --
1079: -- to check whther the given assignment present between
1080: -- the earliest aggregation start date and manual issue date
1081: --
1086: --
1087: end if;
1088:
1089: if l_found then
1090: hr_utility.set_location(l_proc, 230);
1091: --
1092: -- extra info id null then insert only the override date
1093: if r_rec.assignment_extra_info_id is null then
1094: hr_utility.set_location(l_proc, 240);
1090: hr_utility.set_location(l_proc, 230);
1091: --
1092: -- extra info id null then insert only the override date
1093: if r_rec.assignment_extra_info_id is null then
1094: hr_utility.set_location(l_proc, 240);
1095: hr_assignment_extra_info_api.create_assignment_extra_info
1096: (p_validate => p_validate
1097: ,p_assignment_id => r_rec.assignment_id
1098: ,p_information_type => l_information_type
1105: ,p_assignment_extra_info_id => l_assignment_extra_info_id);
1106:
1107: -- extra info id not null and override date is null then update
1108: elsif r_rec.assignment_extra_info_id is not null and r_rec.aei_information3 is null then
1109: hr_utility.set_location(l_proc, 250);
1110: l_object_version_number := r_rec.ovn;
1111: hr_assignment_extra_info_api.update_assignment_extra_info
1112: (p_validate => p_validate
1113: ,p_assignment_extra_info_id => r_rec.assignment_extra_info_id
1128: -- manual issue date updation ends
1129: --
1130:
1131:
1132: hr_utility.set_location(l_proc, 300);
1133:
1134: -- the entered override date, old override date are different
1135: -- then will have to clear(update as null) all the agg. asg EIT's associated at old override date and
1136: -- update agg asg's extra info as of new override date
1134: -- the entered override date, old override date are different
1135: -- then will have to clear(update as null) all the agg. asg EIT's associated at old override date and
1136: -- update agg asg's extra info as of new override date
1137: if nvl(l_old_aei_information4,'X') <> nvl(p_aei_information4,'X') then
1138: hr_utility.set_location(l_proc, 310);
1139:
1140: --
1141: -- considering the manual issue date as the effective date
1142: --
1142: --
1143: l_old_effective_date := fnd_date.canonical_to_date(l_old_aei_information4);
1144: --
1145:
1146: hr_utility.set_location(l_proc, 320);
1147: --
1148: open csr_aggr_paye_flag(p_person_id, l_old_effective_date);
1149: fetch csr_aggr_paye_flag into l_old_aggregated_paye_flag;
1150: close csr_aggr_paye_flag;
1152:
1153: -- Aggregated PAYE, loop through agg assignments in
1154: --
1155: if nvl(l_old_aggregated_paye_flag,'X') = 'Y' and l_old_effective_date is not null then
1156: hr_utility.set_location(l_proc, 330);
1157: -- Aggregated paye, so loop through active/suspended assignments
1158: -- in old Tax District, and update manual issue date as null
1159: -- for each row
1160: open tax_district(p_assignment_id, l_old_effective_date);
1170: fetch csr_latest_aggr_start_date into l_old_latest_aggr_start_date;
1171: close csr_latest_aggr_start_date;
1172: --
1173:
1174: hr_utility.set_location(l_proc, 340);
1175: --
1176: -- fetching all the agg asg's based on the old override date
1177: --
1178: for r_rec in csr_per_agg_asg_extra(p_person_id, l_old_asg_tax_dist,
1179: l_old_effective_date,
1180: l_information_type, p_assignment_id,
1181: l_old_period_of_service_id)
1182: loop
1183: hr_utility.set_location(l_proc, 350);
1184: --
1185: -- fetch the last active/susp status of the r_rec assignemnt
1186: --
1187: l_asg_last_active_date := null;
1202:
1203: if l_found and l_rec_asg_tax_dist = l_old_asg_tax_dist and
1204: l_rec_period_of_service_id = l_old_period_of_service_id then
1205:
1206: hr_utility.set_location(l_proc, 360);
1207:
1208: if l_old_latest_aggr_start_date is not null then
1209: hr_utility.set_location(l_proc, 370);
1210: --
1205:
1206: hr_utility.set_location(l_proc, 360);
1207:
1208: if l_old_latest_aggr_start_date is not null then
1209: hr_utility.set_location(l_proc, 370);
1210: --
1211: -- to check whther the given assignment present between
1212: -- the earliest aggregation start date and old override date
1213: --
1218: --
1219: end if;
1220:
1221: if l_found then
1222: hr_utility.set_location(l_proc, 380);
1223:
1224: --
1225: -- if extra info id already exists for the asg and override date is same, then update as null
1226: --
1224: --
1225: -- if extra info id already exists for the asg and override date is same, then update as null
1226: --
1227: if r_rec.assignment_extra_info_id is not null and r_rec.aei_information4 = l_old_aei_information4 then
1228: hr_utility.set_location(l_proc, 390);
1229:
1230: l_object_version_number := r_rec.ovn;
1231: hr_assignment_extra_info_api.update_assignment_extra_info
1232: (p_validate => p_validate
1243: end if; -- paye reference, period of service id same
1244: end loop;
1245: end if;
1246:
1247: hr_utility.set_location(l_proc, 400);
1248:
1249: --
1250: -- considering the entered override date as the effective date
1251: --
1251: --
1252: l_effective_date := fnd_date.canonical_to_date(p_aei_information4);
1253: --
1254:
1255: hr_utility.set_location(l_proc, 410);
1256: --
1257: open csr_aggr_paye_flag(p_person_id, l_effective_date);
1258: fetch csr_aggr_paye_flag into l_aggregated_paye_flag;
1259: close csr_aggr_paye_flag;
1258: fetch csr_aggr_paye_flag into l_aggregated_paye_flag;
1259: close csr_aggr_paye_flag;
1260: --
1261:
1262: hr_utility.set_location(l_proc, 420);
1263:
1264: if nvl(l_aggregated_paye_flag,'X') = 'Y' and l_effective_date is not null then -- PAYE as 'Y'
1265:
1266: -- Aggregated PAYE, loop through agg assignments in
1264: if nvl(l_aggregated_paye_flag,'X') = 'Y' and l_effective_date is not null then -- PAYE as 'Y'
1265:
1266: -- Aggregated PAYE, loop through agg assignments in
1267: -- current tax district
1268: hr_utility.set_location(l_proc, 430);
1269:
1270: -- Aggregated paye, so loop through active assignments
1271: -- in current Tax District, and insert a row for each.
1272: open tax_district(p_assignment_id, l_effective_date);
1282: fetch csr_latest_aggr_start_date into l_latest_aggr_start_date;
1283: close csr_latest_aggr_start_date;
1284: --
1285:
1286: hr_utility.set_location(l_proc, 440);
1287:
1288: --
1289: -- if extra info already exists for the asg and override date is null then update
1290: -- if extra info not found for the asg then insert extra info for that asg.
1291: --
1292: for r_rec in csr_per_agg_asg_extra(p_person_id, l_asg_tax_dist,
1293: l_effective_date, l_information_type
1294: , p_assignment_id, l_period_of_service_id) loop
1295: hr_utility.set_location(l_proc, 450);
1296: --
1297: -- fetch the last active/susp status of the r_rec assignemnt
1298: --
1299: l_asg_last_active_date := null;
1314:
1315: if l_found and l_rec_asg_tax_dist = l_asg_tax_dist and
1316: l_rec_period_of_service_id = l_period_of_service_id then
1317:
1318: hr_utility.set_location(l_proc, 460);
1319:
1320: if l_latest_aggr_start_date is not null then
1321: hr_utility.set_location(l_proc, 470);
1322: --
1317:
1318: hr_utility.set_location(l_proc, 460);
1319:
1320: if l_latest_aggr_start_date is not null then
1321: hr_utility.set_location(l_proc, 470);
1322: --
1323: -- to check whther the given assignment present between
1324: -- the earliest aggregation start date and override date
1325: --
1330: --
1331: end if;
1332:
1333: if l_found then
1334: hr_utility.set_location(l_proc, 480);
1335:
1336: --
1337: -- extra info id null then insert only the override date
1338: if r_rec.assignment_extra_info_id is null then
1335:
1336: --
1337: -- extra info id null then insert only the override date
1338: if r_rec.assignment_extra_info_id is null then
1339: hr_utility.set_location(l_proc, 490);
1340: hr_assignment_extra_info_api.create_assignment_extra_info
1341: (p_validate => p_validate
1342: ,p_assignment_id => r_rec.assignment_id
1343: ,p_information_type => l_information_type
1350: ,p_assignment_extra_info_id => l_assignment_extra_info_id);
1351:
1352: -- extra info id not null and override date is null then update
1353: elsif r_rec.assignment_extra_info_id is not null and r_rec.aei_information4 is null then
1354: hr_utility.set_location(l_proc, 500);
1355: l_object_version_number := r_rec.ovn;
1356: hr_assignment_extra_info_api.update_assignment_extra_info
1357: (p_validate => p_validate
1358: ,p_assignment_extra_info_id => r_rec.assignment_extra_info_id
1370: end loop;
1371: end if; -- PAYE as 'Y'
1372: end if; -- old and new override are different
1373:
1374: hr_utility.set_location(' Leaving:'||l_proc, 600);
1375: -- hr_utility.trace_off;
1376: end pay_gb_upd_p45_info;
1377: -- -----------------------------------------------------------------------
1378: -- |-------------------------< pay_gb_del_p45_info>-----------------------|
1371: end if; -- PAYE as 'Y'
1372: end if; -- old and new override are different
1373:
1374: hr_utility.set_location(' Leaving:'||l_proc, 600);
1375: -- hr_utility.trace_off;
1376: end pay_gb_upd_p45_info;
1377: -- -----------------------------------------------------------------------
1378: -- |-------------------------< pay_gb_del_p45_info>-----------------------|
1379: -- -----------------------------------------------------------------------
1522: l_latest_aggr_start_date date;
1523: --
1524:
1525: begin
1526: -- hr_utility.trace_on(null, 'ARUL');
1527: hr_utility.set_location('Entering:'|| l_proc, 10);
1528: -- Validation in addition to Row Handlers
1529: --
1530: -- Check that the specified business group is valid.
1523: --
1524:
1525: begin
1526: -- hr_utility.trace_on(null, 'ARUL');
1527: hr_utility.set_location('Entering:'|| l_proc, 10);
1528: -- Validation in addition to Row Handlers
1529: --
1530: -- Check that the specified business group is valid.
1531: --
1533: fetch csr_bg
1534: into l_legislation_code;
1535: if csr_bg%notfound then
1536: close csr_bg;
1537: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
1538: hr_utility.raise_error;
1539: end if;
1540: close csr_bg;
1541: --
1534: into l_legislation_code;
1535: if csr_bg%notfound then
1536: close csr_bg;
1537: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
1538: hr_utility.raise_error;
1539: end if;
1540: close csr_bg;
1541: --
1542: hr_utility.set_location(l_proc,20);
1538: hr_utility.raise_error;
1539: end if;
1540: close csr_bg;
1541: --
1542: hr_utility.set_location(l_proc,20);
1543:
1544: --
1545: -- Check that the legislation of the specified business group is 'GB'.
1546: --
1544: --
1545: -- Check that the legislation of the specified business group is 'GB'.
1546: --
1547: if l_legislation_code <> 'GB' then
1548: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
1549: hr_utility.set_message_token('LEG_CODE','GB');
1550: hr_utility.raise_error;
1551: end if;
1552: --
1545: -- Check that the legislation of the specified business group is 'GB'.
1546: --
1547: if l_legislation_code <> 'GB' then
1548: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
1549: hr_utility.set_message_token('LEG_CODE','GB');
1550: hr_utility.raise_error;
1551: end if;
1552: --
1553: hr_utility.trace('p_assignment_extra_info_id = ' || p_assignment_extra_info_id);
1546: --
1547: if l_legislation_code <> 'GB' then
1548: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
1549: hr_utility.set_message_token('LEG_CODE','GB');
1550: hr_utility.raise_error;
1551: end if;
1552: --
1553: hr_utility.trace('p_assignment_extra_info_id = ' || p_assignment_extra_info_id);
1554:
1549: hr_utility.set_message_token('LEG_CODE','GB');
1550: hr_utility.raise_error;
1551: end if;
1552: --
1553: hr_utility.trace('p_assignment_extra_info_id = ' || p_assignment_extra_info_id);
1554:
1555: hr_utility.set_location(l_proc, 30);
1556: --
1557: -- fething the manual issue date, extra information type, assignment id
1551: end if;
1552: --
1553: hr_utility.trace('p_assignment_extra_info_id = ' || p_assignment_extra_info_id);
1554:
1555: hr_utility.set_location(l_proc, 30);
1556: --
1557: -- fething the manual issue date, extra information type, assignment id
1558: --
1559: open csr_aei_info(p_assignment_extra_info_id);
1560: fetch csr_aei_info into l_aei_information3, l_aei_information4, l_information_type, l_assignment_id;
1561: close csr_aei_info;
1562: --
1563:
1564: hr_utility.set_location(l_proc, 40);
1565:
1566: -- delete the current asg extra info details separately
1567: --
1568: hr_assignment_extra_info_api.delete_assignment_extra_info
1574:
1575: -- first update EIT info based on the manual issue date then
1576: -- continue the same based on override date
1577:
1578: hr_utility.set_location(l_proc, 50);
1579: --
1580: -- considering the manual issue date as the effective date
1581: --
1582: l_effective_date := fnd_date.canonical_to_date(l_aei_information3);
1581: --
1582: l_effective_date := fnd_date.canonical_to_date(l_aei_information3);
1583: --
1584:
1585: hr_utility.set_location(l_proc, 60);
1586: --
1587: -- fetch the tax district, period of servive id and persion id
1588: -- from the given asg extra info id
1589: --
1591: fetch tax_district into l_asg_tax_dist, l_period_of_service_id, l_person_id;
1592: close tax_district;
1593: --
1594:
1595: hr_utility.set_location(l_proc, 70);
1596: --
1597: -- fetching the Agg. PAYE flag value on the effective date
1598: --
1599: open csr_aggr_paye_flag(l_person_id, l_effective_date);
1600: fetch csr_aggr_paye_flag into l_aggregated_paye_flag;
1601: close csr_aggr_paye_flag;
1602: --
1603:
1604: hr_utility.set_location(l_proc, 80);
1605: --
1606: -- When PAYE as 'Y' then update all the agg asg extra info manual issue date as null
1607: -- if the manual issue date is same with current asg' manual issue date
1608: --
1609: if nvl(l_aggregated_paye_flag,'X') = 'Y' and l_effective_date is not null then
1610: -- Aggregated PAYE, loop through agg assignments in
1611: -- current tax district
1612: --
1613: hr_utility.set_location(l_proc, 90);
1614:
1615: --
1616: -- to fetch the latest aggregation start date near to manual issue date.
1617: --
1626: --
1627: for r_rec in csr_per_agg_asg_extra(l_person_id, l_asg_tax_dist,
1628: l_effective_date, l_information_type,
1629: l_assignment_id, l_period_of_service_id) loop
1630: hr_utility.set_location(l_proc, 100);
1631: --
1632: -- fetch the last active/susp status of the r_rec assignemnt
1633: --
1634: l_asg_last_active_date := null;
1649:
1650: if l_found and l_rec_asg_tax_dist = l_asg_tax_dist and
1651: l_rec_period_of_service_id = l_period_of_service_id then
1652:
1653: hr_utility.set_location(l_proc, 110);
1654:
1655: if l_latest_aggr_start_date is not null then
1656: hr_utility.set_location(l_proc, 120);
1657: --
1652:
1653: hr_utility.set_location(l_proc, 110);
1654:
1655: if l_latest_aggr_start_date is not null then
1656: hr_utility.set_location(l_proc, 120);
1657: --
1658: -- to check whther the given assignment present between
1659: -- the earliest aggregation start date and manual issue date
1660: --
1665: --
1666: end if;
1667:
1668: if l_found then
1669: hr_utility.set_location(l_proc, 130);
1670:
1671: --
1672: -- if extra info id not null and manual issue date is same as current manual issue date then update as null
1673: --
1671: --
1672: -- if extra info id not null and manual issue date is same as current manual issue date then update as null
1673: --
1674: if r_rec.assignment_extra_info_id is not null and r_rec.aei_information3 = l_aei_information3 then
1675: hr_utility.set_location(l_proc, 140);
1676: l_object_version_number := r_rec.ovn;
1677: hr_assignment_extra_info_api.update_assignment_extra_info
1678: (p_validate => p_validate
1679: ,p_assignment_extra_info_id => r_rec.assignment_extra_info_id
1692: end if; -- PAYE as 'Y'
1693: --
1694:
1695:
1696: hr_utility.set_location(l_proc, 150);
1697: --
1698: -- considering the override date as the effective date
1699: --
1700: l_effective_date := fnd_date.canonical_to_date(l_aei_information4);
1699: --
1700: l_effective_date := fnd_date.canonical_to_date(l_aei_information4);
1701: --
1702:
1703: hr_utility.set_location(l_proc, 160);
1704: --
1705: -- fetch the tax district, period of servive id and persion id
1706: -- from the given asg extra info id
1707: --
1709: fetch tax_district into l_asg_tax_dist, l_period_of_service_id, l_person_id;
1710: close tax_district;
1711: --
1712:
1713: hr_utility.set_location(l_proc, 170);
1714: --
1715: -- fetching the Agg. PAYE flag value on the effective date
1716: --
1717: open csr_aggr_paye_flag(l_person_id, l_effective_date);
1718: fetch csr_aggr_paye_flag into l_aggregated_paye_flag;
1719: close csr_aggr_paye_flag;
1720: --
1721:
1722: hr_utility.set_location(l_proc, 180);
1723: --
1724: -- When PAYE as 'Y' then update all the agg asg extra info override date as null
1725: -- if the override date is same with current asg' override date
1726: --
1727: if nvl(l_aggregated_paye_flag,'X') = 'Y' and l_effective_date is not null then
1728: -- Aggregated PAYE, loop through agg assignments in
1729: -- current tax district
1730: --
1731: hr_utility.set_location(l_proc, 190);
1732:
1733: --
1734: -- to fetch the latest aggregation start date near to override date.
1735: --
1766:
1767: if l_found and l_rec_asg_tax_dist = l_asg_tax_dist and
1768: l_rec_period_of_service_id = l_period_of_service_id then
1769:
1770: hr_utility.set_location(l_proc, 200);
1771:
1772: if l_latest_aggr_start_date is not null then
1773: hr_utility.set_location(l_proc, 210);
1774: --
1769:
1770: hr_utility.set_location(l_proc, 200);
1771:
1772: if l_latest_aggr_start_date is not null then
1773: hr_utility.set_location(l_proc, 210);
1774: --
1775: -- to check whther the given assignment present between
1776: -- the earliest aggregation start date and manual issue date
1777: --
1782: --
1783: end if;
1784:
1785: if l_found then
1786: hr_utility.set_location(l_proc, 220);
1787:
1788: --
1789: -- if extra info id not null and override date is same as current override date then update as null
1790: --
1788: --
1789: -- if extra info id not null and override date is same as current override date then update as null
1790: --
1791: if r_rec.assignment_extra_info_id is not null and r_rec.aei_information4 = l_aei_information4 then
1792: hr_utility.set_location(l_proc, 230);
1793: l_object_version_number := r_rec.ovn;
1794: hr_assignment_extra_info_api.update_assignment_extra_info
1795: (p_validate => p_validate
1796: ,p_assignment_extra_info_id => r_rec.assignment_extra_info_id
1808: --
1809: end if; -- PAYE as 'Y'
1810: --
1811:
1812: hr_utility.set_location(' Leaving:'||l_proc, 300);
1813: -- hr_utility.trace_off;
1814: end pay_gb_del_p45_info;
1815: -- --------------------------------------------------------------------
1816: -- |-------------------------< pay_gb_ins_p46>-----------------------|
1809: end if; -- PAYE as 'Y'
1810: --
1811:
1812: hr_utility.set_location(' Leaving:'||l_proc, 300);
1813: -- hr_utility.trace_off;
1814: end pay_gb_del_p45_info;
1815: -- --------------------------------------------------------------------
1816: -- |-------------------------< pay_gb_ins_p46>-----------------------|
1817: -- --------------------------------------------------------------------
1843: from per_business_groups pbg
1844: where pbg.business_group_id = p_business_group_id;
1845: --
1846: begin
1847: hr_utility.set_location('Entering:'|| l_proc, 10);
1848: --
1849: -- Validation in addition to Row Handlers
1850: --
1851: -- Check that the specified business group is valid.
1854: fetch csr_bg
1855: into l_legislation_code;
1856: if csr_bg%notfound then
1857: close csr_bg;
1858: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
1859: hr_utility.raise_error;
1860: end if;
1861: close csr_bg;
1862: --
1855: into l_legislation_code;
1856: if csr_bg%notfound then
1857: close csr_bg;
1858: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
1859: hr_utility.raise_error;
1860: end if;
1861: close csr_bg;
1862: --
1863: -- Check that the legislation of the specified business group is 'GB'.
1862: --
1863: -- Check that the legislation of the specified business group is 'GB'.
1864: --
1865: if l_legislation_code <> 'GB' then
1866: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
1867: hr_utility.set_message_token('LEG_CODE','GB');
1868: hr_utility.raise_error;
1869: end if;
1870:
1863: -- Check that the legislation of the specified business group is 'GB'.
1864: --
1865: if l_legislation_code <> 'GB' then
1866: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
1867: hr_utility.set_message_token('LEG_CODE','GB');
1868: hr_utility.raise_error;
1869: end if;
1870:
1871: hr_utility.set_location(l_proc, 6);
1864: --
1865: if l_legislation_code <> 'GB' then
1866: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
1867: hr_utility.set_message_token('LEG_CODE','GB');
1868: hr_utility.raise_error;
1869: end if;
1870:
1871: hr_utility.set_location(l_proc, 6);
1872: -- Bug 3454500 check for Send EDI flag
1867: hr_utility.set_message_token('LEG_CODE','GB');
1868: hr_utility.raise_error;
1869: end if;
1870:
1871: hr_utility.set_location(l_proc, 6);
1872: -- Bug 3454500 check for Send EDI flag
1873: if (p_aei_information3 is null and p_aei_information6 is null) then
1874: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
1875: hr_utility.set_message_token('TYPE','P46');
1870:
1871: hr_utility.set_location(l_proc, 6);
1872: -- Bug 3454500 check for Send EDI flag
1873: if (p_aei_information3 is null and p_aei_information6 is null) then
1874: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
1875: hr_utility.set_message_token('TYPE','P46');
1876: hr_utility.raise_error;
1877: end if;
1878: --
1871: hr_utility.set_location(l_proc, 6);
1872: -- Bug 3454500 check for Send EDI flag
1873: if (p_aei_information3 is null and p_aei_information6 is null) then
1874: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
1875: hr_utility.set_message_token('TYPE','P46');
1876: hr_utility.raise_error;
1877: end if;
1878: --
1879: -- Call the Assignment Extra Information Business API
1872: -- Bug 3454500 check for Send EDI flag
1873: if (p_aei_information3 is null and p_aei_information6 is null) then
1874: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
1875: hr_utility.set_message_token('TYPE','P46');
1876: hr_utility.raise_error;
1877: end if;
1878: --
1879: -- Call the Assignment Extra Information Business API
1880: /* BUG 1843915 Added parameter p_aei_information3 for
1892: ,p_aei_information6 => p_aei_information6
1893: ,p_object_version_number => p_object_version_number
1894: ,p_assignment_extra_info_id => p_assignment_extra_info_id);
1895:
1896: hr_utility.set_location(' Leaving:'||l_proc, 40);
1897: end pay_gb_ins_p46;
1898: --
1899: --
1900: --
1927: from per_business_groups pbg
1928: where pbg.business_group_id = p_business_group_id;
1929: --
1930: begin
1931: hr_utility.set_location('Entering:'|| l_proc, 10);
1932: --
1933: -- Validation in addition to Row Handlers
1934: --
1935: -- Check that the specified business group is valid.
1938: fetch csr_bg
1939: into l_legislation_code;
1940: if csr_bg%notfound then
1941: close csr_bg;
1942: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
1943: hr_utility.raise_error;
1944: end if;
1945: close csr_bg;
1946: --
1939: into l_legislation_code;
1940: if csr_bg%notfound then
1941: close csr_bg;
1942: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
1943: hr_utility.raise_error;
1944: end if;
1945: close csr_bg;
1946: --
1947: -- Check that the legislation of the specified business group is 'GB'.
1946: --
1947: -- Check that the legislation of the specified business group is 'GB'.
1948: --
1949: if l_legislation_code <> 'GB' then
1950: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
1951: hr_utility.set_message_token('LEG_CODE','GB');
1952: hr_utility.raise_error;
1953: end if;
1954:
1947: -- Check that the legislation of the specified business group is 'GB'.
1948: --
1949: if l_legislation_code <> 'GB' then
1950: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
1951: hr_utility.set_message_token('LEG_CODE','GB');
1952: hr_utility.raise_error;
1953: end if;
1954:
1955: hr_utility.set_location(l_proc, 6);
1948: --
1949: if l_legislation_code <> 'GB' then
1950: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
1951: hr_utility.set_message_token('LEG_CODE','GB');
1952: hr_utility.raise_error;
1953: end if;
1954:
1955: hr_utility.set_location(l_proc, 6);
1956: --
1951: hr_utility.set_message_token('LEG_CODE','GB');
1952: hr_utility.raise_error;
1953: end if;
1954:
1955: hr_utility.set_location(l_proc, 6);
1956: --
1957: -- Call the Assignment Extra Information Business API
1958: --
1959: /* BUG 1843915 Added parameter p_aei_information3 for
1970: ,p_aei_information5 => p_aei_information5
1971: ,p_aei_information6 => p_aei_information6
1972: );
1973: --
1974: hr_utility.set_location(' Leaving:'||l_proc, 40);
1975: end pay_gb_upd_p46;
1976: --
1977: -- ----------------------------------------------------------------------------
1978: -- |-------------------------< pay_gb_ins_p46_pennot>-----------------------|
2011: from per_business_groups pbg
2012: where pbg.business_group_id = p_business_group_id;
2013: --
2014: begin
2015: hr_utility.set_location('Entering:'|| l_proc, 10);
2016: --
2017: -- Validation in addition to Row Handlers
2018: --
2019: -- Check that the specified business group is valid.
2022: fetch csr_bg
2023: into l_legislation_code;
2024: if csr_bg%notfound then
2025: close csr_bg;
2026: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
2027: hr_utility.raise_error;
2028: end if;
2029: close csr_bg;
2030: --
2023: into l_legislation_code;
2024: if csr_bg%notfound then
2025: close csr_bg;
2026: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
2027: hr_utility.raise_error;
2028: end if;
2029: close csr_bg;
2030: --
2031: -- Check that the legislation of the specified business group is 'GB'.
2030: --
2031: -- Check that the legislation of the specified business group is 'GB'.
2032: --
2033: if l_legislation_code <> 'GB' then
2034: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
2035: hr_utility.set_message_token('LEG_CODE','GB');
2036: hr_utility.raise_error;
2037: end if;
2038:
2031: -- Check that the legislation of the specified business group is 'GB'.
2032: --
2033: if l_legislation_code <> 'GB' then
2034: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
2035: hr_utility.set_message_token('LEG_CODE','GB');
2036: hr_utility.raise_error;
2037: end if;
2038:
2039: hr_utility.set_location(l_proc, 6);
2032: --
2033: if l_legislation_code <> 'GB' then
2034: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
2035: hr_utility.set_message_token('LEG_CODE','GB');
2036: hr_utility.raise_error;
2037: end if;
2038:
2039: hr_utility.set_location(l_proc, 6);
2040: -- Bug 3454500 check for Send EDI flag
2035: hr_utility.set_message_token('LEG_CODE','GB');
2036: hr_utility.raise_error;
2037: end if;
2038:
2039: hr_utility.set_location(l_proc, 6);
2040: -- Bug 3454500 check for Send EDI flag
2041: if (p_aei_information4 is null) then
2042: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
2043: hr_utility.set_message_token('TYPE','P46 Pension Notification');
2038:
2039: hr_utility.set_location(l_proc, 6);
2040: -- Bug 3454500 check for Send EDI flag
2041: if (p_aei_information4 is null) then
2042: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
2043: hr_utility.set_message_token('TYPE','P46 Pension Notification');
2044: hr_utility.raise_error;
2045: end if;
2046: --
2039: hr_utility.set_location(l_proc, 6);
2040: -- Bug 3454500 check for Send EDI flag
2041: if (p_aei_information4 is null) then
2042: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
2043: hr_utility.set_message_token('TYPE','P46 Pension Notification');
2044: hr_utility.raise_error;
2045: end if;
2046: --
2047: -- Call the Assignment Extra Information Business API
2040: -- Bug 3454500 check for Send EDI flag
2041: if (p_aei_information4 is null) then
2042: hr_utility.set_message(800, 'HR_GB_78120_MISSING_EDI_FLAG');
2043: hr_utility.set_message_token('TYPE','P46 Pension Notification');
2044: hr_utility.raise_error;
2045: end if;
2046: --
2047: -- Call the Assignment Extra Information Business API
2048: --
2067: ,p_aei_information11 => p_aei_information11
2068: ,p_object_version_number => p_object_version_number
2069: ,p_assignment_extra_info_id => p_assignment_extra_info_id);
2070: --
2071: hr_utility.set_location(' Leaving:'||l_proc, 40);
2072: end pay_gb_ins_p46_pennot;
2073: --
2074: --
2075: --
2108: from per_business_groups pbg
2109: where pbg.business_group_id = p_business_group_id;
2110: --
2111: begin
2112: hr_utility.set_location('Entering:'|| l_proc, 10);
2113: --
2114: -- Validation in addition to Row Handlers
2115: --
2116: -- Check that the specified business group is valid.
2114: -- Validation in addition to Row Handlers
2115: --
2116: -- Check that the specified business group is valid.
2117: --
2118: hr_utility.set_location(l_proc, 20);
2119: open csr_bg;
2120: fetch csr_bg
2121: into l_legislation_code;
2122: if csr_bg%notfound then
2119: open csr_bg;
2120: fetch csr_bg
2121: into l_legislation_code;
2122: if csr_bg%notfound then
2123: hr_utility.set_location(l_proc, 30);
2124: close csr_bg;
2125: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
2126: hr_utility.raise_error;
2127: end if;
2121: into l_legislation_code;
2122: if csr_bg%notfound then
2123: hr_utility.set_location(l_proc, 30);
2124: close csr_bg;
2125: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
2126: hr_utility.raise_error;
2127: end if;
2128: close csr_bg;
2129: --
2122: if csr_bg%notfound then
2123: hr_utility.set_location(l_proc, 30);
2124: close csr_bg;
2125: hr_utility.set_message(801, 'HR_7208_API_BUS_GRP_INVALID');
2126: hr_utility.raise_error;
2127: end if;
2128: close csr_bg;
2129: --
2130: -- Check that the legislation of the specified business group is 'GB'.
2129: --
2130: -- Check that the legislation of the specified business group is 'GB'.
2131: --
2132: if l_legislation_code <> 'GB' then
2133: hr_utility.set_location(l_proc, 40);
2134: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
2135: hr_utility.set_message_token('LEG_CODE','GB');
2136: hr_utility.raise_error;
2137: end if;
2130: -- Check that the legislation of the specified business group is 'GB'.
2131: --
2132: if l_legislation_code <> 'GB' then
2133: hr_utility.set_location(l_proc, 40);
2134: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
2135: hr_utility.set_message_token('LEG_CODE','GB');
2136: hr_utility.raise_error;
2137: end if;
2138:
2131: --
2132: if l_legislation_code <> 'GB' then
2133: hr_utility.set_location(l_proc, 40);
2134: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
2135: hr_utility.set_message_token('LEG_CODE','GB');
2136: hr_utility.raise_error;
2137: end if;
2138:
2139: hr_utility.set_location(l_proc, 50);
2132: if l_legislation_code <> 'GB' then
2133: hr_utility.set_location(l_proc, 40);
2134: hr_utility.set_message(801, 'HR_7961_PER_BUS_GRP_INVALID');
2135: hr_utility.set_message_token('LEG_CODE','GB');
2136: hr_utility.raise_error;
2137: end if;
2138:
2139: hr_utility.set_location(l_proc, 50);
2140: --
2135: hr_utility.set_message_token('LEG_CODE','GB');
2136: hr_utility.raise_error;
2137: end if;
2138:
2139: hr_utility.set_location(l_proc, 50);
2140: --
2141: -- Call the Assignment Extra Information Business API
2142: --
2143: -- Bug 1843915 Added the parameter p_aei_information4 to insert the column
2159: ,p_aei_information9 => p_aei_information9
2160: ,p_aei_information10 => p_aei_information10
2161: ,p_aei_information11 => p_aei_information11);
2162: --
2163: hr_utility.set_location(' Leaving:'||l_proc, 60);
2164: end pay_gb_upd_p46_pennot;
2165: --
2166: --
2167: end pay_gb_aei_api;