57: l_proc varchar2(30):= 'update_last_change_date';
58:
59: begin
60:
61: hr_utility.set_location('Entering:'||l_proc,5);
62: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
63: hr_utility.set_location('p_change_date:'||p_change_date,25);
64:
65: l_last_change_date:=p_change_date;
58:
59: begin
60:
61: hr_utility.set_location('Entering:'||l_proc,5);
62: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
63: hr_utility.set_location('p_change_date:'||p_change_date,25);
64:
65: l_last_change_date:=p_change_date;
66:
59: begin
60:
61: hr_utility.set_location('Entering:'||l_proc,5);
62: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
63: hr_utility.set_location('p_change_date:'||p_change_date,25);
64:
65: l_last_change_date:=p_change_date;
66:
67: OPEN csr_next_proposal;
66:
67: OPEN csr_next_proposal;
68: FETCH csr_next_proposal into l_pay_proposal_id,l_row_id;
69:
70: hr_utility.set_location('l_pay_proposal_id:'||l_pay_proposal_id,15);
71:
72: if csr_next_proposal%FOUND then
73: hr_utility.set_location('Cursor found:',25);
74:
69:
70: hr_utility.set_location('l_pay_proposal_id:'||l_pay_proposal_id,15);
71:
72: if csr_next_proposal%FOUND then
73: hr_utility.set_location('Cursor found:',25);
74:
75: --added by schowdhu to fix 7205132
76:
77: update per_pay_proposals
85: update per_pay_proposals
86: set last_change_date = l_last_change_date
87: where rowid=l_row_id;
88: */
89: hr_utility.set_location('Updated successfuly:',35);
90: end if;
91:
92: CLOSE csr_next_proposal;
93:
90: end if;
91:
92: CLOSE csr_next_proposal;
93:
94: hr_utility.set_location('Leaving:'||l_proc,5);
95:
96: EXCEPTION
97: When others then
98: --
97: When others then
98: --
99: -- An unexpected error has occured
100: --
101: hr_utility.set_location('When Others:'||l_proc,5);
102: raise;
103: --
104: end update_last_change_date;
105: --
124: l_proc varchar2(30):= 'end_date_proposed_proposal';
125:
126: begin
127:
128: hr_utility.set_location('Entering:'||l_proc,5);
129: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
130: hr_utility.set_location('p_date_to:'||p_date_to,25);
131:
132: OPEN csr_prev_prop_details;
125:
126: begin
127:
128: hr_utility.set_location('Entering:'||l_proc,5);
129: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
130: hr_utility.set_location('p_date_to:'||p_date_to,25);
131:
132: OPEN csr_prev_prop_details;
133: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
126: begin
127:
128: hr_utility.set_location('Entering:'||l_proc,5);
129: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
130: hr_utility.set_location('p_date_to:'||p_date_to,25);
131:
132: OPEN csr_prev_prop_details;
133: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
134:
131:
132: OPEN csr_prev_prop_details;
133: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
134:
135: hr_utility.set_location('l_pay_proposal_id:'||l_pay_proposal_id,15);
136: hr_utility.set_location('l_date_to:'||l_date_to,25);
137:
138: if csr_prev_prop_details%FOUND then
139: hr_utility.set_location('Cursor found:',35);
132: OPEN csr_prev_prop_details;
133: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
134:
135: hr_utility.set_location('l_pay_proposal_id:'||l_pay_proposal_id,15);
136: hr_utility.set_location('l_date_to:'||l_date_to,25);
137:
138: if csr_prev_prop_details%FOUND then
139: hr_utility.set_location('Cursor found:',35);
140: if l_date_to is null OR l_date_to > p_date_to then
135: hr_utility.set_location('l_pay_proposal_id:'||l_pay_proposal_id,15);
136: hr_utility.set_location('l_date_to:'||l_date_to,25);
137:
138: if csr_prev_prop_details%FOUND then
139: hr_utility.set_location('Cursor found:',35);
140: if l_date_to is null OR l_date_to > p_date_to then
141: hr_utility.set_location('About to update',45);
142: update per_pay_proposals
143: set date_to = p_date_to,
137:
138: if csr_prev_prop_details%FOUND then
139: hr_utility.set_location('Cursor found:',35);
140: if l_date_to is null OR l_date_to > p_date_to then
141: hr_utility.set_location('About to update',45);
142: update per_pay_proposals
143: set date_to = p_date_to,
144: -- added by vkodedal fix for 6831216
145: last_update_date = sysdate,
147: last_update_login = fnd_global.login_id
148: -- end of fix
149: where assignment_id = p_assignment_id
150: and pay_proposal_id = l_pay_proposal_id;
151: hr_utility.set_location('Updated successfuly:',85);
152: end if;
153: end if;
154: CLOSE csr_prev_prop_details;
155:
152: end if;
153: end if;
154: CLOSE csr_prev_prop_details;
155:
156: hr_utility.set_location('Leaving:'||l_proc,5);
157:
158: end end_date_proposed_proposal;
159: --
160: --
197: l_del_warn boolean;
198:
199: begin
200:
201: hr_utility.set_location('Entering:'||l_proc,5);
202: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
203: hr_utility.set_location('p_date_to:'||p_date_to,25);
204:
205: OPEN csr_prev_prop_details;
198:
199: begin
200:
201: hr_utility.set_location('Entering:'||l_proc,5);
202: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
203: hr_utility.set_location('p_date_to:'||p_date_to,25);
204:
205: OPEN csr_prev_prop_details;
206: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
199: begin
200:
201: hr_utility.set_location('Entering:'||l_proc,5);
202: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
203: hr_utility.set_location('p_date_to:'||p_date_to,25);
204:
205: OPEN csr_prev_prop_details;
206: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
207:
205: OPEN csr_prev_prop_details;
206: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
207:
208: if csr_prev_prop_details%FOUND then
209: hr_utility.set_location('Cursor found:',35);
210: if l_date_to is null OR l_date_to > p_date_to then
211: hr_utility.set_location('About to update',45);
212: update per_pay_proposals
213: set date_to = p_date_to,
207:
208: if csr_prev_prop_details%FOUND then
209: hr_utility.set_location('Cursor found:',35);
210: if l_date_to is null OR l_date_to > p_date_to then
211: hr_utility.set_location('About to update',45);
212: update per_pay_proposals
213: set date_to = p_date_to,
214: -- added by vkodedal fix for 6831216
215: last_update_date = sysdate,
217: last_update_login = fnd_global.login_id
218: -- end of fix
219: where assignment_id = p_assignment_id
220: and pay_proposal_id = l_pay_proposal_id;
221: hr_utility.set_location('Updated successfuly:',85);
222: end if;
223: end if;
224: CLOSE csr_prev_prop_details;
225:
226: -- This condition is added to delete the proposed proposals in case it is not yet done from
227: -- the OA layer. schowdhu - 01-Dec-2008
228: if( HR_MAINTAIN_PROPOSAL_API.g_deleted_from_oa = 'N')
229: then
230: hr_utility.set_location('Within delete from OA',90);
231: -- now delete all the inactivated proposed proposals. Bug#7386307 by schowdhu
232: for a in get_all_proposed_proposals loop
233: hr_maintain_proposal_api.delete_salary_proposal
234: (p_pay_proposal_id => a.pay_proposal_id
237: ,p_salary_warning => l_del_warn);
238: end loop;
239: end if;
240:
241: hr_utility.set_location('Leaving:'||l_proc,100);
242:
243: end end_date_approved_proposal;
244: --
245: --
281: and assignment_id = p_assignment_id
282: and change_date = p_date_to +1 ;
283: begin
284:
285: hr_utility.set_location('Entering:'||l_proc,5);
286: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
287: hr_utility.set_location('p_date_to:'||p_date_to,25);
288: /*
289: OPEN csr_prev_prop_details;
282: and change_date = p_date_to +1 ;
283: begin
284:
285: hr_utility.set_location('Entering:'||l_proc,5);
286: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
287: hr_utility.set_location('p_date_to:'||p_date_to,25);
288: /*
289: OPEN csr_prev_prop_details;
290: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
283: begin
284:
285: hr_utility.set_location('Entering:'||l_proc,5);
286: hr_utility.set_location('p_assignment_id:'||p_assignment_id,15);
287: hr_utility.set_location('p_date_to:'||p_date_to,25);
288: /*
289: OPEN csr_prev_prop_details;
290: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
291:
288: /*
289: OPEN csr_prev_prop_details;
290: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
291:
292: hr_utility.set_location('l_pay_proposal_id:'||l_pay_proposal_id,15);
293: hr_utility.set_location('l_date_to:'||l_date_to,25);
294:
295:
296: if csr_prev_prop_details%FOUND then
289: OPEN csr_prev_prop_details;
290: FETCH csr_prev_prop_details into l_pay_proposal_id,l_date_to;
291:
292: hr_utility.set_location('l_pay_proposal_id:'||l_pay_proposal_id,15);
293: hr_utility.set_location('l_date_to:'||l_date_to,25);
294:
295:
296: if csr_prev_prop_details%FOUND then
297: hr_utility.set_location('Cursor found:',35);
293: hr_utility.set_location('l_date_to:'||l_date_to,25);
294:
295:
296: if csr_prev_prop_details%FOUND then
297: hr_utility.set_location('Cursor found:',35);
298: if l_date_to is null OR l_date_to > p_date_to then
299: hr_utility.set_location('About to update',45);
300: update per_pay_proposals
301: set date_to = p_date_to,
295:
296: if csr_prev_prop_details%FOUND then
297: hr_utility.set_location('Cursor found:',35);
298: if l_date_to is null OR l_date_to > p_date_to then
299: hr_utility.set_location('About to update',45);
300: update per_pay_proposals
301: set date_to = p_date_to,
302: -- added by vkodedal fix for 6831216
303: last_update_date = sysdate,
305: last_update_login = fnd_global.login_id
306: -- end of fix
307: where assignment_id = p_assignment_id
308: and pay_proposal_id = l_pay_proposal_id;
309: hr_utility.set_location('Updated successfuly:',85);
310: end if;
311: end if;
312: CLOSE csr_prev_prop_details;
313: */
320: end_date_approved_proposal (p_assignment_id, p_date_to, p_proposal_id);
321: end if;
322: CLOSE chk_approved_flg;
323:
324: hr_utility.set_location('Leaving:'||l_proc,5);
325:
326: end end_date_salary_proposal;
327:
328:
351: --
352: begin
353: --
354:
355: hr_utility.set_location('Entering:'||l_proc,5);
356: --
357: if (p_pay_proposal_id is not null)
358: then
359: open c_pay_proposal;
363: open c_asg_pay_basis_id(l_assignment_id , l_deleted_proposal_date);
364: fetch c_asg_pay_basis_id into l_curr_pay_basis_id;
365: close c_asg_pay_basis_id;
366: --
367: hr_utility.set_location('Current pay_basis_id:'||l_curr_pay_basis_id,10);
368: --
369: --
370: open c_asg_pay_basis_id(l_assignment_id , l_deleted_proposal_date-1);
371: fetch c_asg_pay_basis_id into l_prev_pay_basis_id;
370: open c_asg_pay_basis_id(l_assignment_id , l_deleted_proposal_date-1);
371: fetch c_asg_pay_basis_id into l_prev_pay_basis_id;
372: close c_asg_pay_basis_id;
373: --
374: hr_utility.set_location('Previous pay_basis_id:'||l_prev_pay_basis_id,20);
375: --
376:
377: --
378: -- if pay_basis_id for the assignment is different don't extend
379: --
380: if (l_curr_pay_basis_id is null or l_prev_pay_basis_id is null
381: or l_curr_pay_basis_id<>l_prev_pay_basis_id) then
382: --
383: hr_utility.set_location('Exiting1:'||l_proc,50);
384: --
385: return;
386: end if;
387: /* changed to adjust the date_to after deletion of a proposal. Bug#7386307 by schowdhu */
428: */
429:
430: end if;
431: --
432: hr_utility.set_location('Exiting2:'||l_proc,50);
433:
434: --
435: end;
436:
583: --
584: --
585: begin
586: --
587: hr_utility.set_location('Entering:'||l_proc,5);
588: l_date_to := p_date_to;
589:
590: open csr_get_element_detail;
591: fetch csr_get_element_detail into l_element_type_id,
592: l_input_value_id,
593: l_pay_annualization_factor,
594: l_pay_basis;
595: if csr_get_element_detail%notfound then
596: hr_utility.set_location(l_proc,10);
597: close csr_get_element_detail;
598: hr_utility.set_message(801,'HR_289855_SAL_ASS_NOT_SAL_ELIG');
599: hr_utility.raise_error;
600: else
594: l_pay_basis;
595: if csr_get_element_detail%notfound then
596: hr_utility.set_location(l_proc,10);
597: close csr_get_element_detail;
598: hr_utility.set_message(801,'HR_289855_SAL_ASS_NOT_SAL_ELIG');
599: hr_utility.raise_error;
600: else
601: close csr_get_element_detail;
602: per_pay_proposals_populate.get_payroll(p_assignment_id
595: if csr_get_element_detail%notfound then
596: hr_utility.set_location(l_proc,10);
597: close csr_get_element_detail;
598: hr_utility.set_message(801,'HR_289855_SAL_ASS_NOT_SAL_ELIG');
599: hr_utility.raise_error;
600: else
601: close csr_get_element_detail;
602: per_pay_proposals_populate.get_payroll(p_assignment_id
603: ,p_change_date
603: ,p_change_date
604: ,l_dummy_v
605: ,l_payroll_annualization_factor);
606: --
607: hr_utility.set_location(l_proc,15);
608: --
609: if(l_pay_annualization_factor is null and l_pay_basis='PERIOD') then
610: l_pay_annualization_factor:=l_payroll_annualization_factor;
611: end if;
615: /l_payroll_annualization_factor;
616: --
617: if (l_element_type_id IS NULL OR l_input_value_id IS NULL)
618: then
619: hr_utility.set_location(l_proc,20);
620: hr_utility.set_message(801,'HR_289855_SAL_ASS_NOT_SAL_ELIG');
621: hr_utility.raise_error;
622: else
623: --
616: --
617: if (l_element_type_id IS NULL OR l_input_value_id IS NULL)
618: then
619: hr_utility.set_location(l_proc,20);
620: hr_utility.set_message(801,'HR_289855_SAL_ASS_NOT_SAL_ELIG');
621: hr_utility.raise_error;
622: else
623: --
624: -- get the payroll element if it exists
617: if (l_element_type_id IS NULL OR l_input_value_id IS NULL)
618: then
619: hr_utility.set_location(l_proc,20);
620: hr_utility.set_message(801,'HR_289855_SAL_ASS_NOT_SAL_ELIG');
621: hr_utility.raise_error;
622: else
623: --
624: -- get the payroll element if it exists
625: --
625: --
626: open get_payroll_element(l_element_type_id);
627: fetch get_payroll_element into l_input_value_id2;
628: if(get_payroll_element%notfound) then
629: hr_utility.set_location(l_proc,25);
630: close get_payroll_element;
631: l_input_value_id2:=null;
632: l_entry_value2:=null;
633: else
636: --
637: if (p_element_entry_id is null) THEN
638: -- this must be a new entry so do the inserting of the element
639: --
640: hr_utility.set_location(l_proc,30);
641: l_element_link_id := hr_entry_api.get_link
642: (p_assignment_id
643: ,l_element_type_id
644: ,p_change_date);
642: (p_assignment_id
643: ,l_element_type_id
644: ,p_change_date);
645: if l_element_link_id IS NULL then
646: hr_utility.set_location(l_proc,35);
647: hr_utility.set_message(801,'HR_13016_SAL_ELE_NOT_ELIG');
648: hr_utility.raise_error;
649: end if;
650: hr_utility.set_location(l_proc,40);
643: ,l_element_type_id
644: ,p_change_date);
645: if l_element_link_id IS NULL then
646: hr_utility.set_location(l_proc,35);
647: hr_utility.set_message(801,'HR_13016_SAL_ELE_NOT_ELIG');
648: hr_utility.raise_error;
649: end if;
650: hr_utility.set_location(l_proc,40);
651: open get_existing_date;
644: ,p_change_date);
645: if l_element_link_id IS NULL then
646: hr_utility.set_location(l_proc,35);
647: hr_utility.set_message(801,'HR_13016_SAL_ELE_NOT_ELIG');
648: hr_utility.raise_error;
649: end if;
650: hr_utility.set_location(l_proc,40);
651: open get_existing_date;
652: fetch get_existing_date into l_dummy;
646: hr_utility.set_location(l_proc,35);
647: hr_utility.set_message(801,'HR_13016_SAL_ELE_NOT_ELIG');
648: hr_utility.raise_error;
649: end if;
650: hr_utility.set_location(l_proc,40);
651: open get_existing_date;
652: fetch get_existing_date into l_dummy;
653: if(get_existing_date%found) then
654: close get_existing_date;
651: open get_existing_date;
652: fetch get_existing_date into l_dummy;
653: if(get_existing_date%found) then
654: close get_existing_date;
655: hr_utility.set_location(l_proc,45);
656: hr_utility.set_message(801,'HR_13003_SAL_SAL_CHANGE_EXISTS');
657: hr_utility.raise_error;
658: else
659: close get_existing_date;
652: fetch get_existing_date into l_dummy;
653: if(get_existing_date%found) then
654: close get_existing_date;
655: hr_utility.set_location(l_proc,45);
656: hr_utility.set_message(801,'HR_13003_SAL_SAL_CHANGE_EXISTS');
657: hr_utility.raise_error;
658: else
659: close get_existing_date;
660: --
653: if(get_existing_date%found) then
654: close get_existing_date;
655: hr_utility.set_location(l_proc,45);
656: hr_utility.set_message(801,'HR_13003_SAL_SAL_CHANGE_EXISTS');
657: hr_utility.raise_error;
658: else
659: close get_existing_date;
660: --
661: -- Now we insert an element entry for this proposal
660: --
661: -- Now we insert an element entry for this proposal
662: -- by calling the insert_element_entry_api.
663: --
664: hr_utility.set_location(l_proc,50);
665: hr_entry_api.insert_element_entry
666: (p_effective_start_date =>l_effective_start_date
667: ,p_effective_end_date => l_effective_end_date
668: ,p_element_entry_id => p_element_entry_id
678: );
679: end if;
680:
681: else
682: hr_utility.set_location(l_proc,65);
683: hr_entry_api.update_element_entry
684: (p_dt_update_mode => get_dt_mode(p_change_date,p_element_entry_id)
685: ,p_session_date => p_change_date
686: ,p_check_for_update => 'Y'
693: ,p_entry_value2 => l_entry_value2
694: );
695: end if;
696:
697: hr_utility.set_location('Effective End Date of the element entry:'||l_effective_end_date,69);
698:
699: OPEN get_last_date;
700: FETCH get_last_date INTO l_last_date;
701: CLOSE get_last_date;
715: CLOSE Csr_Entry_End_Date;
716:
717: IF l_date_to > l_Entry_End_Date THEN
718: FOR i in csr_element_entries LOOP
719: hr_utility.set_location('Inside the loop'||i.effective_start_date,69);
720: hr_entry_api.delete_element_entry
721: ('DELETE_NEXT_CHANGE',
722: i.effective_end_date,
723: p_element_entry_id);
736: ,p_input_value_id2 => l_input_value_id2
737: ,p_entry_value2 => 0
738: );
739: ELSE
740: hr_utility.set_location('The element entry end date and the date_to are matching',89);
741: END IF; --l_date_to and element entry date comparisons
742: end if;
743: end if;
744:
749: ,p_effective_date => p_change_date
750: ,p_called_from => 'SAL');
751: --End changes for position control rule on sal proposal
752: --
753: hr_utility.set_location('Leaving:'||l_proc,70);
754: end maintain_elements_bsp;
755: --
756: -- ----------------------------------------------------------------------------
757: -- |----------------------< insert_salary_proposal >--------------------------|
829:
830: --
831: --
832: begin
833: hr_utility.set_location('Entering:'||l_proc,10);
834: --
835: -- Issue a savepoint
836: --
837: savepoint insert_salary_proposal;
1006: p_payroll_value => l_payroll_value,
1007: p_element_entry_id => l_element_entry_id);
1008: end if;
1009: --
1010: hr_utility.set_location(l_proc,20);
1011: if(p_approved='Y') then
1012: hr_utility.set_location(l_proc,30);
1013: -- parameter p_element_entry_id is change to l_element_entry_id to fix the bug#3488239.
1014: maintain_elements_bsp(l_pay_proposal_id
1008: end if;
1009: --
1010: hr_utility.set_location(l_proc,20);
1011: if(p_approved='Y') then
1012: hr_utility.set_location(l_proc,30);
1013: -- parameter p_element_entry_id is change to l_element_entry_id to fix the bug#3488239.
1014: maintain_elements_bsp(l_pay_proposal_id
1015: ,p_assignment_id
1016: ,p_change_date
1018: ,l_element_entry_id
1019: ,p_proposed_salary_n);
1020: end if;
1021: --
1022: hr_utility.set_location(l_proc, 40);
1023: --
1024: -- Call After Process User Hook for insert_salary_proposal
1025: --
1026: begin
1093: p_proposed_salary_warning := l_proposed_salary_warning;
1094: p_approved_warning := l_approved_warning;
1095: p_payroll_warning := l_payroll_warning;
1096: --
1097: hr_utility.set_location('Leaving: '||l_proc,50);
1098: --
1099: Exception
1100: When HR_Api.Validate_Enabled Then
1101: --
1116: p_payroll_warning := l_payroll_warning;
1117:
1118: p_element_entry_id := l_temp_element_entry_id;
1119: --
1120: hr_utility.set_location(' Leaving:'||l_proc, 60);
1121: --
1122: When others then
1123: --
1124: -- A validation or unexpected error has occured
1130: p_proposed_salary_warning := null;
1131: p_approved_warning := null;
1132: p_payroll_warning := null;
1133: p_element_entry_id := l_temp_element_entry_id;
1134: hr_utility.set_location(' Leaving:'||l_proc, 70);
1135: raise;
1136: --
1137: end insert_salary_proposal;
1138: --
1327:
1328: --
1329: begin
1330:
1331: hr_utility.set_location('Entering:'||l_proc,5);
1332: --
1333: -- Issue a savepoint
1334: --
1335: savepoint update_salary_proposal;
1488:
1489: -- Now we maintain an element entry for this proposal
1490: -- by calling the maintain_elements_bsp.
1491: --
1492: hr_utility.set_location(l_proc,10);
1493:
1494: if(p_approved='Y') then
1495: hr_utility.set_location(l_proc,15);
1496: open get_element;
1491: --
1492: hr_utility.set_location(l_proc,10);
1493:
1494: if(p_approved='Y') then
1495: hr_utility.set_location(l_proc,15);
1496: open get_element;
1497: fetch get_element into l_element_entry_id,l_assignment_id;
1498: if get_element%found then
1499: close get_element;
1496: open get_element;
1497: fetch get_element into l_element_entry_id,l_assignment_id;
1498: if get_element%found then
1499: close get_element;
1500: hr_utility.set_location(l_proc,20);
1501: --
1502: if p_proposed_salary_n = hr_api.g_number then
1503: l_proposed_salary_n:=per_pyp_shd.g_old_rec.proposed_salary_n;
1504: else
1510: ,l_date_to
1511: ,l_element_entry_id
1512: ,l_proposed_salary_n);
1513: else
1514: hr_utility.set_location(l_proc,25);
1515: l_element_entry_id := null;
1516: select pyp.assignment_id
1517: into l_assignment_id
1518: from per_pay_proposals pyp
1600: p_proposed_salary_warning := l_proposed_salary_warning;
1601: p_approved_warning := l_approved_warning;
1602: p_payroll_warning := l_payroll_warning;
1603: --
1604: hr_utility.set_location('Leaving: '||l_proc,20);
1605: --
1606: Exception
1607: When HR_Api.Validate_Enabled Then
1608: --
1620: p_approved_warning := l_approved_warning;
1621: p_payroll_warning := l_payroll_warning;
1622: p_object_version_number := l_temp_ovn;
1623: --
1624: hr_utility.set_location(' Leaving:'||l_proc, 25);
1625: --
1626: When others then
1627: --
1628: -- A validation or unexpected error has occured
1632: p_proposed_salary_warning := null;
1633: p_approved_warning := null;
1634: p_payroll_warning := null;
1635: p_object_version_number := l_temp_ovn;
1636: hr_utility.set_location(' Leaving:'||l_proc, 30);
1637: raise;
1638: --
1639: end update_salary_proposal;
1640: --
1800: from per_pay_proposals
1801: where pay_proposal_id = p_pay_proposal_id;
1802:
1803: begin
1804: hr_utility.set_location('Entering:'||l_proc,5);
1805: --
1806: -- Issue a savepoint
1807: --
1808: savepoint approve_salary_proposal;
1876:
1877: -- Now we maintain an element entry for this proposal
1878: -- by calling the maintain_elements_bsp.
1879: --
1880: hr_utility.set_location(l_proc,10);
1881: --
1882: -- Bug 1732348 Fix
1883: l_assignment_id:=per_pyp_shd.g_old_rec.assignment_id;
1884: open get_element;
1944: p_approved_warning := l_approved_warning;
1945: p_payroll_warning := l_payroll_warning;
1946: p_error_text := l_error_text;
1947: --
1948: hr_utility.set_location('Leaving: '||l_proc,15);
1949: --
1950: Exception
1951: When HR_Api.Validate_Enabled Then
1952: --
1965: p_payroll_warning := l_payroll_warning;
1966: p_error_text := null;
1967: p_object_version_number := l_temp_ovn;
1968: --
1969: hr_utility.set_location(' Leaving:'||l_proc, 20);
1970: --
1971: When others then
1972: --
1973: -- A validation or unexpected error has occured
1981: p_payroll_warning := null;
1982: p_object_version_number := l_temp_ovn;
1983: p_error_text := sqlerrm;
1984: --
1985: hr_utility.set_location(' Leaving:'||l_proc, 25);
1986: -- raise;
1987: --
1988: end approve_salary_proposal;
1989: --
2043: where pay_proposal_id = p_pay_proposal_id;
2044:
2045:
2046: begin
2047: hr_utility.set_location('Entering:'||l_proc,5);
2048: --
2049: --
2050: -- Issue a savepoint
2051: --
2080: ,p_object_version_number=>l_components.object_version_number
2081: ,p_validation_strength=>'WEAK'
2082: ,p_validate=>FALSE);
2083: END LOOP;
2084: hr_utility.set_location(l_proc,10);
2085:
2086: OPEN Csr_proposal_details;
2087: fetch Csr_proposal_details into l_approved,l_last_change_date, l_assignment_id;
2088: close Csr_proposal_details;
2096: -- delete the element entries
2097: --
2098: if (l_element_entry_id is not null) then
2099: --
2100: hr_utility.set_location(l_proc,15);
2101: begin
2102: --
2103: select 'Y'
2104: into v_zap
2114: exception
2115: when no_data_found
2116: then
2117: v_delete_next_change := TRUE;
2118: hr_utility.set_location(l_proc,20);
2119: --
2120: end;
2121: --
2122: v_zap_entry := (v_zap = 'Y');
2139: --
2140:
2141: -- then delete the proposal
2142: --
2143: hr_utility.set_location(l_proc,25);
2144: per_pyp_del.del(p_pay_proposal_id=>p_pay_proposal_id
2145: ,p_object_version_number=>p_object_version_number
2146: ,p_validate=>FALSE
2147: ,p_salary_warning=>l_salary_warning);
2156: CLOSE csr_future_element_entries;
2157:
2158: if l_future_element_entries > 0 then
2159:
2160: hr_utility.set_message(800,'PER_SAL_FIRST_PROPOSAL_DELETE');
2161: hr_utility.raise_error;
2162:
2163: end if;
2164:
2157:
2158: if l_future_element_entries > 0 then
2159:
2160: hr_utility.set_message(800,'PER_SAL_FIRST_PROPOSAL_DELETE');
2161: hr_utility.raise_error;
2162:
2163: end if;
2164:
2165:
2162:
2163: end if;
2164:
2165:
2166: hr_utility.set_location(l_proc,30);
2167: -- call API to zap entry
2168: hr_entry_api.delete_element_entry
2169: ('ZAP',
2170: l_change_date,
2170: l_change_date,
2171: l_element_entry_id);
2172: elsif (v_delete_next_change = TRUE)
2173: then
2174: hr_utility.set_location(l_proc,35);
2175: -- Call API to do a 'DELETE_NEXT_CHANGE'
2176: hr_entry_api.delete_element_entry
2177: ('DELETE_NEXT_CHANGE',
2178: l_change_date - 1,
2216: -- Set OUT parameters
2217: --
2218: p_salary_warning := l_salary_warning;
2219: --
2220: hr_utility.set_location('Leaving: '||l_proc,40);
2221: --
2222: Exception
2223: When HR_Api.Validate_Enabled Then
2224: --
2288: l_component_id per_pay_proposal_components.component_id%TYPE;
2289: l_object_version_number per_pay_proposal_components.object_version_number%TYPE;
2290: --
2291: begin
2292: hr_utility.set_location('Entering:'||l_proc,5);
2293: --
2294: --
2295: -- Issue a savepoint
2296: --
2437: --
2438: p_component_id := l_component_id;
2439: p_object_version_number := l_object_version_number;
2440: --
2441: hr_utility.set_location('Leaving: '||l_proc,10);
2442: --
2443: Exception
2444: When HR_Api.Validate_Enabled Then
2445: --
2508: l_object_version_number per_pay_proposal_components.object_version_number%TYPE;
2509: l_temp_ovn number := p_object_version_number;
2510: --
2511: begin
2512: hr_utility.set_location('Entering:'||l_proc,10);
2513: --
2514: --
2515: -- Issue a savepoint
2516: --
2655: -- Set OUT parameters
2656: --
2657: p_object_version_number := l_object_version_number;
2658: --
2659: hr_utility.set_location('Leaving: '||l_proc,20);
2660: --
2661: Exception
2662: When HR_Api.Validate_Enabled Then
2663: --
2672: -- A validation or unexpected error has occured
2673: --
2674: ROLLBACK TO update_proposal_components;
2675: p_object_version_number := l_temp_ovn;
2676: hr_utility.set_location(' Leaving:'||l_proc, 25);
2677: raise;
2678: --
2679: end update_proposal_component;
2680: --
2690: --
2691: l_proc varchar2(72) := g_package||'delete_proposal_component';
2692: --
2693: begin
2694: hr_utility.set_location('Entering:'||l_proc,5);
2695: --
2696: --
2697: -- Issue a savepoint
2698: --
2752: If p_validate then
2753: Raise HR_Api.Validate_Enabled;
2754: End If;
2755: --
2756: hr_utility.set_location('Leaving: '||l_proc,10);
2757: --
2758: Exception
2759: When HR_Api.Validate_Enabled Then
2760: --
2848: l_asg_type per_all_assignments_f.assignment_type%type;
2849: --
2850: begin
2851: --
2852: hr_utility.set_location('Entering:'|| l_proc, 10);
2853: --
2854: savepoint cre_or_upd_salary_proposal;
2855: --
2856:
2861:
2862: l_api_updating := per_pyp_shd.api_updating
2863: (p_pay_proposal_id => p_pay_proposal_id
2864: ,p_object_version_number => p_object_version_number);
2865: hr_utility.set_location(l_proc, 20);
2866:
2867: if (l_api_updating and l_date_to = hr_api.g_date) then
2868: l_date_to := hr_general.end_of_time;
2869: end if;
2914: --
2915: -- set g_old_rec to null
2916: --
2917: per_pyp_shd.g_old_rec:=l_null_pyp_rec;
2918: hr_utility.set_location(l_proc, 30);
2919: --
2920: -- convert the null values
2921: --
2922: hr_utility.set_location(l_proc, 40);
2918: hr_utility.set_location(l_proc, 30);
2919: --
2920: -- convert the null values
2921: --
2922: hr_utility.set_location(l_proc, 40);
2923: per_pyp_upd.convert_defs(l_pyp_rec);
2924: --
2925: hr_utility.set_location(l_proc, 45);
2926: --
2921: --
2922: hr_utility.set_location(l_proc, 40);
2923: per_pyp_upd.convert_defs(l_pyp_rec);
2924: --
2925: hr_utility.set_location(l_proc, 45);
2926: --
2927: open first_proposal;
2928: fetch first_proposal into l_dummy;
2929: if first_proposal%notfound then
2937: --Retain auto approve first proposal functionality if profile is null or set to Yes
2938:
2939: l_autoApprove:=fnd_profile.value('HR_AUTO_APPROVE_FIRST_PROPOSAL');
2940: if(l_autoApprove is null or l_autoApprove ='Y') then
2941: hr_utility.set_location(l_proc, 47);
2942: l_pyp_rec.approved:='Y';
2943: end if;
2944:
2945: else
2949: close first_proposal;
2950: end if;
2951: -- insert the data
2952: --
2953: hr_utility.set_location(l_proc, 50);
2954: hr_maintain_proposal_api.insert_salary_proposal
2955: (p_pay_proposal_id => l_pyp_rec.pay_proposal_id
2956: ,p_assignment_id => l_pyp_rec.assignment_id
2957: ,p_business_group_id => l_pyp_rec.business_group_id
2993: ,p_proposed_salary_warning => l_proposed_salary_warning
2994: ,p_approved_warning => l_approved_warning
2995: ,p_payroll_warning => l_payroll_warning
2996: );
2997: hr_utility.set_location(l_proc, 60);
2998: else
2999: --
3000: -- updating not inserting
3001: --
2998: else
2999: --
3000: -- updating not inserting
3001: --
3002: hr_utility.set_location(l_proc, 70);
3003: per_pyp_shd.lck
3004: (p_pay_proposal_id => p_pay_proposal_id
3005: ,p_object_version_number => p_object_version_number);
3006: --
3005: ,p_object_version_number => p_object_version_number);
3006: --
3007: -- convert the null values
3008: --
3009: hr_utility.set_location(l_proc, 80);
3010: per_pyp_upd.convert_defs(l_pyp_rec);
3011: --
3012: -- update the data
3013: --
3010: per_pyp_upd.convert_defs(l_pyp_rec);
3011: --
3012: -- update the data
3013: --
3014: hr_utility.set_location(l_proc, 90);
3015: --
3016: hr_maintain_proposal_api.update_salary_proposal
3017: (p_pay_proposal_id => l_pyp_rec.pay_proposal_id
3018: ,p_change_date => l_pyp_rec.change_date
3053: ,p_approved_warning => l_approved_warning
3054: ,p_payroll_warning => l_payroll_warning
3055: );
3056: --
3057: hr_utility.set_location(l_proc, 100);
3058: --
3059: end if;
3060: --
3061: if p_validate then
3061: if p_validate then
3062: raise hr_api.validate_enabled;
3063: end if;
3064: --
3065: hr_utility.set_location(l_proc, 110);
3066: --
3067: p_pay_proposal_id := l_pyp_rec.pay_proposal_id;
3068: p_object_version_number := l_pyp_rec.object_version_number;
3069: p_inv_next_sal_date_warning := l_inv_next_sal_date_warning;
3070: p_proposed_salary_warning := l_proposed_salary_warning;
3071: p_approved_warning := l_approved_warning;
3072: p_payroll_warning := l_payroll_warning;
3073: --
3074: hr_utility.set_location('Leaving:'||l_proc, 120);
3075: --
3076: exception
3077: when hr_api.validate_enabled then
3078: rollback to cre_or_upd_salary_proposal;
3081: p_inv_next_sal_date_warning := l_inv_next_sal_date_warning;
3082: p_proposed_salary_warning := l_proposed_salary_warning;
3083: p_approved_warning := l_approved_warning;
3084: p_payroll_warning := l_payroll_warning;
3085: hr_utility.set_location('Leaving:'||l_proc, 130);
3086: when others then
3087: rollback to cre_or_upd_salary_proposal;
3088: -- Reset IN OUT and OUT parameters.
3089: p_pay_proposal_id := l_temp_pay_proposal_id;
3091: p_inv_next_sal_date_warning := null;
3092: p_proposed_salary_warning := null;
3093: p_approved_warning := null;
3094: p_payroll_warning := null;
3095: hr_utility.set_location('Leaving:'||l_proc, 140);
3096: raise;
3097: --
3098: end cre_or_upd_salary_proposal;
3099: --
3248: where ppc.pay_proposal_id=p_pay_proposal_id
3249: and ppc.business_group_id=p_business_group_id;
3250: --
3251: begin
3252: hr_utility.set_location('Entering:'||l_proc,5);
3253: --
3254: --
3255: -- Issue a savepoint
3256: --
3258: --
3259: --
3260: FOR r_del_sp in c_del_salary_proposals( p_assignment_id ,p_date)
3261: LOOP
3262: hr_utility.set_location('Inside loop salary_proposal - '||
3263: r_del_sp.pay_proposal_id||l_proc,10);
3264: --
3265: -- first of all delete all of the components
3266: --
3266: --
3267: FOR l_components IN components(r_del_sp.pay_proposal_id,
3268: r_del_sp.business_group_id)
3269: LOOP
3270: hr_utility.set_location('Inside loop component - '||
3271: l_components.component_id||l_proc,15);
3272: per_ppc_del.del(p_component_id=>l_components.component_id
3273: ,p_object_version_number=>l_components.object_version_number
3274: ,p_validation_strength=>'WEAK'
3273: ,p_object_version_number=>l_components.object_version_number
3274: ,p_validation_strength=>'WEAK'
3275: ,p_validate=>FALSE);
3276: END LOOP;
3277: hr_utility.set_location(l_proc,20);
3278: --
3279: -- Update CWB table that created/updated the salary proposal
3280: --
3281: update BEN_CWB_PERSON_RATES
3286: --
3287: delete per_pay_proposals
3288: where pay_proposal_id = r_del_sp.pay_proposal_id;
3289: --
3290: hr_utility.set_location(l_proc,25);
3291: --
3292: END LOOP;
3293: hr_utility.set_location('Exiting:'||l_proc,50);
3294: EXCEPTION
3289: --
3290: hr_utility.set_location(l_proc,25);
3291: --
3292: END LOOP;
3293: hr_utility.set_location('Exiting:'||l_proc,50);
3294: EXCEPTION
3295: When others then
3296: --
3297: -- A validation or unexpected error has occured
3295: When others then
3296: --
3297: -- A validation or unexpected error has occured
3298: --
3299: hr_utility.set_location('When Others:'||l_proc,55);
3300: ROLLBACK TO delete_salary_proposal;
3301: raise;
3302: --
3303: --