[Home] [Help]
PACKAGE BODY: APPS.HR_CONTACT_REL_API
Source
1 Package Body hr_contact_rel_api as
2 /* $Header: pecrlapi.pkb 115.22 2003/02/06 10:29:45 vramanai ship $ */
3 --
4 -- Package Variables
5 --
6 g_package varchar2(33) := ' hr_contact_rel_api.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------< create_contact >------------------------------|
10 -- ----------------------------------------------------------------------------
11 --
12 procedure create_contact
13 (
14 p_validate in boolean default false
15 ,p_start_date in date
16 ,p_business_group_id in number
17 ,p_person_id in number
18 ,p_contact_person_id in number default null
19 ,p_contact_type in varchar2
20 ,p_ctr_comments in varchar2 default null
21 ,p_primary_contact_flag in varchar2 default 'N'
22 ,p_date_start in date default null
23 ,p_start_life_reason_id in number default null
24 ,p_date_end in date default null
25 ,p_end_life_reason_id in number default null
26 ,p_rltd_per_rsds_w_dsgntr_flag in varchar2 default 'N'
27 ,p_personal_flag in varchar2 default 'N'
28 ,p_sequence_number in number default null
29 ,p_cont_attribute_category in varchar2 default null
30 ,p_cont_attribute1 in varchar2 default null
31 ,p_cont_attribute2 in varchar2 default null
32 ,p_cont_attribute3 in varchar2 default null
33 ,p_cont_attribute4 in varchar2 default null
34 ,p_cont_attribute5 in varchar2 default null
35 ,p_cont_attribute6 in varchar2 default null
36 ,p_cont_attribute7 in varchar2 default null
37 ,p_cont_attribute8 in varchar2 default null
38 ,p_cont_attribute9 in varchar2 default null
39 ,p_cont_attribute10 in varchar2 default null
40 ,p_cont_attribute11 in varchar2 default null
41 ,p_cont_attribute12 in varchar2 default null
42 ,p_cont_attribute13 in varchar2 default null
43 ,p_cont_attribute14 in varchar2 default null
44 ,p_cont_attribute15 in varchar2 default null
45 ,p_cont_attribute16 in varchar2 default null
46 ,p_cont_attribute17 in varchar2 default null
47 ,p_cont_attribute18 in varchar2 default null
48 ,p_cont_attribute19 in varchar2 default null
49 ,p_cont_attribute20 in varchar2 default null
50 ,p_cont_information_category in varchar2 default null
51 ,p_cont_information1 in varchar2 default null
52 ,p_cont_information2 in varchar2 default null
53 ,p_cont_information3 in varchar2 default null
54 ,p_cont_information4 in varchar2 default null
55 ,p_cont_information5 in varchar2 default null
56 ,p_cont_information6 in varchar2 default null
57 ,p_cont_information7 in varchar2 default null
58 ,p_cont_information8 in varchar2 default null
59 ,p_cont_information9 in varchar2 default null
60 ,p_cont_information10 in varchar2 default null
61 ,p_cont_information11 in varchar2 default null
62 ,p_cont_information12 in varchar2 default null
63 ,p_cont_information13 in varchar2 default null
64 ,p_cont_information14 in varchar2 default null
65 ,p_cont_information15 in varchar2 default null
66 ,p_cont_information16 in varchar2 default null
67 ,p_cont_information17 in varchar2 default null
68 ,p_cont_information18 in varchar2 default null
69 ,p_cont_information19 in varchar2 default null
70 ,p_cont_information20 in varchar2 default null
71 ,p_third_party_pay_flag in varchar2 default 'N'
72 ,p_bondholder_flag in varchar2 default 'N'
73 ,p_dependent_flag in varchar2 default 'N'
74 ,p_beneficiary_flag in varchar2 default 'N'
75 ,p_last_name in varchar2 default null
76 ,p_sex in varchar2 default null
77 ,p_person_type_id in number default null
78 ,p_per_comments in varchar2 default null
79 ,p_date_of_birth in date default null
80 ,p_email_address in varchar2 default null
81 ,p_first_name in varchar2 default null
82 ,p_known_as in varchar2 default null
83 ,p_marital_status in varchar2 default null
84 ,p_middle_names in varchar2 default null
85 ,p_nationality in varchar2 default null
86 ,p_national_identifier in varchar2 default null
87 ,p_previous_last_name in varchar2 default null
88 ,p_registered_disabled_flag in varchar2 default null
89 ,p_title in varchar2 default null
90 ,p_work_telephone in varchar2 default null
91 ,p_attribute_category in varchar2 default null
92 ,p_attribute1 in varchar2 default null
93 ,p_attribute2 in varchar2 default null
94 ,p_attribute3 in varchar2 default null
95 ,p_attribute4 in varchar2 default null
96 ,p_attribute5 in varchar2 default null
97 ,p_attribute6 in varchar2 default null
98 ,p_attribute7 in varchar2 default null
99 ,p_attribute8 in varchar2 default null
100 ,p_attribute9 in varchar2 default null
101 ,p_attribute10 in varchar2 default null
102 ,p_attribute11 in varchar2 default null
103 ,p_attribute12 in varchar2 default null
104 ,p_attribute13 in varchar2 default null
105 ,p_attribute14 in varchar2 default null
106 ,p_attribute15 in varchar2 default null
107 ,p_attribute16 in varchar2 default null
108 ,p_attribute17 in varchar2 default null
109 ,p_attribute18 in varchar2 default null
110 ,p_attribute19 in varchar2 default null
111 ,p_attribute20 in varchar2 default null
112 ,p_attribute21 in varchar2 default null
113 ,p_attribute22 in varchar2 default null
114 ,p_attribute23 in varchar2 default null
115 ,p_attribute24 in varchar2 default null
116 ,p_attribute25 in varchar2 default null
117 ,p_attribute26 in varchar2 default null
118 ,p_attribute27 in varchar2 default null
119 ,p_attribute28 in varchar2 default null
120 ,p_attribute29 in varchar2 default null
121 ,p_attribute30 in varchar2 default null
122 ,p_per_information_category in varchar2 default null
123 ,p_per_information1 in varchar2 default null
124 ,p_per_information2 in varchar2 default null
125 ,p_per_information3 in varchar2 default null
126 ,p_per_information4 in varchar2 default null
127 ,p_per_information5 in varchar2 default null
128 ,p_per_information6 in varchar2 default null
129 ,p_per_information7 in varchar2 default null
130 ,p_per_information8 in varchar2 default null
131 ,p_per_information9 in varchar2 default null
132 ,p_per_information10 in varchar2 default null
133 ,p_per_information11 in varchar2 default null
134 ,p_per_information12 in varchar2 default null
135 ,p_per_information13 in varchar2 default null
136 ,p_per_information14 in varchar2 default null
137 ,p_per_information15 in varchar2 default null
138 ,p_per_information16 in varchar2 default null
139 ,p_per_information17 in varchar2 default null
140 ,p_per_information18 in varchar2 default null
141 ,p_per_information19 in varchar2 default null
142 ,p_per_information20 in varchar2 default null
143 ,p_per_information21 in varchar2 default null
144 ,p_per_information22 in varchar2 default null
145 ,p_per_information23 in varchar2 default null
146 ,p_per_information24 in varchar2 default null
147 ,p_per_information25 in varchar2 default null
148 ,p_per_information26 in varchar2 default null
149 ,p_per_information27 in varchar2 default null
150 ,p_per_information28 in varchar2 default null
151 ,p_per_information29 in varchar2 default null
152 ,p_per_information30 in varchar2 default null
153 ,p_correspondence_language in varchar2 default null
154 ,p_honors in varchar2 default null
155 ,p_pre_name_adjunct in varchar2 default null
156 ,p_suffix in varchar2 default null
157 ,p_create_mirror_flag in varchar2 default 'N'
158 ,p_mirror_type in varchar2 default null
159 ,p_mirror_cont_attribute_cat in varchar2 default null
160 ,p_mirror_cont_attribute1 in varchar2 default null
161 ,p_mirror_cont_attribute2 in varchar2 default null
162 ,p_mirror_cont_attribute3 in varchar2 default null
163 ,p_mirror_cont_attribute4 in varchar2 default null
164 ,p_mirror_cont_attribute5 in varchar2 default null
165 ,p_mirror_cont_attribute6 in varchar2 default null
166 ,p_mirror_cont_attribute7 in varchar2 default null
167 ,p_mirror_cont_attribute8 in varchar2 default null
168 ,p_mirror_cont_attribute9 in varchar2 default null
169 ,p_mirror_cont_attribute10 in varchar2 default null
170 ,p_mirror_cont_attribute11 in varchar2 default null
171 ,p_mirror_cont_attribute12 in varchar2 default null
172 ,p_mirror_cont_attribute13 in varchar2 default null
173 ,p_mirror_cont_attribute14 in varchar2 default null
174 ,p_mirror_cont_attribute15 in varchar2 default null
175 ,p_mirror_cont_attribute16 in varchar2 default null
176 ,p_mirror_cont_attribute17 in varchar2 default null
177 ,p_mirror_cont_attribute18 in varchar2 default null
178 ,p_mirror_cont_attribute19 in varchar2 default null
179 ,p_mirror_cont_attribute20 in varchar2 default null
180 ,p_mirror_cont_information_cat in varchar2 default null
181 ,p_mirror_cont_information1 in varchar2 default null
182 ,p_mirror_cont_information2 in varchar2 default null
183 ,p_mirror_cont_information3 in varchar2 default null
184 ,p_mirror_cont_information4 in varchar2 default null
185 ,p_mirror_cont_information5 in varchar2 default null
186 ,p_mirror_cont_information6 in varchar2 default null
187 ,p_mirror_cont_information7 in varchar2 default null
188 ,p_mirror_cont_information8 in varchar2 default null
189 ,p_mirror_cont_information9 in varchar2 default null
190 ,p_mirror_cont_information10 in varchar2 default null
191 ,p_mirror_cont_information11 in varchar2 default null
192 ,p_mirror_cont_information12 in varchar2 default null
193 ,p_mirror_cont_information13 in varchar2 default null
194 ,p_mirror_cont_information14 in varchar2 default null
195 ,p_mirror_cont_information15 in varchar2 default null
196 ,p_mirror_cont_information16 in varchar2 default null
197 ,p_mirror_cont_information17 in varchar2 default null
198 ,p_mirror_cont_information18 in varchar2 default null
199 ,p_mirror_cont_information19 in varchar2 default null
200 ,p_mirror_cont_information20 in varchar2 default null
201 ,p_contact_relationship_id out nocopy number
202 ,p_ctr_object_version_number out nocopy number
203 ,p_per_person_id out nocopy number
204 ,p_per_object_version_number out nocopy number
205 ,p_per_effective_start_date out nocopy date
206 ,p_per_effective_end_date out nocopy date
207 ,p_full_name out nocopy varchar2
208 ,p_per_comment_id out nocopy number
209 ,p_name_combination_warning out nocopy boolean
210 ,p_orig_hire_warning out nocopy boolean
211 ) is
212 --
213 -- Declare cursors and local variables
214 --
215 l_proc varchar2(72) := g_package||'create_contact';
216 l_contact_relationship_id
217 per_contact_relationships.contact_relationship_id%TYPE;
218 l_per_object_version_number number(9);
219 l_ctr_object_version_number number(9);
220 l_name_combination_warning boolean;
221 l_orig_hire_warning boolean;
222 l_start_date date;
223 l_date_start date;
224 l_date_end date;
225 --
226 -- dummy variables for rh outs
227 --
228 l_date_employee_data_verified date;
229 l_employee_number varchar2(30);
230 l_contact_person_id per_contact_relationships.contact_person_id%TYPE;
231 l_contact_person_id_save per_contact_relationships.contact_person_id%TYPE;
232 l_person_id per_contact_relationships.person_id%TYPE;
233 l_contact_type varchar2(30);
234 l_third_party_pay_flag varchar2(1);
235 l_primary_contact_flag varchar2(1);
236 l_bondholder_flag varchar2(1);
237 l_dependent_flag varchar2(1);
238 l_beneficiary_flag varchar2(1);
239 l_sequence_number number;
240 l_mirror_ovn number;
241 l_mirror_contact_rel_id number;
242 --
243 -- Extra dummy vars for rh outs. Created due to User Hook.
244 --
245 l_per_effective_start_date date;
246 l_per_effective_end_date date;
247 l_full_name varchar2(240);
248 l_per_comment_id number;
249 --
250 begin
251 hr_utility.set_location('Entering:'|| l_proc, 5);
252 --
253 -- Issue a savepoint.
254 --
255 l_start_date := trunc(p_start_date);
256 l_date_start := trunc(p_date_start);
257 l_date_end := trunc(p_date_end);
258 --
259 savepoint create_contact;
260 hr_utility.set_location(l_proc, 6);
261 --
262 --
263 begin
264 --
265 -- Start of API User Hook for the before hook of create_contact
266 --
267 hr_contact_rel_bk1.create_contact_b
268 (p_start_date => l_start_date
269 ,p_person_id => p_person_id
270 ,p_business_group_id => p_business_group_id
271 ,p_contact_person_id => p_contact_person_id
272 ,p_contact_type => p_contact_type
273 ,p_ctr_comments => p_ctr_comments
274 ,p_primary_contact_flag => p_primary_contact_flag
275 ,p_date_start => l_date_start
276 ,p_start_life_reason_id => p_start_life_reason_id
277 ,p_date_end => l_date_end
278 ,p_end_life_reason_id => p_end_life_reason_id
279 ,p_rltd_per_rsds_w_dsgntr_flag => p_rltd_per_rsds_w_dsgntr_flag
280 ,p_personal_flag => p_personal_flag
281 ,p_sequence_number => p_sequence_number
282 ,p_cont_attribute_category => p_cont_attribute_category
283 ,p_cont_attribute1 => p_cont_attribute1
284 ,p_cont_attribute2 => p_cont_attribute2
285 ,p_cont_attribute3 => p_cont_attribute3
286 ,p_cont_attribute4 => p_cont_attribute4
287 ,p_cont_attribute5 => p_cont_attribute5
288 ,p_cont_attribute6 => p_cont_attribute6
289 ,p_cont_attribute7 => p_cont_attribute7
290 ,p_cont_attribute8 => p_cont_attribute8
291 ,p_cont_attribute9 => p_cont_attribute9
292 ,p_cont_attribute10 => p_cont_attribute10
293 ,p_cont_attribute11 => p_cont_attribute11
294 ,p_cont_attribute12 => p_cont_attribute12
295 ,p_cont_attribute13 => p_cont_attribute13
296 ,p_cont_attribute14 => p_cont_attribute14
297 ,p_cont_attribute15 => p_cont_attribute15
298 ,p_cont_attribute16 => p_cont_attribute16
299 ,p_cont_attribute17 => p_cont_attribute17
300 ,p_cont_attribute18 => p_cont_attribute18
301 ,p_cont_attribute19 => p_cont_attribute19
302 ,p_cont_attribute20 => p_cont_attribute20
303 ,p_cont_information_category => p_cont_information_category
304 ,p_cont_information1 => p_cont_information1
305 ,p_cont_information2 => p_cont_information2
306 ,p_cont_information3 => p_cont_information3
307 ,p_cont_information4 => p_cont_information4
308 ,p_cont_information5 => p_cont_information5
309 ,p_cont_information6 => p_cont_information6
310 ,p_cont_information7 => p_cont_information7
311 ,p_cont_information8 => p_cont_information8
312 ,p_cont_information9 => p_cont_information9
313 ,p_cont_information10 => p_cont_information10
314 ,p_cont_information11 => p_cont_information11
315 ,p_cont_information12 => p_cont_information12
316 ,p_cont_information13 => p_cont_information13
317 ,p_cont_information14 => p_cont_information14
318 ,p_cont_information15 => p_cont_information15
319 ,p_cont_information16 => p_cont_information16
320 ,p_cont_information17 => p_cont_information17
321 ,p_cont_information18 => p_cont_information18
322 ,p_cont_information19 => p_cont_information19
323 ,p_cont_information20 => p_cont_information20
324 ,p_third_party_pay_flag => p_third_party_pay_flag
325 ,p_bondholder_flag => p_bondholder_flag
326 ,p_dependent_flag => p_dependent_flag
327 ,p_beneficiary_flag => p_beneficiary_flag
328 ,p_sex => p_sex
329 ,p_last_name => p_last_name
330 ,p_person_type_id => p_person_type_id
331 ,p_per_comments => p_per_comments
332 ,p_date_of_birth => p_date_of_birth
333 ,p_email_address => p_email_address
334 ,p_first_name => p_first_name
335 ,p_known_as => p_known_as
336 ,p_marital_status => p_marital_status
337 ,p_middle_names => p_middle_names
338 ,p_nationality => p_nationality
339 ,p_national_identifier => p_national_identifier
340 ,p_previous_last_name => p_previous_last_name
341 ,p_registered_disabled_flag => p_registered_disabled_flag
342 ,p_title => p_title
343 ,p_work_telephone => p_work_telephone
344 ,p_attribute_category => p_attribute_category
345 ,p_attribute1 => p_attribute1
346 ,p_attribute2 => p_attribute2
347 ,p_attribute3 => p_attribute3
348 ,p_attribute4 => p_attribute4
349 ,p_attribute5 => p_attribute5
350 ,p_attribute6 => p_attribute6
351 ,p_attribute7 => p_attribute7
352 ,p_attribute8 => p_attribute8
353 ,p_attribute9 => p_attribute9
354 ,p_attribute10 => p_attribute10
355 ,p_attribute11 => p_attribute11
356 ,p_attribute12 => p_attribute12
357 ,p_attribute13 => p_attribute13
358 ,p_attribute14 => p_attribute14
359 ,p_attribute15 => p_attribute15
360 ,p_attribute16 => p_attribute16
361 ,p_attribute17 => p_attribute17
362 ,p_attribute18 => p_attribute18
363 ,p_attribute19 => p_attribute19
364 ,p_attribute20 => p_attribute20
365 ,p_attribute21 => p_attribute21
366 ,p_attribute22 => p_attribute22
367 ,p_attribute23 => p_attribute23
368 ,p_attribute24 => p_attribute24
369 ,p_attribute25 => p_attribute25
370 ,p_attribute26 => p_attribute26
371 ,p_attribute27 => p_attribute27
372 ,p_attribute28 => p_attribute28
373 ,p_attribute29 => p_attribute29
374 ,p_attribute30 => p_attribute30
375 ,p_per_information_category => p_per_information_category
376 ,p_per_information1 => p_per_information1
377 ,p_per_information2 => p_per_information2
378 ,p_per_information3 => p_per_information3
379 ,p_per_information4 => p_per_information4
380 ,p_per_information5 => p_per_information5
381 ,p_per_information6 => p_per_information6
382 ,p_per_information7 => p_per_information7
383 ,p_per_information8 => p_per_information8
384 ,p_per_information9 => p_per_information9
385 ,p_per_information10 => p_per_information10
386 ,p_per_information11 => p_per_information11
387 ,p_per_information12 => p_per_information12
388 ,p_per_information13 => p_per_information13
389 ,p_per_information14 => p_per_information14
390 ,p_per_information15 => p_per_information15
391 ,p_per_information16 => p_per_information16
392 ,p_per_information17 => p_per_information17
393 ,p_per_information18 => p_per_information18
394 ,p_per_information19 => p_per_information19
395 ,p_per_information20 => p_per_information20
396 ,p_per_information21 => p_per_information21
397 ,p_per_information22 => p_per_information22
398 ,p_per_information23 => p_per_information23
399 ,p_per_information24 => p_per_information24
400 ,p_per_information25 => p_per_information25
401 ,p_per_information26 => p_per_information26
402 ,p_per_information27 => p_per_information27
403 ,p_per_information28 => p_per_information28
404 ,p_per_information29 => p_per_information29
405 ,p_per_information30 => p_per_information30
406 ,p_correspondence_language => p_correspondence_language
407 ,p_honors => p_honors
408 ,p_pre_name_adjunct => p_pre_name_adjunct
409 ,p_suffix => p_suffix
410 ,p_create_mirror_flag => p_create_mirror_flag
411 ,p_mirror_type => p_mirror_type
412 ,p_mirror_cont_attribute_cat => p_mirror_cont_attribute_cat
413 ,p_mirror_cont_attribute1 => p_mirror_cont_attribute1
414 ,p_mirror_cont_attribute2 => p_mirror_cont_attribute2
415 ,p_mirror_cont_attribute3 => p_mirror_cont_attribute3
416 ,p_mirror_cont_attribute4 => p_mirror_cont_attribute4
417 ,p_mirror_cont_attribute5 => p_mirror_cont_attribute5
418 ,p_mirror_cont_attribute6 => p_mirror_cont_attribute6
419 ,p_mirror_cont_attribute7 => p_mirror_cont_attribute7
420 ,p_mirror_cont_attribute8 => p_mirror_cont_attribute8
421 ,p_mirror_cont_attribute9 => p_mirror_cont_attribute9
422 ,p_mirror_cont_attribute10 => p_mirror_cont_attribute10
423 ,p_mirror_cont_attribute11 => p_mirror_cont_attribute11
424 ,p_mirror_cont_attribute12 => p_mirror_cont_attribute12
425 ,p_mirror_cont_attribute13 => p_mirror_cont_attribute13
426 ,p_mirror_cont_attribute14 => p_mirror_cont_attribute14
427 ,p_mirror_cont_attribute15 => p_mirror_cont_attribute15
428 ,p_mirror_cont_attribute16 => p_mirror_cont_attribute16
429 ,p_mirror_cont_attribute17 => p_mirror_cont_attribute17
430 ,p_mirror_cont_attribute18 => p_mirror_cont_attribute18
431 ,p_mirror_cont_attribute19 => p_mirror_cont_attribute19
432 ,p_mirror_cont_attribute20 => p_mirror_cont_attribute20
433 ,p_mirror_cont_information_cat => p_mirror_cont_information_cat
434 ,p_mirror_cont_information1 => p_mirror_cont_information1
435 ,p_mirror_cont_information2 => p_mirror_cont_information2
436 ,p_mirror_cont_information3 => p_mirror_cont_information3
437 ,p_mirror_cont_information4 => p_mirror_cont_information4
438 ,p_mirror_cont_information5 => p_mirror_cont_information5
439 ,p_mirror_cont_information6 => p_mirror_cont_information6
440 ,p_mirror_cont_information7 => p_mirror_cont_information7
441 ,p_mirror_cont_information8 => p_mirror_cont_information8
442 ,p_mirror_cont_information9 => p_mirror_cont_information9
443 ,p_mirror_cont_information10 => p_mirror_cont_information10
444 ,p_mirror_cont_information11 => p_mirror_cont_information11
445 ,p_mirror_cont_information12 => p_mirror_cont_information12
446 ,p_mirror_cont_information13 => p_mirror_cont_information13
447 ,p_mirror_cont_information14 => p_mirror_cont_information14
448 ,p_mirror_cont_information15 => p_mirror_cont_information15
449 ,p_mirror_cont_information16 => p_mirror_cont_information16
450 ,p_mirror_cont_information17 => p_mirror_cont_information17
451 ,p_mirror_cont_information18 => p_mirror_cont_information18
452 ,p_mirror_cont_information19 => p_mirror_cont_information19
453 ,p_mirror_cont_information20 => p_mirror_cont_information20
454 );
455 exception
456 when hr_api.cannot_find_prog_unit then
457 hr_api.cannot_find_prog_unit_error
458 (p_module_name => 'Create_contact'
459 ,p_hook_type => 'BP'
460 );
461 --
462 -- End of API User Hook for the before hook of create_contact
463 --
464 end;
465 --
466 -- Process Logic
467 -- Check that the contact person is not null. If not, go straight to
468 -- entering the details into per_contact_relationships. If it is null,
469 -- call hr_contact_api.create_person
470 --
471 if p_contact_person_id is null then
472 --
473 hr_contact_api.create_person
474 (p_validate => false
475 ,p_start_date => l_start_date
476 ,p_person_id => l_contact_person_id
477 ,p_business_group_id => p_business_group_id
478 ,p_sex => p_sex
479 ,p_last_name => p_last_name
480 ,p_person_type_id => p_person_type_id
481 --
482 ,p_comments => p_per_comments
483 ,p_date_employee_data_verified => l_date_employee_data_verified
484 ,p_date_of_birth => p_date_of_birth
485 ,p_email_address => p_email_address
486 ,p_first_name => p_first_name
487 ,p_known_as => p_known_as
488 ,p_marital_status => p_marital_status
489 ,p_middle_names => p_middle_names
490 ,p_nationality => p_nationality
491 ,p_national_identifier => p_national_identifier
492 ,p_previous_last_name => p_previous_last_name
493 ,p_registered_disabled_flag => p_registered_disabled_flag
494 ,p_title => p_title
495 ,p_work_telephone => p_work_telephone
496 ,p_attribute_category => p_attribute_category
497 ,p_attribute1 => p_attribute1
498 ,p_attribute2 => p_attribute2
499 ,p_attribute3 => p_attribute3
500 ,p_attribute4 => p_attribute4
501 ,p_attribute5 => p_attribute5
502 ,p_attribute6 => p_attribute6
503 ,p_attribute7 => p_attribute7
504 ,p_attribute8 => p_attribute8
505 ,p_attribute9 => p_attribute9
506 ,p_attribute10 => p_attribute10
507 ,p_attribute11 => p_attribute11
508 ,p_attribute12 => p_attribute12
509 ,p_attribute13 => p_attribute13
510 ,p_attribute14 => p_attribute14
511 ,p_attribute15 => p_attribute15
512 ,p_attribute16 => p_attribute16
513 ,p_attribute17 => p_attribute17
514 ,p_attribute18 => p_attribute18
515 ,p_attribute19 => p_attribute19
516 ,p_attribute20 => p_attribute20
517 ,p_attribute21 => p_attribute21
518 ,p_attribute22 => p_attribute22
519 ,p_attribute23 => p_attribute23
520 ,p_attribute24 => p_attribute24
521 ,p_attribute25 => p_attribute25
522 ,p_attribute26 => p_attribute26
523 ,p_attribute27 => p_attribute27
524 ,p_attribute28 => p_attribute28
525 ,p_attribute29 => p_attribute29
526 ,p_attribute30 => p_attribute30
527 ,p_per_information_category => p_per_information_category
528 ,p_per_information1 => p_per_information1
529 ,p_per_information2 => p_per_information2
530 ,p_per_information3 => p_per_information3
531 ,p_per_information4 => p_per_information4
532 ,p_per_information5 => p_per_information5
533 ,p_per_information6 => p_per_information6
534 ,p_per_information7 => p_per_information7
535 ,p_per_information8 => p_per_information8
536 ,p_per_information9 => p_per_information9
537 ,p_per_information10 => p_per_information10
538 ,p_per_information11 => p_per_information11
539 ,p_per_information12 => p_per_information12
540 ,p_per_information13 => p_per_information13
541 ,p_per_information14 => p_per_information14
542 ,p_per_information15 => p_per_information15
543 ,p_per_information16 => p_per_information16
544 ,p_per_information17 => p_per_information17
545 ,p_per_information18 => p_per_information18
546 ,p_per_information19 => p_per_information19
547 ,p_per_information20 => p_per_information20
548 ,p_per_information21 => p_per_information21
549 ,p_per_information22 => p_per_information22
550 ,p_per_information23 => p_per_information23
551 ,p_per_information24 => p_per_information24
552 ,p_per_information25 => p_per_information25
553 ,p_per_information26 => p_per_information26
554 ,p_per_information27 => p_per_information27
555 ,p_per_information28 => p_per_information28
556 ,p_per_information29 => p_per_information29
557 ,p_per_information30 => p_per_information30
558 ,p_correspondence_language => p_correspondence_language
559 ,p_honors => p_honors
560 ,p_pre_name_adjunct => p_pre_name_adjunct
561 ,p_suffix => p_suffix
562 --
563 ,p_object_version_number => l_per_object_version_number
564 ,p_effective_start_date => l_per_effective_start_date
565 ,p_effective_end_date => l_per_effective_end_date
566 ,p_full_name => l_full_name
567 ,p_comment_id => l_per_comment_id
568 ,p_name_combination_warning => l_name_combination_warning
569 ,p_orig_hire_warning => l_orig_hire_warning
570 );
571 --
572 l_contact_person_id_save := l_contact_person_id;
573 --
574 else
575 l_contact_person_id := p_contact_person_id;
576 l_contact_person_id_save := l_contact_person_id;
577 --
578 end if;
579 --
580 -- Now we are sure of having a person_id for a contact, insert the
581 -- details by calling the per_contact_relationships row handler.
582 --
583 hr_utility.set_location(l_proc, 40);
584 --
585 per_ctr_ins.ins(p_contact_relationship_id => l_contact_relationship_id
586 ,p_business_group_id => p_business_group_id
587 ,p_person_id => p_person_id
588 ,p_contact_person_id => l_contact_person_id
589 ,p_contact_type => p_contact_type
590 ,p_comments => p_ctr_comments
591 ,p_primary_contact_flag => p_primary_contact_flag
592 ,p_date_start => l_date_start
593 ,p_start_life_reason_id => p_start_life_reason_id
594 ,p_date_end => l_date_end
595 ,p_end_life_reason_id => p_end_life_reason_id
596 ,p_rltd_per_rsds_w_dsgntr_flag => p_rltd_per_rsds_w_dsgntr_flag
597 ,p_personal_flag => p_personal_flag
598 ,p_sequence_number => p_sequence_number
599 ,p_cont_attribute_category => p_cont_attribute_category
600 ,p_cont_attribute1 => p_cont_attribute1
601 ,p_cont_attribute2 => p_cont_attribute2
602 ,p_cont_attribute3 => p_cont_attribute3
603 ,p_cont_attribute4 => p_cont_attribute4
604 ,p_cont_attribute5 => p_cont_attribute5
605 ,p_cont_attribute6 => p_cont_attribute6
606 ,p_cont_attribute7 => p_cont_attribute7
607 ,p_cont_attribute8 => p_cont_attribute8
608 ,p_cont_attribute9 => p_cont_attribute9
609 ,p_cont_attribute10 => p_cont_attribute10
610 ,p_cont_attribute11 => p_cont_attribute11
611 ,p_cont_attribute12 => p_cont_attribute12
612 ,p_cont_attribute13 => p_cont_attribute13
613 ,p_cont_attribute14 => p_cont_attribute14
614 ,p_cont_attribute15 => p_cont_attribute15
615 ,p_cont_attribute16 => p_cont_attribute16
616 ,p_cont_attribute17 => p_cont_attribute17
617 ,p_cont_attribute18 => p_cont_attribute18
618 ,p_cont_attribute19 => p_cont_attribute19
619 ,p_cont_attribute20 => p_cont_attribute20
620 ,p_cont_information_category => p_cont_information_category
621 ,p_cont_information1 => p_cont_information1
622 ,p_cont_information2 => p_cont_information2
623 ,p_cont_information3 => p_cont_information3
624 ,p_cont_information4 => p_cont_information4
625 ,p_cont_information5 => p_cont_information5
626 ,p_cont_information6 => p_cont_information6
627 ,p_cont_information7 => p_cont_information7
628 ,p_cont_information8 => p_cont_information8
629 ,p_cont_information9 => p_cont_information9
630 ,p_cont_information10 => p_cont_information10
631 ,p_cont_information11 => p_cont_information11
632 ,p_cont_information12 => p_cont_information12
633 ,p_cont_information13 => p_cont_information13
634 ,p_cont_information14 => p_cont_information14
635 ,p_cont_information15 => p_cont_information15
636 ,p_cont_information16 => p_cont_information16
637 ,p_cont_information17 => p_cont_information17
638 ,p_cont_information18 => p_cont_information18
639 ,p_cont_information19 => p_cont_information19
640 ,p_cont_information20 => p_cont_information20
641 ,p_third_party_pay_flag => p_third_party_pay_flag
642 ,p_bondholder_flag => p_bondholder_flag
643 ,p_dependent_flag => p_dependent_flag
644 ,p_beneficiary_flag => p_beneficiary_flag
645 ,p_object_version_number => l_ctr_object_version_number
646 ,p_effective_date => l_start_date
647 );
648 --
649 -- Set pipe on for Debug output
650 --
651 hr_utility.set_location(l_proc||'First contact created with id: ',l_contact_relationship_id);
652 hr_utility.set_location(l_proc||' and type: '||p_contact_type, 0);
653 hr_utility.set_location(l_proc||' and person_id: ',p_person_id);
654 hr_utility.set_location(l_proc||' and contact_person_id: ',l_contact_person_id);
655 --
656 -- start of code for bug 2678841
657 if p_contact_type in ('P','C','S') and
658 p_personal_flag <> 'Y' then
659 hr_utility.set_message(800,'PER_6994_PERSONAL_FLAG');
660 hr_utility.raise_error;
661 end if;
662 -- end of code for bug 2678841
663
664 if p_create_mirror_flag = 'Y' then
665
666 -- Set the mirror person ids for the new contact relationship
667 --
668 l_person_id := l_contact_person_id;
669 l_contact_person_id := p_person_id;
670 --
671 -- Set flags to 'N', these have to be set with the update API.
672 --
673 l_third_party_pay_flag := 'N';
674 l_primary_contact_flag := 'N';
675 l_bondholder_flag := 'N';
676 l_dependent_flag := 'N';
677 l_beneficiary_flag := 'N';
678 --
679 -- Set mirror sequence number to null
680 l_sequence_number := null;
681 --
682 -- Validation in addition to Row Handlers.
683 --
684 if p_contact_type = 'P' and p_mirror_type <> 'C'
685 or p_contact_type = 'C' and p_mirror_type <> 'P'
686 or p_contact_type = 'S' and p_mirror_type <> 'S' then
687 hr_utility.set_message(801, 'PER_6995_MIRR_CON_REL_TYPES');
688 hr_utility.raise_error;
689 end if;
690 --
691 if (p_date_start is not null
692 and p_date_of_birth is not null
693 and p_date_start < p_date_of_birth) then
694 fnd_message.set_name('PER','PER_50386_CON_SDT_LES_EMP_BDT');
695 fnd_message.raise_error;
696 end if;
697 --
698 -- Insert the mirror contact relationship
699 --
700 hr_utility.set_location(l_proc, 45);
701 --
702 per_ctr_ins.ins(p_contact_relationship_id => l_mirror_contact_rel_id
703 ,p_business_group_id => p_business_group_id
704 ,p_person_id => l_person_id
705 ,p_contact_person_id => l_contact_person_id
706 ,p_contact_type => p_mirror_type
707 ,p_comments => null
708 ,p_primary_contact_flag => l_primary_contact_flag
709 ,p_date_start => l_date_start
710 ,p_start_life_reason_id => p_start_life_reason_id
711 ,p_date_end => l_date_end
712 ,p_end_life_reason_id => p_end_life_reason_id
713 ,p_rltd_per_rsds_w_dsgntr_flag => p_rltd_per_rsds_w_dsgntr_flag
714 ,p_personal_flag => p_personal_flag
715 ,p_sequence_number => l_sequence_number
716 ,p_cont_attribute_category => p_mirror_cont_attribute_cat
717 ,p_cont_attribute1 => p_mirror_cont_attribute1
718 ,p_cont_attribute2 => p_mirror_cont_attribute2
719 ,p_cont_attribute3 => p_mirror_cont_attribute3
720 ,p_cont_attribute4 => p_mirror_cont_attribute4
721 ,p_cont_attribute5 => p_mirror_cont_attribute5
722 ,p_cont_attribute6 => p_mirror_cont_attribute6
723 ,p_cont_attribute7 => p_mirror_cont_attribute7
724 ,p_cont_attribute8 => p_mirror_cont_attribute8
725 ,p_cont_attribute9 => p_mirror_cont_attribute9
726 ,p_cont_attribute10 => p_mirror_cont_attribute10
727 ,p_cont_attribute11 => p_mirror_cont_attribute11
728 ,p_cont_attribute12 => p_mirror_cont_attribute12
729 ,p_cont_attribute13 => p_mirror_cont_attribute13
730 ,p_cont_attribute14 => p_mirror_cont_attribute14
731 ,p_cont_attribute15 => p_mirror_cont_attribute15
732 ,p_cont_attribute16 => p_mirror_cont_attribute16
733 ,p_cont_attribute17 => p_mirror_cont_attribute17
734 ,p_cont_attribute18 => p_mirror_cont_attribute18
735 ,p_cont_attribute19 => p_mirror_cont_attribute19
736 ,p_cont_attribute20 => p_mirror_cont_attribute20
737 ,p_cont_information_category => p_mirror_cont_information_cat
738 ,p_cont_information1 => p_mirror_cont_information1
739 ,p_cont_information2 => p_mirror_cont_information2
740 ,p_cont_information3 => p_mirror_cont_information3
741 ,p_cont_information4 => p_mirror_cont_information4
742 ,p_cont_information5 => p_mirror_cont_information5
743 ,p_cont_information6 => p_mirror_cont_information6
744 ,p_cont_information7 => p_mirror_cont_information7
745 ,p_cont_information8 => p_mirror_cont_information8
746 ,p_cont_information9 => p_mirror_cont_information9
747 ,p_cont_information10 => p_mirror_cont_information10
748 ,p_cont_information11 => p_mirror_cont_information11
749 ,p_cont_information12 => p_mirror_cont_information12
750 ,p_cont_information13 => p_mirror_cont_information13
751 ,p_cont_information14 => p_mirror_cont_information14
752 ,p_cont_information15 => p_mirror_cont_information15
753 ,p_cont_information16 => p_mirror_cont_information16
754 ,p_cont_information17 => p_mirror_cont_information17
755 ,p_cont_information18 => p_mirror_cont_information18
756 ,p_cont_information19 => p_mirror_cont_information19
757 ,p_cont_information20 => p_mirror_cont_information20
758 ,p_third_party_pay_flag => l_third_party_pay_flag
759 ,p_bondholder_flag => l_bondholder_flag
760 ,p_dependent_flag => l_dependent_flag
761 ,p_beneficiary_flag => l_beneficiary_flag
762 ,p_object_version_number => l_mirror_ovn
763 ,p_effective_date => l_start_date
764 );
765 --
766 -- Set pipe on for Debug output
767 --
768 hr_utility.set_location(l_proc||'Mirror contact created with id: ',l_mirror_contact_rel_id);
769 hr_utility.set_location(l_proc||' and type: '||l_contact_type, 0);
770 hr_utility.set_location(l_proc||' and person_id: ',l_person_id);
771 hr_utility.set_location(l_proc||' and contact_person_id: ',l_contact_person_id);
772 --
773 end if;
774 --
775 -- 1766066: added call for contact start date enh.
776 --
777 per_people12_pkg.maintain_coverage(p_person_id => l_contact_person_id_save
778 ,p_type => 'CONT'
779 );
780 -- 1766066 end.
781 -- 2410386 start
782 select per.object_version_number into l_per_object_version_number
783 from per_all_people_f per
784 where per.person_id=l_contact_person_id_save
785 and p_start_date between per.effective_start_date and per.effective_end_date;
786 -- 2410386 end
787 --
788 -- Set all output arguments
789 --
790 p_per_person_id := l_contact_person_id_save;
791 p_contact_relationship_id := l_contact_relationship_id;
792 --
793 p_ctr_object_version_number := l_ctr_object_version_number;
794 p_per_object_version_number := l_per_object_version_number;
795 p_per_effective_start_date := l_per_effective_start_date;
796 p_per_effective_end_date := l_per_effective_end_date;
797 p_full_name := l_full_name;
798 p_per_comment_id := l_per_comment_id;
799 p_name_combination_warning := l_name_combination_warning;
800 p_orig_hire_warning := l_orig_hire_warning;
801 --
802 begin
803 --
804 -- Start of API User Hook for the after hook of create_contact
805 --
806 hr_contact_rel_bk1.create_contact_a
807 (p_start_date => l_start_date
808 ,p_person_id => p_person_id
809 ,p_business_group_id => p_business_group_id
810 ,p_contact_person_id => p_contact_person_id
811 ,p_contact_type => p_contact_type
812 ,p_ctr_comments => p_ctr_comments
813 ,p_primary_contact_flag => p_primary_contact_flag
814 ,p_date_start => l_date_start
815 ,p_start_life_reason_id => p_start_life_reason_id
816 ,p_date_end => l_date_end
817 ,p_end_life_reason_id => p_end_life_reason_id
818 ,p_rltd_per_rsds_w_dsgntr_flag => p_rltd_per_rsds_w_dsgntr_flag
819 ,p_personal_flag => p_personal_flag
820 ,p_sequence_number => p_sequence_number
821 ,p_cont_attribute_category => p_cont_attribute_category
822 ,p_cont_attribute1 => p_cont_attribute1
823 ,p_cont_attribute2 => p_cont_attribute2
824 ,p_cont_attribute3 => p_cont_attribute3
825 ,p_cont_attribute4 => p_cont_attribute4
826 ,p_cont_attribute5 => p_cont_attribute5
827 ,p_cont_attribute6 => p_cont_attribute6
828 ,p_cont_attribute7 => p_cont_attribute7
829 ,p_cont_attribute8 => p_cont_attribute8
830 ,p_cont_attribute9 => p_cont_attribute9
831 ,p_cont_attribute10 => p_cont_attribute10
832 ,p_cont_attribute11 => p_cont_attribute11
833 ,p_cont_attribute12 => p_cont_attribute12
834 ,p_cont_attribute13 => p_cont_attribute13
835 ,p_cont_attribute14 => p_cont_attribute14
836 ,p_cont_attribute15 => p_cont_attribute15
837 ,p_cont_attribute16 => p_cont_attribute16
838 ,p_cont_attribute17 => p_cont_attribute17
839 ,p_cont_attribute18 => p_cont_attribute18
840 ,p_cont_attribute19 => p_cont_attribute19
841 ,p_cont_attribute20 => p_cont_attribute20
842 ,p_cont_information_category => p_cont_information_category
843 ,p_cont_information1 => p_cont_information1
844 ,p_cont_information2 => p_cont_information2
845 ,p_cont_information3 => p_cont_information3
846 ,p_cont_information4 => p_cont_information4
847 ,p_cont_information5 => p_cont_information5
848 ,p_cont_information6 => p_cont_information6
849 ,p_cont_information7 => p_cont_information7
850 ,p_cont_information8 => p_cont_information8
851 ,p_cont_information9 => p_cont_information9
852 ,p_cont_information10 => p_cont_information10
853 ,p_cont_information11 => p_cont_information11
854 ,p_cont_information12 => p_cont_information12
855 ,p_cont_information13 => p_cont_information13
856 ,p_cont_information14 => p_cont_information14
857 ,p_cont_information15 => p_cont_information15
858 ,p_cont_information16 => p_cont_information16
859 ,p_cont_information17 => p_cont_information17
860 ,p_cont_information18 => p_cont_information18
861 ,p_cont_information19 => p_cont_information19
862 ,p_cont_information20 => p_cont_information20
863 ,p_third_party_pay_flag => p_third_party_pay_flag
864 ,p_bondholder_flag => p_bondholder_flag
865 ,p_dependent_flag => p_dependent_flag
866 ,p_beneficiary_flag => p_beneficiary_flag
867 ,p_sex => p_sex
868 ,p_last_name => p_last_name
869 ,p_person_type_id => p_person_type_id
870 ,p_per_comments => p_per_comments
871 ,p_date_of_birth => p_date_of_birth
872 ,p_email_address => p_email_address
873 ,p_first_name => p_first_name
874 ,p_known_as => p_known_as
875 ,p_marital_status => p_marital_status
876 ,p_middle_names => p_middle_names
877 ,p_nationality => p_nationality
878 ,p_national_identifier => p_national_identifier
879 ,p_previous_last_name => p_previous_last_name
880 ,p_registered_disabled_flag => p_registered_disabled_flag
881 ,p_title => p_title
882 ,p_work_telephone => p_work_telephone
883 ,p_attribute_category => p_attribute_category
884 ,p_attribute1 => p_attribute1
885 ,p_attribute2 => p_attribute2
886 ,p_attribute3 => p_attribute3
887 ,p_attribute4 => p_attribute4
888 ,p_attribute5 => p_attribute5
889 ,p_attribute6 => p_attribute6
890 ,p_attribute7 => p_attribute7
891 ,p_attribute8 => p_attribute8
892 ,p_attribute9 => p_attribute9
893 ,p_attribute10 => p_attribute10
894 ,p_attribute11 => p_attribute11
895 ,p_attribute12 => p_attribute12
896 ,p_attribute13 => p_attribute13
897 ,p_attribute14 => p_attribute14
898 ,p_attribute15 => p_attribute15
899 ,p_attribute16 => p_attribute16
900 ,p_attribute17 => p_attribute17
901 ,p_attribute18 => p_attribute18
902 ,p_attribute19 => p_attribute19
903 ,p_attribute20 => p_attribute20
904 ,p_attribute21 => p_attribute21
905 ,p_attribute22 => p_attribute22
906 ,p_attribute23 => p_attribute23
907 ,p_attribute24 => p_attribute24
908 ,p_attribute25 => p_attribute25
909 ,p_attribute26 => p_attribute26
910 ,p_attribute27 => p_attribute27
911 ,p_attribute28 => p_attribute28
912 ,p_attribute29 => p_attribute29
913 ,p_attribute30 => p_attribute30
914 ,p_per_information_category => p_per_information_category
915 ,p_per_information1 => p_per_information1
916 ,p_per_information2 => p_per_information2
917 ,p_per_information3 => p_per_information3
918 ,p_per_information4 => p_per_information4
919 ,p_per_information5 => p_per_information5
920 ,p_per_information6 => p_per_information6
921 ,p_per_information7 => p_per_information7
922 ,p_per_information8 => p_per_information8
923 ,p_per_information9 => p_per_information9
924 ,p_per_information10 => p_per_information10
925 ,p_per_information11 => p_per_information11
926 ,p_per_information12 => p_per_information12
927 ,p_per_information13 => p_per_information13
928 ,p_per_information14 => p_per_information14
929 ,p_per_information15 => p_per_information15
930 ,p_per_information16 => p_per_information16
931 ,p_per_information17 => p_per_information17
932 ,p_per_information18 => p_per_information18
933 ,p_per_information19 => p_per_information19
934 ,p_per_information20 => p_per_information20
935 ,p_per_information21 => p_per_information21
936 ,p_per_information22 => p_per_information22
937 ,p_per_information23 => p_per_information23
938 ,p_per_information24 => p_per_information24
939 ,p_per_information25 => p_per_information25
940 ,p_per_information26 => p_per_information26
941 ,p_per_information27 => p_per_information27
942 ,p_per_information28 => p_per_information28
943 ,p_per_information29 => p_per_information29
944 ,p_per_information30 => p_per_information30
945 ,p_correspondence_language => p_correspondence_language
946 ,p_honors => p_honors
947 ,p_pre_name_adjunct => p_pre_name_adjunct
948 ,p_suffix => p_suffix
949 ,p_create_mirror_flag => p_create_mirror_flag
950 ,p_mirror_type => p_mirror_type
951 ,p_mirror_cont_attribute_cat => p_mirror_cont_attribute_cat
952 ,p_mirror_cont_attribute1 => p_mirror_cont_attribute1
953 ,p_mirror_cont_attribute2 => p_mirror_cont_attribute2
954 ,p_mirror_cont_attribute3 => p_mirror_cont_attribute3
955 ,p_mirror_cont_attribute4 => p_mirror_cont_attribute4
956 ,p_mirror_cont_attribute5 => p_mirror_cont_attribute5
957 ,p_mirror_cont_attribute6 => p_mirror_cont_attribute6
958 ,p_mirror_cont_attribute7 => p_mirror_cont_attribute7
959 ,p_mirror_cont_attribute8 => p_mirror_cont_attribute8
960 ,p_mirror_cont_attribute9 => p_mirror_cont_attribute9
961 ,p_mirror_cont_attribute10 => p_mirror_cont_attribute10
962 ,p_mirror_cont_attribute11 => p_mirror_cont_attribute11
963 ,p_mirror_cont_attribute12 => p_mirror_cont_attribute12
964 ,p_mirror_cont_attribute13 => p_mirror_cont_attribute13
965 ,p_mirror_cont_attribute14 => p_mirror_cont_attribute14
966 ,p_mirror_cont_attribute15 => p_mirror_cont_attribute15
967 ,p_mirror_cont_attribute16 => p_mirror_cont_attribute16
968 ,p_mirror_cont_attribute17 => p_mirror_cont_attribute17
969 ,p_mirror_cont_attribute18 => p_mirror_cont_attribute18
970 ,p_mirror_cont_attribute19 => p_mirror_cont_attribute19
971 ,p_mirror_cont_attribute20 => p_mirror_cont_attribute20
972 ,p_mirror_cont_information_cat => p_mirror_cont_information_cat
973 ,p_mirror_cont_information1 => p_mirror_cont_information1
974 ,p_mirror_cont_information2 => p_mirror_cont_information2
975 ,p_mirror_cont_information3 => p_mirror_cont_information3
976 ,p_mirror_cont_information4 => p_mirror_cont_information4
977 ,p_mirror_cont_information5 => p_mirror_cont_information5
978 ,p_mirror_cont_information6 => p_mirror_cont_information6
979 ,p_mirror_cont_information7 => p_mirror_cont_information7
980 ,p_mirror_cont_information8 => p_mirror_cont_information8
981 ,p_mirror_cont_information9 => p_mirror_cont_information9
982 ,p_mirror_cont_information10 => p_mirror_cont_information10
983 ,p_mirror_cont_information11 => p_mirror_cont_information11
984 ,p_mirror_cont_information12 => p_mirror_cont_information12
985 ,p_mirror_cont_information13 => p_mirror_cont_information13
986 ,p_mirror_cont_information14 => p_mirror_cont_information14
987 ,p_mirror_cont_information15 => p_mirror_cont_information15
988 ,p_mirror_cont_information16 => p_mirror_cont_information16
989 ,p_mirror_cont_information17 => p_mirror_cont_information17
990 ,p_mirror_cont_information18 => p_mirror_cont_information18
991 ,p_mirror_cont_information19 => p_mirror_cont_information19
992 ,p_mirror_cont_information20 => p_mirror_cont_information20
993 ,p_contact_relationship_id => l_contact_relationship_id
994 ,p_ctr_object_version_number => l_ctr_object_version_number
995 ,p_per_person_id => l_contact_person_id
996 ,p_per_object_version_number => l_per_object_version_number
997 ,p_per_effective_start_date => l_per_effective_start_date
998 ,p_per_effective_end_date => l_per_effective_end_date
999 ,p_full_name => l_full_name
1000 ,p_per_comment_id => l_per_comment_id
1001 ,p_name_combination_warning => l_name_combination_warning
1002 ,p_orig_hire_warning => l_orig_hire_warning
1003 );
1004 exception
1005 when hr_api.cannot_find_prog_unit then
1006 hr_api.cannot_find_prog_unit_error
1007 (p_module_name => 'Create_contact'
1008 ,p_hook_type => 'AP'
1009 );
1010 --
1011 -- End of API User Hook for the after hook of create_contact
1012 --
1013 end;
1014 --
1015 -- When in validation only mode raise the Validate_Enabled exception
1016 --
1017 if p_validate then
1018 raise hr_api.validate_enabled;
1019 end if;
1020 --
1021 hr_utility.set_location(' Leaving:'||l_proc, 11);
1022 exception
1023 when hr_api.validate_enabled then
1024 --
1025 -- As the Validate_Enabled exception has been raised
1026 -- we must rollback to the savepoint
1027 --
1028 ROLLBACK TO create_contact;
1029 --
1030 -- Only set output warning arguments
1031 -- (Any key or derived arguments must be set to null
1032 -- when validation only mode is being used.)
1033 --
1034 p_per_object_version_number := null;
1035 p_ctr_object_version_number := null;
1036 p_name_combination_warning := null;
1037 p_orig_hire_warning := null;
1038 p_per_person_id := null;
1039 p_per_effective_start_date := null;
1040 p_per_effective_end_date := null;
1041 p_full_name := null;
1042 p_per_comment_id := null;
1043 p_contact_relationship_id := null;
1044
1045 hr_utility.set_location(' Leaving:'||l_proc, 50);
1046 --
1047 when others then
1048 --
1049 -- A validation or unexpected error has occurred
1050 --
1051 -- Added as part of fix to bug 632479
1052 --
1053 ROLLBACK TO create_contact;
1054 --
1055 -- set in out parameters and set out parameters
1056 --
1057 p_per_object_version_number := null;
1058 p_ctr_object_version_number := null;
1059 p_name_combination_warning := null;
1060 p_orig_hire_warning := null;
1061 p_per_person_id := null;
1062 p_per_effective_start_date := null;
1063 p_per_effective_end_date := null;
1064 p_full_name := null;
1065 p_per_comment_id := null;
1066 p_contact_relationship_id := null;
1067 raise;
1068 --
1069 -- End of fix.
1070 --
1071 end create_contact;
1072 --
1073 -- ----------------------------------------------------------------------------------
1074 -- |----------------------< update_contact_relationship >--------------------------|
1075 -- ----------------------------------------------------------------------------------
1076 --
1077 procedure update_contact_relationship
1078 (p_validate in boolean default false
1079 ,p_effective_date in date
1080 ,p_contact_relationship_id in number
1081 ,p_contact_type in varchar2 default hr_api.g_varchar2
1082 ,p_comments in long default hr_api.g_varchar2
1083 ,p_primary_contact_flag in varchar2 default hr_api.g_varchar2
1084 ,p_third_party_pay_flag in varchar2 default hr_api.g_varchar2
1085 ,p_bondholder_flag in varchar2 default hr_api.g_varchar2
1086 ,p_date_start in date default hr_api.g_date
1087 ,p_start_life_reason_id in number default hr_api.g_number
1088 ,p_date_end in date default hr_api.g_date
1089 ,p_end_life_reason_id in number default hr_api.g_number
1090 ,p_rltd_per_rsds_w_dsgntr_flag in varchar2 default hr_api.g_varchar2
1091 ,p_personal_flag in varchar2 default hr_api.g_varchar2
1092 ,p_sequence_number in number default hr_api.g_number
1093 ,p_dependent_flag in varchar2 default hr_api.g_varchar2
1094 ,p_beneficiary_flag in varchar2 default hr_api.g_varchar2
1095 ,p_cont_attribute_category in varchar2 default hr_api.g_varchar2
1096 ,p_cont_attribute1 in varchar2 default hr_api.g_varchar2
1097 ,p_cont_attribute2 in varchar2 default hr_api.g_varchar2
1098 ,p_cont_attribute3 in varchar2 default hr_api.g_varchar2
1099 ,p_cont_attribute4 in varchar2 default hr_api.g_varchar2
1100 ,p_cont_attribute5 in varchar2 default hr_api.g_varchar2
1101 ,p_cont_attribute6 in varchar2 default hr_api.g_varchar2
1102 ,p_cont_attribute7 in varchar2 default hr_api.g_varchar2
1103 ,p_cont_attribute8 in varchar2 default hr_api.g_varchar2
1104 ,p_cont_attribute9 in varchar2 default hr_api.g_varchar2
1105 ,p_cont_attribute10 in varchar2 default hr_api.g_varchar2
1106 ,p_cont_attribute11 in varchar2 default hr_api.g_varchar2
1107 ,p_cont_attribute12 in varchar2 default hr_api.g_varchar2
1108 ,p_cont_attribute13 in varchar2 default hr_api.g_varchar2
1109 ,p_cont_attribute14 in varchar2 default hr_api.g_varchar2
1110 ,p_cont_attribute15 in varchar2 default hr_api.g_varchar2
1111 ,p_cont_attribute16 in varchar2 default hr_api.g_varchar2
1112 ,p_cont_attribute17 in varchar2 default hr_api.g_varchar2
1113 ,p_cont_attribute18 in varchar2 default hr_api.g_varchar2
1114 ,p_cont_attribute19 in varchar2 default hr_api.g_varchar2
1115 ,p_cont_attribute20 in varchar2 default hr_api.g_varchar2
1116 ,p_cont_information_category in varchar2 default hr_api.g_varchar2
1117 ,p_cont_information1 in varchar2 default hr_api.g_varchar2
1118 ,p_cont_information2 in varchar2 default hr_api.g_varchar2
1119 ,p_cont_information3 in varchar2 default hr_api.g_varchar2
1120 ,p_cont_information4 in varchar2 default hr_api.g_varchar2
1121 ,p_cont_information5 in varchar2 default hr_api.g_varchar2
1122 ,p_cont_information6 in varchar2 default hr_api.g_varchar2
1123 ,p_cont_information7 in varchar2 default hr_api.g_varchar2
1124 ,p_cont_information8 in varchar2 default hr_api.g_varchar2
1125 ,p_cont_information9 in varchar2 default hr_api.g_varchar2
1126 ,p_cont_information10 in varchar2 default hr_api.g_varchar2
1127 ,p_cont_information11 in varchar2 default hr_api.g_varchar2
1128 ,p_cont_information12 in varchar2 default hr_api.g_varchar2
1129 ,p_cont_information13 in varchar2 default hr_api.g_varchar2
1130 ,p_cont_information14 in varchar2 default hr_api.g_varchar2
1131 ,p_cont_information15 in varchar2 default hr_api.g_varchar2
1132 ,p_cont_information16 in varchar2 default hr_api.g_varchar2
1133 ,p_cont_information17 in varchar2 default hr_api.g_varchar2
1134 ,p_cont_information18 in varchar2 default hr_api.g_varchar2
1135 ,p_cont_information19 in varchar2 default hr_api.g_varchar2
1136 ,p_cont_information20 in varchar2 default hr_api.g_varchar2
1137 ,p_object_version_number in out nocopy number
1138 )
1139 is
1140 --
1141 -- Declare all out local variables and cursors
1142 --
1143 l_proc varchar2(72) := g_package||'update_contact';
1144 --
1145 l_object_version_number
1146 per_contact_relationships.object_version_number%TYPE;
1147 l_ovn number;
1148 l_effective_date date;
1149 l_date_start date;
1150 l_date_end date;
1151 --
1152 l_mirror_contact_type varchar2(30);
1153 l_contact_type varchar2(30);
1154 --
1155 -- Declare cursor to check that there is a mirror contact
1156 -- adhunter: 2425534: added extra check on date_start
1157 --
1158 cursor check_mirror is
1159 select pcr2.contact_relationship_id,
1160 pcr2.object_version_number
1161 from per_contact_relationships pcr1,
1162 per_contact_relationships pcr2
1163 where pcr2.contact_person_id = pcr1.person_id
1164 and pcr2.person_id = pcr1.contact_person_id
1165 and (pcr2.date_start = pcr1.date_start
1166 or (pcr2.date_start is null and pcr1.date_start is null))
1167 and pcr1.contact_relationship_id = p_contact_relationship_id
1168 and pcr2.contact_type = l_mirror_contact_type;
1169 --
1170 l_mirror_rec check_mirror%ROWTYPE;
1171 --
1172 cursor get_contact_type is
1173 select pcr.contact_type,
1174 pcr.date_start,
1175 pcr.start_life_reason_id,
1176 pcr.date_end,
1177 pcr.end_life_reason_id,
1178 pcr.rltd_per_rsds_w_dsgntr_flag,
1179 pcr.personal_flag,
1180 pcr.contact_person_id
1181 from per_contact_relationships pcr
1182 where pcr.contact_relationship_id = p_contact_relationship_id;
1183 --
1184 l_start_life_reason_id number;
1185 l_end_life_reason_id number;
1186 l_rltd_per_rsds_w_dsgntr_flag varchar2(1);
1187 l_personal_flag varchar2(1);
1188 l_contact_person_id number;
1189 --
1190 begin
1191 hr_utility.set_location('Entering:'|| l_proc, 10);
1192 --
1193 -- Store initial values for IN OUT parameters
1194 --
1195 l_object_version_number := p_object_version_number;
1196 l_ovn := p_object_version_number;
1197 --
1198 -- Truncate all date parameters
1199 --
1200 l_effective_date := trunc(p_effective_date);
1201 --
1202 -- Issue a savepoint.
1203 --
1204 savepoint update_contact_relationship;
1205 --
1206 hr_utility.set_location(l_proc, 20);
1207 --
1208 begin
1209 --
1210 -- Start of API User Hook for the before hook of update_contact_relationship
1211 --
1212 hr_contact_rel_bk2.update_contact_relationship_b
1213 (p_effective_date => l_effective_date
1214 ,p_contact_relationship_id => p_contact_relationship_id
1215 ,p_contact_type => p_contact_type
1216 ,p_comments => p_comments
1217 ,p_primary_contact_flag => p_primary_contact_flag
1218 ,p_third_party_pay_flag => p_third_party_pay_flag
1219 ,p_bondholder_flag => p_bondholder_flag
1220 ,p_date_start => trunc(p_date_start)
1221 ,p_start_life_reason_id => p_start_life_reason_id
1222 ,p_date_end => trunc(p_date_end)
1223 ,p_end_life_reason_id => p_end_life_reason_id
1224 ,p_rltd_per_rsds_w_dsgntr_flag => p_rltd_per_rsds_w_dsgntr_flag
1225 ,p_personal_flag => p_personal_flag
1226 ,p_sequence_number => p_sequence_number
1227 ,p_dependent_flag => p_dependent_flag
1228 ,p_beneficiary_flag => p_beneficiary_flag
1229 ,p_cont_attribute_category => p_cont_attribute_category
1230 ,p_cont_attribute1 => p_cont_attribute1
1231 ,p_cont_attribute2 => p_cont_attribute2
1232 ,p_cont_attribute3 => p_cont_attribute3
1233 ,p_cont_attribute4 => p_cont_attribute4
1234 ,p_cont_attribute5 => p_cont_attribute5
1235 ,p_cont_attribute6 => p_cont_attribute6
1236 ,p_cont_attribute7 => p_cont_attribute7
1237 ,p_cont_attribute8 => p_cont_attribute8
1238 ,p_cont_attribute9 => p_cont_attribute9
1239 ,p_cont_attribute10 => p_cont_attribute10
1240 ,p_cont_attribute11 => p_cont_attribute11
1241 ,p_cont_attribute12 => p_cont_attribute12
1242 ,p_cont_attribute13 => p_cont_attribute13
1243 ,p_cont_attribute14 => p_cont_attribute14
1244 ,p_cont_attribute15 => p_cont_attribute15
1245 ,p_cont_attribute16 => p_cont_attribute16
1246 ,p_cont_attribute17 => p_cont_attribute17
1247 ,p_cont_attribute18 => p_cont_attribute18
1248 ,p_cont_attribute19 => p_cont_attribute19
1249 ,p_cont_attribute20 => p_cont_attribute20
1250 ,p_cont_information_category => p_cont_information_category
1251 ,p_cont_information1 => p_cont_information1
1252 ,p_cont_information2 => p_cont_information2
1253 ,p_cont_information3 => p_cont_information3
1254 ,p_cont_information4 => p_cont_information4
1255 ,p_cont_information5 => p_cont_information5
1256 ,p_cont_information6 => p_cont_information6
1257 ,p_cont_information7 => p_cont_information7
1258 ,p_cont_information8 => p_cont_information8
1259 ,p_cont_information9 => p_cont_information9
1260 ,p_cont_information10 => p_cont_information10
1261 ,p_cont_information11 => p_cont_information11
1262 ,p_cont_information12 => p_cont_information12
1263 ,p_cont_information13 => p_cont_information13
1264 ,p_cont_information14 => p_cont_information14
1265 ,p_cont_information15 => p_cont_information15
1266 ,p_cont_information16 => p_cont_information16
1267 ,p_cont_information17 => p_cont_information17
1268 ,p_cont_information18 => p_cont_information18
1269 ,p_cont_information19 => p_cont_information19
1270 ,p_cont_information20 => p_cont_information20
1271 ,p_object_version_number => p_object_version_number
1272 );
1273 exception
1274 when hr_api.cannot_find_prog_unit then
1275 hr_api.cannot_find_prog_unit_error
1276 (p_module_name => 'Update_contact_relationship'
1277 ,p_hook_type => 'BP'
1278 );
1279 --
1280 -- End of API User Hook for the before hook of update_contact_relationship
1281 --
1282 end;
1283 --
1284 open get_contact_type;
1285 fetch get_contact_type into l_contact_type,
1286 l_date_start,
1287 l_start_life_reason_id,
1288 l_date_end,
1289 l_end_life_reason_id,
1290 l_rltd_per_rsds_w_dsgntr_flag,
1291 l_personal_flag,
1292 l_contact_person_id;
1293 close get_contact_type;
1294 --
1295 -- Call the update contact relationship row handler
1296 --
1297 per_ctr_upd.upd
1298 (p_validate => FALSE
1299 ,p_effective_date => l_effective_date
1300 ,p_contact_relationship_id => p_contact_relationship_id
1301 ,p_contact_type => p_contact_type
1302 ,p_comments => p_comments
1303 ,p_primary_contact_flag => p_primary_contact_flag
1304 ,p_third_party_pay_flag => p_third_party_pay_flag
1305 ,p_bondholder_flag => p_bondholder_flag
1306 ,p_date_start => trunc(p_date_start)
1307 ,p_start_life_reason_id => p_start_life_reason_id
1308 ,p_date_end => trunc(p_date_end)
1309 ,p_end_life_reason_id => p_end_life_reason_id
1310 ,p_rltd_per_rsds_w_dsgntr_flag => p_rltd_per_rsds_w_dsgntr_flag
1311 ,p_personal_flag => p_personal_flag
1312 ,p_sequence_number => p_sequence_number
1313 ,p_dependent_flag => p_dependent_flag
1314 ,p_beneficiary_flag => p_beneficiary_flag
1315 ,p_cont_attribute_category => p_cont_attribute_category
1316 ,p_cont_attribute1 => p_cont_attribute1
1317 ,p_cont_attribute2 => p_cont_attribute2
1318 ,p_cont_attribute3 => p_cont_attribute3
1319 ,p_cont_attribute4 => p_cont_attribute4
1320 ,p_cont_attribute5 => p_cont_attribute5
1321 ,p_cont_attribute6 => p_cont_attribute6
1322 ,p_cont_attribute7 => p_cont_attribute7
1323 ,p_cont_attribute8 => p_cont_attribute8
1324 ,p_cont_attribute9 => p_cont_attribute9
1325 ,p_cont_attribute10 => p_cont_attribute10
1326 ,p_cont_attribute11 => p_cont_attribute11
1327 ,p_cont_attribute12 => p_cont_attribute12
1328 ,p_cont_attribute13 => p_cont_attribute13
1329 ,p_cont_attribute14 => p_cont_attribute14
1330 ,p_cont_attribute15 => p_cont_attribute15
1331 ,p_cont_attribute16 => p_cont_attribute16
1332 ,p_cont_attribute17 => p_cont_attribute17
1333 ,p_cont_attribute18 => p_cont_attribute18
1334 ,p_cont_attribute19 => p_cont_attribute19
1335 ,p_cont_attribute20 => p_cont_attribute20
1336 ,p_cont_information_category => p_cont_information_category
1337 ,p_cont_information1 => p_cont_information1
1338 ,p_cont_information2 => p_cont_information2
1339 ,p_cont_information3 => p_cont_information3
1340 ,p_cont_information4 => p_cont_information4
1341 ,p_cont_information5 => p_cont_information5
1342 ,p_cont_information6 => p_cont_information6
1343 ,p_cont_information7 => p_cont_information7
1344 ,p_cont_information8 => p_cont_information8
1345 ,p_cont_information9 => p_cont_information9
1346 ,p_cont_information10 => p_cont_information10
1347 ,p_cont_information11 => p_cont_information11
1348 ,p_cont_information12 => p_cont_information12
1349 ,p_cont_information13 => p_cont_information13
1350 ,p_cont_information14 => p_cont_information14
1351 ,p_cont_information15 => p_cont_information15
1352 ,p_cont_information16 => p_cont_information16
1353 ,p_cont_information17 => p_cont_information17
1354 ,p_cont_information18 => p_cont_information18
1355 ,p_cont_information19 => p_cont_information19
1356 ,p_cont_information20 => p_cont_information20
1357 ,p_object_version_number => p_object_version_number
1358 );
1359
1360 hr_utility.set_location(l_proc, 30);
1361 --
1362 if ((p_date_start <> hr_api.g_date
1363 and p_date_start <> nvl(l_date_start,hr_api.g_date))
1364 or (p_start_life_reason_id <> hr_api.g_number
1365 and p_start_life_reason_id <> nvl(l_start_life_reason_id,hr_api.g_number))
1366 or (p_date_end <> hr_api.g_date
1367 and p_date_end <> nvl(l_date_end,hr_api.g_date))
1368 or (p_end_life_reason_id <> hr_api.g_number
1369 and p_end_life_reason_id <> nvl(l_end_life_reason_id,hr_api.g_number))
1370 or (p_rltd_per_rsds_w_dsgntr_flag <> hr_api.g_varchar2
1371 and p_rltd_per_rsds_w_dsgntr_flag <> nvl(l_rltd_per_rsds_w_dsgntr_flag,hr_api.g_varchar2))
1372 or (p_personal_flag <> hr_api.g_varchar2
1373 and p_personal_flag <> nvl(l_personal_flag,hr_api.g_varchar2)))
1374 and (p_contact_type = hr_api.g_varchar2
1375 or p_contact_type = l_contact_type)
1376 then
1377 --
1378 l_mirror_contact_type := per_contact_relationships_pkg.get_mirror_contact_type
1379 (l_contact_type);
1380 --
1381 open check_mirror;
1382 fetch check_mirror into l_mirror_rec;
1383 if check_mirror%found then
1384 --
1385 hr_utility.set_location('id '||l_mirror_rec.contact_relationship_id, 7);
1386 --
1387 -- Now update the Mirror Contact by calling the Row Handler.
1388 --
1389 per_ctr_upd.upd
1390 (p_validate => FALSE
1391 ,p_effective_date => l_effective_date
1392 ,p_contact_relationship_id => l_mirror_rec.contact_relationship_id
1393 ,p_contact_type => l_mirror_contact_type
1394 ,p_date_start => p_date_start
1395 ,p_start_life_reason_id => p_start_life_reason_id
1396 ,p_date_end => p_date_end
1397 ,p_end_life_reason_id => p_end_life_reason_id
1398 ,p_rltd_per_rsds_w_dsgntr_flag => p_rltd_per_rsds_w_dsgntr_flag
1399 ,p_personal_flag => p_personal_flag
1400 ,p_object_version_number => l_mirror_rec.object_version_number
1401 );
1402 end if;
1403 close check_mirror;
1404 end if;
1405 --
1406 -- start of code for bug 2678841
1407 if p_personal_flag <> hr_api.g_varchar2 then
1408 if p_contact_type=hr_api.g_varchar2 then
1409 if l_contact_type in ('P','C','S') and
1410 p_personal_flag <> 'Y' then
1411 hr_utility.set_message(800,'PER_6994_PERSONAL_FLAG');
1412 hr_utility.raise_error;
1413 end if;
1414 else
1415 if p_contact_type in ('P','C','S') and
1416 p_personal_flag <> 'Y' then
1417 hr_utility.set_message(800,'PER_6994_PERSONAL_FLAG');
1418 hr_utility.raise_error;
1419 end if;
1420 end if;
1421 end if;
1422 -- end of code for bug2678841
1423
1424 -- 1766066: added call for contact start date enh.
1425 --
1426 if (p_date_start <> hr_api.g_date
1427 and p_date_start < l_date_start) then
1428 per_people12_pkg.maintain_coverage(p_person_id => l_contact_person_id
1429 ,p_type => 'CONT'
1430 );
1431 end if;
1432 -- 1766066 end.
1433 --
1434 begin
1435 --
1436 -- Start of API User Hook for the after hook of update_contact_relationship
1437 --
1438 hr_contact_rel_bk2.update_contact_relationship_a
1439 (p_effective_date => l_effective_date
1440 ,p_contact_relationship_id => p_contact_relationship_id
1441 ,p_contact_type => p_contact_type
1442 ,p_comments => p_comments
1443 ,p_primary_contact_flag => p_primary_contact_flag
1444 ,p_third_party_pay_flag => p_third_party_pay_flag
1445 ,p_bondholder_flag => p_bondholder_flag
1446 ,p_date_start => trunc(p_date_start)
1447 ,p_start_life_reason_id => p_start_life_reason_id
1448 ,p_date_end => trunc(p_date_end)
1449 ,p_end_life_reason_id => p_end_life_reason_id
1450 ,p_rltd_per_rsds_w_dsgntr_flag => p_rltd_per_rsds_w_dsgntr_flag
1451 ,p_personal_flag => p_personal_flag
1452 ,p_sequence_number => p_sequence_number
1453 ,p_dependent_flag => p_dependent_flag
1454 ,p_beneficiary_flag => p_beneficiary_flag
1455 ,p_cont_attribute_category => p_cont_attribute_category
1456 ,p_cont_attribute1 => p_cont_attribute1
1457 ,p_cont_attribute2 => p_cont_attribute2
1458 ,p_cont_attribute3 => p_cont_attribute3
1459 ,p_cont_attribute4 => p_cont_attribute4
1460 ,p_cont_attribute5 => p_cont_attribute5
1461 ,p_cont_attribute6 => p_cont_attribute6
1462 ,p_cont_attribute7 => p_cont_attribute7
1463 ,p_cont_attribute8 => p_cont_attribute8
1464 ,p_cont_attribute9 => p_cont_attribute9
1465 ,p_cont_attribute10 => p_cont_attribute10
1466 ,p_cont_attribute11 => p_cont_attribute11
1467 ,p_cont_attribute12 => p_cont_attribute12
1468 ,p_cont_attribute13 => p_cont_attribute13
1469 ,p_cont_attribute14 => p_cont_attribute14
1470 ,p_cont_attribute15 => p_cont_attribute15
1471 ,p_cont_attribute16 => p_cont_attribute16
1472 ,p_cont_attribute17 => p_cont_attribute17
1473 ,p_cont_attribute18 => p_cont_attribute18
1474 ,p_cont_attribute19 => p_cont_attribute19
1475 ,p_cont_attribute20 => p_cont_attribute20
1476 ,p_cont_information_category => p_cont_information_category
1477 ,p_cont_information1 => p_cont_information1
1478 ,p_cont_information2 => p_cont_information2
1479 ,p_cont_information3 => p_cont_information3
1480 ,p_cont_information4 => p_cont_information4
1481 ,p_cont_information5 => p_cont_information5
1482 ,p_cont_information6 => p_cont_information6
1483 ,p_cont_information7 => p_cont_information7
1484 ,p_cont_information8 => p_cont_information8
1485 ,p_cont_information9 => p_cont_information9
1486 ,p_cont_information10 => p_cont_information10
1487 ,p_cont_information11 => p_cont_information11
1488 ,p_cont_information12 => p_cont_information12
1489 ,p_cont_information13 => p_cont_information13
1490 ,p_cont_information14 => p_cont_information14
1491 ,p_cont_information15 => p_cont_information15
1492 ,p_cont_information16 => p_cont_information16
1493 ,p_cont_information17 => p_cont_information17
1494 ,p_cont_information18 => p_cont_information18
1495 ,p_cont_information19 => p_cont_information19
1496 ,p_cont_information20 => p_cont_information20
1497 ,p_object_version_number => p_object_version_number
1498 );
1499 exception
1500 when hr_api.cannot_find_prog_unit then
1501 hr_api.cannot_find_prog_unit_error
1502 (p_module_name => 'Update_contact_relationship'
1503 ,p_hook_type => 'AP'
1504 );
1505 --
1506 -- End of API User Hook for the afer hook of update_contact_relationship
1507 --
1508 end;
1509 --
1510 -- When in validation only mode raise the Validate_Enabled exception
1511 --
1512 if p_validate then
1513 raise hr_api.validate_enabled;
1514 end if;
1515 --
1516 hr_utility.set_location(' Leaving:'||l_proc, 100);
1517 exception
1518 when hr_api.validate_enabled then
1519 --
1520 -- As the Validate_Enabled exception has been raised
1521 -- we must rollback to the savepoint
1522 --
1523 ROLLBACK TO update_contact_relationship;
1524 --
1525 -- Only set output warning arguments
1526 -- (Any key or derived arguments must be set to null
1527 -- when validation only mode is being used.)
1528 --
1529 p_object_version_number := l_object_version_number;
1530 --
1531 when others then
1532 --
1533 -- A validation or unexpected error has occurred
1534 --
1535 -- Added as part of fix to bug 632479
1536 --
1537 ROLLBACK TO update_contact_relationship;
1538 --
1539 -- set in out parameters and set out parameters
1540 --
1541 p_object_version_number := l_ovn;
1542 raise;
1543 --
1544 -- End of fix.
1545 --
1546 hr_utility.set_location(' Leaving:'||l_proc, 200);
1547 --
1548 end update_contact_relationship;
1549 --
1550 --
1551 -- ----------------------------------------------------------------------------------
1552 -- |----------------------< delete_contact_relationship >--------------------------|
1553 -- ----------------------------------------------------------------------------------
1554 --
1555 procedure delete_contact_relationship
1556 (p_validate in boolean default false
1557 ,p_contact_relationship_id in number
1558 ,p_object_version_number in number
1559 )
1560 is
1561 --
1562 -- Declare all out local variables and cursors
1563 --
1564 l_proc varchar2(72) := g_package||'delete_contact';
1565 --
1566 l_object_version_number number;
1567 l_mirror_contact_type varchar2(30);
1568 -- Declare cursor to check that there is a mirror contact
1569 --
1570 cursor check_mirror is
1571 select pcr2.contact_relationship_id,
1572 pcr2.object_version_number
1573 from per_contact_relationships pcr1,
1574 per_contact_relationships pcr2
1575 where pcr2.contact_person_id = pcr1.person_id
1576 and pcr2.person_id = pcr1.contact_person_id
1577 and pcr1.contact_relationship_id = p_contact_relationship_id
1578 and pcr2.contact_type = l_mirror_contact_type; -- bug# 2742210
1579 --
1580 cursor csr_person_details(p_person_id number) is
1581 select object_version_number
1582 ,effective_start_date
1583 from per_all_people_f
1584 where person_id = p_person_id
1585 and effective_end_date = hr_general.end_of_time;
1586 --
1587 cursor csr_contact_person is
1588 select contact_person_id,contact_type
1589 from per_contact_relationships
1590 where contact_relationship_id = p_contact_relationship_id;
1591 --
1592 l_mirror_rec check_mirror%ROWTYPE;
1593 l_effective_start_date date;
1594 l_effective_end_date date;
1595 l_per_object_version_number number;
1596 l_effective_date date;
1597 l_contact_person_id number;
1598 l_contact_type varchar2(30);
1599 --
1600 begin
1601 hr_utility.set_location('Entering:'|| l_proc, 10);
1602 --
1603 -- Store initial values for IN OUT parameters
1604 --
1605 l_object_version_number := p_object_version_number;
1606 --
1607 -- Issue a savepoint.
1608 --
1609 savepoint delete_contact_relationship;
1610 --
1611 hr_utility.set_location(l_proc, 20);
1612 --
1613 begin
1614 --
1615 -- Start of API User Hook for the before hook of delete_contact_relationship
1616 --
1617 hr_contact_rel_bk3.delete_contact_relationship_b
1618 (p_contact_relationship_id => p_contact_relationship_id
1619 ,p_object_version_number => p_object_version_number
1620 );
1621 exception
1622 when hr_api.cannot_find_prog_unit then
1623 hr_api.cannot_find_prog_unit_error
1624 (p_module_name => 'Delete_contact_relationship'
1625 ,p_hook_type => 'BP'
1626 );
1627 --
1628 -- End of API User Hook for the before hook of delete_contact_relationship
1629 --
1630 end;
1631 -- Derive contact_person_id before row is deleted
1632 --
1633 open csr_contact_person;
1634 fetch csr_contact_person into l_contact_person_id,l_contact_type;
1635 close csr_contact_person;
1636 hr_utility.set_location('Contact person id is: ',l_contact_person_id);
1637 --
1638 -- If Relationship has a mirror row then then we have to delete the mirror rel.
1639 -- Have to do this first otherwise the cursor will always fail.
1640 -- start of code for bug 2742210
1641 l_mirror_contact_type := per_contact_relationships_pkg.get_mirror_contact_type
1642 (l_contact_type);
1643 -- end of code for bug 2742210
1644 open check_mirror;
1645 fetch check_mirror into l_mirror_rec;
1646 if check_mirror%found then
1647 --
1648 -- Delete the Mirror Contact by calling the Row Handler.
1649 --
1650 per_ctr_del.del
1651 (p_validate => FALSE
1652 ,p_contact_relationship_id => l_mirror_rec.contact_relationship_id
1653 ,p_object_version_number => l_mirror_rec.object_version_number
1654 );
1655 close check_mirror;
1656 else
1657 close check_mirror;
1658 end if;
1659 --
1660 -- Call the delete contact relationship row handler
1661 --
1662 per_ctr_del.del
1663 (p_validate => FALSE
1664 ,p_contact_relationship_id => p_contact_relationship_id
1665 ,p_object_version_number => p_object_version_number
1666 );
1667 --
1668 hr_utility.set_location(l_proc, 30);
1669 --
1670 --Added following for bug 2017198
1671 --
1672 --
1673 if (hr_contact_relationships.contact_only(l_contact_person_id) = 'Y'
1674 and hr_contact_relationships.multiple_contacts(l_contact_person_id) = 'N') then
1675 --
1676 hr_utility.set_location(l_proc, 31);
1677 --
1678 per_contact_relationships_pkg.delete_validation
1679 (l_contact_person_id
1680 ,p_contact_relationship_id
1681 );
1682 -- delete the person
1683 --
1684 open csr_person_details(l_contact_person_id);
1685 fetch csr_person_details
1686 into l_per_object_version_number
1687 ,l_effective_date;
1688 close csr_person_details;
1689 --
1690 hr_utility.set_location(l_proc, 32);
1691 --
1692 per_per_del.del(p_person_id => l_contact_person_id
1693 ,p_effective_start_date => l_effective_start_date
1694 ,p_effective_end_date => l_effective_end_date
1695 ,p_object_version_number => l_per_object_version_number
1696 ,p_effective_date => l_effective_date
1697 ,p_datetrack_mode => 'ZAP'
1698 ,p_validate => FALSE
1699 );
1700 end if;
1701 -- 2017198 end
1702 --
1703 hr_utility.set_location(l_proc, 35);
1704 --
1705 begin
1706 --
1707 -- Start of API User Hook for the after hook of delete_contact_relationship
1708 --
1709 hr_contact_rel_bk3.delete_contact_relationship_a
1710 (p_contact_relationship_id => p_contact_relationship_id
1711 ,p_object_version_number => p_object_version_number
1712 );
1713 exception
1714 when hr_api.cannot_find_prog_unit then
1715 hr_api.cannot_find_prog_unit_error
1716 (p_module_name => 'Delete_contact_relationship'
1717 ,p_hook_type => 'AP'
1718 );
1719 --
1720 -- End of API User Hook for the after hook of delete_contact_relationship
1721 --
1722 end;
1723 --
1724 -- When in validation only mode raise the Validate_Enabled exception
1725 --
1726 if p_validate then
1727 raise hr_api.validate_enabled;
1728 end if;
1729 --
1730 hr_utility.set_location(' Leaving:'||l_proc, 100);
1731 exception
1732 when hr_api.validate_enabled then
1733 --
1734 -- As the Validate_Enabled exception has been raised
1735 -- we must rollback to the savepoint
1736 --
1737 ROLLBACK TO delete_contact_relationship;
1738 --
1739 --
1740 when others then
1741 --
1742 -- A validation or unexpected error has occurred
1743 --
1744 -- Added as part of fix to bug 632479
1745 --
1746 ROLLBACK TO delete_contact_relationship;
1747 raise;
1748 --
1749 -- End of fix.
1750 --
1751 hr_utility.set_location(' Leaving:'||l_proc, 200);
1752 end delete_contact_relationship;
1753 --
1754 end hr_contact_rel_api;