[Home] [Help]
PACKAGE BODY: APPS.PER_SUPPLEMENTARY_ROLE_API
Source
1 Package Body per_supplementary_role_api as
2 /* $Header: perolapi.pkb 120.0.12010000.2 2008/08/06 09:35:26 ubhat ship $ */
3 --
4 -- Package Variables
5 --
6 g_package varchar2(33) := 'per_supplementary_role_api';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-------------------------< create_supplementary_role >--------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_supplementary_role
13 (p_validate in boolean default false
14 ,p_effective_date in date
15 ,p_job_id in number
16 ,p_job_group_id in number
17 ,p_person_id in number
18 ,p_organization_id in number default null
19 ,p_start_date in date
20 ,p_end_date in date default null
21 ,p_confidential_date in date default null
22 ,p_emp_rights_flag in varchar2 default 'N'
23 ,p_end_of_rights_date in date default null
24 ,p_primary_contact_flag in varchar2 default 'N'
25 ,p_attribute_category in varchar2 default null
26 ,p_attribute1 in varchar2 default null
27 ,p_attribute2 in varchar2 default null
28 ,p_attribute3 in varchar2 default null
29 ,p_attribute4 in varchar2 default null
30 ,p_attribute5 in varchar2 default null
31 ,p_attribute6 in varchar2 default null
32 ,p_attribute7 in varchar2 default null
33 ,p_attribute8 in varchar2 default null
34 ,p_attribute9 in varchar2 default null
35 ,p_attribute10 in varchar2 default null
36 ,p_attribute11 in varchar2 default null
37 ,p_attribute12 in varchar2 default null
38 ,p_attribute13 in varchar2 default null
39 ,p_attribute14 in varchar2 default null
40 ,p_attribute15 in varchar2 default null
41 ,p_attribute16 in varchar2 default null
42 ,p_attribute17 in varchar2 default null
43 ,p_attribute18 in varchar2 default null
44 ,p_attribute19 in varchar2 default null
45 ,p_attribute20 in varchar2 default null
46 ,p_role_information_category in varchar2 default null
47 ,p_role_information1 in varchar2 default null
48 ,p_role_information2 in varchar2 default null
49 ,p_role_information3 in varchar2 default null
50 ,p_role_information4 in varchar2 default null
51 ,p_role_information5 in varchar2 default null
52 ,p_role_information6 in varchar2 default null
53 ,p_role_information7 in varchar2 default null
54 ,p_role_information8 in varchar2 default null
55 ,p_role_information9 in varchar2 default null
56 ,p_role_information10 in varchar2 default null
57 ,p_role_information11 in varchar2 default null
58 ,p_role_information12 in varchar2 default null
59 ,p_role_information13 in varchar2 default null
60 ,p_role_information14 in varchar2 default null
61 ,p_role_information15 in varchar2 default null
62 ,p_role_information16 in varchar2 default null
63 ,p_role_information17 in varchar2 default null
64 ,p_role_information18 in varchar2 default null
65 ,p_role_information19 in varchar2 default null
66 ,p_role_information20 in varchar2 default null
67 ,p_role_id out nocopy number
68 ,p_object_version_number out nocopy number
69 ) is
70 --
71 -- Declare cursors and local variables
72 --
73 l_proc varchar2(72) := g_package||'create_role';
74 l_role_id per_roles.role_id%TYPE;
75 l_object_version_number per_roles.object_version_number%TYPE;
76 l_effective_date date;
77 l_start_date per_roles.start_date%TYPE;
78 l_end_date per_roles.end_date%TYPE;
79 l_confidential_date per_roles.confidential_date%TYPE;
80 l_end_of_rights_date per_roles.end_of_rights_date%TYPE;
81 --
82 begin
83 hr_utility.set_location('Entering:'|| l_proc, 10);
84 --
85 -- Issue a savepoint
86 --
87 savepoint create_role;
88 --
89 -- Truncate the time portion from all IN date parameters
90 --
91 l_effective_date := trunc(p_effective_date);
92 l_start_date := trunc(p_start_date);
93 l_end_date := trunc(p_end_date);
94 l_confidential_date := trunc(p_confidential_date);
95 l_end_of_rights_date := trunc(p_end_of_rights_date);
96 --
97 -- Call Before Process User Hook
98 --
99 begin
100 per_supplementary_role_bk1.create_supplementary_role_b
101 (p_effective_date => l_effective_date
102 ,p_job_id => p_job_id
103 ,p_job_group_id => p_job_group_id
104 ,p_person_id => p_person_id
105 ,p_organization_id => p_organization_id
106 ,p_start_date => l_start_date
107 ,p_end_date => l_end_date
108 ,p_confidential_date => l_confidential_date
109 ,p_emp_rights_flag => p_emp_rights_flag
110 ,p_end_of_rights_date => l_end_of_rights_date
111 ,p_primary_contact_flag => p_primary_contact_flag
112 ,p_attribute_category => p_attribute_category
113 ,p_attribute1 => p_attribute1
114 ,p_attribute2 => p_attribute2
115 ,p_attribute3 => p_attribute3
116 ,p_attribute4 => p_attribute4
117 ,p_attribute5 => p_attribute5
118 ,p_attribute6 => p_attribute6
119 ,p_attribute7 => p_attribute7
120 ,p_attribute8 => p_attribute8
121 ,p_attribute9 => p_attribute9
122 ,p_attribute10 => p_attribute10
123 ,p_attribute11 => p_attribute11
124 ,p_attribute12 => p_attribute12
125 ,p_attribute13 => p_attribute13
126 ,p_attribute14 => p_attribute14
127 ,p_attribute15 => p_attribute15
128 ,p_attribute16 => p_attribute16
129 ,p_attribute17 => p_attribute17
130 ,p_attribute18 => p_attribute18
131 ,p_attribute19 => p_attribute19
132 ,p_attribute20 => p_attribute20
133 ,p_role_information_category => p_role_information_category
134 ,p_role_information1 => p_role_information1
135 ,p_role_information2 => p_role_information2
136 ,p_role_information3 => p_role_information3
137 ,p_role_information4 => p_role_information4
138 ,p_role_information5 => p_role_information5
139 ,p_role_information6 => p_role_information6
140 ,p_role_information7 => p_role_information7
141 ,p_role_information8 => p_role_information8
142 ,p_role_information9 => p_role_information9
143 ,p_role_information10 => p_role_information10
144 ,p_role_information11 => p_role_information11
145 ,p_role_information12 => p_role_information12
146 ,p_role_information13 => p_role_information13
147 ,p_role_information14 => p_role_information14
148 ,p_role_information15 => p_role_information15
149 ,p_role_information16 => p_role_information16
150 ,p_role_information17 => p_role_information17
151 ,p_role_information18 => p_role_information18
152 ,p_role_information19 => p_role_information19
153 ,p_role_information20 => p_role_information20
154 );
155 exception
156 when hr_api.cannot_find_prog_unit then
157 hr_api.cannot_find_prog_unit_error
158 (p_module_name => 'create_supplementary_role_b'
159 ,p_hook_type => 'BP'
160 );
161 end;
162 --
163 -- Validation in addition to Row Handlers
164 --
165 --
166 hr_utility.set_location('before call to rh',3);
167 -- Process Logic
168 --
169 per_rol_ins.ins
170 (p_effective_date => l_effective_date
171 ,p_job_id => p_job_id
172 ,p_job_group_id => p_job_group_id
173 ,p_person_id => p_person_id
174 ,p_organization_id => p_organization_id
175 ,p_start_date => l_start_date
176 ,p_end_date => l_end_date
177 ,p_confidential_date => l_confidential_date
178 ,p_emp_rights_flag => p_emp_rights_flag
179 ,p_end_of_rights_date => l_end_of_rights_date
180 ,p_primary_contact_flag => p_primary_contact_flag
181 ,p_attribute_category => p_attribute_category
182 ,p_attribute1 => p_attribute1
183 ,p_attribute2 => p_attribute2
184 ,p_attribute3 => p_attribute3
185 ,p_attribute4 => p_attribute4
186 ,p_attribute5 => p_attribute5
187 ,p_attribute6 => p_attribute6
188 ,p_attribute7 => p_attribute7
189 ,p_attribute8 => p_attribute8
190 ,p_attribute9 => p_attribute9
191 ,p_attribute10 => p_attribute10
192 ,p_attribute11 => p_attribute11
193 ,p_attribute12 => p_attribute12
194 ,p_attribute13 => p_attribute13
195 ,p_attribute14 => p_attribute14
196 ,p_attribute15 => p_attribute15
197 ,p_attribute16 => p_attribute16
198 ,p_attribute17 => p_attribute17
199 ,p_attribute18 => p_attribute18
200 ,p_attribute19 => p_attribute19
201 ,p_attribute20 => p_attribute20
202 ,p_role_information_category => p_role_information_category
203 ,p_role_information1 => p_role_information1
204 ,p_role_information2 => p_role_information2
205 ,p_role_information3 => p_role_information3
206 ,p_role_information4 => p_role_information4
207 ,p_role_information5 => p_role_information5
208 ,p_role_information6 => p_role_information6
209 ,p_role_information7 => p_role_information7
210 ,p_role_information8 => p_role_information8
211 ,p_role_information9 => p_role_information9
212 ,p_role_information10 => p_role_information10
213 ,p_role_information11 => p_role_information11
214 ,p_role_information12 => p_role_information12
215 ,p_role_information13 => p_role_information13
216 ,p_role_information14 => p_role_information14
217 ,p_role_information15 => p_role_information15
218 ,p_role_information16 => p_role_information16
219 ,p_role_information17 => p_role_information17
220 ,p_role_information18 => p_role_information18
221 ,p_role_information19 => p_role_information19
222 ,p_role_information20 => p_role_information20
223 ,p_role_id => l_role_id
224 ,p_object_version_number => l_object_version_number);
225 --
226 -- Call After Process User Hook
227 --
228 begin
229 --
230 per_supplementary_role_bk1.create_supplementary_role_a
231 (p_effective_date => l_effective_date
232 ,p_job_id => p_job_id
233 ,p_job_group_id => p_job_group_id
234 ,p_person_id => p_person_id
235 ,p_organization_id => p_organization_id
236 ,p_start_date => l_start_date
237 ,p_end_date => l_end_date
238 ,p_confidential_date => l_confidential_date
239 ,p_emp_rights_flag => p_emp_rights_flag
240 ,p_end_of_rights_date => l_end_of_rights_date
241 ,p_primary_contact_flag => p_primary_contact_flag
242 ,p_attribute_category => p_attribute_category
243 ,p_attribute1 => p_attribute1
244 ,p_attribute2 => p_attribute2
245 ,p_attribute3 => p_attribute3
246 ,p_attribute4 => p_attribute4
247 ,p_attribute5 => p_attribute5
248 ,p_attribute6 => p_attribute6
249 ,p_attribute7 => p_attribute7
250 ,p_attribute8 => p_attribute8
251 ,p_attribute9 => p_attribute9
252 ,p_attribute10 => p_attribute10
253 ,p_attribute11 => p_attribute11
254 ,p_attribute12 => p_attribute12
255 ,p_attribute13 => p_attribute13
256 ,p_attribute14 => p_attribute14
257 ,p_attribute15 => p_attribute15
258 ,p_attribute16 => p_attribute16
259 ,p_attribute17 => p_attribute17
260 ,p_attribute18 => p_attribute18
261 ,p_attribute19 => p_attribute19
262 ,p_attribute20 => p_attribute20
263 ,p_role_information_category => p_role_information_category
264 ,p_role_information1 => p_role_information1
265 ,p_role_information2 => p_role_information2
266 ,p_role_information3 => p_role_information3
267 ,p_role_information4 => p_role_information4
268 ,p_role_information5 => p_role_information5
269 ,p_role_information6 => p_role_information6
270 ,p_role_information7 => p_role_information7
271 ,p_role_information8 => p_role_information8
272 ,p_role_information9 => p_role_information9
273 ,p_role_information10 => p_role_information10
274 ,p_role_information11 => p_role_information11
275 ,p_role_information12 => p_role_information12
276 ,p_role_information13 => p_role_information13
277 ,p_role_information14 => p_role_information14
278 ,p_role_information15 => p_role_information15
279 ,p_role_information16 => p_role_information16
280 ,p_role_information17 => p_role_information17
281 ,p_role_information18 => p_role_information18
282 ,p_role_information19 => p_role_information19
283 ,p_role_information20 => p_role_information20
284 ,p_role_id => l_role_id
285 ,p_object_version_number => l_object_version_number
286 );
287 exception
288 when hr_api.cannot_find_prog_unit then
289 hr_api.cannot_find_prog_unit_error
290 (p_module_name => 'create_supplementary_role_a'
291 ,p_hook_type => 'AP'
292 );
293 end;
294 --
295 -- When in validation only mode raise the Validate_Enabled exception
296 --
297 if p_validate then
298 raise hr_api.validate_enabled;
299 end if;
300 --
301 -- Set all output arguments
302 --
303 p_role_id := l_role_id;
304 p_object_version_number := l_object_version_number;
305 --
306 hr_utility.set_location(' Leaving:'||l_proc, 70);
307 exception
308 when hr_api.validate_enabled then
309 --
310 -- As the Validate_Enabled exception has been raised
311 -- we must rollback to the savepoint
312 --
313 rollback to create_role;
314 --
315 -- Only set output warning arguments
316 -- (Any key or derived arguments must be set to null
317 -- when validation only mode is being used.)
318 --
319 p_role_id := null;
320 p_object_version_number := null;
321 hr_utility.set_location(' Leaving:'||l_proc, 80);
322 when others then
323 --
324 -- A validation or unexpected error has occured
325 --
326 p_role_id := null;
327 p_object_version_number := null;
328 rollback to create_role;
329 hr_utility.set_location(' Leaving:'||l_proc, 90);
330 raise;
331 end create_supplementary_role;
332 --
333 -- ----------------------------------------------------------------------------
334 -- |-------------------------< update_supplementary_role >-------------------|
335 -- ----------------------------------------------------------------------------
336 --
337 procedure update_supplementary_role
338 (p_validate in boolean default false
339 ,p_effective_date in date
340 ,p_role_id in number
341 ,p_object_version_number in out nocopy number
342 ,p_start_date in date default hr_api.g_date
343 ,p_end_date in date default hr_api.g_date
344 ,p_confidential_date in date default hr_api.g_date
345 ,p_emp_rights_flag in varchar2 default hr_api.g_varchar2
346 ,p_end_of_rights_date in date default hr_api.g_date
347 ,p_primary_contact_flag in varchar2 default hr_api.g_varchar2
348 ,p_attribute_category in varchar2 default hr_api.g_varchar2
349 ,p_attribute1 in varchar2 default hr_api.g_varchar2
350 ,p_attribute2 in varchar2 default hr_api.g_varchar2
351 ,p_attribute3 in varchar2 default hr_api.g_varchar2
352 ,p_attribute4 in varchar2 default hr_api.g_varchar2
353 ,p_attribute5 in varchar2 default hr_api.g_varchar2
354 ,p_attribute6 in varchar2 default hr_api.g_varchar2
355 ,p_attribute7 in varchar2 default hr_api.g_varchar2
356 ,p_attribute8 in varchar2 default hr_api.g_varchar2
357 ,p_attribute9 in varchar2 default hr_api.g_varchar2
358 ,p_attribute10 in varchar2 default hr_api.g_varchar2
359 ,p_attribute11 in varchar2 default hr_api.g_varchar2
360 ,p_attribute12 in varchar2 default hr_api.g_varchar2
361 ,p_attribute13 in varchar2 default hr_api.g_varchar2
362 ,p_attribute14 in varchar2 default hr_api.g_varchar2
363 ,p_attribute15 in varchar2 default hr_api.g_varchar2
364 ,p_attribute16 in varchar2 default hr_api.g_varchar2
365 ,p_attribute17 in varchar2 default hr_api.g_varchar2
366 ,p_attribute18 in varchar2 default hr_api.g_varchar2
367 ,p_attribute19 in varchar2 default hr_api.g_varchar2
368 ,p_attribute20 in varchar2 default hr_api.g_varchar2
369 ,p_role_information_category in varchar2 default hr_api.g_varchar2
370 ,p_role_information1 in varchar2 default hr_api.g_varchar2
371 ,p_role_information2 in varchar2 default hr_api.g_varchar2
372 ,p_role_information3 in varchar2 default hr_api.g_varchar2
373 ,p_role_information4 in varchar2 default hr_api.g_varchar2
374 ,p_role_information5 in varchar2 default hr_api.g_varchar2
375 ,p_role_information6 in varchar2 default hr_api.g_varchar2
376 ,p_role_information7 in varchar2 default hr_api.g_varchar2
377 ,p_role_information8 in varchar2 default hr_api.g_varchar2
378 ,p_role_information9 in varchar2 default hr_api.g_varchar2
379 ,p_role_information10 in varchar2 default hr_api.g_varchar2
380 ,p_role_information11 in varchar2 default hr_api.g_varchar2
381 ,p_role_information12 in varchar2 default hr_api.g_varchar2
382 ,p_role_information13 in varchar2 default hr_api.g_varchar2
383 ,p_role_information14 in varchar2 default hr_api.g_varchar2
384 ,p_role_information15 in varchar2 default hr_api.g_varchar2
385 ,p_role_information16 in varchar2 default hr_api.g_varchar2
386 ,p_role_information17 in varchar2 default hr_api.g_varchar2
387 ,p_role_information18 in varchar2 default hr_api.g_varchar2
388 ,p_role_information19 in varchar2 default hr_api.g_varchar2
389 ,p_role_information20 in varchar2 default hr_api.g_varchar2
390 ,p_old_end_date in date default hr_api.g_date -- fix 1370960
391 ) is
392 --
393 -- Declare cursors and local variables
394 --
395 l_proc varchar2(72) := g_package||'update_role';
396 l_role_id per_roles.role_id%TYPE;
397 l_object_version_number per_roles.object_version_number%TYPE;
398 l_effective_date date;
399 l_start_date per_roles.start_date%TYPE;
400 l_end_date per_roles.end_date%TYPE;
401 l_confidential_date per_roles.confidential_date%TYPE;
402 l_end_of_rights_date per_roles.end_of_rights_date%TYPE;
403 l_old_end_date per_roles.old_end_date%TYPE; -- fix 1370960
404 l_temp_ovn number;
405 --
406 begin
407 hr_utility.set_location('Entering:'|| l_proc, 10);
408 --
409 -- Issue a savepoint
410 --
411 savepoint update_role;
412 --
413 -- Store initial values for IN OUT parameters
414 --
415 l_object_version_number := p_object_version_number;
416 l_temp_ovn := p_object_version_number;
417 --
418 -- Truncate the time portion from all IN date parameters
419 --
420 l_effective_date := trunc(p_effective_date);
421 l_start_date := trunc(p_start_date);
422 l_end_date := trunc(p_end_date);
423 l_confidential_date := trunc(p_confidential_date);
424 l_end_of_rights_date := trunc(p_end_of_rights_date);
425 l_old_end_date := trunc(p_old_end_date); -- fix 1370960
426 --
427 -- Call Before Process User Hook
428 --
429 begin
430 per_supplementary_role_bk2.update_supplementary_role_b
431 (p_effective_date => l_effective_date
432 ,p_role_id => p_role_id
433 ,p_object_version_number => p_object_version_number
434 ,p_start_date => l_start_date
435 ,p_end_date => l_end_date
436 ,p_confidential_date => l_confidential_date
437 ,p_emp_rights_flag => p_emp_rights_flag
438 ,p_end_of_rights_date => l_end_of_rights_date
439 ,p_primary_contact_flag => p_primary_contact_flag
440 ,p_attribute_category => p_attribute_category
441 ,p_attribute1 => p_attribute1
442 ,p_attribute2 => p_attribute2
443 ,p_attribute3 => p_attribute3
444 ,p_attribute4 => p_attribute4
445 ,p_attribute5 => p_attribute5
446 ,p_attribute6 => p_attribute6
447 ,p_attribute7 => p_attribute7
448 ,p_attribute8 => p_attribute8
449 ,p_attribute9 => p_attribute9
450 ,p_attribute10 => p_attribute10
451 ,p_attribute11 => p_attribute11
452 ,p_attribute12 => p_attribute12
453 ,p_attribute13 => p_attribute13
454 ,p_attribute14 => p_attribute14
455 ,p_attribute15 => p_attribute15
456 ,p_attribute16 => p_attribute16
457 ,p_attribute17 => p_attribute17
458 ,p_attribute18 => p_attribute18
459 ,p_attribute19 => p_attribute19
460 ,p_attribute20 => p_attribute20
461 ,p_role_information_category => p_role_information_category
462 ,p_role_information1 => p_role_information1
463 ,p_role_information2 => p_role_information2
464 ,p_role_information3 => p_role_information3
465 ,p_role_information4 => p_role_information4
466 ,p_role_information5 => p_role_information5
467 ,p_role_information6 => p_role_information6
468 ,p_role_information7 => p_role_information7
469 ,p_role_information8 => p_role_information8
470 ,p_role_information9 => p_role_information9
471 ,p_role_information10 => p_role_information10
472 ,p_role_information11 => p_role_information11
473 ,p_role_information12 => p_role_information12
474 ,p_role_information13 => p_role_information13
475 ,p_role_information14 => p_role_information14
476 ,p_role_information15 => p_role_information15
477 ,p_role_information16 => p_role_information16
478 ,p_role_information17 => p_role_information17
479 ,p_role_information18 => p_role_information18
480 ,p_role_information19 => p_role_information19
481 ,p_role_information20 => p_role_information20
482 );
483 exception
484 when hr_api.cannot_find_prog_unit then
485 hr_api.cannot_find_prog_unit_error
486 (p_module_name => 'update_supplementary_role_b'
487 ,p_hook_type => 'BP'
488 );
489 end;
490 --
491 -- Validation in addition to Row Handlers
492 --
493 --
494 -- Process Logic
495 --
496 per_rol_upd.upd
497 (p_effective_date => l_effective_date
498 ,p_role_id => p_role_id
499 ,p_object_version_number => l_object_version_number
500 ,p_start_date => l_start_date
501 ,p_end_date => l_end_date
502 ,p_confidential_date => l_confidential_date
503 ,p_emp_rights_flag => p_emp_rights_flag
504 ,p_end_of_rights_date => l_end_of_rights_date
505 ,p_primary_contact_flag => p_primary_contact_flag
506 ,p_attribute_category => p_attribute_category
507 ,p_attribute1 => p_attribute1
508 ,p_attribute2 => p_attribute2
509 ,p_attribute3 => p_attribute3
510 ,p_attribute4 => p_attribute4
511 ,p_attribute5 => p_attribute5
512 ,p_attribute6 => p_attribute6
513 ,p_attribute7 => p_attribute7
514 ,p_attribute8 => p_attribute8
515 ,p_attribute9 => p_attribute9
516 ,p_attribute10 => p_attribute10
517 ,p_attribute11 => p_attribute11
518 ,p_attribute12 => p_attribute12
519 ,p_attribute13 => p_attribute13
520 ,p_attribute14 => p_attribute14
521 ,p_attribute15 => p_attribute15
522 ,p_attribute16 => p_attribute16
523 ,p_attribute17 => p_attribute17
524 ,p_attribute18 => p_attribute18
525 ,p_attribute19 => p_attribute19
526 ,p_attribute20 => p_attribute20
527 ,p_role_information_category => p_role_information_category
528 ,p_role_information1 => p_role_information1
529 ,p_role_information2 => p_role_information2
530 ,p_role_information3 => p_role_information3
531 ,p_role_information4 => p_role_information4
532 ,p_role_information5 => p_role_information5
533 ,p_role_information6 => p_role_information6
534 ,p_role_information7 => p_role_information7
535 ,p_role_information8 => p_role_information8
536 ,p_role_information9 => p_role_information9
537 ,p_role_information10 => p_role_information10
538 ,p_role_information11 => p_role_information11
539 ,p_role_information12 => p_role_information12
540 ,p_role_information13 => p_role_information13
541 ,p_role_information14 => p_role_information14
542 ,p_role_information15 => p_role_information15
543 ,p_role_information16 => p_role_information16
544 ,p_role_information17 => p_role_information17
545 ,p_role_information18 => p_role_information18
546 ,p_role_information19 => p_role_information19
547 ,p_role_information20 => p_role_information20
548 ,p_old_end_date => l_old_end_date -- fix 1370960
549 );
550 --
551 -- Call After Process User Hook
552 --
553 begin
554 per_supplementary_role_bk2.update_supplementary_role_a
555 (p_effective_date => l_effective_date
556 ,p_role_id => p_role_id
557 ,p_object_version_number => l_object_version_number
558 ,p_start_date => l_start_date
559 ,p_end_date => l_end_date
560 ,p_confidential_date => l_confidential_date
561 ,p_emp_rights_flag => p_emp_rights_flag
562 ,p_end_of_rights_date => l_end_of_rights_date
563 ,p_primary_contact_flag => p_primary_contact_flag
564 ,p_attribute_category => p_attribute_category
565 ,p_attribute1 => p_attribute1
566 ,p_attribute2 => p_attribute2
567 ,p_attribute3 => p_attribute3
568 ,p_attribute4 => p_attribute4
569 ,p_attribute5 => p_attribute5
570 ,p_attribute6 => p_attribute6
571 ,p_attribute7 => p_attribute7
572 ,p_attribute8 => p_attribute8
573 ,p_attribute9 => p_attribute9
574 ,p_attribute10 => p_attribute10
575 ,p_attribute11 => p_attribute11
576 ,p_attribute12 => p_attribute12
577 ,p_attribute13 => p_attribute13
578 ,p_attribute14 => p_attribute14
579 ,p_attribute15 => p_attribute15
580 ,p_attribute16 => p_attribute16
581 ,p_attribute17 => p_attribute17
582 ,p_attribute18 => p_attribute18
583 ,p_attribute19 => p_attribute19
584 ,p_attribute20 => p_attribute20
585 ,p_role_information_category => p_role_information_category
586 ,p_role_information1 => p_role_information1
587 ,p_role_information2 => p_role_information2
588 ,p_role_information3 => p_role_information3
589 ,p_role_information4 => p_role_information4
590 ,p_role_information5 => p_role_information5
591 ,p_role_information6 => p_role_information6
592 ,p_role_information7 => p_role_information7
593 ,p_role_information8 => p_role_information8
594 ,p_role_information9 => p_role_information9
595 ,p_role_information10 => p_role_information10
596 ,p_role_information11 => p_role_information11
597 ,p_role_information12 => p_role_information12
598 ,p_role_information13 => p_role_information13
599 ,p_role_information14 => p_role_information14
600 ,p_role_information15 => p_role_information15
601 ,p_role_information16 => p_role_information16
602 ,p_role_information17 => p_role_information17
603 ,p_role_information18 => p_role_information18
604 ,p_role_information19 => p_role_information19
605 ,p_role_information20 => p_role_information20
606 );
607 exception
608 when hr_api.cannot_find_prog_unit then
609 hr_api.cannot_find_prog_unit_error
610 (p_module_name => 'update_supplementary_role_a'
611 ,p_hook_type => 'AP'
612 );
613 end;
614 --
615 -- When in validation only mode raise the Validate_Enabled exception
616 --
617 if p_validate then
618 raise hr_api.validate_enabled;
619 end if;
620 --
621 -- Set all output arguments
622 --
623 p_object_version_number := l_object_version_number;
624 --
625 hr_utility.set_location(' Leaving:'||l_proc, 70);
626 exception
627 when hr_api.validate_enabled then
628 --
629 -- As the Validate_Enabled exception has been raised
630 -- we must rollback to the savepoint
631 --
632 rollback to update_role;
633 --
634 -- Only set output warning arguments
635 -- (Any key or derived arguments must be set to null
636 -- when validation only mode is being used.)
637 --
638 hr_utility.set_location(' Leaving:'||l_proc, 80);
639 when others then
640 --
641 -- A validation or unexpected error has occured
642 --
643 p_object_version_number := l_temp_ovn;
644 rollback to update_role;
645 hr_utility.set_location(' Leaving:'||l_proc, 90);
646 raise;
647 end update_supplementary_role;
648 --
649 --
650 -- ----------------------------------------------------------------------------
651 -- |-------------------------< delete_supplementary_role >--------------------|
652 -- ----------------------------------------------------------------------------
653 --
654 procedure delete_supplementary_role
655 (p_validate in boolean default false
656 ,p_role_id in number
657 ,p_object_version_number in number
658 ) is
659 --
660 -- Declare cursors and local variables
661 --
662 l_proc varchar2(72) := g_package||'delete_role';
663 l_election_candidate_id per_election_candidates.election_candidate_id%TYPE;
664 l_election_ovn per_election_candidates.object_version_number%TYPE;
665 l_election_role_id per_election_candidates.role_id%TYPE;
666 --
667 -- Cursor to select candidates to have the role id removed from
668 --
669 cursor csr_candidate_update (p_role_id number) is
670 select election_candidate_id, object_version_number
671 from per_election_candidates
672 where role_id = p_role_id;
673 --
674 begin
675 hr_utility.set_location('Entering:'|| l_proc, 5);
676 --
677 -- Issue a savepoint if operating in validation only mode.
678 --
679 savepoint delete_role;
680 --
681 -- Call Before Process User Hook
682 --
683 begin
684 per_supplementary_role_bk3.delete_supplementary_role_b
685 (p_role_id => p_role_id,
686 p_object_version_number => p_object_version_number
687 );
688 exception
689 when hr_api.cannot_find_prog_unit then
690 hr_api.cannot_find_prog_unit_error
691 (p_module_name => 'delete_supplementary_role_b',
692 p_hook_type => 'BP'
693 );
694 end;
695 --
696 --
697 hr_utility.set_location(l_proc, 7);
698 -- Changes made for bug 5475480.
699 -- First un-link the role from candidate record and then delete the person role record.
700 l_election_role_id := null;
701 --
702 open csr_candidate_update(p_role_id);
703
704 loop
705 fetch csr_candidate_update into l_election_candidate_id, l_election_ovn;
706 exit when csr_candidate_update%notfound;
707 hr_elc_candidate_api.update_election_candidate
708 (p_election_candidate_id => l_election_candidate_id
709 ,p_object_version_number => l_election_ovn
710 ,p_role_id => l_election_role_id);
711 end loop;
712 close csr_candidate_update;
713
714 --
715 -- Process Logic
716 --
717 per_rol_del.del
718 (p_role_id => p_role_id
719 ,p_object_version_number => p_object_version_number
720 );
721 --
722 hr_utility.set_location(l_proc, 8);
723 --
724 --
725 -- Call After Process User Hook
726 begin
727 per_supplementary_role_bk3.delete_supplementary_role_a
728 (p_role_id => p_role_id,
729 p_object_version_number => p_object_version_number
730 );
731 exception
732 when hr_api.cannot_find_prog_unit then
733 hr_api.cannot_find_prog_unit_error
734 (p_module_name => 'delete_supplementary_role_a',
735 p_hook_type => 'AP'
736 );
737 end;
738 --
739 -- When in validation only mode raise the Validate_Enabled exception
740 --
741 if p_validate then
742 raise hr_api.validate_enabled;
743 end if;
744 --
745 hr_utility.set_location(' Leaving:'||l_proc, 11);
746 exception
747 when hr_api.validate_enabled then
748 --
749 -- As the Validate_Enabled exception has been raised
750 -- we must rollback to the savepoint
751 --
752 ROLLBACK TO delete_role;
753 --
754 hr_utility.set_location(' Leaving:'||l_proc, 12);
755 --
756 when others then
757 --
758 --
759 ROLLBACK TO delete_role;
760 --
761 raise;
762 --
763 end delete_supplementary_role;
764 --
765 end per_supplementary_role_api;