[Home] [Help]
PACKAGE BODY: APPS.HZ_MERGE_PKG
Source
1 PACKAGE BODY HZ_MERGE_PKG AS
2 /*$Header: ARHMPKGB.pls 120.61.12010000.2 2008/10/27 06:45:18 vsegu ship $ */
3 --4307667
4 PROCEDURE do_party_usage_merge(
5 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
6 x_to_id IN OUT NOCOPY NUMBER,
7 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
8 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
9 x_return_status IN OUT NOCOPY VARCHAR2
10
11 );
12
13 PROCEDURE do_party_merge(
14 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
15 x_to_id IN OUT NOCOPY NUMBER,
16 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
17 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
18 p_batch_party_id IN NUMBER,
19 x_return_status IN OUT NOCOPY VARCHAR2
20 );
21
22 PROCEDURE do_party_site_merge(
23 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
24 x_to_id IN OUT NOCOPY NUMBER,
25 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
26 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
27 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
28 x_return_status IN OUT NOCOPY VARCHAR2
29 );
30
31 PROCEDURE do_cust_account_transfer(
32 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
33 x_to_id IN OUT NOCOPY NUMBER,
34 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
35 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
36 x_return_status IN OUT NOCOPY VARCHAR2
37 );
38
39 PROCEDURE do_cust_account_role_transfer(
40 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
41 x_to_id IN OUT NOCOPY NUMBER,
42 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
43 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
44 x_return_status IN OUT NOCOPY VARCHAR2
45 );
46
47 PROCEDURE do_cust_account_site_transfer(
48 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
49 x_to_id IN OUT NOCOPY NUMBER,
50 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
51 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
52 x_return_status IN OUT NOCOPY VARCHAR2
53 );
54
55 PROCEDURE do_fin_profile_transfer(
56 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
57 x_to_id IN OUT NOCOPY NUMBER,
58 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
59 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
60 x_return_status IN OUT NOCOPY VARCHAR2
61 );
62
63 PROCEDURE do_contact_point_transfer(
64 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
65 x_to_id IN OUT NOCOPY NUMBER,
66 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
67 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
68 x_return_status IN OUT NOCOPY VARCHAR2
69 );
70
71 PROCEDURE do_contact_point_transfer2(
72 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
73 x_to_id IN OUT NOCOPY NUMBER,
74 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
75 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
76 x_return_status IN OUT NOCOPY VARCHAR2
77 );
78
79 PROCEDURE do_contact_pref_transfer(
80 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
81 x_to_id IN OUT NOCOPY NUMBER,
82 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
83 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
84 x_return_status IN OUT NOCOPY VARCHAR2
85 );
86
87 PROCEDURE do_references_transfer(
88 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
89 x_to_id IN OUT NOCOPY NUMBER,
90 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
91 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
92 x_return_status IN OUT NOCOPY VARCHAR2
93 );
94
95 PROCEDURE do_certification_transfer(
96 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
97 x_to_id IN OUT NOCOPY NUMBER,
98 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
99 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
100 x_return_status IN OUT NOCOPY VARCHAR2
101 );
102
103 PROCEDURE do_credit_ratings_transfer(
104 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
105 x_to_id IN OUT NOCOPY NUMBER,
106 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
107 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
108 x_return_status IN OUT NOCOPY VARCHAR2
109 );
110
111 PROCEDURE do_security_issued_transfer(
112 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
113 x_to_id IN OUT NOCOPY NUMBER,
114 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
115 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
116 x_return_status IN OUT NOCOPY VARCHAR2
117 );
118
119 PROCEDURE do_financial_reports_transfer(
120 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
121 x_to_id IN OUT NOCOPY NUMBER,
122 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
123 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
124 x_return_status IN OUT NOCOPY VARCHAR2
125 );
126
127 PROCEDURE do_org_indicators_transfer(
128 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
129 x_to_id IN OUT NOCOPY NUMBER,
130 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
131 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
132 x_return_status IN OUT NOCOPY VARCHAR2
133 );
134
135 PROCEDURE do_ind_reference_transfer(
136 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
137 x_to_id IN OUT NOCOPY NUMBER,
138 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
139 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
140 x_return_status IN OUT NOCOPY VARCHAR2
141 );
142
143 PROCEDURE do_per_interest_transfer(
144 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
145 x_to_id IN OUT NOCOPY NUMBER,
146 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
147 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
148 x_return_status IN OUT NOCOPY VARCHAR2
149 );
150
151 PROCEDURE do_citizenship_transfer(
152 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
153 x_to_id IN OUT NOCOPY NUMBER,
154 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
155 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
156 x_return_status IN OUT NOCOPY VARCHAR2
157 );
158
159 PROCEDURE do_education_transfer(
160 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
161 x_to_id IN OUT NOCOPY NUMBER,
162 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
163 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
164 x_return_status IN OUT NOCOPY VARCHAR2
165 );
166
167 PROCEDURE do_education_school_transfer(
168 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
169 x_to_id IN OUT NOCOPY NUMBER,
170 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
171 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
172 x_return_status IN OUT NOCOPY VARCHAR2
173 );
174
175 PROCEDURE do_emp_history_transfer(
176 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
177 x_to_id IN OUT NOCOPY NUMBER,
178 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
179 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
180 x_return_status IN OUT NOCOPY VARCHAR2
181 );
182
183 PROCEDURE do_employed_transfer(
184 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
185 x_to_id IN OUT NOCOPY NUMBER,
186 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
187 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
188 x_return_status IN OUT NOCOPY VARCHAR2
189 );
190
191 PROCEDURE do_work_class_transfer(
192 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
193 x_to_id IN OUT NOCOPY NUMBER,
194 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
195 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
196 x_return_status IN OUT NOCOPY VARCHAR2
197 );
198
199 PROCEDURE do_financial_number_transfer(
200 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
201 x_to_id IN OUT NOCOPY NUMBER,
202 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
203 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
204 x_return_status IN OUT NOCOPY VARCHAR2
205 );
206
207 PROCEDURE do_org_contact_role_transfer(
208 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
209 x_to_id IN OUT NOCOPY NUMBER,
210 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
211 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
212 x_return_status IN OUT NOCOPY VARCHAR2
213 );
214
215 PROCEDURE do_code_assignment_transfer2(
216 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
217 x_to_id IN OUT NOCOPY NUMBER,
218 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
219 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
220 x_return_status IN OUT NOCOPY VARCHAR2
221 );
222
223 PROCEDURE do_code_assignment_transfer(
224 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
225 x_to_id IN OUT NOCOPY NUMBER,
226 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
227 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
228 x_return_status IN OUT NOCOPY VARCHAR2
229 );
230
231 PROCEDURE do_per_languages_transfer(
232 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
233 x_to_id IN OUT NOCOPY NUMBER,
234 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
235 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
236 x_return_status IN OUT NOCOPY VARCHAR2
237 );
238
239 PROCEDURE do_party_site_use_transfer(
240 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
241 x_to_id IN OUT NOCOPY NUMBER,
242 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
243 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
244 x_return_status IN OUT NOCOPY VARCHAR2
245 );
246
247 PROCEDURE do_org_contact_transfer(
248 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
249 x_to_id IN OUT NOCOPY NUMBER,
250 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
251 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
252 x_return_status IN OUT NOCOPY VARCHAR2
253 );
254
255 PROCEDURE do_org_contact_transfer2(
256 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
257 x_to_id IN OUT NOCOPY NUMBER,
258 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
259 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
260 x_return_status IN OUT NOCOPY VARCHAR2
261 );
262
263 PROCEDURE do_party_reln_subj_merge(
264 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
265 x_to_id IN OUT NOCOPY NUMBER,
266 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
267 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
268 x_return_status IN OUT NOCOPY VARCHAR2
269
270 );
271
272 PROCEDURE do_party_reln_obj_merge(
273 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
274 x_to_id IN OUT NOCOPY NUMBER,
275 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
276 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
277 x_return_status IN OUT NOCOPY VARCHAR2
278
279 );
280
281 PROCEDURE do_party_relationship_merge(
282 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
283 x_to_id IN OUT NOCOPY NUMBER,
284 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
285 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
286 x_return_status IN OUT NOCOPY VARCHAR2
287 );
288 PROCEDURE do_hierarchy_nodes_merge(
289 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
290 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
291 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
292 x_return_status IN OUT NOCOPY VARCHAR2,
293 p_action IN VARCHAR2,
294 p_sub_obj_merge IN VARCHAR2:=FND_API.G_MISS_CHAR
295 );
296
297 PROCEDURE do_org_profile_merge(
298 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
299 x_to_id IN OUT NOCOPY NUMBER,
300 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
301 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
302 x_return_status IN OUT NOCOPY VARCHAR2
303 );
304
305 PROCEDURE do_per_profile_merge(
306 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
307 x_to_id IN OUT NOCOPY NUMBER,
308 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
309 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
310 x_return_status IN OUT NOCOPY VARCHAR2
311 );
312
313 PROCEDURE do_displayed_duns_merge(
314 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
315 x_to_id IN OUT NOCOPY NUMBER,
316 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
317 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
318 x_return_status IN OUT NOCOPY VARCHAR2
319 );
320 /*
321 PROCEDURE check_params(
322 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
323 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
324 p_to_id IN NUMBER:=FND_API.G_MISS_NUM,
325 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
326 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
327 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
328 p_proc_name IN VARCHAR2,
329 p_exp_ent_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
330 p_exp_par_ent_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
331 p_pk_column IN VARCHAR2:=FND_API.G_MISS_CHAR,
332 p_par_pk_column IN VARCHAR2:=FND_API.G_MISS_CHAR,
333 x_return_status IN OUT NOCOPY VARCHAR2
334 );
335 */
336
337 PROCEDURE insert_request_log(
338 p_source_party_id IN NUMBER,
339 p_destination_party_id IN NUMBER
340 );
341
342 ----BugNo:1695595.Added private procedure to update denormalized columns in hz_parties.
343
344 PROCEDURE do_denormalize_contact_point (
345 p_party_id IN NUMBER,
346 p_contact_point_type IN VARCHAR2,
347 p_url IN VARCHAR2,
348 p_email_address IN VARCHAR2,
349 p_phone_contact_pt_id IN NUMBER,
350 p_phone_purpose IN VARCHAR2,
351 p_phone_line_type IN VARCHAR2,
352 p_phone_country_code IN VARCHAR2,
353 p_phone_area_code IN VARCHAR2,
354 p_phone_number IN VARCHAR2,
355 p_phone_extension IN VARCHAR2
356 );
357
358
359
360
361 /*===========================================================================+
362 | PROCEDURE |
363 | party_merge |
364 | |
365 | DESCRIPTION |
366 | Merges the parties with party_ids p_from_id to the party x_to_id |
367 | |
368 | SCOPE - PRIVATE |
369 | |
370 | EXTERNAL PROCEDURES/FUNCTIONS ACCESSED |
371 | |
372 | ARGUMENTS : IN: |
373 | p_entity_name |
374 | p_from_id |
375 | p_from_fk_id |
376 | p_to_fk_id |
377 | p_merge_operation |
378 | p_par_entity_name |
379 | OUT: |
380 | x_return_status |
381 | IN/ OUT: |
382 | x_to_id |
383 | RETURNS : NONE |
384 | |
385 | NOTES |
386 | |
387 | MODIFICATION HISTORY |
388 | Srinivasa Rangan 21-Aug-00 Created |
389 | |
390 +===========================================================================*/
391 PROCEDURE party_merge(
392 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
393 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
394 x_to_id IN OUT NOCOPY NUMBER,
395 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
396 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
397 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
398 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
399 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
400 x_return_status OUT NOCOPY VARCHAR2
401 ) IS
402
403 l_to_id NUMBER;
404
405 BEGIN
406 IF (x_to_id IS NULL) THEN
407 l_to_id := FND_API.G_MISS_NUM;
408 ELSE
409 l_to_id := x_to_id;
410 END IF;
411 x_return_status := FND_API.G_RET_STS_SUCCESS;
412
413 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
414 p_to_fk_id, p_par_entity_name,
415 'HZ_MERGE_PKG.party_merge',
416 'HZ_PARTIES',NULL,
417 'PARTY_ID',NULL,x_return_status);
418
419 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
420 do_party_merge(p_from_id, l_to_id,p_from_fk_id, p_to_fk_id,
421 p_batch_party_id, x_return_status);
422 END IF;
423
424 x_to_id := l_to_id;
425 EXCEPTION
426 WHEN OTHERS THEN
427 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
428 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
429 FND_MSG_PUB.ADD;
430 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
431 END party_merge;
432
433 PROCEDURE org_profile_merge(
434 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
435 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
436 x_to_id IN OUT NOCOPY NUMBER,
437 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
438 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
439 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
440 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
441 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
442 x_return_status OUT NOCOPY VARCHAR2
443 ) IS
444
445 l_to_id NUMBER;
446
447 BEGIN
448 IF (x_to_id IS NULL) THEN
449 l_to_id := FND_API.G_MISS_NUM;
450 ELSE
451 l_to_id := x_to_id;
452 END IF;
453 x_return_status := FND_API.G_RET_STS_SUCCESS;
454
455 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
456 p_to_fk_id, p_par_entity_name,
457 'HZ_MERGE_PKG.org_profile_merge',
458 'HZ_ORGANIZATION_PROFILES','HZ_PARTIES',
459 'ORGANIZATION_PROFILE_ID', 'PARTY_ID',x_return_status);
460
461 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
462 do_org_profile_merge(p_from_id, l_to_id,p_from_fk_id, p_to_fk_id,
463 x_return_status);
464 END IF;
465
466 x_to_id := l_to_id;
467 EXCEPTION
468 WHEN OTHERS THEN
469 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
470 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
471 FND_MSG_PUB.ADD;
472 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
473 END org_profile_merge;
474
475 PROCEDURE party_relationship_merge(
476 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
477 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
478 x_to_id IN OUT NOCOPY NUMBER,
479 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
480 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
481 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
482 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
483 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
484 x_return_status OUT NOCOPY VARCHAR2
485 ) IS
486
487 l_to_id NUMBER;
488
489 BEGIN
490 IF (x_to_id IS NULL) THEN
491 l_to_id := FND_API.G_MISS_NUM;
492 ELSE
493 l_to_id := x_to_id;
494 END IF;
495 x_return_status := FND_API.G_RET_STS_SUCCESS;
496
497 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
498 p_to_fk_id, p_par_entity_name,
499 'HZ_MERGE_PKG.party_relationship_merge',
500 'HZ_PARTY_RELATIONSHIPS','HZ_PARTIES',
501 'PARTY_RELATIONSHIP_ID', 'PARTY_ID',x_return_status);
502
503 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
504 do_party_relationship_merge(p_from_id, l_to_id,p_from_fk_id,p_to_fk_id,
505 x_return_status);
506 END IF;
507
508 x_to_id := l_to_id;
509 EXCEPTION
510 WHEN OTHERS THEN
511 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
512 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
513 FND_MSG_PUB.ADD;
514 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
515 END party_relationship_merge;
516
517 PROCEDURE per_profile_merge(
518 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
519 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
520 x_to_id IN OUT NOCOPY NUMBER,
521 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
522 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
523 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
524 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
525 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
526 x_return_status OUT NOCOPY VARCHAR2
527 ) IS
528
529 l_to_id NUMBER;
530
531 BEGIN
532 IF (x_to_id IS NULL) THEN
533 l_to_id := FND_API.G_MISS_NUM;
534 ELSE
535 l_to_id := x_to_id;
536 END IF;
537 x_return_status := FND_API.G_RET_STS_SUCCESS;
538
539 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
540 p_to_fk_id, p_par_entity_name,
541 'HZ_MERGE_PKG.per_profile_merge',
542 'HZ_PERSON_PROFILES','HZ_PARTIES',
543 'PERSON_PROFILE_ID', 'PARTY_ID',x_return_status);
544
545 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
546 do_per_profile_merge(p_from_id, l_to_id,p_from_fk_id,p_to_fk_id,
547 x_return_status);
548 END IF;
549
550 x_to_id := l_to_id;
551 EXCEPTION
552 WHEN OTHERS THEN
553 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
554 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
555 FND_MSG_PUB.ADD;
556 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
557 END per_profile_merge;
558
559 --4307667
560 PROCEDURE party_usage_merge(
561 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
562 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
563 x_to_id IN OUT NOCOPY NUMBER,
564 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
565 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
566 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
567 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
568 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
569 x_return_status OUT NOCOPY VARCHAR2
570 ) IS
571 l_to_id NUMBER;
572 l_dummy_id NUMBER;
573
574 BEGIN
575
576 IF (x_to_id IS NULL) THEN
577 l_to_id := FND_API.G_MISS_NUM;
578 ELSE
579 l_to_id := x_to_id;
580 END IF;
581 x_return_status := FND_API.G_RET_STS_SUCCESS;
582
583 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
584 p_to_fk_id, p_par_entity_name,
585 'HZ_MERGE_PKG.party_usage_merge',
586 'HZ_PARTY_USG_ASSIGNMENTS','HZ_PARTIES',
587 'PARTY_USG_ASSIGNMENT_ID', 'PARTY_ID',x_return_status);
588
589 IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
590 do_party_usage_merge(p_from_id,l_to_id, p_from_fk_id,
591 p_to_fk_id, x_return_status);
592 END IF;
593
594 x_to_id := l_to_id;
595 EXCEPTION
596 WHEN OTHERS THEN
597 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
598 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
599 FND_MSG_PUB.ADD;
600 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
601 END party_usage_merge;
602
603
604 PROCEDURE party_reln_subject_merge(
605 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
606 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
607 x_to_id IN OUT NOCOPY NUMBER,
608 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
609 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
610 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
611 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
612 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
613 x_return_status OUT NOCOPY VARCHAR2
614 ) IS
615 l_to_id NUMBER;
616 l_dummy_id NUMBER;
617
618 BEGIN
619 IF (x_to_id IS NULL) THEN
620 l_to_id := FND_API.G_MISS_NUM;
621 ELSE
622 l_to_id := x_to_id;
623 END IF;
624 x_return_status := FND_API.G_RET_STS_SUCCESS;
625
626 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
627 p_to_fk_id, p_par_entity_name,
628 'HZ_MERGE_PKG.party_reln_subject_merge',
629 'HZ_PARTY_RELATIONSHIPS','HZ_PARTIES',
630 'PARTY_RELATIONSHIP_ID', 'PARTY_ID',x_return_status);
631
632 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
633 do_party_reln_subj_merge(p_from_id,l_to_id, p_from_fk_id,
634 p_to_fk_id, x_return_status);
635 END IF;
636
637 IF (l_to_id IS NULL OR l_to_id = FND_API.G_MISS_NUM OR
638 l_to_id = p_from_id) THEN
639 FOR ORG_CT IN (
640 SELECT oc.ORG_CONTACT_ID
641 FROM HZ_ORG_CONTACTS oc, HZ_STAGED_CONTACTS soc
642 WHERE oc.PARTY_RELATIONSHIP_ID = p_from_id
643 AND SOC.ORG_CONTACT_ID=oc.ORG_CONTACT_ID) LOOP
644 HZ_DQM_SYNC.stage_contact_merge(
645 'HZ_STAGED_CONTACTS',
646 ORG_CT.ORG_CONTACT_ID,l_dummy_id,
647 ORG_CT.ORG_CONTACT_ID,ORG_CT.ORG_CONTACT_ID,
648 'HZ_ORG_CONTACTS',
649 p_batch_id,p_batch_party_id,x_return_status);
650 END LOOP;
651 END IF;
652
653 x_to_id := l_to_id;
654 EXCEPTION
655 WHEN OTHERS THEN
656 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
657 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
658 FND_MSG_PUB.ADD;
659 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
660 END party_reln_subject_merge;
661
662 PROCEDURE party_reln_object_merge(
663 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
664 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
665 x_to_id IN OUT NOCOPY NUMBER,
666 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
667 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
668 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
669 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
670 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
671 x_return_status OUT NOCOPY VARCHAR2
672 ) IS
673
674 l_to_id NUMBER;
675 l_dummy_id NUMBER;
676
677 BEGIN
678 IF (x_to_id IS NULL) THEN
679 l_to_id := FND_API.G_MISS_NUM;
680 ELSE
681 l_to_id := x_to_id;
682 END IF;
683 x_return_status := FND_API.G_RET_STS_SUCCESS;
684
685 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
686 p_to_fk_id, p_par_entity_name,
687 'HZ_MERGE_PKG.party_reln_object_merge',
688 'HZ_PARTY_RELATIONSHIPS','HZ_PARTIES',
689 'PARTY_RELATIONSHIP_ID', 'PARTY_ID',x_return_status);
690
691 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
692 do_party_reln_obj_merge(p_from_id,l_to_id, p_from_fk_id,
693 p_to_fk_id, x_return_status);
694 END IF;
695
696 IF (l_to_id IS NULL OR l_to_id = FND_API.G_MISS_NUM OR
697 l_to_id = p_from_id) THEN
698 FOR ORG_CT IN (
699 SELECT oc.ORG_CONTACT_ID
700 FROM HZ_ORG_CONTACTS oc, HZ_STAGED_CONTACTS soc
701 WHERE oc.PARTY_RELATIONSHIP_ID = p_from_id
702 AND SOC.ORG_CONTACT_ID=oc.ORG_CONTACT_ID) LOOP
703 HZ_DQM_SYNC.stage_contact_merge(
704 'HZ_STAGED_CONTACTS',
705 ORG_CT.ORG_CONTACT_ID,l_dummy_id,
706 ORG_CT.ORG_CONTACT_ID,ORG_CT.ORG_CONTACT_ID,
707 'HZ_ORG_CONTACTS',
708 p_batch_id,p_batch_party_id,x_return_status);
709 END LOOP;
710 END IF;
711
712 x_to_id := l_to_id;
713 EXCEPTION
714 WHEN OTHERS THEN
715 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
716 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
717 FND_MSG_PUB.ADD;
718 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
719 END party_reln_object_merge;
720
721 PROCEDURE org_contact_merge(
722 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
723 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
724 x_to_id IN OUT NOCOPY NUMBER,
725 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
726 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
727 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
728 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
729 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
730 x_return_status OUT NOCOPY VARCHAR2
731 ) IS
732 l_to_id NUMBER;
733
734 BEGIN
735 IF (x_to_id IS NULL) THEN
736 l_to_id := FND_API.G_MISS_NUM;
737 ELSE
738 l_to_id := x_to_id;
739 END IF;
740 x_return_status := FND_API.G_RET_STS_SUCCESS;
741
742 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
743 p_to_fk_id, p_par_entity_name,
744 'HZ_MERGE_PKG.org_contact_merge',
745 'HZ_ORG_CONTACTS','HZ_PARTY_SITES',
746 'ORG_CONTACT_ID', 'PARTY_SITE_ID',x_return_status);
747
748 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
749 do_org_contact_transfer(p_from_id,l_to_id, p_from_fk_id,
750 p_to_fk_id, x_return_status);
751 END IF;
752
753 x_to_id := l_to_id;
754 EXCEPTION
755 WHEN OTHERS THEN
756 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
757 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
758 FND_MSG_PUB.ADD;
759 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
760 END org_contact_merge;
761
762 PROCEDURE org_contact_merge2(
763 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
764 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
765 x_to_id IN OUT NOCOPY NUMBER,
766 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
767 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
768 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
769 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
770 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
771 x_return_status OUT NOCOPY VARCHAR2
772 ) IS
773 l_to_id NUMBER;
774 l_dummy_id NUMBER;
775
776 BEGIN
777 IF (x_to_id IS NULL) THEN
778 l_to_id := FND_API.G_MISS_NUM;
779 ELSE
780 l_to_id := x_to_id;
781 END IF;
782 x_return_status := FND_API.G_RET_STS_SUCCESS;
783
784 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
785 p_to_fk_id, p_par_entity_name,
786 'HZ_MERGE_PKG.org_contact_merge2',
787 'HZ_ORG_CONTACTS','HZ_PARTY_RELATIONSHIPS',
788 'ORG_CONTACT_ID', 'PARTY_RELATIONSHIP_ID',x_return_status);
789
790 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
791 do_org_contact_transfer2(p_from_id,l_to_id, p_from_fk_id,
792 p_to_fk_id, x_return_status);
793 END IF;
794
795 IF (l_to_id IS NULL OR l_to_id = FND_API.G_MISS_NUM OR
796 l_to_id = p_from_id) THEN
797 FOR ORG_CT IN (
798 SELECT soc.ORG_CONTACT_ID
799 FROM HZ_STAGED_CONTACTS soc
800 WHERE SOC.ORG_CONTACT_ID= p_from_id) LOOP
801 HZ_DQM_SYNC.stage_contact_merge(
802 'HZ_STAGED_CONTACTS',
803 ORG_CT.ORG_CONTACT_ID,l_dummy_id,
804 ORG_CT.ORG_CONTACT_ID,ORG_CT.ORG_CONTACT_ID,
805 'HZ_ORG_CONTACTS',
806 p_batch_id,p_batch_party_id,x_return_status);
807 END LOOP;
808 END IF;
809
810 x_to_id := l_to_id;
811 EXCEPTION
812 WHEN OTHERS THEN
813 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
814 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
815 FND_MSG_PUB.ADD;
816 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
817 END org_contact_merge2;
818
819 /*===========================================================================+
820 | PROCEDURE |
821 | party_site_merge |
822 | |
823 | DESCRIPTION |
824 | Merges the party_sites with party_site_ids p_from_id to the party site |
825 | x_to_id |
826 | |
827 | The merge operations allowed are MERGE and COPY |
828 | |
829 | SCOPE - PRIVATE |
830 | |
831 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
832 | |
833 | ARGUMENTS : IN: |
834 | p_entity_name |
835 | p_from_id |
836 | p_from_fk_id |
837 | p_to_fk_id |
838 | p_merge_operation |
839 | p_par_entity_name |
840 | OUT: |
841 | x_return_status |
842 | IN/ OUT: |
843 | x_to_id |
844 | RETURNS : NONE |
845 | |
846 | NOTES |
847 | |
848 | MODIFICATION HISTORY |
849 | Srinivasa Rangan 21-Aug-00 Created |
850 | |
851 +===========================================================================*/
852 PROCEDURE party_site_merge(
853 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
854 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
855 x_to_id IN OUT NOCOPY NUMBER,
856 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
857 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
858 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
859 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
860 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
861 x_return_status OUT NOCOPY VARCHAR2
862 ) IS
863 l_to_id NUMBER;
864
865 BEGIN
866 IF (x_to_id IS NULL) THEN
867 l_to_id := FND_API.G_MISS_NUM;
868 ELSE
869 l_to_id := x_to_id;
870 END IF;
871
872 x_return_status := FND_API.G_RET_STS_SUCCESS;
873
874 IF p_from_fk_id <> FND_API.G_MISS_NUM THEN
875 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
876 p_to_fk_id, p_par_entity_name,
877 'HZ_MERGE_PKG.party_site_merge',
878 'HZ_PARTY_SITES','HZ_PARTIES',
879 'PARTY_SITE_ID', 'PARTY_ID',x_return_status);
880 ELSE
881 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
882 p_to_fk_id, p_par_entity_name,
883 'HZ_MERGE_PKG.party_site_merge',
884 'HZ_PARTY_SITES',NULL, 'PARTY_SITE_ID',
885 NULL,x_return_status);
886 END IF;
887
888 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
889 do_party_site_merge(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
890 p_batch_id,x_return_status);
891 END IF;
892
893 x_to_id := l_to_id;
894 EXCEPTION
895 WHEN OTHERS THEN
896 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
897 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
898 FND_MSG_PUB.ADD;
899 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
900 END party_site_merge;
901
902 /*===========================================================================+
903 | PROCEDURE |
904 | cust_account_merge |
905 | |
906 | DESCRIPTION |
907 | |
908 | SCOPE - PRIVATE |
909 | |
910 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
911 | |
912 | ARGUMENTS : IN: |
913 | p_entity_name |
914 | p_from_id |
915 | p_from_fk_id |
916 | p_to_fk_id |
917 | p_merge_operation |
918 | p_par_entity_name |
919 | OUT: |
920 | x_return_status |
921 | IN/ OUT: |
922 | x_to_id |
923 | RETURNS : NONE |
924 | |
925 | NOTES |
926 | |
927 | MODIFICATION HISTORY |
928 | Srinivasa Rangan 21-Aug-00 Created |
929 | |
930 +===========================================================================*/
931 PROCEDURE cust_account_merge(
932 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
933 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
934 x_to_id IN OUT NOCOPY NUMBER,
935 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
936 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
937 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
938 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
939 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
940 x_return_status OUT NOCOPY VARCHAR2
941 ) IS
942 l_to_id NUMBER;
943 l_dup_exists VARCHAR2(20);
944
945 BEGIN
946 IF (x_to_id IS NULL) THEN
947 l_to_id := FND_API.G_MISS_NUM;
948 ELSE
949 l_to_id := x_to_id;
950 END IF;
951
952 x_return_status := FND_API.G_RET_STS_SUCCESS;
953
954 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
955 p_to_fk_id, p_par_entity_name,
956 'HZ_MERGE_PKG.cust_account_merge',
957 'HZ_CUST_ACCOUNTS','HZ_PARTIES',
958 'CUST_ACCOUNT_ID', 'PARTY_ID',x_return_status);
959 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
960 l_dup_exists := HZ_MERGE_DUP_CHECK.check_cust_account_dup(
961 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
962 x_return_status);
963 END IF;
964
965 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
966 do_cust_account_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
967 x_return_status);
968 END IF;
969
970 x_to_id := l_to_id;
971 EXCEPTION
972 WHEN OTHERS THEN
973 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
974 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
975 FND_MSG_PUB.ADD;
976 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
977 END cust_account_merge;
978
979 PROCEDURE cust_account_selling_merge(
980 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
981 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
982 x_to_id IN OUT NOCOPY NUMBER,
983 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
984 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
985 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
986 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
987 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
988 x_return_status OUT NOCOPY VARCHAR2
989 ) IS
990 l_to_id NUMBER;
991 l_dup_exists VARCHAR2(20);
992
993 BEGIN
994 IF (x_to_id IS NULL) THEN
995 l_to_id := FND_API.G_MISS_NUM;
996 ELSE
997 l_to_id := x_to_id;
998 END IF;
999
1000 x_return_status := FND_API.G_RET_STS_SUCCESS;
1001
1002 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1003 p_to_fk_id, p_par_entity_name,
1004 'HZ_MERGE_PKG.cust_account_merge',
1005 'HZ_CUST_ACCOUNTS','HZ_PARTIES',
1006 'CUST_ACCOUNT_ID', 'SELLING_PARTY_ID',x_return_status);
1007
1008 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1009 UPDATE HZ_CUST_ACCOUNTS
1010 SET
1011 selling_party_id = p_to_fk_id,
1012 last_update_date = hz_utility_pub.last_update_date,
1013 last_updated_by = hz_utility_pub.user_id,
1014 last_update_login = hz_utility_pub.last_update_login,
1015 request_id = hz_utility_pub.request_id,
1016 program_application_id = hz_utility_pub.program_application_id,
1017 program_id = hz_utility_pub.program_id,
1018 program_update_date = sysdate
1019 WHERE cust_account_id = p_from_id;
1020 END IF;
1021
1022 x_to_id := l_to_id;
1023 EXCEPTION
1024 WHEN OTHERS THEN
1025 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1026 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1027 FND_MSG_PUB.ADD;
1028 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1029 END cust_account_selling_merge;
1030
1031 PROCEDURE cust_account_role_merge(
1032 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1033 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1034 x_to_id IN OUT NOCOPY NUMBER,
1035 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1036 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1037 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1038 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1039 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1040 x_return_status OUT NOCOPY VARCHAR2
1041 ) IS
1042 l_to_id NUMBER;
1043 l_dup_exists VARCHAR2(20);
1044
1045 BEGIN
1046 IF (x_to_id IS NULL) THEN
1047 l_to_id := FND_API.G_MISS_NUM;
1048 ELSE
1049 l_to_id := x_to_id;
1050 END IF;
1051
1052 x_return_status := FND_API.G_RET_STS_SUCCESS;
1053
1054 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1055 p_to_fk_id, p_par_entity_name,
1056 'HZ_MERGE_PKG.cust_account_role_merge',
1057 'HZ_CUST_ACCOUNT_ROLES','HZ_PARTIES',
1058 'CUST_ACCOUNT_ROLE_ID', 'PARTY_ID',x_return_status);
1059 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1060 l_dup_exists := HZ_MERGE_DUP_CHECK.check_cust_account_role_dup(
1061 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1062 x_return_status);
1063 END IF;
1064 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1065 do_cust_account_role_transfer(p_from_id, l_to_id, p_from_fk_id,
1066 p_to_fk_id, x_return_status);
1067 END IF;
1068
1069 x_to_id := l_to_id;
1070 EXCEPTION
1071 WHEN OTHERS THEN
1072 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1073 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1074 FND_MSG_PUB.ADD;
1075 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1076 END cust_account_role_merge;
1077
1078 PROCEDURE cust_account_site_merge(
1079 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1080 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1081 x_to_id IN OUT NOCOPY NUMBER,
1082 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1083 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1084 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1085 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1086 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1087 x_return_status OUT NOCOPY VARCHAR2
1088 ) IS
1089 l_to_id NUMBER;
1090 l_dup_exists VARCHAR2(20);
1091
1092 BEGIN
1093 IF (x_to_id IS NULL) THEN
1094 l_to_id := FND_API.G_MISS_NUM;
1095 ELSE
1096 l_to_id := x_to_id;
1097 END IF;
1098
1099 x_return_status := FND_API.G_RET_STS_SUCCESS;
1100
1101 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1102 p_to_fk_id, p_par_entity_name,
1103 'HZ_MERGE_PKG.cust_account_site_merge',
1104 'HZ_CUST_ACCT_SITES_ALL','HZ_PARTY_SITES',
1105 'CUST_ACCT_SITE_ID', 'PARTY_SITE_ID',x_return_status);
1106
1107 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1108 l_dup_exists := HZ_MERGE_DUP_CHECK.check_cust_account_site_dup(
1109 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1110 x_return_status);
1111 END IF;
1112
1113 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1114 do_cust_account_site_transfer(p_from_id,l_to_id, p_from_fk_id,
1115 p_to_fk_id, x_return_status);
1116 END IF;
1117
1118 x_to_id := l_to_id;
1119 EXCEPTION
1120 WHEN OTHERS THEN
1121 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1122 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1123 FND_MSG_PUB.ADD;
1124 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1125 END cust_account_site_merge;
1126
1127 /*===========================================================================+
1128 | PROCEDURE |
1129 | financial_profile_merge |
1130 | |
1131 | DESCRIPTION |
1132 | |
1133 | SCOPE - PRIVATE |
1134 | |
1135 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
1136 | |
1137 | ARGUMENTS : IN: |
1138 | p_entity_name |
1139 | p_from_id |
1140 | p_from_fk_id |
1141 | p_to_fk_id |
1142 | p_merge_operation |
1143 | p_par_entity_name |
1144 | OUT: |
1145 | x_return_status |
1146 | IN/ OUT: |
1147 | x_to_id |
1148 | RETURNS : NONE |
1149 | |
1150 | NOTES |
1151 | |
1152 | MODIFICATION HISTORY |
1153 | Srinivasa Rangan 21-Aug-00 Created |
1154 | |
1155 +===========================================================================*/
1156 PROCEDURE financial_profile_merge(
1157 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1158 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1159 x_to_id IN OUT NOCOPY NUMBER,
1160 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1161 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1162 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1163 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1164 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1165 x_return_status OUT NOCOPY VARCHAR2
1166 ) IS
1167 l_to_id NUMBER;
1168 l_dup_exists VARCHAR2(20);
1169
1170 BEGIN
1171 IF (x_to_id IS NULL) THEN
1172 l_to_id := FND_API.G_MISS_NUM;
1173 ELSE
1174 l_to_id := x_to_id;
1175 END IF;
1176
1177 x_return_status := FND_API.G_RET_STS_SUCCESS;
1178
1179 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1180 p_to_fk_id, p_par_entity_name,
1181 'HZ_MERGE_PKG.financial_profile_merge',
1182 'HZ_FINANCIAL_PROFILE','HZ_PARTIES',
1183 'FINANCIAL_PROFILE_ID', 'PARTY_ID',x_return_status);
1184
1185 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1186 l_dup_exists := HZ_MERGE_DUP_CHECK.check_financial_profile_dup(
1187 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1188 x_return_status);
1189 END IF;
1190
1191 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1192 do_fin_profile_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1193 x_return_status);
1194 END IF;
1195
1196 x_to_id := l_to_id;
1197 EXCEPTION
1198 WHEN OTHERS THEN
1199 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1200 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1201 FND_MSG_PUB.ADD;
1202 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1203 END financial_profile_merge;
1204
1205 /*===========================================================================+
1206 | PROCEDURE |
1207 | contact_point_merge |
1208 | |
1209 | DESCRIPTION |
1210 | |
1211 | SCOPE - PRIVATE |
1212 | |
1213 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
1214 | |
1215 | ARGUMENTS : IN: |
1216 | p_entity_name |
1217 | p_from_id |
1218 | p_from_fk_id |
1219 | p_to_fk_id |
1220 | p_merge_operation |
1221 | p_par_entity_name |
1222 | OUT: |
1223 | x_return_status |
1224 | IN/ OUT: |
1225 | x_to_id |
1226 | RETURNS : NONE |
1227 | |
1228 | NOTES |
1229 | |
1230 | MODIFICATION HISTORY |
1231 | Srinivasa Rangan 21-Aug-00 Created |
1232 | |
1233 +===========================================================================*/
1234 PROCEDURE contact_point_merge(
1235 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1236 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1237 x_to_id IN OUT NOCOPY NUMBER,
1238 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1239 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1240 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1241 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1242 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1243 x_return_status OUT NOCOPY VARCHAR2
1244 ) IS
1245 l_to_id NUMBER;
1246 l_dup_exists VARCHAR2(20);
1247 l_dummy_id NUMBER;
1248
1249 BEGIN
1250 IF (x_to_id IS NULL) THEN
1251 l_to_id := FND_API.G_MISS_NUM;
1252 ELSE
1253 l_to_id := x_to_id;
1254 END IF;
1255
1256 x_return_status := FND_API.G_RET_STS_SUCCESS;
1257
1258 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1259 p_to_fk_id, p_par_entity_name,
1260 'HZ_MERGE_PKG.contact_point_merge',
1261 'HZ_CONTACT_POINTS','HZ_PARTIES',
1262 'CONTACT_POINT_ID', 'PARTY_ID',x_return_status);
1263
1264 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1265 l_dup_exists := HZ_MERGE_DUP_CHECK.check_contact_point_dup(
1266 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1267 'HZ_PARTIES',x_return_status);
1268 END IF;
1269
1270 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1271 do_contact_point_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1272 x_return_status);
1273 END IF;
1274
1275 IF (l_to_id IS NULL OR l_to_id = FND_API.G_MISS_NUM OR
1276 l_to_id = p_from_id) THEN
1277 FOR CPT IN (
1278 SELECT CONTACT_POINT_ID FROM HZ_STAGED_CONTACT_POINTS
1279 WHERE CONTACT_POINT_ID=p_from_id) LOOP
1280
1281 HZ_DQM_SYNC.stage_contact_point_merge(
1282 'HZ_STAGED_CONTACT_POINTS',
1283 p_from_id,l_dummy_id,p_from_id,p_from_id,
1284 'HZ_CONTACT_POINTS',
1285 p_batch_id,p_batch_party_id,x_return_status);
1286 END LOOP;
1287 END IF;
1288
1289 x_to_id := l_to_id;
1290 EXCEPTION
1291 WHEN OTHERS THEN
1292 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1293 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1294 FND_MSG_PUB.ADD;
1295 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1296 END contact_point_merge;
1297
1298 /*===========================================================================+
1299 | PROCEDURE |
1300 | references_merge |
1301 | |
1302 | DESCRIPTION |
1303 | Merges the parties with party_ids p_from_id to the party x_to_id |
1304 | |
1305 | SCOPE - PRIVATE |
1306 | |
1307 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
1308 | |
1309 | ARGUMENTS : IN: |
1310 | p_entity_name |
1311 | p_from_id |
1312 | p_from_fk_id |
1313 | p_to_fk_id |
1314 | p_merge_operation |
1315 | p_par_entity_name |
1316 | OUT: |
1317 | x_return_status |
1318 | IN/ OUT: |
1319 | x_to_id |
1320 | RETURNS : NONE |
1321 | |
1322 | NOTES |
1323 | |
1324 | MODIFICATION HISTORY |
1325 | Srinivasa Rangan 21-Aug-00 Created |
1326 | |
1327 +===========================================================================*/
1328 PROCEDURE references_merge(
1329 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1330 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1331 x_to_id IN OUT NOCOPY NUMBER,
1332 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1333 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1334 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1335 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1336 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1337 x_return_status OUT NOCOPY VARCHAR2
1338 ) IS
1339 l_to_id NUMBER;
1340 l_dup_exists VARCHAR2(20);
1341
1342 BEGIN
1343 IF (x_to_id IS NULL) THEN
1344 l_to_id := FND_API.G_MISS_NUM;
1345 ELSE
1346 l_to_id := x_to_id;
1347 END IF;
1348
1349 x_return_status := FND_API.G_RET_STS_SUCCESS;
1350
1351 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1352 p_to_fk_id, p_par_entity_name,
1353 'HZ_MERGE_PKG.references_merge',
1354 'HZ_REFERENCES','HZ_PARTIES',
1355 'REFERENCE_ID', 'PARTY_ID',x_return_status);
1356
1357 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1358 l_dup_exists := HZ_MERGE_DUP_CHECK.check_references_dup(
1359 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1360 x_return_status);
1361 END IF;
1362
1363 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1364 do_references_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1365 x_return_status);
1366 END IF;
1367
1368 x_to_id := l_to_id;
1369 EXCEPTION
1370 WHEN OTHERS THEN
1371 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1372 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1373 FND_MSG_PUB.ADD;
1374 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1375 END references_merge;
1376
1377
1378 /*===========================================================================+
1379 | PROCEDURE |
1380 | certification_merge |
1381 | |
1382 | DESCRIPTION |
1383 | Merges the parties with party_ids p_from_id to the party x_to_id |
1384 | |
1385 | SCOPE - PRIVATE |
1386 | |
1387 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
1388 | |
1389 | ARGUMENTS : IN: |
1390 | p_entity_name |
1391 | p_from_id |
1392 | p_from_fk_id |
1393 | p_to_fk_id |
1394 | p_merge_operation |
1395 | p_par_entity_name |
1396 | OUT: |
1397 | x_return_status |
1398 | IN/ OUT: |
1399 | x_to_id |
1400 | RETURNS : NONE |
1401 | |
1402 | NOTES |
1403 | |
1404 | MODIFICATION HISTORY |
1405 | Srinivasa Rangan 21-Aug-00 Created |
1406 | |
1407 +===========================================================================*/
1408 PROCEDURE certification_merge(
1409 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1410 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1411 x_to_id IN OUT NOCOPY NUMBER,
1412 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1413 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1414 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1415 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1416 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1417 x_return_status OUT NOCOPY VARCHAR2
1418 ) IS
1419 l_to_id NUMBER;
1420 l_dup_exists VARCHAR2(20);
1421
1422 BEGIN
1423 IF (x_to_id IS NULL) THEN
1424 l_to_id := FND_API.G_MISS_NUM;
1425 ELSE
1426 l_to_id := x_to_id;
1427 END IF;
1428
1429 x_return_status := FND_API.G_RET_STS_SUCCESS;
1430
1431 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1432 p_to_fk_id, p_par_entity_name,
1433 'HZ_MERGE_PKG.certification_merge',
1434 'HZ_CERTIFICATIONS','HZ_PARTIES',
1435 'CERTIFICATION_ID', 'PARTY_ID',x_return_status);
1436
1437 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1438 l_dup_exists := HZ_MERGE_DUP_CHECK.check_certification_dup(
1439 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1440 x_return_status);
1441 END IF;
1442
1443 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1444 do_certification_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1445 x_return_status);
1446 END IF;
1447
1448 x_to_id := l_to_id;
1449 EXCEPTION
1450 WHEN OTHERS THEN
1451 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1452 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1453 FND_MSG_PUB.ADD;
1454 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1455 END certification_merge;
1456
1457 PROCEDURE credit_ratings_merge(
1458 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1459 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1460 x_to_id IN OUT NOCOPY NUMBER,
1461 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1462 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1463 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1464 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1465 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1466 x_return_status OUT NOCOPY VARCHAR2
1467 ) IS
1468 l_to_id NUMBER;
1469 l_dup_exists VARCHAR2(20);
1470
1471 BEGIN
1472 IF (x_to_id IS NULL) THEN
1473 l_to_id := FND_API.G_MISS_NUM;
1474 ELSE
1475 l_to_id := x_to_id;
1476 END IF;
1477
1478 x_return_status := FND_API.G_RET_STS_SUCCESS;
1479
1480 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1481 p_to_fk_id, p_par_entity_name,
1482 'HZ_MERGE_PKG.credit_ratings_merge',
1483 'HZ_CREDIT_RATINGS','HZ_PARTIES',
1484 'CREDIT_RATING_ID', 'PARTY_ID',x_return_status);
1485
1486 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1487 l_dup_exists := HZ_MERGE_DUP_CHECK.check_credit_ratings_dup(
1488 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1489 x_return_status);
1490 END IF;
1491
1492 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1493 do_credit_ratings_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1494 x_return_status);
1495 END IF;
1496
1497 x_to_id := l_to_id;
1498 EXCEPTION
1499 WHEN OTHERS THEN
1500 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1501 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1502 FND_MSG_PUB.ADD;
1503 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1504 END credit_ratings_merge;
1505
1506
1507 PROCEDURE security_issued_merge(
1508 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1509 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1510 x_to_id IN OUT NOCOPY NUMBER,
1511 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1512 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1513 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1514 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1515 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1516 x_return_status OUT NOCOPY VARCHAR2
1517 ) IS
1518 l_to_id NUMBER;
1519 l_dup_exists VARCHAR2(20);
1520
1521 BEGIN
1522 IF (x_to_id IS NULL) THEN
1523 l_to_id := FND_API.G_MISS_NUM;
1524 ELSE
1525 l_to_id := x_to_id;
1526 END IF;
1527
1528 x_return_status := FND_API.G_RET_STS_SUCCESS;
1529
1530 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1531 p_to_fk_id, p_par_entity_name,
1532 'HZ_MERGE_PKG.security_issued_merge',
1533 'HZ_SECURITY_ISSUED','HZ_PARTIES',
1534 'SECURITY_ISSUED_ID', 'PARTY_ID',x_return_status);
1535
1536 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1537
1538 l_dup_exists := HZ_MERGE_DUP_CHECK.check_security_issued_dup(
1539 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1540 x_return_status);
1541 END IF;
1542
1543 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1544 do_security_issued_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1545 x_return_status);
1546 END IF;
1547
1548 x_to_id := l_to_id;
1549 EXCEPTION
1550 WHEN OTHERS THEN
1551 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1552 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1553 FND_MSG_PUB.ADD;
1554 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1555 END security_issued_merge;
1556
1557 PROCEDURE financial_reports_merge(
1558 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1559 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1560 x_to_id IN OUT NOCOPY NUMBER,
1561 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1562 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1563 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1564 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1565 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1566 x_return_status OUT NOCOPY VARCHAR2
1567 ) IS
1568 l_to_id NUMBER;
1569 l_dup_exists VARCHAR2(20);
1570
1571 BEGIN
1572 IF (x_to_id IS NULL) THEN
1573 l_to_id := FND_API.G_MISS_NUM;
1574 ELSE
1575 l_to_id := x_to_id;
1576 END IF;
1577
1578 x_return_status := FND_API.G_RET_STS_SUCCESS;
1579
1580 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1581 p_to_fk_id, p_par_entity_name,
1582 'HZ_MERGE_PKG.financial_reports_merge',
1583 'HZ_FINANCIAL_REPORTS','HZ_PARTIES',
1584 'FINANCIAL_REPORT_ID', 'PARTY_ID',x_return_status);
1585
1586 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1587 l_dup_exists := HZ_MERGE_DUP_CHECK.check_financial_reports_dup(
1588 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1589 x_return_status);
1590 END IF;
1591
1592 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1593 do_financial_reports_transfer(p_from_id, l_to_id, p_from_fk_id,
1594 p_to_fk_id,x_return_status);
1595 END IF;
1596
1597 x_to_id := l_to_id;
1598 EXCEPTION
1599 WHEN OTHERS THEN
1600 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1601 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1602 FND_MSG_PUB.ADD;
1603 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1604 END financial_reports_merge;
1605
1606
1607 PROCEDURE org_indicators_merge(
1608 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1609 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1610 x_to_id IN OUT NOCOPY NUMBER,
1611 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1612 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1613 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1614 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1615 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1616 x_return_status OUT NOCOPY VARCHAR2
1617 ) IS
1618 l_to_id NUMBER;
1619 l_dup_exists VARCHAR2(20);
1620
1621 BEGIN
1622 IF (x_to_id IS NULL) THEN
1623 l_to_id := FND_API.G_MISS_NUM;
1624 ELSE
1625 l_to_id := x_to_id;
1626 END IF;
1627
1628 x_return_status := FND_API.G_RET_STS_SUCCESS;
1629
1630 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1631 p_to_fk_id, p_par_entity_name,
1632 'HZ_MERGE_PKG.org_indicators_merge',
1633 'HZ_ORGANIZATION_INDICATORS','HZ_PARTIES',
1634 'ORGANIZATION_INDICATOR_ID', 'PARTY_ID',x_return_status);
1635
1636 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1637 l_dup_exists := HZ_MERGE_DUP_CHECK.check_org_indicators_dup(
1638 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1639 x_return_status);
1640 END IF;
1641
1642 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1643 do_org_indicators_transfer(p_from_id, l_to_id, p_from_fk_id, p_to_fk_id,
1644 x_return_status);
1645 END IF;
1646
1647 x_to_id := l_to_id;
1648 EXCEPTION
1649 WHEN OTHERS THEN
1650 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1651 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1652 FND_MSG_PUB.ADD;
1653 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1654 END org_indicators_merge;
1655
1656 PROCEDURE org_ind_reference_merge(
1657 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1658 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1659 x_to_id IN OUT NOCOPY NUMBER,
1660 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1661 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1662 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1663 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1664 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1665 x_return_status OUT NOCOPY VARCHAR2
1666 ) IS
1667 l_to_id NUMBER;
1668 l_dup_exists VARCHAR2(20);
1669
1670 BEGIN
1671 IF (x_to_id IS NULL) THEN
1672 l_to_id := FND_API.G_MISS_NUM;
1673 ELSE
1674 l_to_id := x_to_id;
1675 END IF;
1676
1677 x_return_status := FND_API.G_RET_STS_SUCCESS;
1678
1679 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1680 p_to_fk_id, p_par_entity_name,
1681 'HZ_MERGE_PKG.org_ind_reference_merge',
1682 'HZ_INDUSTRIAL_REFERENCE','HZ_PARTIES',
1683 'INDUSTRY_REFERENCE_ID', 'PARTY_ID',x_return_status);
1684
1685 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1686 l_dup_exists := HZ_MERGE_DUP_CHECK.check_ind_reference_dup(
1687 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1688 x_return_status);
1689 END IF;
1690
1691 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1692 do_ind_reference_transfer(p_from_id, l_to_id, p_from_fk_id, p_to_fk_id,
1693 x_return_status);
1694 END IF;
1695
1696 x_to_id := l_to_id;
1697 EXCEPTION
1698 WHEN OTHERS THEN
1699 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1700 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1701 FND_MSG_PUB.ADD;
1702 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1703 END org_ind_reference_merge;
1704
1705
1706 PROCEDURE per_interest_merge(
1707 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1708 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1709 x_to_id IN OUT NOCOPY NUMBER,
1710 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1711 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1712 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1713 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1714 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1715 x_return_status OUT NOCOPY VARCHAR2
1716 ) IS
1717 l_to_id NUMBER;
1718 l_dup_exists VARCHAR2(20);
1719
1720 BEGIN
1721 IF (x_to_id IS NULL) THEN
1722 l_to_id := FND_API.G_MISS_NUM;
1723 ELSE
1724 l_to_id := x_to_id;
1725 END IF;
1726
1727 x_return_status := FND_API.G_RET_STS_SUCCESS;
1728
1729 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1730 p_to_fk_id, p_par_entity_name,
1731 'HZ_MERGE_PKG.per_interest_merge',
1732 'HZ_PERSON_INTEREST','HZ_PARTIES',
1733 'PERSON_INTEREST_ID', 'PARTY_ID',x_return_status);
1734
1735 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1736 l_dup_exists := HZ_MERGE_DUP_CHECK.check_per_interest_dup(
1737 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1738 x_return_status);
1739 END IF;
1740
1741 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1742 do_per_interest_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1743 x_return_status);
1744 END IF;
1745
1746 x_to_id := l_to_id;
1747 EXCEPTION
1748 WHEN OTHERS THEN
1749 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1750 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1751 FND_MSG_PUB.ADD;
1752 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1753 END per_interest_merge;
1754
1755 PROCEDURE citizenship_merge(
1756 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1757 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1758 x_to_id IN OUT NOCOPY NUMBER,
1759 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1760 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1761 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1762 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1763 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1764 x_return_status OUT NOCOPY VARCHAR2
1765 ) IS
1766 l_to_id NUMBER;
1767 l_dup_exists VARCHAR2(20);
1768
1769 BEGIN
1770 IF (x_to_id IS NULL) THEN
1771 l_to_id := FND_API.G_MISS_NUM;
1772 ELSE
1773 l_to_id := x_to_id;
1774 END IF;
1775
1776 x_return_status := FND_API.G_RET_STS_SUCCESS;
1777
1778 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1779 p_to_fk_id, p_par_entity_name,
1780 'HZ_MERGE_PKG.citizenship_merge',
1781 'HZ_CITIZENSHIP','HZ_PARTIES',
1782 'CITIZENSHIP_ID', 'PARTY_ID',x_return_status);
1783
1784 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1785 l_dup_exists := HZ_MERGE_DUP_CHECK.check_citizenship_dup(
1786 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1787 x_return_status);
1788 END IF;
1789
1790 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1791 do_citizenship_transfer(p_from_id,l_to_id,p_from_fk_id, p_to_fk_id,
1792 x_return_status);
1793 END IF;
1794
1795 x_to_id := l_to_id;
1796 EXCEPTION
1797 WHEN OTHERS THEN
1798 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1799 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1800 FND_MSG_PUB.ADD;
1801 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1802 END citizenship_merge;
1803
1804 PROCEDURE education_merge(
1805 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1806 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1807 x_to_id IN OUT NOCOPY NUMBER,
1808 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1809 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1810 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1811 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1812 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1813 x_return_status OUT NOCOPY VARCHAR2
1814 ) IS
1815 l_to_id NUMBER;
1816 l_dup_exists VARCHAR2(20);
1817
1818 BEGIN
1819 IF (x_to_id IS NULL) THEN
1820 l_to_id := FND_API.G_MISS_NUM;
1821 ELSE
1822 l_to_id := x_to_id;
1823 END IF;
1824
1825 x_return_status := FND_API.G_RET_STS_SUCCESS;
1826
1827 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1828 p_to_fk_id, p_par_entity_name,
1829 'HZ_MERGE_PKG.education_merge',
1830 'HZ_EDUCATION','HZ_PARTIES',
1831 'EDUCATION_ID', 'PARTY_ID',x_return_status);
1832
1833 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1834 l_dup_exists := HZ_MERGE_DUP_CHECK.check_education_dup(
1835 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1836 x_return_status);
1837 END IF;
1838
1839 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1840 do_education_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1841 x_return_status);
1842 END IF;
1843
1844 x_to_id := l_to_id;
1845 EXCEPTION
1846 WHEN OTHERS THEN
1847 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1848 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1849 FND_MSG_PUB.ADD;
1850 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1851 END education_merge;
1852
1853 PROCEDURE education_school_merge(
1854 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1855 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1856 x_to_id IN OUT NOCOPY NUMBER,
1857 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1858 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1859 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1860 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1861 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1862 x_return_status OUT NOCOPY VARCHAR2
1863 ) IS
1864 l_to_id NUMBER;
1865 l_dup_exists VARCHAR2(20);
1866
1867 BEGIN
1868 IF (x_to_id IS NULL) THEN
1869 l_to_id := FND_API.G_MISS_NUM;
1870 ELSE
1871 l_to_id := x_to_id;
1872 END IF;
1873
1874 x_return_status := FND_API.G_RET_STS_SUCCESS;
1875
1876 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1877 p_to_fk_id, p_par_entity_name,
1878 'HZ_MERGE_PKG.education_school_merge',
1879 'HZ_EDUCATION','HZ_PARTIES',
1880 'EDUCATION_ID', 'SCHOOL_PARTY_ID',x_return_status);
1881
1882 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1883 l_dup_exists := HZ_MERGE_DUP_CHECK.check_education_dup(
1884 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1885 x_return_status);
1886 END IF;
1887
1888 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1889 do_education_school_transfer(p_from_id,l_to_id,p_from_fk_id, p_to_fk_id,
1890 x_return_status);
1891 END IF;
1892
1893 x_to_id := l_to_id;
1894 EXCEPTION
1895 WHEN OTHERS THEN
1896 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1897 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1898 FND_MSG_PUB.ADD;
1899 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1900 END education_school_merge;
1901
1902 PROCEDURE emp_history_merge(
1903 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1904 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1905 x_to_id IN OUT NOCOPY NUMBER,
1906 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1907 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1908 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1909 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1910 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1911 x_return_status OUT NOCOPY VARCHAR2
1912 ) IS
1913 l_to_id NUMBER;
1914 l_dup_exists VARCHAR2(20);
1915
1916 BEGIN
1917 IF (x_to_id IS NULL) THEN
1918 l_to_id := FND_API.G_MISS_NUM;
1919 ELSE
1920 l_to_id := x_to_id;
1921 END IF;
1922
1923 x_return_status := FND_API.G_RET_STS_SUCCESS;
1924
1925 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1926 p_to_fk_id, p_par_entity_name,
1927 'HZ_MERGE_PKG.emp_history_merge',
1928 'HZ_EMPLOYMENT_HISTORY','HZ_PARTIES',
1929 'EMPLOYMENT_HISTORY_ID', 'PARTY_ID',x_return_status);
1930
1931 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1932 l_dup_exists := HZ_MERGE_DUP_CHECK.check_emp_history_dup(
1933 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1934 x_return_status);
1935 END IF;
1936
1937 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1938 do_emp_history_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1939 x_return_status);
1940 END IF;
1941
1942 x_to_id := l_to_id;
1943 EXCEPTION
1944 WHEN OTHERS THEN
1945 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1946 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1947 FND_MSG_PUB.ADD;
1948 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1949 END emp_history_merge;
1950
1951 PROCEDURE emp_history_employed_merge(
1952 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1953 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
1954 x_to_id IN OUT NOCOPY NUMBER,
1955 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1956 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
1957 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
1958 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
1959 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
1960 x_return_status OUT NOCOPY VARCHAR2
1961 ) IS
1962 l_to_id NUMBER;
1963 l_dup_exists VARCHAR2(20);
1964
1965 BEGIN
1966 IF (x_to_id IS NULL) THEN
1967 l_to_id := FND_API.G_MISS_NUM;
1968 ELSE
1969 l_to_id := x_to_id;
1970 END IF;
1971
1972 x_return_status := FND_API.G_RET_STS_SUCCESS;
1973
1974 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
1975 p_to_fk_id, p_par_entity_name,
1976 'HZ_MERGE_PKG.emp_history_employed_merge',
1977 'HZ_EMPLOYMENT_HISTORY','HZ_PARTIES',
1978 'EMPLOYMENT_HISTORY_ID','EMPLOYED_BY_PARTY_ID',x_return_status);
1979
1980 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
1981 l_dup_exists := HZ_MERGE_DUP_CHECK.check_emp_history_dup(
1982 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1983 x_return_status);
1984 END IF;
1985
1986 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
1987 do_employed_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
1988 x_return_status);
1989 END IF;
1990
1991 x_to_id := l_to_id;
1992 EXCEPTION
1993 WHEN OTHERS THEN
1994 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
1995 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1996 FND_MSG_PUB.ADD;
1997 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1998 END emp_history_employed_merge;
1999
2000 PROCEDURE work_class_merge(
2001 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2002 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2003 x_to_id IN OUT NOCOPY NUMBER,
2004 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2005 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2006 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2007 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2008 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2009 x_return_status OUT NOCOPY VARCHAR2
2010 ) IS
2011 l_to_id NUMBER;
2012 l_dup_exists VARCHAR2(20);
2013
2014 BEGIN
2015 IF (x_to_id IS NULL) THEN
2016 l_to_id := FND_API.G_MISS_NUM;
2017 ELSE
2018 l_to_id := x_to_id;
2019 END IF;
2020
2021 x_return_status := FND_API.G_RET_STS_SUCCESS;
2022
2023 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2024 p_to_fk_id, p_par_entity_name,
2025 'HZ_MERGE_PKG.work_class_merge',
2026 'HZ_WORK_CLASS', 'HZ_EMPLOYMENT_HISTORY',
2027 'WORK_CLASS_ID', 'EMPLOYMENT_HISTORY_ID', x_return_status);
2028
2029 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2030 l_dup_exists := HZ_MERGE_DUP_CHECK.check_work_class_dup(
2031 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2032 x_return_status);
2033 END IF;
2034
2035 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2036 do_work_class_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2037 x_return_status);
2038 END IF;
2039
2040 x_to_id := l_to_id;
2041 EXCEPTION
2042 WHEN OTHERS THEN
2043 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2044 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2045 FND_MSG_PUB.ADD;
2046 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2047 END work_class_merge;
2048
2049 PROCEDURE code_assignment_merge(
2050 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2051 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2052 x_to_id IN OUT NOCOPY NUMBER,
2053 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2054 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2055 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2056 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2057 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2058 x_return_status OUT NOCOPY VARCHAR2
2059 ) IS
2060 l_to_id NUMBER;
2061 l_dup_exists VARCHAR2(20);
2062
2063 BEGIN
2064 IF (x_to_id IS NULL) THEN
2065 l_to_id := FND_API.G_MISS_NUM;
2066 ELSE
2067 l_to_id := x_to_id;
2068 END IF;
2069
2070 x_return_status := FND_API.G_RET_STS_SUCCESS;
2071
2072 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2073 p_to_fk_id, p_par_entity_name,
2074 'HZ_MERGE_PKG.code_assignment_merge',
2075 'HZ_CODE_ASSIGNMENTS','HZ_PARTIES',
2076 'CODE_ASSIGNMENT_ID', 'PARTY_ID',x_return_status);
2077
2078 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2079 l_dup_exists := HZ_MERGE_DUP_CHECK.check_code_assignment_dup(
2080 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2081 'HZ_PARTIES', x_return_status);
2082 END IF;
2083
2084 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2085 do_code_assignment_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2086 x_return_status);
2087 END IF;
2088
2089 x_to_id := l_to_id;
2090 EXCEPTION
2091 WHEN OTHERS THEN
2092 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2093 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2094 FND_MSG_PUB.ADD;
2095 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2096 END code_assignment_merge;
2097
2098 PROCEDURE code_assignment_merge2(
2099 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2100 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2101 x_to_id IN OUT NOCOPY NUMBER,
2102 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2103 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2104 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2105 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2106 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2107 x_return_status OUT NOCOPY VARCHAR2
2108 ) IS
2109 l_to_id NUMBER;
2110 l_dup_exists VARCHAR2(20);
2111
2112 BEGIN
2113 IF (x_to_id IS NULL) THEN
2114 l_to_id := FND_API.G_MISS_NUM;
2115 ELSE
2116 l_to_id := x_to_id;
2117 END IF;
2118
2119 x_return_status := FND_API.G_RET_STS_SUCCESS;
2120
2121 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2122 p_to_fk_id, p_par_entity_name,
2123 'HZ_MERGE_PKG.code_assignment_merge',
2124 'HZ_CODE_ASSIGNMENTS','HZ_PARTY_SITES',
2125 'CODE_ASSIGNMENT_ID', 'PARTY_SITE_ID',x_return_status);
2126
2127 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2128 l_dup_exists := HZ_MERGE_DUP_CHECK.check_code_assignment_dup(
2129 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2130 'HZ_PARTY_SITES', x_return_status);
2131 END IF;
2132
2133 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2134 do_code_assignment_transfer2(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2135 x_return_status);
2136 END IF;
2137
2138 x_to_id := l_to_id;
2139 EXCEPTION
2140 WHEN OTHERS THEN
2141 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2142 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2143 FND_MSG_PUB.ADD;
2144 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2145 END code_assignment_merge2;
2146
2147 PROCEDURE org_contact_role_merge(
2148 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2149 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2150 x_to_id IN OUT NOCOPY NUMBER,
2151 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2152 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2153 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2154 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2155 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2156 x_return_status OUT NOCOPY VARCHAR2
2157 ) IS
2158 l_to_id NUMBER;
2159 l_dup_exists VARCHAR2(20);
2160
2161 BEGIN
2162 IF (x_to_id IS NULL) THEN
2163 l_to_id := FND_API.G_MISS_NUM;
2164 ELSE
2165 l_to_id := x_to_id;
2166 END IF;
2167
2168 x_return_status := FND_API.G_RET_STS_SUCCESS;
2169
2170 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2171 p_to_fk_id, p_par_entity_name,
2172 'HZ_MERGE_PKG.org_contact_role_merge',
2173 'HZ_ORG_CONTACT_ROLES','HZ_ORG_CONTACTS',
2174 'ORG_CONTACT_ROLE_ID', 'ORG_CONTACT_ID',x_return_status);
2175
2176 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2177 l_dup_exists := HZ_MERGE_DUP_CHECK.check_org_contact_role_dup(
2178 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2179 x_return_status);
2180 END IF;
2181
2182 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2183 do_org_contact_role_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2184 x_return_status);
2185 END IF;
2186
2187 x_to_id := l_to_id;
2188 EXCEPTION
2189 WHEN OTHERS THEN
2190 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2191 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2192 FND_MSG_PUB.ADD;
2193 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2194 END org_contact_role_merge;
2195
2196 PROCEDURE financial_number_merge(
2197 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2198 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2199 x_to_id IN OUT NOCOPY NUMBER,
2200 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2201 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2202 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2203 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2204 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2205 x_return_status OUT NOCOPY VARCHAR2
2206 ) IS
2207 l_to_id NUMBER;
2208 l_dup_exists VARCHAR2(20);
2209
2210 BEGIN
2211 IF (x_to_id IS NULL) THEN
2212 l_to_id := FND_API.G_MISS_NUM;
2213 ELSE
2214 l_to_id := x_to_id;
2215 END IF;
2216
2217 x_return_status := FND_API.G_RET_STS_SUCCESS;
2218
2219 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2220 p_to_fk_id, p_par_entity_name,
2221 'HZ_MERGE_PKG.financial_number_merge',
2222 'HZ_FINANCIAL_NUMBERS','HZ_FINANCIAL_REPORTS',
2223 'FINANCIAL_NUMBER_ID', 'FINANCIAL_REPORT_ID',x_return_status);
2224
2225 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2226 l_dup_exists := HZ_MERGE_DUP_CHECK.check_financial_number_dup(
2227 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2228 x_return_status);
2229 END IF;
2230
2231 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2232 do_financial_number_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2233 x_return_status);
2234 END IF;
2235
2236 x_to_id := l_to_id;
2237 EXCEPTION
2238 WHEN OTHERS THEN
2239 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2240 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2241 FND_MSG_PUB.ADD;
2242 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2243 END financial_number_merge;
2244
2245 PROCEDURE per_languages_merge(
2246 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2247 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2248 x_to_id IN OUT NOCOPY NUMBER,
2249 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2250 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2251 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2252 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2253 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2254 x_return_status OUT NOCOPY VARCHAR2
2255 ) IS
2256 l_to_id NUMBER;
2257 l_dup_exists VARCHAR2(20);
2258
2259 BEGIN
2260 IF (x_to_id IS NULL) THEN
2261 l_to_id := FND_API.G_MISS_NUM;
2262 ELSE
2263 l_to_id := x_to_id;
2264 END IF;
2265
2266 x_return_status := FND_API.G_RET_STS_SUCCESS;
2267
2268 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2269 p_to_fk_id, p_par_entity_name,
2270 'HZ_MERGE_PKG.per_languages_merge',
2271 'HZ_PERSON_LANGUAGE','HZ_PARTIES',
2272 'LANGUAGE_USE_REFERENCE_ID', 'PARTY_ID',x_return_status);
2273
2274 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2275 l_dup_exists := HZ_MERGE_DUP_CHECK.check_languages_dup(
2276 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2277 x_return_status);
2278 END IF;
2279
2280 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2281 do_per_languages_transfer(p_from_id, l_to_id, p_from_fk_id, p_to_fk_id,
2282 x_return_status);
2283 END IF;
2284
2285 x_to_id := l_to_id;
2286 EXCEPTION
2287 WHEN OTHERS THEN
2288 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2289 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2290 FND_MSG_PUB.ADD;
2291 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2292 END per_languages_merge;
2293
2294 PROCEDURE party_site_use_merge(
2295 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2296 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2297 x_to_id IN OUT NOCOPY NUMBER,
2298 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2299 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2300 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2301 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2302 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2303 x_return_status OUT NOCOPY VARCHAR2
2304 ) IS
2305 l_to_id NUMBER;
2306 l_dup_exists VARCHAR2(20);
2307
2308 BEGIN
2309 IF (x_to_id IS NULL) THEN
2310 l_to_id := FND_API.G_MISS_NUM;
2311 ELSE
2312 l_to_id := x_to_id;
2313 END IF;
2314
2315 x_return_status := FND_API.G_RET_STS_SUCCESS;
2316
2317 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2318 p_to_fk_id, p_par_entity_name,
2319 'HZ_MERGE_PKG.party_site_use_merge',
2320 'HZ_PARTY_SITE_USES','HZ_PARTY_SITES',
2321 'PARTY_SITE_USE_ID', 'PARTY_SITE_ID',x_return_status);
2322
2323 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2324 l_dup_exists := HZ_MERGE_DUP_CHECK.check_party_site_use_dup(
2325 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2326 x_return_status);
2327 END IF;
2328
2329 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2330 do_party_site_use_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2331 x_return_status);
2332 END IF;
2333
2334 x_to_id := l_to_id;
2335 EXCEPTION
2336 WHEN OTHERS THEN
2337 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2338 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2339 FND_MSG_PUB.ADD;
2340 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2341 END party_site_use_merge;
2342
2343 PROCEDURE contact_point_merge2(
2344 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2345 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2346 x_to_id IN OUT NOCOPY NUMBER,
2347 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2348 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2349 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2350 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2351 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2352 x_return_status OUT NOCOPY VARCHAR2
2353 ) IS
2354 l_to_id NUMBER;
2355 l_dup_exists VARCHAR2(20);
2356 l_dummy_id NUMBER;
2357
2358 BEGIN
2359 IF (x_to_id IS NULL) THEN
2360 l_to_id := FND_API.G_MISS_NUM;
2361 ELSE
2362 l_to_id := x_to_id;
2363 END IF;
2364
2365 x_return_status := FND_API.G_RET_STS_SUCCESS;
2366
2367
2368 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2369 p_to_fk_id, p_par_entity_name,
2370 'HZ_MERGE_PKG.contact_point_merge2',
2371 'HZ_CONTACT_POINTS','HZ_PARTY_SITES',
2372 'CONTACT_POINT_ID', 'PARTY_SITE_ID',x_return_status);
2373
2374 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2375 l_dup_exists := HZ_MERGE_DUP_CHECK.check_contact_point_dup(
2376 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2377 'HZ_PARTY_SITES', x_return_status);
2378 END IF;
2379
2380 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2381 do_contact_point_transfer2(p_from_id, l_to_id, p_from_fk_id, p_to_fk_id,
2382 x_return_status);
2383 END IF;
2384
2385 IF (l_to_id IS NULL OR l_to_id = FND_API.G_MISS_NUM OR
2386 l_to_id = p_from_id) THEN
2387 FOR CPT IN (
2388 SELECT CONTACT_POINT_ID FROM HZ_STAGED_CONTACT_POINTS
2389 WHERE CONTACT_POINT_ID=p_from_id) LOOP
2390
2391 HZ_DQM_SYNC.stage_contact_point_merge(
2392 'HZ_STAGED_CONTACT_POINTS',
2393 p_from_id,l_dummy_id,p_from_id,p_from_id,
2394 'HZ_CONTACT_POINTS',
2395 p_batch_id,p_batch_party_id,x_return_status);
2396 END LOOP;
2397 END IF;
2398
2399 x_to_id := l_to_id;
2400 EXCEPTION
2401 WHEN OTHERS THEN
2402 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2403 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2404 FND_MSG_PUB.ADD;
2405 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2406 END contact_point_merge2;
2407
2408 /*===========================================================================+
2409 | PROCEDURE |
2410 | contact_preference_merge |
2411 | |
2412 | DESCRIPTION |
2413 | |
2414 | SCOPE - PRIVATE |
2415 | |
2416 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
2417 | |
2418 | ARGUMENTS : IN: |
2419 | p_entity_name |
2420 | p_from_id |
2421 | p_from_fk_id |
2422 | p_to_fk_id |
2423 | p_merge_operation |
2424 | p_par_entity_name |
2425 | OUT: |
2426 | x_return_status |
2427 | IN/ OUT: |
2428 | x_to_id |
2429 | RETURNS : NONE |
2430 | |
2431 | NOTES |
2432 | |
2433 | MODIFICATION HISTORY |
2434 | Kate Shan 21-Aug-00 Created |
2435 | |
2436 +===========================================================================*/
2437 PROCEDURE contact_preference_merge(
2438 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2439 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2440 x_to_id IN OUT NOCOPY NUMBER,
2441 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2442 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2443 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2444 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2445 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2446 x_return_status OUT NOCOPY VARCHAR2
2447 ) IS
2448 l_to_id NUMBER;
2449 l_dup_exists VARCHAR2(20);
2450
2451 BEGIN
2452 IF (x_to_id IS NULL) THEN
2453 l_to_id := FND_API.G_MISS_NUM;
2454 ELSE
2455 l_to_id := x_to_id;
2456 END IF;
2457
2458 x_return_status := FND_API.G_RET_STS_SUCCESS;
2459
2460 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2461 p_to_fk_id, p_par_entity_name,
2462 'HZ_MERGE_PKG.contact_preference_merge',
2463 'HZ_CONTACT_PREFERENCES','HZ_PARTIES',
2464 'CONTACT_PREFERENCE_ID', 'PARTY_ID',x_return_status);
2465
2466 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2467 l_dup_exists := HZ_MERGE_DUP_CHECK.check_contact_preference_dup(
2468 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2469 'HZ_PARTIES',x_return_status);
2470 END IF;
2471
2472 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2473 do_contact_pref_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2474 x_return_status);
2475 END IF;
2476
2477 x_to_id := l_to_id;
2478 EXCEPTION
2479 WHEN OTHERS THEN
2480 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2481 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2482 FND_MSG_PUB.ADD;
2483 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2484 END contact_preference_merge;
2485
2486 /*===========================================================================+
2487 | PROCEDURE |
2488 | contact_preference_merge2 |
2489 | |
2490 | DESCRIPTION |
2491 | |
2492 | SCOPE - PRIVATE |
2493 | |
2494 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
2495 | |
2496 | ARGUMENTS : IN: |
2497 | p_entity_name |
2498 | p_from_id |
2499 | p_from_fk_id |
2500 | p_to_fk_id |
2501 | p_merge_operation |
2502 | p_par_entity_name |
2503 | OUT: |
2504 | x_return_status |
2505 | IN/ OUT: |
2506 | x_to_id |
2507 | RETURNS : NONE |
2508 | |
2509 | NOTES |
2510 | |
2511 | MODIFICATION HISTORY |
2512 | Kate 21-Aug-00 Created |
2513 | |
2514 +===========================================================================*/
2515 PROCEDURE contact_preference_merge2(
2516 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2517 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2518 x_to_id IN OUT NOCOPY NUMBER,
2519 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2520 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2521 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2522 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2523 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2524 x_return_status OUT NOCOPY VARCHAR2
2525 ) IS
2526 l_to_id NUMBER;
2527 l_dup_exists VARCHAR2(20);
2528
2529 BEGIN
2530 IF (x_to_id IS NULL) THEN
2531 l_to_id := FND_API.G_MISS_NUM;
2532 ELSE
2533 l_to_id := x_to_id;
2534 END IF;
2535
2536 x_return_status := FND_API.G_RET_STS_SUCCESS;
2537
2538 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2539 p_to_fk_id, p_par_entity_name,
2540 'HZ_MERGE_PKG.contact_preference_merge2',
2541 'HZ_CONTACT_PREFERENCES','HZ_PARTY_SITES',
2542 'CONTACT_PREFERENCE_ID', 'PARTY_SITE_ID',x_return_status);
2543
2544 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2545 l_dup_exists := HZ_MERGE_DUP_CHECK.check_contact_preference_dup(
2546 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2547 'HZ_PARTY_SITES',x_return_status);
2548 END IF;
2549
2550 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2551 do_contact_pref_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2552 x_return_status);
2553 END IF;
2554
2555 x_to_id := l_to_id;
2556 EXCEPTION
2557 WHEN OTHERS THEN
2558 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2559 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2560 FND_MSG_PUB.ADD;
2561 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2562 END contact_preference_merge2;
2563
2564
2565 /*===========================================================================+
2566 | PROCEDURE |
2567 | contact_preference_merge3 |
2568 | |
2569 | DESCRIPTION |
2570 | |
2571 | SCOPE - PRIVATE |
2572 | |
2573 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED |
2574 | |
2575 | ARGUMENTS : IN: |
2576 | p_entity_name |
2577 | p_from_id |
2578 | p_from_fk_id |
2579 | p_to_fk_id |
2580 | p_merge_operation |
2581 | p_par_entity_name |
2582 | OUT: |
2583 | x_return_status |
2584 | IN/ OUT: |
2585 | x_to_id |
2586 | RETURNS : NONE |
2587 | |
2588 | NOTES |
2589 | |
2590 | MODIFICATION HISTORY |
2591 | Kate Shan 21-Aug-00 Created |
2592 | |
2593 +===========================================================================*/
2594 PROCEDURE contact_preference_merge3(
2595 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2596 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2597 x_to_id IN OUT NOCOPY NUMBER,
2598 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2599 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2600 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2601 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2602 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2603 x_return_status OUT NOCOPY VARCHAR2
2604 ) IS
2605 l_to_id NUMBER;
2606 l_dup_exists VARCHAR2(20);
2607
2608 BEGIN
2609 IF (x_to_id IS NULL) THEN
2610 l_to_id := FND_API.G_MISS_NUM;
2611 ELSE
2612 l_to_id := x_to_id;
2613 END IF;
2614
2615 x_return_status := FND_API.G_RET_STS_SUCCESS;
2616
2617 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2618 p_to_fk_id, p_par_entity_name,
2619 'HZ_MERGE_PKG.contact_preference_merge3',
2620 'HZ_CONTACT_PREFERENCES','HZ_CONTACT_POINTS',
2621 'CONTACT_PREFERENCE_ID', 'CONTACT_POINT_ID',x_return_status);
2622
2623 IF (x_return_status = FND_API.G_RET_STS_SUCCESS AND l_to_id = FND_API.G_MISS_NUM) THEN
2624 l_dup_exists := HZ_MERGE_DUP_CHECK.check_contact_preference_dup(
2625 p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2626 'HZ_CONTACT_POINTS',x_return_status);
2627 END IF;
2628
2629 IF (x_return_status =FND_API.G_RET_STS_SUCCESS) THEN
2630 do_contact_pref_transfer(p_from_id,l_to_id, p_from_fk_id, p_to_fk_id,
2631 x_return_status);
2632 END IF;
2633
2634 x_to_id := l_to_id;
2635 EXCEPTION
2636 WHEN OTHERS THEN
2637 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2638 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2639 FND_MSG_PUB.ADD;
2640 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2641 END contact_preference_merge3;
2642
2643
2644 PROCEDURE displayed_duns_merge(
2645 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2646 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2647 x_to_id IN OUT NOCOPY NUMBER,
2648 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2649 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2650 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2651 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
2652 p_batch_party_id IN NUMBER:=FND_API.G_MISS_NUM,
2653 x_return_status OUT NOCOPY VARCHAR2
2654 ) IS
2655
2656 l_to_id NUMBER;
2657
2658 BEGIN
2659 IF (x_to_id IS NULL) THEN
2660 l_to_id := FND_API.G_MISS_NUM;
2661 ELSE
2662 l_to_id := x_to_id;
2663 END IF;
2664
2665 x_return_status := FND_API.G_RET_STS_SUCCESS;
2666
2667 check_params(p_entity_name, p_from_id, l_to_id, p_from_fk_id,
2668 p_to_fk_id, p_par_entity_name,
2669 'HZ_MERGE_PKG.displayed_duns_merge',
2670 'HZ_ORGANIZATION_PROFILES','HZ_PARTIES',
2671 'ORGANIZATION_PROFILE_ID', 'PARTY_ID',x_return_status);
2672
2673 do_displayed_duns_merge(p_from_id, l_to_id, p_from_fk_id, p_to_fk_id,
2674 x_return_status);
2675 EXCEPTION
2676 WHEN OTHERS THEN
2677 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2678 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2679 FND_MSG_PUB.ADD;
2680 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2681 END displayed_duns_merge;
2682
2683
2684 PROCEDURE check_params(
2685 p_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2686 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2687 p_to_id IN NUMBER:=FND_API.G_MISS_NUM,
2688 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2689 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2690 p_par_entity_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2691 p_proc_name IN VARCHAR2,
2692 p_exp_ent_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2693 p_exp_par_ent_name IN VARCHAR2:=FND_API.G_MISS_CHAR,
2694 p_pk_column IN VARCHAR2:=FND_API.G_MISS_CHAR,
2695 p_par_pk_column IN VARCHAR2:=FND_API.G_MISS_CHAR,
2696 x_return_status IN OUT NOCOPY VARCHAR2
2697 ) IS
2698
2699 BEGIN
2700 IF (p_entity_name <> p_exp_ent_name OR
2701 p_par_entity_name <> p_exp_par_ent_name) THEN
2702 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MERGE_ENTITIES');
2703 FND_MESSAGE.SET_TOKEN('ENTITY' ,p_entity_name);
2704 FND_MESSAGE.SET_TOKEN('PENTITY' ,p_par_entity_name);
2705 FND_MESSAGE.SET_TOKEN('MPROC' ,p_proc_name);
2706 FND_MSG_PUB.ADD;
2707 x_return_status := FND_API.G_RET_STS_ERROR;
2708 END IF;
2709
2710 IF (p_from_id = FND_API.G_MISS_NUM) THEN
2711 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MERGE_FROM_REC');
2712 FND_MESSAGE.SET_TOKEN('MPROC' ,p_proc_name);
2713 FND_MESSAGE.SET_TOKEN('ENTITY',p_entity_name);
2714 FND_MESSAGE.SET_TOKEN('PKCOL',p_pk_column);
2715 FND_MESSAGE.SET_TOKEN('PKVALUE',p_to_id);
2716 FND_MSG_PUB.ADD;
2717 x_return_status := FND_API.G_RET_STS_ERROR;
2718 END IF;
2719
2720 IF (p_exp_par_ent_name <> FND_API.G_MISS_CHAR AND
2721 p_to_fk_id = FND_API.G_MISS_NUM ) THEN
2722 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MERGE_FROM_PAR_REC');
2723 FND_MESSAGE.SET_TOKEN('MPROC' ,p_proc_name);
2724 FND_MESSAGE.SET_TOKEN('ENTITY',p_par_entity_name);
2725 FND_MESSAGE.SET_TOKEN('PKCOL',p_pk_column);
2726 FND_MESSAGE.SET_TOKEN('PKVALUE',p_to_id);
2727 FND_MSG_PUB.ADD;
2728 x_return_status := FND_API.G_RET_STS_ERROR;
2729 END IF;
2730 EXCEPTION
2731 WHEN OTHERS THEN
2732 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2733 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2734 FND_MSG_PUB.ADD;
2735 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2736 END check_params;
2737
2738 /***** Private Procedure *****/
2739
2740 PROCEDURE do_cust_account_transfer(
2741 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2742 x_to_id IN OUT NOCOPY NUMBER,
2743 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2744 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2745 x_return_status IN OUT NOCOPY VARCHAR2
2746 ) IS
2747 l_msg_data VARCHAR2(2000);
2748 l_msg_count NUMBER := 0;
2749 BEGIN
2750
2751 IF (x_to_id <> FND_API.G_MISS_NUM AND
2752 x_to_id <> p_from_id) THEN
2753 UPDATE HZ_CUST_ACCOUNTS
2754 SET
2755 STATUS = 'M',
2756 last_update_date = hz_utility_pub.last_update_date,
2757 last_updated_by = hz_utility_pub.user_id,
2758 last_update_login = hz_utility_pub.last_update_login,
2759 request_id = hz_utility_pub.request_id,
2760 program_application_id = hz_utility_pub.program_application_id,
2761 program_id = hz_utility_pub.program_id,
2762 program_update_date = sysdate
2763 WHERE cust_account_id = p_from_id;
2764 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
2765 p_init_msg_list => FND_API.G_FALSE,
2766 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
2767 p_old_owner_table_id => p_from_id,
2768 p_new_owner_table_id => x_to_id,
2769 p_owner_table_name =>'HZ_CUST_ACCOUNTS',
2770 p_orig_system => null,
2771 p_orig_system_reference => null,
2772 p_reason_code => 'MERGED',
2773 x_return_status => x_return_status,
2774 x_msg_count =>l_msg_count,
2775 x_msg_data =>l_msg_data);
2776 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2777 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2778 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
2779 FND_MSG_PUB.ADD;
2780 x_return_status := FND_API.G_RET_STS_ERROR;
2781 RETURN;
2782 END IF;
2783 ELSE
2784 -- Update and set party_id = p_to_fk_id where pk = from_id
2785 UPDATE HZ_CUST_ACCOUNTS
2786 SET
2787 party_id = p_to_fk_id,
2788 last_update_date = hz_utility_pub.last_update_date,
2789 last_updated_by = hz_utility_pub.user_id,
2790 last_update_login = hz_utility_pub.last_update_login,
2791 request_id = hz_utility_pub.request_id,
2792 program_application_id = hz_utility_pub.program_application_id,
2793 program_id = hz_utility_pub.program_id,
2794 program_update_date = sysdate
2795 WHERE cust_account_id = p_from_id;
2796 END IF;
2797
2798 EXCEPTION
2799 WHEN OTHERS THEN
2800 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2801 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2802 FND_MSG_PUB.ADD;
2803 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2804 END do_cust_account_transfer;
2805
2806 PROCEDURE do_cust_account_role_transfer(
2807 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2808 x_to_id IN OUT NOCOPY NUMBER,
2809 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2810 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2811 x_return_status IN OUT NOCOPY VARCHAR2
2812 ) IS
2813
2814 l_msg_data VARCHAR2(2000);
2815 l_msg_count NUMBER := 0;
2816
2817 --Start of Bug No : 3373079
2818 l_g_miss_num NUMBER;
2819 CURSOR c_from_acct_role_det IS
2820 SELECT cust_account_id,cust_acct_site_id
2821 FROM HZ_CUST_ACCOUNT_ROLES
2822 WHERE cust_account_role_id = p_from_id
2823 --AND party_id = p_from_fk_id
2824 AND NVL(STATUS,'A') = 'A';
2825
2826 CURSOR c_to_acct_role_det(p_acct_id NUMBER,p_acct_site_id NUMBER) IS
2827 SELECT count(1)
2828 FROM HZ_CUST_ACCOUNT_ROLES
2829 WHERE party_id = p_to_fk_id
2830 AND cust_account_id = p_acct_id
2831 AND NVL(cust_acct_site_id,l_g_miss_num) = NVL(p_acct_site_id,l_g_miss_num)
2832 AND NVL(STATUS,'A') = 'A';
2833
2834 l_cust_account_id NUMBER(15);
2835 l_cust_acct_site_id NUMBER(15);
2836 l_status VARCHAR2(1);
2837 l_count NUMBER;
2838 --End of Bug No : 3373079
2839 BEGIN
2840 l_g_miss_num := FND_API.G_MISS_NUM;
2841
2842 IF (x_to_id <> FND_API.G_MISS_NUM AND
2843 x_to_id <> p_from_id) THEN
2844 UPDATE HZ_CUST_ACCOUNT_ROLES
2845 SET
2846 STATUS = 'M',
2847 last_update_date = hz_utility_pub.last_update_date,
2848 last_updated_by = hz_utility_pub.user_id,
2849 last_update_login = hz_utility_pub.last_update_login,
2850 request_id = hz_utility_pub.request_id,
2851 program_application_id = hz_utility_pub.program_application_id,
2852 program_id = hz_utility_pub.program_id,
2853 program_update_date = sysdate
2854 WHERE cust_account_role_id = p_from_id;
2855
2856 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
2857 p_init_msg_list => FND_API.G_FALSE,
2858 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
2859 p_old_owner_table_id => p_from_id,
2860 p_new_owner_table_id => x_to_id,
2861 p_owner_table_name =>'HZ_CUST_ACCOUNT_ROLES',
2862 p_orig_system => null,
2863 p_orig_system_reference => null,
2864 p_reason_code => 'MERGED',
2865 x_return_status => x_return_status,
2866 x_msg_count =>l_msg_count,
2867 x_msg_data =>l_msg_data);
2868 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2869 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2870 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
2871 FND_MSG_PUB.ADD;
2872 x_return_status := FND_API.G_RET_STS_ERROR;
2873 RETURN;
2874 END IF;
2875 ELSE
2876 --Start of Bug No : 3373079. Duplicate account roles should not be created through the party merge.
2877 --If the account roles are duplicate, inactivate the duplicate account role.
2878 l_status := 'A';
2879 IF(p_from_fk_id <> p_to_fk_id) THEN
2880 --Get the from role account id and site id
2881 OPEN c_from_acct_role_det;
2882 FETCH c_from_acct_role_det INTO l_cust_account_id,l_cust_acct_site_id;
2883 CLOSE c_from_acct_role_det;
2884 IF(l_cust_account_id IS NOT NULL) THEN
2885 --Set the status of duplicate account role to 'I'
2886 OPEN c_to_acct_role_det(l_cust_account_id,l_cust_acct_site_id);
2887 FETCH c_to_acct_role_det INTO l_count;
2888 CLOSE c_to_acct_role_det;
2889 IF(l_count >0)THEN
2890 l_status :='I';
2891 END IF;
2892 END IF;
2893 END IF;
2894 --End of Bug No : 3373079
2895 -- Update and set party_id = p_to_fk_id where pk = from_id
2896 UPDATE HZ_CUST_ACCOUNT_ROLES
2897 SET
2898 party_id = p_to_fk_id,
2899 status = l_status,
2900 last_update_date = hz_utility_pub.last_update_date,
2901 last_updated_by = hz_utility_pub.user_id,
2902 last_update_login = hz_utility_pub.last_update_login,
2903 request_id = hz_utility_pub.request_id,
2904 program_application_id = hz_utility_pub.program_application_id,
2905 program_id = hz_utility_pub.program_id,
2906 program_update_date = sysdate
2907 WHERE cust_account_role_id = p_from_id;
2908
2909 END IF;
2910
2911 EXCEPTION
2912 WHEN OTHERS THEN
2913 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2914 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2915 FND_MSG_PUB.ADD;
2916 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2917 END do_cust_account_role_transfer;
2918
2919 PROCEDURE do_fin_profile_transfer(
2920 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2921 x_to_id IN OUT NOCOPY NUMBER,
2922 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2923 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2924 x_return_status IN OUT NOCOPY VARCHAR2
2925 ) IS
2926
2927 BEGIN
2928
2929 IF (x_to_id <> FND_API.G_MISS_NUM AND
2930 x_to_id <> p_from_id) THEN
2931 UPDATE HZ_FINANCIAL_PROFILE
2932 SET
2933 STATUS = 'M',
2934 last_update_date = hz_utility_pub.last_update_date,
2935 last_updated_by = hz_utility_pub.user_id,
2936 last_update_login = hz_utility_pub.last_update_login,
2937 request_id = hz_utility_pub.request_id,
2938 program_application_id = hz_utility_pub.program_application_id,
2939 program_id = hz_utility_pub.program_id,
2940 program_update_date = sysdate
2941 WHERE financial_profile_id = p_from_id;
2942 ELSE
2943 -- Update and set party_id = p_to_fk_id where pk = from_id
2944 UPDATE HZ_FINANCIAL_PROFILE
2945 SET
2946 party_id = p_to_fk_id,
2947 last_update_date = hz_utility_pub.last_update_date,
2948 last_updated_by = hz_utility_pub.user_id,
2949 last_update_login = hz_utility_pub.last_update_login,
2950 request_id = hz_utility_pub.request_id,
2951 program_application_id = hz_utility_pub.program_application_id,
2952 program_id = hz_utility_pub.program_id,
2953 program_update_date = sysdate
2954 WHERE financial_profile_id = p_from_id;
2955
2956 END IF;
2957
2958 EXCEPTION
2959 WHEN OTHERS THEN
2960 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
2961 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
2962 FND_MSG_PUB.ADD;
2963 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2964 END do_fin_profile_transfer;
2965
2966 PROCEDURE do_contact_point_transfer(
2967 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
2968 x_to_id IN OUT NOCOPY NUMBER,
2969 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2970 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
2971 x_return_status IN OUT NOCOPY VARCHAR2
2972 ) IS
2973
2974 l_exists VARCHAR2(10);
2975 l_primary_flag VARCHAR2(1):='N';
2976 l_msg_data VARCHAR2(2000);
2977 l_msg_count NUMBER := 0;
2978
2979 ---BugNo:1695595.Added local variables and cursors----
2980
2981 l_contact_point_type VARCHAR2(30);
2982 l_fp_primary_flag VARCHAR2(1);
2983 l_pri_purpose_flag VARCHAR2(1) := 'N';
2984 l_fp_pri_pur_flag VARCHAR2(1);
2985 l_url VARCHAR2(2000);
2986 l_email_address VARCHAR2(2000);
2987 l_contact_point_purpose VARCHAR2(30);
2988 l_phone_line_type VARCHAR2(30);
2989 l_phone_country_code VARCHAR2(10);
2990 l_phone_area_code VARCHAR2(10);
2991 l_phone_number VARCHAR2(40);
2992 l_phone_extension VARCHAR2(20);
2993
2994
2995
2996 CURSOR c_fp_cpt_details IS
2997 SELECT contact_point_type,primary_flag, url, email_address,
2998 contact_point_purpose,phone_line_type, phone_country_code,
2999 phone_area_code,phone_number,phone_extension ,primary_by_purpose
3000 FROM HZ_CONTACT_POINTS
3001 WHERE owner_table_name = 'HZ_PARTIES'
3002 AND contact_point_id = p_from_id
3003 AND rownum=1;
3004
3005 ----------------
3006 BEGIN
3007
3008 IF (x_to_id <> FND_API.G_MISS_NUM AND
3009 x_to_id <> p_from_id) THEN
3010 UPDATE HZ_CONTACT_POINTS
3011 SET
3012 STATUS = 'M',
3013 last_update_date = hz_utility_pub.last_update_date,
3014 last_updated_by = hz_utility_pub.user_id,
3015 last_update_login = hz_utility_pub.last_update_login,
3016 request_id = hz_utility_pub.request_id,
3017 program_application_id = hz_utility_pub.program_application_id,
3018 program_id = hz_utility_pub.program_id,
3019 program_update_date = sysdate
3020 WHERE contact_point_id = p_from_id;
3021
3022 DELETE FROM HZ_DQM_SYNC_INTERFACE WHERE STAGED_FLAG='N'
3023 AND RECORD_ID=p_from_id AND ENTITY='CONTACT_POINTS';
3024
3025 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
3026 p_init_msg_list => FND_API.G_FALSE,
3027 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
3028 p_old_owner_table_id => p_from_id,
3029 p_new_owner_table_id => x_to_id,
3030 p_owner_table_name =>'HZ_CONTACT_POINTS',
3031 p_orig_system => null,
3032 p_orig_system_reference => null,
3033 p_reason_code => 'MERGED',
3034 x_return_status => x_return_status,
3035 x_msg_count =>l_msg_count,
3036 x_msg_data =>l_msg_data);
3037 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3038 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3039 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
3040 FND_MSG_PUB.ADD;
3041 x_return_status := FND_API.G_RET_STS_ERROR;
3042 RETURN;
3043 END IF;
3044
3045 ELSE
3046 --- Transfer ---
3047
3048 /* BugNo:1695595. Added the condition CONTACT_POINT_TYPE=l_contact_point_type
3049 to get the primary flag associated to from party contact point type.
3050 */
3051 OPEN c_fp_cpt_details;
3052 FETCH c_fp_cpt_details into l_contact_point_type,l_fp_primary_flag,
3053 l_url,l_email_address,l_contact_point_purpose,
3054 l_phone_line_type,l_phone_country_code,
3055 l_phone_area_code,l_phone_number,l_phone_extension,
3056 l_fp_pri_pur_flag ;
3057 CLOSE c_fp_cpt_details;
3058
3059 IF l_fp_pri_pur_flag = 'Y' THEN
3060 BEGIN
3061 SELECT 'Exists'
3062 INTO l_exists
3063 FROM HZ_CONTACT_POINTS
3064 WHERE PRIMARY_BY_PURPOSE = 'Y'
3065 AND CONTACT_POINT_PURPOSE = l_contact_point_purpose
3066 AND OWNER_TABLE_NAME = 'HZ_PARTIES'
3067 AND CONTACT_POINT_TYPE = l_contact_point_type
3068 AND OWNER_TABLE_ID = p_to_fk_id
3069 AND ROWNUM = 1;
3070 EXCEPTION
3071 WHEN NO_DATA_FOUND THEN
3072 l_pri_purpose_flag := 'Y';
3073 END;
3074 END IF;
3075
3076 IF l_fp_primary_flag = 'Y' THEN
3077 BEGIN
3078 SELECT 'Exists'
3079 INTO l_exists
3080 FROM HZ_CONTACT_POINTS
3081 WHERE primary_flag = 'Y'
3082 AND OWNER_TABLE_NAME = 'HZ_PARTIES'
3083 AND CONTACT_POINT_TYPE= l_contact_point_type
3084 AND OWNER_TABLE_ID = p_to_fk_id
3085 AND ROWNUM = 1;
3086 EXCEPTION
3087 WHEN NO_DATA_FOUND THEN
3088 --BugNo:1695595.Changed l_primary_flag value from 'Y' to from contact point
3089 --primary flag value.
3090 l_primary_flag :=l_fp_primary_flag;
3091 END;
3092 END IF;
3093
3094
3095 --BugNo:1695595.Added code to update denormalized columns.------
3096 IF (l_primary_flag='Y' AND l_contact_point_type IN ('WEB','EMAIL','PHONE')) THEN
3097 do_denormalize_contact_point(p_to_fk_id,
3098 l_contact_point_type,
3099 l_url,
3100 l_email_address,
3101 p_from_id,
3102 l_contact_point_purpose,
3103 l_phone_line_type,
3104 l_phone_country_code,
3105 l_phone_area_code,
3106 l_phone_number,
3107 l_phone_extension);
3108 END IF;
3109
3110 -----------------------
3111 -- Update and set party_id = p_to_fk_id where pk = from_id
3112 UPDATE HZ_CONTACT_POINTS
3113 SET
3114 owner_table_id = p_to_fk_id,
3115 primary_flag = l_primary_flag,
3116 primary_by_purpose = l_pri_purpose_flag,
3117 last_update_date = hz_utility_pub.last_update_date,
3118 last_updated_by = hz_utility_pub.user_id,
3119 last_update_login = hz_utility_pub.last_update_login,
3120 request_id = hz_utility_pub.request_id,
3121 program_application_id = hz_utility_pub.program_application_id,
3122 program_id = hz_utility_pub.program_id,
3123 program_update_date = sysdate
3124 WHERE contact_point_id = p_from_id;
3125
3126 END IF;
3127
3128 EXCEPTION
3129 WHEN OTHERS THEN
3130 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3131 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3132 FND_MSG_PUB.ADD;
3133 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3134 END do_contact_point_transfer;
3135
3136 PROCEDURE do_contact_point_transfer2(
3137 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3138 x_to_id IN OUT NOCOPY NUMBER,
3139 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3140 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3141 x_return_status IN OUT NOCOPY VARCHAR2
3142 ) IS
3143
3144 l_msg_data VARCHAR2(2000);
3145 l_msg_count NUMBER := 0;
3146 l_exists VARCHAR2(10);
3147 l_fp_primary_flag VARCHAR2(1);
3148 l_fp_pri_purpose_flag VARCHAR2(1);
3149 l_primary_flag VARCHAR2(1):='N';
3150 l_pri_purpose_flag VARCHAR2(1):='N';
3151 l_contact_point_type VARCHAR2(30);
3152 l_contact_point_purpose HZ_CONTACT_POINTS.CONTACT_POINT_PURPOSE%TYPE;
3153
3154 CURSOR c_fp_cpt_details IS
3155 SELECT contact_point_type, contact_point_purpose,primary_flag,primary_by_purpose
3156 FROM HZ_CONTACT_POINTS
3157 WHERE owner_table_name = 'HZ_PARTY_SITES'
3158 AND contact_point_id = p_from_id
3159 AND rownum=1;
3160
3161
3162 BEGIN
3163
3164 IF (x_to_id <> FND_API.G_MISS_NUM AND
3165 x_to_id <> p_from_id) THEN
3166 -- Update and set status to merged
3167 UPDATE HZ_CONTACT_POINTS
3168 SET
3169 STATUS = 'M',
3170 last_update_date = hz_utility_pub.last_update_date,
3171 last_updated_by = hz_utility_pub.user_id,
3172 last_update_login = hz_utility_pub.last_update_login,
3173 request_id = hz_utility_pub.request_id,
3174 program_application_id = hz_utility_pub.program_application_id,
3175 program_id = hz_utility_pub.program_id,
3176 program_update_date = sysdate
3177 WHERE contact_point_id = p_from_id;
3178
3179 DELETE FROM HZ_DQM_SYNC_INTERFACE WHERE STAGED_FLAG='N'
3180 AND RECORD_ID=p_from_id AND ENTITY='CONTACT_POINTS';
3181
3182 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
3183 p_init_msg_list => FND_API.G_FALSE,
3184 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
3185 p_old_owner_table_id => p_from_id,
3186 p_new_owner_table_id => x_to_id,
3187 p_owner_table_name =>'HZ_CONTACT_POINTS',
3188 p_orig_system => null,
3189 p_orig_system_reference => null,
3190 p_reason_code => 'MERGED',
3191 x_return_status => x_return_status,
3192 x_msg_count =>l_msg_count,
3193 x_msg_data =>l_msg_data);
3194 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3195 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3196 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
3197 FND_MSG_PUB.ADD;
3198 x_return_status := FND_API.G_RET_STS_ERROR;
3199 RETURN;
3200 END IF;
3201 ELSE
3202 --- Transfer ---
3203 OPEN c_fp_cpt_details;
3204 FETCH c_fp_cpt_details into l_contact_point_type, l_contact_point_purpose,
3205 l_fp_primary_flag, l_fp_pri_purpose_flag;
3206 CLOSE c_fp_cpt_details;
3207
3208 IF l_fp_pri_purpose_flag = 'Y' THEN
3209 BEGIN
3210 SELECT 'Exists'
3211 INTO l_exists
3212 FROM HZ_CONTACT_POINTS
3213 WHERE PRIMARY_BY_PURPOSE = 'Y'
3214 AND CONTACT_POINT_PURPOSE = l_contact_point_purpose
3215 AND OWNER_TABLE_NAME = 'HZ_PARTY_SITES'
3216 AND CONTACT_POINT_TYPE = l_contact_point_type
3217 AND OWNER_TABLE_ID = p_to_fk_id
3218 AND ROWNUM = 1;
3219
3220 EXCEPTION
3221 WHEN NO_DATA_FOUND THEN
3222 l_pri_purpose_flag := 'Y';
3223 END;
3224 END IF;
3225
3226 IF l_fp_primary_flag = 'Y' THEN
3227 BEGIN
3228 SELECT 'Exists'
3229 INTO l_exists
3230 FROM HZ_CONTACT_POINTS
3231 WHERE PRIMARY_FLAG = 'Y'
3232 AND OWNER_TABLE_NAME = 'HZ_PARTY_SITES'
3233 AND OWNER_TABLE_ID = p_to_fk_id
3234 AND CONTACT_POINT_TYPE = l_contact_point_type
3235 AND ROWNUM = 1;
3236 EXCEPTION
3237 WHEN NO_DATA_FOUND THEN
3238 l_primary_flag := 'Y';
3239 END;
3240 END IF;
3241
3242 -- Update and set party_id = p_to_fk_id where pk = from_id
3243 UPDATE HZ_CONTACT_POINTS
3244 SET
3245 owner_table_id = p_to_fk_id,
3246 primary_flag = l_primary_flag,
3247 primary_by_purpose = l_pri_purpose_flag,
3248 last_update_date = hz_utility_pub.last_update_date,
3249 last_updated_by = hz_utility_pub.user_id,
3250 last_update_login = hz_utility_pub.last_update_login,
3251 request_id = hz_utility_pub.request_id,
3252 program_application_id = hz_utility_pub.program_application_id,
3253 program_id = hz_utility_pub.program_id,
3254 program_update_date = sysdate
3255 WHERE contact_point_id = p_from_id;
3256
3257 END IF;
3258
3259 EXCEPTION
3260 WHEN OTHERS THEN
3261 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3262 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3263 FND_MSG_PUB.ADD;
3264 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3265 END do_contact_point_transfer2;
3266
3267 PROCEDURE do_contact_pref_transfer(
3268 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3269 x_to_id IN OUT NOCOPY NUMBER,
3270 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3271 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3272 x_return_status IN OUT NOCOPY VARCHAR2
3273 ) IS
3274
3275 BEGIN
3276 IF (x_to_id <> FND_API.G_MISS_NUM AND
3277 x_to_id <> p_from_id) THEN
3278 UPDATE HZ_CONTACT_PREFERENCES
3279 SET
3280 status = 'M',
3281 last_update_date = hz_utility_pub.last_update_date,
3282 last_updated_by = hz_utility_pub.user_id,
3283 last_update_login = hz_utility_pub.last_update_login,
3284 request_id = hz_utility_pub.request_id,
3285 program_application_id = hz_utility_pub.program_application_id,
3286 program_id = hz_utility_pub.program_id,
3287 program_update_date = sysdate
3288 WHERE contact_preference_id = p_from_id;
3289 ELSE
3290 -- Update and set contact_level_table_id = p_to_fk_id where pk = from_id
3291 UPDATE HZ_CONTACT_PREFERENCES
3292 SET
3293 contact_level_table_id = p_to_fk_id,
3294 last_update_date = hz_utility_pub.last_update_date,
3295 last_updated_by = hz_utility_pub.user_id,
3296 last_update_login = hz_utility_pub.last_update_login,
3297 request_id = hz_utility_pub.request_id,
3298 program_application_id = hz_utility_pub.program_application_id,
3299 program_id = hz_utility_pub.program_id,
3300 program_update_date = sysdate
3301 WHERE contact_preference_id = p_from_id;
3302
3303 END IF;
3304
3305 EXCEPTION
3306 WHEN OTHERS THEN
3307 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3308 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3309 FND_MSG_PUB.ADD;
3310 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3311 END do_contact_pref_transfer;
3312
3313 PROCEDURE do_references_transfer(
3314 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3315 x_to_id IN OUT NOCOPY NUMBER,
3316 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3317 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3318 x_return_status IN OUT NOCOPY VARCHAR2
3319 ) IS
3320
3321 BEGIN
3322
3323 IF (x_to_id <> FND_API.G_MISS_NUM AND
3324 x_to_id <> p_from_id) THEN
3325 UPDATE HZ_REFERENCES
3326 SET
3327 status = 'M',
3328 last_update_date = hz_utility_pub.last_update_date,
3329 last_updated_by = hz_utility_pub.user_id,
3330 last_update_login = hz_utility_pub.last_update_login,
3331 request_id = hz_utility_pub.request_id,
3332 program_application_id = hz_utility_pub.program_application_id,
3333 program_id = hz_utility_pub.program_id,
3334 program_update_date = sysdate
3335 WHERE reference_id = p_from_id;
3336 ELSE
3337 -- Update and set party_id = p_to_fk_id where pk = from_id
3338 UPDATE HZ_REFERENCES
3339 SET
3340 referenced_party_id = p_to_fk_id,
3341 last_update_date = hz_utility_pub.last_update_date,
3342 last_updated_by = hz_utility_pub.user_id,
3343 last_update_login = hz_utility_pub.last_update_login,
3344 request_id = hz_utility_pub.request_id,
3345 program_application_id = hz_utility_pub.program_application_id,
3346 program_id = hz_utility_pub.program_id,
3347 program_update_date = sysdate
3348 WHERE reference_id = p_from_id;
3349
3350 END IF;
3351
3352 EXCEPTION
3353 WHEN OTHERS THEN
3354 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3355 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3356 FND_MSG_PUB.ADD;
3357 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3358 END do_references_transfer;
3359
3360 PROCEDURE do_certification_transfer(
3361 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3362 x_to_id IN OUT NOCOPY NUMBER,
3363 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3364 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3365 x_return_status IN OUT NOCOPY VARCHAR2
3366 ) IS
3367
3368 BEGIN
3369
3370 IF (x_to_id <> FND_API.G_MISS_NUM AND
3371 x_to_id <> p_from_id) THEN
3372 UPDATE HZ_CERTIFICATIONS
3373 SET
3374 STATUS = 'M',
3375 last_update_date = hz_utility_pub.last_update_date,
3376 last_updated_by = hz_utility_pub.user_id,
3377 last_update_login = hz_utility_pub.last_update_login,
3378 request_id = hz_utility_pub.request_id,
3379 program_application_id = hz_utility_pub.program_application_id,
3380 program_id = hz_utility_pub.program_id,
3381 program_update_date = sysdate
3382 WHERE certification_id = p_from_id;
3383 ELSE
3384 -- Update and set party_id = p_to_fk_id where pk = from_id
3385 UPDATE HZ_CERTIFICATIONS
3386 SET
3387 party_id = p_to_fk_id,
3388 last_update_date = hz_utility_pub.last_update_date,
3389 last_updated_by = hz_utility_pub.user_id,
3390 last_update_login = hz_utility_pub.last_update_login,
3391 request_id = hz_utility_pub.request_id,
3392 program_application_id = hz_utility_pub.program_application_id,
3393 program_id = hz_utility_pub.program_id,
3394 program_update_date = sysdate
3395 WHERE certification_id = p_from_id;
3396
3397 END IF;
3398
3399 EXCEPTION
3400 WHEN OTHERS THEN
3401 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3402 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3403 FND_MSG_PUB.ADD;
3404 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3405 END do_certification_transfer;
3406
3407 PROCEDURE do_credit_ratings_transfer(
3408 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3409 x_to_id IN OUT NOCOPY NUMBER,
3410 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3411 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3412 x_return_status IN OUT NOCOPY VARCHAR2
3413 ) IS
3414
3415 BEGIN
3416
3417 IF (x_to_id <> FND_API.G_MISS_NUM AND
3418 x_to_id <> p_from_id) THEN
3419 UPDATE HZ_CREDIT_RATINGS
3420 SET
3421 STATUS = 'M',
3422 last_update_date = hz_utility_pub.last_update_date,
3423 last_updated_by = hz_utility_pub.user_id,
3424 last_update_login = hz_utility_pub.last_update_login,
3425 request_id = hz_utility_pub.request_id,
3426 program_application_id = hz_utility_pub.program_application_id,
3427 program_id = hz_utility_pub.program_id,
3428 program_update_date = sysdate
3429 WHERE credit_rating_id = p_from_id;
3430 ELSE
3431 -- Update and set party_id = p_to_fk_id where pk = from_id
3432 UPDATE HZ_CREDIT_RATINGS
3433 SET
3434 party_id = p_to_fk_id,
3435 last_update_date = hz_utility_pub.last_update_date,
3436 last_updated_by = hz_utility_pub.user_id,
3437 last_update_login = hz_utility_pub.last_update_login,
3438 request_id = hz_utility_pub.request_id,
3439 program_application_id = hz_utility_pub.program_application_id,
3440 program_id = hz_utility_pub.program_id,
3441 program_update_date = sysdate
3442 WHERE credit_rating_id = p_from_id;
3443
3444 END IF;
3445
3446 EXCEPTION
3447 WHEN OTHERS THEN
3448 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3449 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3450 FND_MSG_PUB.ADD;
3451 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3452 END do_credit_ratings_transfer;
3453
3454 PROCEDURE do_security_issued_transfer(
3455 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3456 x_to_id IN OUT NOCOPY NUMBER,
3457 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3458 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3459 x_return_status IN OUT NOCOPY VARCHAR2
3460 ) IS
3461
3462 BEGIN
3463
3464 IF (x_to_id <> FND_API.G_MISS_NUM AND
3465 x_to_id <> p_from_id) THEN
3466 UPDATE HZ_SECURITY_ISSUED
3467 SET
3468 STATUS = 'M',
3469 last_update_date = hz_utility_pub.last_update_date,
3470 last_updated_by = hz_utility_pub.user_id,
3471 last_update_login = hz_utility_pub.last_update_login,
3472 request_id = hz_utility_pub.request_id,
3473 program_application_id = hz_utility_pub.program_application_id,
3474 program_id = hz_utility_pub.program_id,
3475 program_update_date = sysdate
3476 WHERE security_issued_id = p_from_id;
3477 ELSE
3478 -- Update and set party_id = p_to_fk_id where pk = from_id
3479 UPDATE HZ_SECURITY_ISSUED
3480 SET
3481 party_id = p_to_fk_id,
3482 last_update_date = hz_utility_pub.last_update_date,
3483 last_updated_by = hz_utility_pub.user_id,
3484 last_update_login = hz_utility_pub.last_update_login,
3485 request_id = hz_utility_pub.request_id,
3486 program_application_id = hz_utility_pub.program_application_id,
3487 program_id = hz_utility_pub.program_id,
3488 program_update_date = sysdate
3489 WHERE security_issued_id = p_from_id;
3490
3491 END IF;
3492
3493 EXCEPTION
3494 WHEN OTHERS THEN
3495 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3496 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3497 FND_MSG_PUB.ADD;
3498 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3499 END do_security_issued_transfer;
3500
3501 PROCEDURE do_financial_reports_transfer(
3502 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3503 x_to_id IN OUT NOCOPY NUMBER,
3504 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3505 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3506 x_return_status IN OUT NOCOPY VARCHAR2
3507 ) IS
3508
3509 BEGIN
3510
3511 IF (x_to_id <> FND_API.G_MISS_NUM AND
3512 x_to_id <> p_from_id) THEN
3513 UPDATE HZ_FINANCIAL_REPORTS
3514 SET
3515 STATUS = 'M',
3516 last_update_date = hz_utility_pub.last_update_date,
3517 last_updated_by = hz_utility_pub.user_id,
3518 last_update_login = hz_utility_pub.last_update_login,
3519 request_id = hz_utility_pub.request_id,
3520 program_application_id = hz_utility_pub.program_application_id,
3521 program_id = hz_utility_pub.program_id,
3522 program_update_date = sysdate
3523 WHERE financial_report_id = p_from_id;
3524 ELSE
3525 -- Update and set party_id = p_to_fk_id where pk = from_id
3526 UPDATE HZ_FINANCIAL_REPORTS
3527 SET
3528 party_id = p_to_fk_id,
3529 last_update_date = hz_utility_pub.last_update_date,
3530 last_updated_by = hz_utility_pub.user_id,
3531 last_update_login = hz_utility_pub.last_update_login,
3532 request_id = hz_utility_pub.request_id,
3533 program_application_id = hz_utility_pub.program_application_id,
3534 program_id = hz_utility_pub.program_id,
3535 program_update_date = sysdate
3536 WHERE financial_report_id = p_from_id;
3537
3538 END IF;
3539
3540 EXCEPTION
3541 WHEN OTHERS THEN
3542 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3543 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3544 FND_MSG_PUB.ADD;
3545 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3546 END do_financial_reports_transfer;
3547
3548 PROCEDURE do_org_indicators_transfer(
3549 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3550 x_to_id IN OUT NOCOPY NUMBER,
3551 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3552 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3553 x_return_status IN OUT NOCOPY VARCHAR2
3554 ) IS
3555
3556 BEGIN
3557
3558 IF (x_to_id <> FND_API.G_MISS_NUM AND
3559 x_to_id <> p_from_id) THEN
3560 UPDATE HZ_ORGANIZATION_INDICATORS
3561 SET
3562 STATUS = 'M',
3563 last_update_date = hz_utility_pub.last_update_date,
3564 last_updated_by = hz_utility_pub.user_id,
3565 last_update_login = hz_utility_pub.last_update_login,
3566 request_id = hz_utility_pub.request_id,
3567 program_application_id = hz_utility_pub.program_application_id,
3568 program_id = hz_utility_pub.program_id,
3569 program_update_date = sysdate
3570 WHERE organization_indicator_id = p_from_id;
3571 ELSE
3572 -- Update and set party_id = p_to_fk_id where pk = from_id
3573 UPDATE HZ_ORGANIZATION_INDICATORS
3574 SET
3575 party_id = p_to_fk_id,
3576 last_update_date = hz_utility_pub.last_update_date,
3577 last_updated_by = hz_utility_pub.user_id,
3578 last_update_login = hz_utility_pub.last_update_login,
3579 request_id = hz_utility_pub.request_id,
3580 program_application_id = hz_utility_pub.program_application_id,
3581 program_id = hz_utility_pub.program_id,
3582 program_update_date = sysdate
3583 WHERE organization_indicator_id = p_from_id;
3584
3585 END IF;
3586
3587 EXCEPTION
3588 WHEN OTHERS THEN
3589 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3590 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3591 FND_MSG_PUB.ADD;
3592 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3593 END do_org_indicators_transfer;
3594
3595 PROCEDURE do_ind_reference_transfer(
3596 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3597 x_to_id IN OUT NOCOPY NUMBER,
3598 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3599 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3600 x_return_status IN OUT NOCOPY VARCHAR2
3601 ) IS
3602
3603 BEGIN
3604
3605 IF (x_to_id <> FND_API.G_MISS_NUM AND
3606 x_to_id <> p_from_id) THEN
3607 UPDATE HZ_INDUSTRIAL_REFERENCE
3608 SET
3609 STATUS = 'M',
3610 last_update_date = hz_utility_pub.last_update_date,
3611 last_updated_by = hz_utility_pub.user_id,
3612 last_update_login = hz_utility_pub.last_update_login,
3613 request_id = hz_utility_pub.request_id,
3614 program_application_id = hz_utility_pub.program_application_id,
3615 program_id = hz_utility_pub.program_id,
3616 program_update_date = sysdate
3617 WHERE industry_reference_id = p_from_id;
3618 ELSE
3619 -- Update and set party_id = p_to_fk_id where pk = from_id
3620 UPDATE HZ_INDUSTRIAL_REFERENCE
3621 SET
3622 party_id = p_to_fk_id,
3623 last_update_date = hz_utility_pub.last_update_date,
3624 last_updated_by = hz_utility_pub.user_id,
3625 last_update_login = hz_utility_pub.last_update_login,
3626 request_id = hz_utility_pub.request_id,
3627 program_application_id = hz_utility_pub.program_application_id,
3628 program_id = hz_utility_pub.program_id,
3629 program_update_date = sysdate
3630 WHERE industry_reference_id = p_from_id;
3631
3632 END IF;
3633
3634 EXCEPTION
3635 WHEN OTHERS THEN
3636 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3637 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3638 FND_MSG_PUB.ADD;
3639 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3640 END do_ind_reference_transfer;
3641
3642 PROCEDURE do_per_interest_transfer(
3643 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3644 x_to_id IN OUT NOCOPY NUMBER,
3645 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3646 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3647 x_return_status IN OUT NOCOPY VARCHAR2
3648 ) IS
3649
3650 BEGIN
3651
3652 IF (x_to_id <> FND_API.G_MISS_NUM AND
3653 x_to_id <> p_from_id) THEN
3654 UPDATE HZ_PERSON_INTEREST
3655 SET
3656 STATUS = 'M',
3657 last_update_date = hz_utility_pub.last_update_date,
3658 last_updated_by = hz_utility_pub.user_id,
3659 last_update_login = hz_utility_pub.last_update_login,
3660 request_id = hz_utility_pub.request_id,
3661 program_application_id = hz_utility_pub.program_application_id,
3662 program_id = hz_utility_pub.program_id,
3663 program_update_date = sysdate
3664 WHERE person_interest_id = p_from_id;
3665 ELSE
3666 -- Update and set party_id = p_to_fk_id where pk = from_id
3667 UPDATE HZ_PERSON_INTEREST
3668 SET
3669 party_id = p_to_fk_id,
3670 last_update_date = hz_utility_pub.last_update_date,
3671 last_updated_by = hz_utility_pub.user_id,
3672 last_update_login = hz_utility_pub.last_update_login,
3673 request_id = hz_utility_pub.request_id,
3674 program_application_id = hz_utility_pub.program_application_id,
3675 program_id = hz_utility_pub.program_id,
3676 program_update_date = sysdate
3677 WHERE person_interest_id = p_from_id;
3678
3679 END IF;
3680
3681 EXCEPTION
3682 WHEN OTHERS THEN
3683 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3684 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3685 FND_MSG_PUB.ADD;
3686 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3687 END do_per_interest_transfer;
3688
3689 PROCEDURE do_citizenship_transfer(
3690 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3691 x_to_id IN OUT NOCOPY NUMBER,
3692 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3693 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3694 x_return_status IN OUT NOCOPY VARCHAR2
3695 ) IS
3696
3697 BEGIN
3698
3699 IF (x_to_id <> FND_API.G_MISS_NUM AND
3700 x_to_id <> p_from_id) THEN
3701 UPDATE HZ_CITIZENSHIP
3702 SET
3703 STATUS = 'M',
3704 last_update_date = hz_utility_pub.last_update_date,
3705 last_updated_by = hz_utility_pub.user_id,
3706 last_update_login = hz_utility_pub.last_update_login,
3707 request_id = hz_utility_pub.request_id,
3708 program_application_id = hz_utility_pub.program_application_id,
3709 program_id = hz_utility_pub.program_id,
3710 program_update_date = sysdate
3711 WHERE citizenship_id = p_from_id;
3712 ELSE
3713 -- Update and set party_id = p_to_fk_id where pk = from_id
3714 UPDATE HZ_CITIZENSHIP
3715 SET
3716 party_id = p_to_fk_id,
3717 last_update_date = hz_utility_pub.last_update_date,
3718 last_updated_by = hz_utility_pub.user_id,
3719 last_update_login = hz_utility_pub.last_update_login,
3720 request_id = hz_utility_pub.request_id,
3721 program_application_id = hz_utility_pub.program_application_id,
3722 program_id = hz_utility_pub.program_id,
3723 program_update_date = sysdate
3724 WHERE citizenship_id = p_from_id;
3725
3726 END IF;
3727
3728 EXCEPTION
3729 WHEN OTHERS THEN
3730 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3731 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3732 FND_MSG_PUB.ADD;
3733 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3734 END do_citizenship_transfer;
3735
3736 PROCEDURE do_education_transfer(
3737 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3738 x_to_id IN OUT NOCOPY NUMBER,
3739 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3740 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3741 x_return_status IN OUT NOCOPY VARCHAR2
3742 ) IS
3743
3744 BEGIN
3745
3746 IF (x_to_id <> FND_API.G_MISS_NUM AND
3747 x_to_id <> p_from_id) THEN
3748 UPDATE HZ_EDUCATION
3749 SET
3750 STATUS = 'M',
3751 last_update_date = hz_utility_pub.last_update_date,
3752 last_updated_by = hz_utility_pub.user_id,
3753 last_update_login = hz_utility_pub.last_update_login,
3754 request_id = hz_utility_pub.request_id,
3755 program_application_id = hz_utility_pub.program_application_id,
3756 program_id = hz_utility_pub.program_id,
3757 program_update_date = sysdate
3758 WHERE education_id = p_from_id;
3759 ELSE
3760 -- Update and set party_id = p_to_fk_id where pk = from_id
3761 UPDATE HZ_EDUCATION
3762 SET
3763 party_id = p_to_fk_id,
3764 last_update_date = hz_utility_pub.last_update_date,
3765 last_updated_by = hz_utility_pub.user_id,
3766 last_update_login = hz_utility_pub.last_update_login,
3767 request_id = hz_utility_pub.request_id,
3768 program_application_id = hz_utility_pub.program_application_id,
3769 program_id = hz_utility_pub.program_id,
3770 program_update_date = sysdate
3771 WHERE education_id = p_from_id;
3772
3773 END IF;
3774
3775 EXCEPTION
3776 WHEN OTHERS THEN
3777 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3778 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3779 FND_MSG_PUB.ADD;
3780 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3781 END do_education_transfer;
3782
3783 PROCEDURE do_education_school_transfer(
3784 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3785 x_to_id IN OUT NOCOPY NUMBER,
3786 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3787 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3788 x_return_status IN OUT NOCOPY VARCHAR2
3789 ) IS
3790
3791 BEGIN
3792
3793 IF (x_to_id <> FND_API.G_MISS_NUM AND
3794 x_to_id <> p_from_id) THEN
3795 UPDATE HZ_EDUCATION
3796 SET
3797 STATUS = 'M',
3798 last_update_date = hz_utility_pub.last_update_date,
3799 last_updated_by = hz_utility_pub.user_id,
3800 last_update_login = hz_utility_pub.last_update_login,
3801 request_id = hz_utility_pub.request_id,
3802 program_application_id = hz_utility_pub.program_application_id,
3803 program_id = hz_utility_pub.program_id,
3804 program_update_date = sysdate
3805 WHERE education_id = p_from_id;
3806 ELSE
3807 -- Update and set party_id = p_to_fk_id where pk = from_id
3808 UPDATE HZ_EDUCATION
3809 SET
3810 school_party_id = p_to_fk_id,
3811 last_update_date = hz_utility_pub.last_update_date,
3812 last_updated_by = hz_utility_pub.user_id,
3813 last_update_login = hz_utility_pub.last_update_login,
3814 request_id = hz_utility_pub.request_id,
3815 program_application_id = hz_utility_pub.program_application_id,
3816 program_id = hz_utility_pub.program_id,
3817 program_update_date = sysdate
3818 WHERE education_id = p_from_id;
3819
3820 END IF;
3821
3822 EXCEPTION
3823 WHEN OTHERS THEN
3824 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3825 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3826 FND_MSG_PUB.ADD;
3827 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3828 END do_education_school_transfer;
3829
3830
3831 PROCEDURE do_emp_history_transfer(
3832 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3833 x_to_id IN OUT NOCOPY NUMBER,
3834 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3835 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3836 x_return_status IN OUT NOCOPY VARCHAR2
3837 ) IS
3838
3839 BEGIN
3840
3841 IF (x_to_id <> FND_API.G_MISS_NUM AND
3842 x_to_id <> p_from_id) THEN
3843 UPDATE HZ_EMPLOYMENT_HISTORY
3844 SET
3845 STATUS = 'M',
3846 last_update_date = hz_utility_pub.last_update_date,
3847 last_updated_by = hz_utility_pub.user_id,
3848 last_update_login = hz_utility_pub.last_update_login,
3849 request_id = hz_utility_pub.request_id,
3850 program_application_id = hz_utility_pub.program_application_id,
3851 program_id = hz_utility_pub.program_id,
3852 program_update_date = sysdate
3853 WHERE employment_history_id = p_from_id;
3854 ELSE
3855 -- Update and set party_id = p_to_fk_id where pk = from_id
3856 UPDATE HZ_EMPLOYMENT_HISTORY
3857 SET
3858 party_id = p_to_fk_id,
3859 last_update_date = hz_utility_pub.last_update_date,
3860 last_updated_by = hz_utility_pub.user_id,
3861 last_update_login = hz_utility_pub.last_update_login,
3862 request_id = hz_utility_pub.request_id,
3863 program_application_id = hz_utility_pub.program_application_id,
3864 program_id = hz_utility_pub.program_id,
3865 program_update_date = sysdate
3866 WHERE employment_history_id = p_from_id;
3867
3868 END IF;
3869
3870 EXCEPTION
3871 WHEN OTHERS THEN
3872 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3873 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3874 FND_MSG_PUB.ADD;
3875 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3876 END do_emp_history_transfer;
3877
3878 PROCEDURE do_employed_transfer(
3879 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3880 x_to_id IN OUT NOCOPY NUMBER,
3881 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3882 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3883 x_return_status IN OUT NOCOPY VARCHAR2
3884 ) IS
3885
3886 BEGIN
3887
3888 IF (x_to_id <> FND_API.G_MISS_NUM AND
3889 x_to_id <> p_from_id) THEN
3890 UPDATE HZ_EMPLOYMENT_HISTORY
3891 SET
3892 STATUS = 'M',
3893 last_update_date = hz_utility_pub.last_update_date,
3894 last_updated_by = hz_utility_pub.user_id,
3895 last_update_login = hz_utility_pub.last_update_login,
3896 request_id = hz_utility_pub.request_id,
3897 program_application_id = hz_utility_pub.program_application_id,
3898 program_id = hz_utility_pub.program_id,
3899 program_update_date = sysdate
3900 WHERE employment_history_id = p_from_id;
3901 ELSE
3902 -- Update and set party_id = p_to_fk_id where pk = from_id
3903 UPDATE HZ_EMPLOYMENT_HISTORY
3904 SET
3905 employed_by_party_id = p_to_fk_id,
3906 last_update_date = hz_utility_pub.last_update_date,
3907 last_updated_by = hz_utility_pub.user_id,
3908 last_update_login = hz_utility_pub.last_update_login,
3909 request_id = hz_utility_pub.request_id,
3910 program_application_id = hz_utility_pub.program_application_id,
3911 program_id = hz_utility_pub.program_id,
3912 program_update_date = sysdate
3913 WHERE employment_history_id = p_from_id;
3914
3915 END IF;
3916
3917 EXCEPTION
3918 WHEN OTHERS THEN
3919 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3920 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3921 FND_MSG_PUB.ADD;
3922 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3923 END do_employed_transfer;
3924
3925
3926 PROCEDURE do_work_class_transfer(
3927 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3928 x_to_id IN OUT NOCOPY NUMBER,
3929 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3930 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3931 x_return_status IN OUT NOCOPY VARCHAR2
3932 ) IS
3933
3934 BEGIN
3935
3936 IF (x_to_id <> FND_API.G_MISS_NUM AND
3937 x_to_id <> p_from_id) THEN
3938 UPDATE HZ_WORK_CLASS
3939 SET
3940 STATUS = 'M',
3941 last_update_date = hz_utility_pub.last_update_date,
3942 last_updated_by = hz_utility_pub.user_id,
3943 last_update_login = hz_utility_pub.last_update_login,
3944 request_id = hz_utility_pub.request_id,
3945 program_application_id = hz_utility_pub.program_application_id,
3946 program_id = hz_utility_pub.program_id,
3947 program_update_date = sysdate
3948 WHERE work_class_id = p_from_id;
3949 ELSE
3950 -- Update and set employment_history_id = p_to_fk_id where pk = from_id
3951 UPDATE HZ_WORK_CLASS
3952 SET
3953 employment_history_id = p_to_fk_id,
3954 last_update_date = hz_utility_pub.last_update_date,
3955 last_updated_by = hz_utility_pub.user_id,
3956 last_update_login = hz_utility_pub.last_update_login,
3957 request_id = hz_utility_pub.request_id,
3958 program_application_id = hz_utility_pub.program_application_id,
3959 program_id = hz_utility_pub.program_id,
3960 program_update_date = sysdate
3961 WHERE work_class_id = p_from_id;
3962
3963 END IF;
3964
3965 EXCEPTION
3966 WHEN OTHERS THEN
3967 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
3968 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
3969 FND_MSG_PUB.ADD;
3970 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3971 END do_work_class_transfer;
3972
3973 PROCEDURE do_org_contact_role_transfer(
3974 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
3975 x_to_id IN OUT NOCOPY NUMBER,
3976 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3977 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
3978 x_return_status IN OUT NOCOPY VARCHAR2
3979 ) IS
3980 l_msg_data VARCHAR2(2000);
3981 l_msg_count NUMBER := 0;
3982 l_primary_flag VARCHAR2(1) := 'N';
3983 l_fp_primary_flag VARCHAR2(1) ;
3984 l_fp_primary_role_flag VARCHAR2(1) ;
3985 l_primary_role_flag VARCHAR2(1) := 'N';
3986 l_role_type HZ_ORG_CONTACT_ROLES.ROLE_TYPE%TYPE;
3987 l_exists VARCHAR2(10);
3988 CURSOR from_contact_role IS
3989 SELECT role_type,primary_flag,primary_contact_per_role_type
3990 FROM HZ_ORG_CONTACT_ROLES
3991 WHERE ORG_CONTACT_ROLE_ID = p_from_id;
3992 BEGIN
3993
3994 IF (x_to_id <> FND_API.G_MISS_NUM AND
3995 x_to_id <> p_from_id) THEN
3996 UPDATE HZ_ORG_CONTACT_ROLES
3997 SET
3998 STATUS = 'M',
3999 last_update_date = hz_utility_pub.last_update_date,
4000 last_updated_by = hz_utility_pub.user_id,
4001 last_update_login = hz_utility_pub.last_update_login,
4002 request_id = hz_utility_pub.request_id,
4003 program_application_id = hz_utility_pub.program_application_id,
4004 program_id = hz_utility_pub.program_id,
4005 program_update_date = sysdate
4006 WHERE org_contact_role_id = p_from_id;
4007
4008 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
4009 p_init_msg_list => FND_API.G_FALSE,
4010 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
4011 p_old_owner_table_id => p_from_id,
4012 p_new_owner_table_id => x_to_id,
4013 p_owner_table_name =>'HZ_ORG_CONTACT_ROLES',
4014 p_orig_system => null,
4015 p_orig_system_reference => null,
4016 p_reason_code => 'MERGED',
4017 x_return_status => x_return_status,
4018 x_msg_count =>l_msg_count,
4019 x_msg_data =>l_msg_data);
4020 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4021 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4022 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
4023 FND_MSG_PUB.ADD;
4024 x_return_status := FND_API.G_RET_STS_ERROR;
4025 RETURN;
4026 END IF;
4027
4028 ELSE
4029 --- Transfer ---
4030
4031 OPEN from_contact_role;
4032 FETCH from_contact_role into l_role_type,l_fp_primary_flag,l_fp_primary_role_flag;
4033 CLOSE from_contact_role;
4034
4035 IF l_fp_primary_flag = 'Y' THEN
4036 BEGIN
4037 SELECT 'Exists'
4038 INTO l_exists
4039 FROM HZ_ORG_CONTACT_ROLES
4040 WHERE PRIMARY_FLAG = 'Y'
4041 AND ORG_CONTACT_ID = p_to_fk_id
4042 AND ROWNUM = 1;
4043 EXCEPTION
4044 WHEN NO_DATA_FOUND THEN
4045 l_primary_flag := 'Y';
4046 END;
4047 END IF;
4048
4049 IF l_fp_primary_role_flag = 'Y' THEN
4050 BEGIN
4051 SELECT 'Exists'
4052 INTO l_exists
4053 FROM HZ_RELATIONSHIPS PR,
4054 HZ_ORG_CONTACTS OC,
4055 HZ_ORG_CONTACT_ROLES OCR,
4056 HZ_RELATIONSHIPS PR2,
4057 HZ_ORG_CONTACTS OC2
4058 WHERE OCR.PRIMARY_CONTACT_PER_ROLE_TYPE = 'Y'
4059 AND OCR.ROLE_TYPE = l_role_type
4060 AND OCR.ORG_CONTACT_ID = OC.ORG_CONTACT_ID
4061 AND OC.PARTY_RELATIONSHIP_ID = PR.RELATIONSHIP_ID
4062 AND PR.OBJECT_ID = PR2.OBJECT_ID
4063 AND PR2.RELATIONSHIP_ID = OC2.PARTY_RELATIONSHIP_ID
4064 AND OC2.ORG_CONTACT_ID = p_to_fk_id
4065 AND PR.SUBJECT_TABLE_NAME = 'HZ_PARTIES'
4066 AND PR.OBJECT_TABLE_NAME = 'HZ_PARTIES'
4067 AND PR.DIRECTIONAL_FLAG = 'F'
4068 AND PR2.SUBJECT_TABLE_NAME = 'HZ_PARTIES'
4069 AND PR2.OBJECT_TABLE_NAME = 'HZ_PARTIES'
4070 AND PR2.DIRECTIONAL_FLAG = 'F'
4071 AND ROWNUM = 1;
4072 EXCEPTION
4073 WHEN NO_DATA_FOUND THEN
4074 l_primary_role_flag := 'Y';
4075 END;
4076 END IF;
4077
4078 -- Update and set party_id = p_to_fk_id where pk = from_id
4079 UPDATE HZ_ORG_CONTACT_ROLES
4080 SET
4081 org_contact_id = p_to_fk_id,
4082 primary_flag = l_primary_flag,
4083 primary_contact_per_role_type = l_primary_role_flag,
4084 last_update_date = hz_utility_pub.last_update_date,
4085 last_updated_by = hz_utility_pub.user_id,
4086 last_update_login = hz_utility_pub.last_update_login,
4087 request_id = hz_utility_pub.request_id,
4088 program_application_id = hz_utility_pub.program_application_id,
4089 program_id = hz_utility_pub.program_id,
4090 program_update_date = sysdate
4091 WHERE org_contact_role_id = p_from_id;
4092 END IF;
4093
4094 EXCEPTION
4095 WHEN OTHERS THEN
4096 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4097 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4098 FND_MSG_PUB.ADD;
4099 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4100 END do_org_contact_role_transfer;
4101
4102 PROCEDURE do_financial_number_transfer(
4103 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
4104 x_to_id IN OUT NOCOPY NUMBER,
4105 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4106 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4107 x_return_status IN OUT NOCOPY VARCHAR2
4108 ) IS
4109
4110 BEGIN
4111
4112 IF (x_to_id <> FND_API.G_MISS_NUM AND
4113 x_to_id <> p_from_id) THEN
4114 UPDATE HZ_FINANCIAL_NUMBERS
4115 SET
4116 STATUS = 'M',
4117 last_update_date = hz_utility_pub.last_update_date,
4118 last_updated_by = hz_utility_pub.user_id,
4119 last_update_login = hz_utility_pub.last_update_login,
4120 request_id = hz_utility_pub.request_id,
4121 program_application_id = hz_utility_pub.program_application_id,
4122 program_id = hz_utility_pub.program_id,
4123 program_update_date = sysdate
4124 WHERE financial_number_id = p_from_id;
4125 ELSE
4126 -- Update and set party_id = p_to_fk_id where pk = from_id
4127 UPDATE HZ_FINANCIAL_NUMBERS
4128 SET
4129 financial_report_id = p_to_fk_id,
4130 last_update_date = hz_utility_pub.last_update_date,
4131 last_updated_by = hz_utility_pub.user_id,
4132 last_update_login = hz_utility_pub.last_update_login,
4133 request_id = hz_utility_pub.request_id,
4134 program_application_id = hz_utility_pub.program_application_id,
4135 program_id = hz_utility_pub.program_id,
4136 program_update_date = sysdate
4137 WHERE financial_number_id = p_from_id;
4138 END IF;
4139
4140 EXCEPTION
4141 WHEN OTHERS THEN
4142 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4143 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4144 FND_MSG_PUB.ADD;
4145 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4146 END do_financial_number_transfer;
4147
4148 PROCEDURE do_code_assignment_transfer(
4149 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
4150 x_to_id IN OUT NOCOPY NUMBER,
4151 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4152 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4153 x_return_status IN OUT NOCOPY VARCHAR2
4154 ) IS
4155
4156 l_exists VARCHAR2(10);
4157 l_cont_src VARCHAR2(255);
4158 l_primary_flag VARCHAR2(1):='N';
4159 l_fp_primary_flag VARCHAR2(1);
4160 l_class_category HZ_CODE_ASSIGNMENTS.CLASS_CATEGORY%TYPE;
4161 l_code_exists VARCHAR2(1);
4162 l_class_code HZ_CODE_ASSIGNMENTS.CLASS_CODE%TYPE; --bug 4582789
4163
4164 CURSOR c_cont_source IS
4165 SELECT CONTENT_SOURCE_TYPE,CLASS_CATEGORY,PRIMARY_FLAG,CLASS_CODE
4166 FROM HZ_CODE_ASSIGNMENTS
4167 WHERE code_assignment_id = p_from_id;
4168
4169 CURSOR check_multiple_assignments IS
4170 SELECT 'Y'
4171 FROM hz_class_categories cc, hz_code_assignments ca
4172 WHERE ca.owner_table_id = p_to_fk_id
4173 AND cc.class_category = ca.class_category
4174 AND cc.allow_multi_assign_flag = 'N'
4175 AND ca.class_category = l_class_category;
4176
4177 BEGIN
4178 --bug4086873
4179 OPEN c_cont_source;
4180 FETCH c_cont_source INTO l_cont_src,l_class_category,l_fp_primary_flag,l_class_code;
4181 CLOSE c_cont_source;
4182
4183
4184 OPEN check_multiple_assignments;
4185 FETCH check_multiple_assignments INTO l_code_exists;
4186 CLOSE check_multiple_assignments;
4187
4188
4189 IF (x_to_id <> FND_API.G_MISS_NUM AND x_to_id <> p_from_id)
4190 OR (NVL(l_code_exists,'N') = 'Y') THEN
4191 UPDATE HZ_CODE_ASSIGNMENTS
4192 SET
4193 STATUS = 'M',
4194 last_update_date = hz_utility_pub.last_update_date,
4195 last_updated_by = hz_utility_pub.user_id,
4196 last_update_login = hz_utility_pub.last_update_login
4197 -- request_id = hz_utility_pub.request_id,
4198 -- program_application_id = hz_utility_pub.program_application_id,
4199 -- program_id = hz_utility_pub.program_id,
4200 -- program_update_date = sysdate
4201 WHERE code_assignment_id = p_from_id;
4202
4203 ELSE
4204 --- Transfer ---
4205 /* OPEN c_cont_source;
4206 FETCH c_cont_source INTO l_cont_src,l_class_category,l_fp_primary_flag;
4207 CLOSE c_cont_source;*/
4208
4209 IF l_fp_primary_flag = 'Y' THEN
4210 BEGIN
4211 SELECT 'Exists'
4212 INTO l_exists
4213 FROM HZ_CODE_ASSIGNMENTS
4214 WHERE primary_flag = 'Y'
4215 AND OWNER_TABLE_NAME = 'HZ_PARTIES'
4216 AND OWNER_TABLE_ID = p_to_fk_id
4217 AND CLASS_CATEGORY = l_class_category
4218 AND CONTENT_SOURCE_TYPE = l_cont_src
4219 AND ROWNUM = 1;
4220 EXCEPTION
4221 WHEN NO_DATA_FOUND THEN
4222 l_primary_flag := 'Y';
4223 END;
4224 END IF;
4225
4226 -- Update and set party_id = p_to_fk_id where pk = from_id
4227 UPDATE HZ_CODE_ASSIGNMENTS
4228 SET
4229 owner_table_id = p_to_fk_id,
4230 primary_flag = l_primary_flag,
4231 last_update_date = hz_utility_pub.last_update_date,
4232 last_updated_by = hz_utility_pub.user_id,
4233 last_update_login = hz_utility_pub.last_update_login
4234 -- request_id = hz_utility_pub.request_id,
4235 -- program_application_id = hz_utility_pub.program_application_id,
4236 -- program_id = hz_utility_pub.program_id,
4237 -- program_update_date = sysdate
4238 WHERE code_assignment_id = p_from_id;
4239
4240 --bug 4582789
4241
4242 IF l_primary_flag = 'Y' AND l_class_category = 'CUSTOMER_CATEGORY' THEN
4243 UPDATE hz_parties
4244 SET category_code = l_class_code,
4245 last_update_date = hz_utility_pub.last_update_date,
4246 last_updated_by = hz_utility_pub.user_id,
4247 last_update_login = hz_utility_pub.last_update_login
4248 WHERE party_id = p_to_fk_id;
4249 END IF;
4250 ---bug 4582789
4251 END IF;
4252
4253 EXCEPTION
4254 WHEN OTHERS THEN
4255 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4256 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4257 FND_MSG_PUB.ADD;
4258 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4259 END do_code_assignment_transfer;
4260
4261 PROCEDURE do_code_assignment_transfer2(
4262 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
4263 x_to_id IN OUT NOCOPY NUMBER,
4264 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4265 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4266 x_return_status IN OUT NOCOPY VARCHAR2
4267 ) IS
4268
4269 l_exists VARCHAR2(10);
4270 l_primary_flag VARCHAR2(1):='N';
4271 l_fp_primary_flag VARCHAR2(1);
4272 l_cont_src VARCHAR2(255);
4273 l_class_category HZ_CODE_ASSIGNMENTS.CLASS_CATEGORY%TYPE;
4274 l_code_exists VARCHAR2(1);
4275
4276 CURSOR c_cont_source IS
4277 SELECT CONTENT_SOURCE_TYPE,CLASS_CATEGORY,PRIMARY_FLAG
4278 FROM HZ_CODE_ASSIGNMENTS
4279 WHERE code_assignment_id = p_from_id;
4280
4281 CURSOR check_multiple_assignments IS
4282 SELECT 'Y'
4283 FROM hz_class_categories cc, hz_code_assignments ca
4284 WHERE ca.owner_table_id = p_to_fk_id
4285 AND cc.class_category = ca.class_category
4286 AND cc.allow_multi_assign_flag = 'N'
4287 AND ca.class_category = l_class_category;
4288
4289 BEGIN
4290 --bug4086873
4291 OPEN c_cont_source;
4292 FETCH c_cont_source INTO l_cont_src,l_class_category,l_fp_primary_flag;
4293 CLOSE c_cont_source;
4294
4295
4296 OPEN check_multiple_assignments;
4297 FETCH check_multiple_assignments INTO l_code_exists;
4298 CLOSE check_multiple_assignments;
4299
4300 IF (x_to_id <> FND_API.G_MISS_NUM AND
4301 x_to_id <> p_from_id) OR (NVL(l_code_exists,'N') = 'Y') THEN
4302 UPDATE HZ_CODE_ASSIGNMENTS
4303 SET
4304 STATUS = 'M',
4305 last_update_date = hz_utility_pub.last_update_date,
4306 last_updated_by = hz_utility_pub.user_id,
4307 last_update_login = hz_utility_pub.last_update_login
4308 -- request_id = hz_utility_pub.request_id,
4309 -- program_application_id = hz_utility_pub.program_application_id,
4310 -- program_id = hz_utility_pub.program_id,
4311 -- program_update_date = sysdate
4312 WHERE code_assignment_id = p_from_id;
4313 ELSE
4314 --- Transfer ---
4315 /* OPEN c_cont_source;
4316 FETCH c_cont_source INTO l_cont_src,l_class_category,l_fp_primary_flag;
4317 CLOSE c_cont_source; */
4318 IF l_fp_primary_flag = 'Y' THEN
4319 BEGIN
4320 SELECT 'Exists'
4321 INTO l_exists
4322 FROM HZ_CODE_ASSIGNMENTS
4323 WHERE PRIMARY_FLAG = 'Y'
4324 AND OWNER_TABLE_NAME = 'HZ_PARTY_SITES'
4325 AND OWNER_TABLE_ID = p_to_fk_id
4326 AND CLASS_CATEGORY = l_class_category
4327 AND CONTENT_SOURCE_TYPE = l_cont_src
4328 AND ROWNUM = 1;
4329
4330 EXCEPTION
4331 WHEN NO_DATA_FOUND THEN
4332 l_primary_flag := 'Y';
4333 END;
4334 END IF;
4335
4336 -- Update and set party_id = p_to_fk_id where pk = from_id
4337 UPDATE HZ_CODE_ASSIGNMENTS
4338 SET
4339 owner_table_id = p_to_fk_id,
4340 primary_flag = l_primary_flag,
4341 last_update_date = hz_utility_pub.last_update_date,
4342 last_updated_by = hz_utility_pub.user_id,
4343 last_update_login = hz_utility_pub.last_update_login
4344 -- request_id = hz_utility_pub.request_id,
4345 -- program_application_id = hz_utility_pub.program_application_id,
4346 -- program_id = hz_utility_pub.program_id,
4347 -- program_update_date = sysdate
4348 WHERE code_assignment_id = p_from_id;
4349 END IF;
4350
4351 EXCEPTION
4352 WHEN OTHERS THEN
4353 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4354 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4355 FND_MSG_PUB.ADD;
4356 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4357 END do_code_assignment_transfer2;
4358
4359 PROCEDURE do_per_languages_transfer(
4360 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
4361 x_to_id IN OUT NOCOPY NUMBER,
4362 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4363 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4364 x_return_status IN OUT NOCOPY VARCHAR2
4365 ) IS
4366 l_count NUMBER;
4367 l_primary_nav_flag VARCHAR2(1):= 'N';
4368 l_primary_lang_flag VARCHAR2(1):= 'N';
4369 l_exists VARCHAR2(10);
4370 l_fp_pri_ind_flag VARCHAR2(1);
4371 l_fp_nav_flag VARCHAR2(1);
4372
4373 Cursor C_From_Lang IS
4374 SELECT primary_language_indicator,native_language
4375 FROM HZ_PERSON_LANGUAGE
4376 WHERE LANGUAGE_USE_REFERENCE_ID = p_from_id;
4377
4378 BEGIN
4379 IF (x_to_id <> FND_API.G_MISS_NUM AND
4380 x_to_id <> p_from_id) THEN
4381 UPDATE HZ_PERSON_LANGUAGE
4382 SET
4383 STATUS = 'M',
4384 last_update_date = hz_utility_pub.last_update_date,
4385 last_updated_by = hz_utility_pub.user_id,
4386 last_update_login = hz_utility_pub.last_update_login,
4387 request_id = hz_utility_pub.request_id,
4388 program_application_id = hz_utility_pub.program_application_id,
4389 program_id = hz_utility_pub.program_id,
4390 program_update_date = sysdate
4391 WHERE language_use_reference_id = p_from_id;
4392 ELSE
4393 --- Transfer ---
4394 OPEN C_From_Lang;
4395 FETCH C_From_Lang INTO l_fp_pri_ind_flag,l_fp_nav_flag;
4396 CLOSE C_From_Lang;
4397 IF l_fp_pri_ind_flag = 'Y' THEN
4398 BEGIN
4399 SELECT 'Exists'
4400 INTO l_exists
4401 FROM HZ_PERSON_LANGUAGE
4402 WHERE PRIMARY_LANGUAGE_INDICATOR = 'Y'
4403 AND PARTY_ID = p_to_fk_id
4404 AND ROWNUM = 1;
4405 EXCEPTION
4406 WHEN NO_DATA_FOUND THEN
4407 l_primary_lang_flag := 'Y';
4408 END;
4409 END IF;
4410
4411 IF l_fp_nav_flag = 'Y' THEN
4412 BEGIN
4413 SELECT 'Exists'
4414 INTO l_exists
4415 FROM HZ_PERSON_LANGUAGE
4416 WHERE NATIVE_LANGUAGE = 'Y'
4417 AND PARTY_ID = p_to_fk_id
4418 AND ROWNUM = 1;
4419 EXCEPTION
4420 WHEN NO_DATA_FOUND THEN
4421 l_primary_nav_flag := 'Y';
4422 END;
4423 END IF;
4424
4425 /*
4426 OPEN C_Lang1;
4427 FETCH C_Lang1 INTO l_count;
4428 IF C_Lang1%FOUND THEN
4429 OPEN C_Lang2;
4430 FETCH C_Lang2 INTO l_count;
4431 IF C_Lang2%NOTFOUND THEN
4432 -- Update
4433 l_native_language := 'Y';
4434 END IF;
4435 CLOSE C_Lang2;
4436 END IF;
4437 CLOSE C_Lang1;
4438
4439 */
4440 -- Update and set party_id = p_to_fk_id where pk = from_id
4441 UPDATE HZ_PERSON_LANGUAGE
4442 SET
4443 party_id = p_to_fk_id,
4444 primary_language_indicator = l_primary_lang_flag,
4445 native_language = l_primary_nav_flag,
4446 last_update_date = hz_utility_pub.last_update_date,
4447 last_updated_by = hz_utility_pub.user_id,
4448 last_update_login = hz_utility_pub.last_update_login,
4449 request_id = hz_utility_pub.request_id,
4450 program_application_id = hz_utility_pub.program_application_id,
4451 program_id = hz_utility_pub.program_id,
4452 program_update_date = sysdate
4453 WHERE language_use_reference_id = p_from_id;
4454
4455 END IF;
4456
4457 EXCEPTION
4458 WHEN OTHERS THEN
4459 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4460 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4461 FND_MSG_PUB.ADD;
4462 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4463 END do_per_languages_transfer;
4464
4465 PROCEDURE do_party_site_use_transfer(
4466 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
4467 x_to_id IN OUT NOCOPY NUMBER,
4468 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4469 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4470 x_return_status IN OUT NOCOPY VARCHAR2
4471 ) IS
4472
4473 party_site_use_rec HZ_PARTY_SITE_V2PUB.PARTY_SITE_USE_REC_TYPE;
4474 l_msg_data VARCHAR2(2000);
4475 l_msg_count NUMBER := 0;
4476
4477 ----Start of Bug No: 3560167-------------------
4478 CURSOR c_party_id(p_party_site_id NUMBER) IS
4479 SELECT PARTY_ID FROM HZ_PARTY_SITES
4480 WHERE PARTY_SITE_ID = p_party_site_id
4481 AND ROWNUM =1;
4482
4483 CURSOR c_prim_site_uses(p_party_id NUMBER,p_party_site_id NUMBER,p_site_use_type VARCHAR2,p_request_id NUMBER)
4484 IS SELECT 1 FROM HZ_PARTY_SITE_USES SU
4485 WHERE SU.PARTY_SITE_ID IN (
4486 SELECT PS.PARTY_SITE_ID
4487 FROM HZ_PARTY_SITES PS
4488 WHERE PARTY_ID = p_party_id )
4489 AND SU.PARTY_SITE_ID <> p_party_site_id
4490 AND SU.SITE_USE_TYPE = p_site_use_type
4491 AND SU.PRIMARY_PER_TYPE = 'Y'
4492 AND SU.REQUEST_ID =p_request_id
4493 AND ROWNUM = 1;
4494 l_prim_use_exists NUMBER := 0;
4495 l_party_id NUMBER;
4496
4497 ----End of Bug No: 3560167-------------------
4498
4499 BEGIN
4500
4501 IF (x_to_id <> FND_API.G_MISS_NUM AND
4502 x_to_id <> p_from_id) THEN
4503 UPDATE HZ_PARTY_SITE_USES
4504 SET
4505 ----Bug: 2619948 added setting status to 'M' here too
4506 STATUS = 'M',
4507 last_update_date = hz_utility_pub.last_update_date,
4508 last_updated_by = hz_utility_pub.user_id,
4509 last_update_login = hz_utility_pub.last_update_login,
4510 request_id = hz_utility_pub.request_id,
4511 program_application_id = hz_utility_pub.program_application_id,
4512 program_id = hz_utility_pub.program_id,
4513 program_update_date = sysdate
4514 WHERE party_site_use_id = p_from_id;
4515 ELSE
4516
4517 hz_cust_account_merge_v2pvt.get_party_site_use_rec (
4518 p_init_msg_list => 'T',
4519 p_party_site_use_id => p_from_id,
4520 x_party_site_use_rec => party_site_use_rec,
4521 x_return_status => x_return_status,
4522 x_msg_count => l_msg_count,
4523 x_msg_data => l_msg_data );
4524
4525 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4526 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4527 FND_MESSAGE.SET_TOKEN('ERROR','Cannot get party site use ID : ' || p_from_id);
4528 FND_MSG_PUB.ADD;
4529 x_return_status := FND_API.G_RET_STS_ERROR;
4530
4531 RETURN;
4532 END IF;
4533
4534 party_site_use_rec.party_site_use_id := FND_API.G_MISS_NUM;
4535 party_site_use_rec.party_site_id := p_to_fk_id;
4536
4537 ----Start of Bug No: 3560167-------------------
4538 IF party_site_use_rec.primary_per_type = 'Y' THEN
4539 OPEN c_party_id(p_to_fk_id);
4540 FETCH c_party_id INTO l_party_id;
4541 CLOSE c_party_id;
4542
4543 OPEN c_prim_site_uses(l_party_id,p_to_fk_id,party_site_use_rec.site_use_type,hz_utility_pub.request_id);
4544 FETCH c_prim_site_uses INTO l_prim_use_exists;
4545 CLOSE c_prim_site_uses;
4546 IF l_prim_use_exists <> 1 THEN
4547 party_site_use_rec.primary_per_type := 'N';
4548 END IF;
4549 END IF;
4550 ----End of Bug No: 3560167-------------------
4551
4552 --Create new party site.
4553 hz_cust_account_merge_v2pvt.create_party_site_use(
4554 p_init_msg_list => 'T',
4555 p_party_site_use_rec => party_site_use_rec,
4556 x_party_site_use_id => x_to_id,
4557 x_return_status => x_return_status,
4558 x_msg_count => l_msg_count,
4559 x_msg_data => l_msg_data );
4560
4561 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4562 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4563 FND_MESSAGE.SET_TOKEN('ERROR','Cannot copy party site use for ID : ' || p_from_id);
4564 FND_MSG_PUB.ADD;
4565 x_return_status := FND_API.G_RET_STS_ERROR;
4566 RETURN;
4567 END IF;
4568
4569 -- Update and set party_id = p_to_fk_id where pk = from_id
4570 UPDATE HZ_PARTY_SITE_USES
4571 SET
4572 STATUS = 'M',
4573 last_update_date = hz_utility_pub.last_update_date,
4574 last_updated_by = hz_utility_pub.user_id,
4575 last_update_login = hz_utility_pub.last_update_login,
4576 request_id = hz_utility_pub.request_id,
4577 program_application_id = hz_utility_pub.program_application_id,
4578 program_id = hz_utility_pub.program_id,
4579 program_update_date = sysdate
4580 WHERE party_site_use_id = p_from_id;
4581
4582 x_return_status := 'N';
4583
4584 END IF;
4585
4586 EXCEPTION
4587 WHEN OTHERS THEN
4588 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4589 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4590 FND_MSG_PUB.ADD;
4591 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4592 END do_party_site_use_transfer;
4593
4594 PROCEDURE do_cust_account_site_transfer(
4595 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
4596 x_to_id IN OUT NOCOPY NUMBER,
4597 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4598 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4599 x_return_status IN OUT NOCOPY VARCHAR2
4600 ) IS
4601 l_msg_data VARCHAR2(2000);
4602 l_msg_count NUMBER := 0;
4603 BEGIN
4604
4605 IF (x_to_id <> FND_API.G_MISS_NUM AND
4606 x_to_id <> p_from_id) THEN
4607 UPDATE HZ_CUST_ACCT_SITES_ALL
4608 SET
4609 STATUS = 'M',
4610 last_update_date = hz_utility_pub.last_update_date,
4611 last_updated_by = hz_utility_pub.user_id,
4612 last_update_login = hz_utility_pub.last_update_login,
4613 request_id = hz_utility_pub.request_id,
4614 program_application_id = hz_utility_pub.program_application_id,
4615 program_id = hz_utility_pub.program_id,
4616 program_update_date = sysdate
4617 WHERE cust_acct_site_id = p_from_id;
4618
4619 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
4620 p_init_msg_list => FND_API.G_FALSE,
4621 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
4622 p_old_owner_table_id => p_from_id,
4623 p_new_owner_table_id => x_to_id,
4624 p_owner_table_name =>'HZ_CUST_ACCT_SITES_ALL',
4625 p_orig_system => null,
4626 p_orig_system_reference => null,
4627 p_reason_code => 'MERGED',
4628 x_return_status => x_return_status,
4629 x_msg_count =>l_msg_count,
4630 x_msg_data =>l_msg_data);
4631 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4632 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4633 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
4634 FND_MSG_PUB.ADD;
4635 x_return_status := FND_API.G_RET_STS_ERROR;
4636 RETURN;
4637 END IF;
4638
4639 ELSE
4640 UPDATE HZ_CUST_ACCT_SITES_ALL
4641 SET
4642 party_site_id = p_to_fk_id,
4643 last_update_date = hz_utility_pub.last_update_date,
4644 last_updated_by = hz_utility_pub.user_id,
4645 last_update_login = hz_utility_pub.last_update_login,
4646 request_id = hz_utility_pub.request_id,
4647 program_application_id = hz_utility_pub.program_application_id,
4648 program_id = hz_utility_pub.program_id,
4649 program_update_date = sysdate
4650 WHERE cust_acct_site_id = p_from_id;
4651
4652 END IF;
4653
4654 EXCEPTION
4655 WHEN OTHERS THEN
4656 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4657 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4658 FND_MSG_PUB.ADD;
4659 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4660 END do_cust_account_site_transfer;
4661
4662 PROCEDURE do_org_contact_transfer(
4663 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
4664 x_to_id IN OUT NOCOPY NUMBER,
4665 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4666 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4667 x_return_status IN OUT NOCOPY VARCHAR2
4668 ) IS
4669 l_msg_data VARCHAR2(2000);
4670 l_msg_count NUMBER := 0;
4671 BEGIN
4672
4673 IF (x_to_id <> FND_API.G_MISS_NUM AND
4674 x_to_id <> p_from_id) THEN
4675 UPDATE HZ_ORG_CONTACTS
4676 SET
4677 STATUS = 'M',
4678 last_update_date = hz_utility_pub.last_update_date,
4679 last_updated_by = hz_utility_pub.user_id,
4680 last_update_login = hz_utility_pub.last_update_login,
4681 request_id = hz_utility_pub.request_id,
4682 program_application_id = hz_utility_pub.program_application_id,
4683 program_id = hz_utility_pub.program_id,
4684 program_update_date = sysdate
4685 WHERE org_contact_id = p_from_id;
4686
4687 DELETE FROM HZ_DQM_SYNC_INTERFACE WHERE STAGED_FLAG='N' AND ENTITY='CONTACTS'
4688 AND RECORD_ID=p_from_id;
4689
4690 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
4691 p_init_msg_list => FND_API.G_FALSE,
4692 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
4693 p_old_owner_table_id => p_from_id,
4694 p_new_owner_table_id => x_to_id,
4695 p_owner_table_name =>'HZ_ORG_CONTACTS',
4696 p_orig_system => null,
4697 p_orig_system_reference => null,
4698 p_reason_code => 'MERGED',
4699 x_return_status => x_return_status,
4700 x_msg_count =>l_msg_count,
4701 x_msg_data =>l_msg_data);
4702 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4703 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4704 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
4705 FND_MSG_PUB.ADD;
4706 x_return_status := FND_API.G_RET_STS_ERROR;
4707 RETURN;
4708 END IF;
4709
4710 ELSE
4711 UPDATE HZ_ORG_CONTACTS
4712 SET
4713 party_site_id = p_to_fk_id,
4714 last_update_date = hz_utility_pub.last_update_date,
4715 last_updated_by = hz_utility_pub.user_id,
4716 last_update_login = hz_utility_pub.last_update_login,
4717 request_id = hz_utility_pub.request_id,
4718 program_application_id = hz_utility_pub.program_application_id,
4719 program_id = hz_utility_pub.program_id,
4720 program_update_date = sysdate
4721 WHERE org_contact_id = p_from_id;
4722
4723 END IF;
4724
4725 EXCEPTION
4726 WHEN OTHERS THEN
4727 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4728 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4729 FND_MSG_PUB.ADD;
4730 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4731 END do_org_contact_transfer;
4732
4733 PROCEDURE do_org_contact_transfer2(
4734 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
4735 x_to_id IN OUT NOCOPY NUMBER,
4736 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4737 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4738 x_return_status IN OUT NOCOPY VARCHAR2
4739 ) IS
4740
4741 CURSOR c_merge_to_org_contact IS
4742 SELECT org_contact_id
4743 FROM HZ_ORG_CONTACTS
4744 WHERE party_relationship_id = p_to_fk_id;
4745
4746 CURSOR c_org_cont_attributes(cp_org_cnt_id number) is
4747 select
4748 DEPARTMENT_CODE
4749 , DEPARTMENT
4750 , TITLE
4751 , JOB_TITLE
4752 , MAIL_STOP
4753 , CONTACT_KEY
4754 , DECISION_MAKER_FLAG
4755 , JOB_TITLE_CODE
4756 , MANAGED_BY
4757 , REFERENCE_USE_FLAG
4758 , RANK
4759 , NATIVE_LANGUAGE
4760 , OTHER_LANGUAGE_1
4761 , OTHER_LANGUAGE_2
4762 from hz_org_contacts
4763 where org_contact_id = cp_org_cnt_id;
4764
4765 l_to_orgcontact_id NUMBER;
4766 l_msg_data VARCHAR2(2000);
4767 l_msg_count NUMBER := 0;
4768
4769 L_FROM_DEPARTMENT_CODE HZ_ORG_CONTACTS.DEPARTMENT_CODE%TYPE;
4770 L_FROM_DEPARTMENT HZ_ORG_CONTACTS.DEPARTMENT%TYPE;
4771 L_FROM_TITLE HZ_ORG_CONTACTS.TITLE%TYPE;
4772 L_FROM_JOB_TITLE HZ_ORG_CONTACTS.JOB_TITLE%TYPE;
4773 L_FROM_MAIL_STOP HZ_ORG_CONTACTS.MAIL_STOP%TYPE;
4774 L_FROM_CONTACT_KEY HZ_ORG_CONTACTS.CONTACT_KEY%TYPE;
4775 L_FROM_DECISION_MAKER_FLAG HZ_ORG_CONTACTS.DECISION_MAKER_FLAG%TYPE;
4776 L_FROM_JOB_TITLE_CODE HZ_ORG_CONTACTS.JOB_TITLE_CODE%TYPE;
4777 L_FROM_MANAGED_BY HZ_ORG_CONTACTS.MANAGED_BY%TYPE;
4778 L_FROM_REFERENCE_USE_FLAG HZ_ORG_CONTACTS.REFERENCE_USE_FLAG%TYPE;
4779 L_FROM_RANK HZ_ORG_CONTACTS.RANK%TYPE;
4780 L_FROM_NATIVE_LANGUAGE HZ_ORG_CONTACTS.NATIVE_LANGUAGE%TYPE;
4781 L_FROM_OTHER_LANGUAGE_1 HZ_ORG_CONTACTS.OTHER_LANGUAGE_1%TYPE;
4782 L_FROM_OTHER_LANGUAGE_2 HZ_ORG_CONTACTS.OTHER_LANGUAGE_2%TYPE;
4783
4784 BEGIN
4785
4786 IF (p_from_fk_id = p_to_fk_id) THEN
4787 RETURN;
4788 END IF;
4789
4790 OPEN c_merge_to_org_contact;
4791 FETCH c_merge_to_org_contact INTO l_to_orgcontact_id;
4792 IF c_merge_to_org_contact%NOTFOUND THEN
4793 CLOSE c_merge_to_org_contact;
4794 UPDATE HZ_ORG_CONTACTS
4795 SET
4796 party_relationship_id = p_to_fk_id,
4797 last_update_date = hz_utility_pub.last_update_date,
4798 last_updated_by = hz_utility_pub.user_id,
4799 last_update_login = hz_utility_pub.last_update_login,
4800 request_id = hz_utility_pub.request_id,
4801 program_application_id = hz_utility_pub.program_application_id,
4802 program_id = hz_utility_pub.program_id,
4803 program_update_date = sysdate
4804 WHERE org_contact_id = p_from_id;
4805 ELSE
4806 CLOSE c_merge_to_org_contact;
4807
4808 -- bug 5100644: carry over not null org contact attributes
4809
4810 open c_org_cont_attributes(p_from_id);
4811 fetch c_org_cont_attributes into
4812 L_FROM_DEPARTMENT_CODE,
4813 L_FROM_DEPARTMENT,
4814 L_FROM_TITLE,
4815 L_FROM_JOB_TITLE,
4816 L_FROM_MAIL_STOP,
4817 L_FROM_CONTACT_KEY,
4818 L_FROM_DECISION_MAKER_FLAG,
4819 L_FROM_JOB_TITLE_CODE,
4820 L_FROM_MANAGED_BY,
4821 L_FROM_REFERENCE_USE_FLAG,
4822 L_FROM_RANK,
4823 L_FROM_NATIVE_LANGUAGE,
4824 L_FROM_OTHER_LANGUAGE_1,
4825 L_FROM_OTHER_LANGUAGE_2;
4826 close c_org_cont_attributes;
4827
4828 UPDATE HZ_ORG_CONTACTS
4829 SET
4830 DEPARTMENT_CODE = DECODE(DEPARTMENT_CODE, NULL, L_FROM_DEPARTMENT_CODE,DEPARTMENT_CODE),
4831 DEPARTMENT = DECODE(DEPARTMENT, NULL, L_FROM_DEPARTMENT,DEPARTMENT ),
4832 TITLE = DECODE(TITLE, NULL, L_FROM_TITLE,TITLE),
4833 JOB_TITLE = DECODE(JOB_TITLE, NULL, L_FROM_JOB_TITLE,JOB_TITLE),
4834 MAIL_STOP = DECODE(MAIL_STOP, NULL, L_FROM_MAIL_STOP,MAIL_STOP),
4835 CONTACT_KEY = DECODE(CONTACT_KEY, NULL, L_FROM_CONTACT_KEY,CONTACT_KEY),
4836 DECISION_MAKER_FLAG = DECODE(DECISION_MAKER_FLAG, NULL, L_FROM_DECISION_MAKER_FLAG,DECISION_MAKER_FLAG),
4837 JOB_TITLE_CODE = DECODE(JOB_TITLE_CODE, NULL, L_FROM_JOB_TITLE_CODE,JOB_TITLE_CODE),
4838 MANAGED_BY = DECODE(MANAGED_BY, NULL, L_FROM_MANAGED_BY,MANAGED_BY),
4839 REFERENCE_USE_FLAG = DECODE(REFERENCE_USE_FLAG, NULL, L_FROM_REFERENCE_USE_FLAG,REFERENCE_USE_FLAG),
4840 RANK = DECODE(RANK, NULL, L_FROM_RANK,RANK),
4841 NATIVE_LANGUAGE = DECODE(NATIVE_LANGUAGE, NULL, L_FROM_NATIVE_LANGUAGE,NATIVE_LANGUAGE),
4842 OTHER_LANGUAGE_1 = DECODE(OTHER_LANGUAGE_1, NULL, L_FROM_OTHER_LANGUAGE_1,OTHER_LANGUAGE_1),
4843 OTHER_LANGUAGE_2 = DECODE(OTHER_LANGUAGE_2, NULL, L_FROM_OTHER_LANGUAGE_2,OTHER_LANGUAGE_2)
4844
4845 WHERE ORG_CONTACT_ID = l_to_orgcontact_id;
4846
4847
4848 UPDATE HZ_ORG_CONTACTS
4849 SET
4850 STATUS = 'M',
4851 last_update_date = hz_utility_pub.last_update_date,
4852 last_updated_by = hz_utility_pub.user_id,
4853 last_update_login = hz_utility_pub.last_update_login,
4854 request_id = hz_utility_pub.request_id,
4855 program_application_id = hz_utility_pub.program_application_id,
4856 program_id = hz_utility_pub.program_id,
4857 program_update_date = sysdate
4858 WHERE org_contact_id = p_from_id;
4859
4860 DELETE FROM HZ_DQM_SYNC_INTERFACE WHERE STAGED_FLAG='N' AND ENTITY='CONTACTS'
4861 AND RECORD_ID=p_from_id;
4862
4863 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
4864 p_init_msg_list => FND_API.G_FALSE,
4865 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
4866 p_old_owner_table_id => p_from_id,
4867 p_new_owner_table_id => l_to_orgcontact_id,
4868 p_owner_table_name =>'HZ_ORG_CONTACTS',
4869 p_orig_system => null,
4870 p_orig_system_reference => null,
4871 p_reason_code => 'MERGED',
4872 x_return_status => x_return_status,
4873 x_msg_count =>l_msg_count,
4874 x_msg_data =>l_msg_data);
4875 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4876 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4877 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
4878 FND_MSG_PUB.ADD;
4879 x_return_status := FND_API.G_RET_STS_ERROR;
4880 RETURN;
4881 END IF;
4882
4883 ---for NOCOPY fix
4884 x_to_id := l_to_orgcontact_id;
4885 END IF;
4886
4887 EXCEPTION
4888 WHEN OTHERS THEN
4889 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
4890 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
4891 FND_MSG_PUB.ADD;
4892 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4893 END do_org_contact_transfer2;
4894
4895
4896
4897 --4307667
4898 PROCEDURE do_party_usage_merge(
4899 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
4900 x_to_id IN OUT NOCOPY NUMBER,
4901 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4902 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
4903 x_return_status IN OUT NOCOPY VARCHAR2
4904
4905 ) IS
4906 x_msg_count VARCHAR2(2000);
4907 x_msg_data VARCHAR2(4000);
4908 p_init_msg_list VARCHAR2(32767);
4909 l_from_usage_code VARCHAR2(32767);
4910 p_party_usg_assignment_rec APPS.HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type;
4911 BEGIN
4912 p_init_msg_list := 'T';
4913
4914 begin
4915 SELECT PARTY_USAGE_CODE INTO l_from_usage_code
4916 FROM hz_party_usg_assignments
4917 where party_usg_assignment_id = p_from_id;
4918 EXCEPTION
4919 WHEN NO_DATA_FOUND THEN RETURN;
4920 end;
4921 /*
4922 IF l_from_usage_code = 'DEFAULT' THEN
4923 UPDATE hz_party_usg_assignments
4924 SET status_flag = 'M',
4925 effective_end_date = TRUNC(sysdate)
4926 WHERE party_usg_assignment_id = p_from_id;
4927 ELSE
4928 */ -- bug 5007937
4929 --check for duplicate usage
4930 HZ_PARTY_USG_ASSIGNMENT_PVT.find_duplicates(p_from_id,p_to_fk_id,x_to_id);
4931 IF x_to_id IS NOT NULL THEN
4932 --duplicate usage exists
4933 UPDATE hz_party_usg_assignments
4934 SET status_flag = 'M',
4935 effective_end_date = sysdate
4936 WHERE party_usg_assignment_id = p_from_id;
4937
4938 ELSE
4939 --usage doesnot exist create a new usage for merge-to party
4940 --to handle transition rule new usage is created using API with 0 validation level, instead of updating merge-from party assignment
4941 p_party_usg_assignment_rec.party_id := p_to_fk_id;
4942
4943 SELECT
4944 party_usage_code,
4945 effective_start_date,
4946 effective_end_date,
4947 comments,
4948 owner_table_name,
4949 owner_table_id,
4950 created_by_module,
4951 attribute_category,
4952 attribute1,
4953 attribute2,
4954 attribute3,
4955 attribute4,
4956 attribute5,
4957 attribute6,
4958 attribute7,
4959 attribute8,
4960 attribute9,
4961 attribute10,
4962 attribute11,
4963 attribute12,
4964 attribute13,
4965 attribute14,
4966 attribute15,
4967 attribute16,
4968 attribute17,
4969 attribute18,
4970 attribute19,
4971 attribute20
4972 INTO
4973 p_party_usg_assignment_rec.party_usage_code,
4974 p_party_usg_assignment_rec.effective_start_date,
4975 p_party_usg_assignment_rec.effective_end_date,
4976 p_party_usg_assignment_rec.comments,
4977 p_party_usg_assignment_rec.owner_table_name,
4978 p_party_usg_assignment_rec.owner_table_id,
4979 p_party_usg_assignment_rec.created_by_module,
4980 p_party_usg_assignment_rec.attribute_category,
4981 p_party_usg_assignment_rec.attribute1,
4982 p_party_usg_assignment_rec.attribute2,
4983 p_party_usg_assignment_rec.attribute3,
4984 p_party_usg_assignment_rec.attribute4,
4985 p_party_usg_assignment_rec.attribute5,
4986 p_party_usg_assignment_rec.attribute6,
4987 p_party_usg_assignment_rec.attribute7,
4988 p_party_usg_assignment_rec.attribute8,
4989 p_party_usg_assignment_rec.attribute9,
4990 p_party_usg_assignment_rec.attribute10,
4991 p_party_usg_assignment_rec.attribute11,
4992 p_party_usg_assignment_rec.attribute12,
4993 p_party_usg_assignment_rec.attribute13,
4994 p_party_usg_assignment_rec.attribute14,
4995 p_party_usg_assignment_rec.attribute15,
4996 p_party_usg_assignment_rec.attribute16,
4997 p_party_usg_assignment_rec.attribute17,
4998 p_party_usg_assignment_rec.attribute18,
4999 p_party_usg_assignment_rec.attribute19,
5000 p_party_usg_assignment_rec.attribute20
5001 FROM hz_party_usg_assignments
5002 WHERE party_usg_assignment_id = p_from_id;
5003
5004 HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage
5005 (p_init_msg_list,0,p_party_usg_assignment_rec,x_return_status,x_msg_count,x_msg_data);
5006
5007 IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
5008
5009 DELETE FROM hz_party_usg_assignments
5010 WHERE party_usg_assignment_id = p_from_id;
5011
5012 /* bug 5007937
5013 DELETE FROM hz_party_usg_assignments
5014 WHERE party_id = p_to_fk_id
5015 AND party_usage_code = 'DEFAULT';
5016 */
5017
5018 END IF;
5019
5020 END IF; --x_to_assignment_id
5021 -- END IF; --l_from_usage_code
5022
5023 EXCEPTION
5024 WHEN OTHERS THEN
5025 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
5026 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5027 FND_MSG_PUB.ADD;
5028 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5029 END do_party_usage_merge;
5030
5031
5032 PROCEDURE do_party_reln_obj_merge(
5033 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
5034 x_to_id IN OUT NOCOPY NUMBER,
5035 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
5036 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
5037 x_return_status IN OUT NOCOPY VARCHAR2
5038
5039 ) IS
5040
5041 CURSOR c_party(cp_party_reln_id NUMBER) IS
5042 SELECT party_id
5043 FROM HZ_RELATIONSHIPS
5044 WHERE relationship_id = cp_party_reln_id
5045 AND DIRECTIONAL_FLAG = 'F'
5046 and status in ('A','I'); -- bug 5094383
5047
5048 CURSOR c_to_party_reln IS
5049 SELECT relationship_id
5050 FROM HZ_RELATIONSHIPS
5051 WHERE relationship_id = x_to_id
5052 FOR UPDATE NOWAIT;
5053
5054 cursor c_start_end_date is
5055 SELECT start_date, nvl(end_date,to_date('12/31/4712','MM/DD/YYYY')), actual_content_source --5404244
5056 FROM HZ_RELATIONSHIPS
5057 WHERE relationship_id = p_from_id
5058 AND DIRECTIONAL_FLAG='F';
5059
5060 CURSOR c_check_valid_merge(from_start_date date, from_end_date date, from_cont_source_type VARCHAR2, from_cont_source VARCHAR2) IS
5061 SELECT relationship_id, nvl(request_id,-1)
5062 FROM HZ_RELATIONSHIPS
5063 WHERE object_id = p_to_fk_id
5064 AND actual_content_source = DECODE(from_cont_source_type, 'PURCHASED', from_cont_source, actual_content_source) --5404244
5065 AND subject_id = (
5066 SELECT SUBJECT_ID
5067 FROM HZ_RELATIONSHIPS
5068 WHERE relationship_id = p_from_id
5069 AND DIRECTIONAL_FLAG='F')
5070 AND subject_id NOT IN
5071 ((SELECT from_party_id FROM hz_merge_parties WHERE to_party_id = p_to_fk_id AND merge_status='PENDING' )) --bug 4867151
5072 AND subject_id NOT IN
5073 ((SELECT to_party_id FROM hz_merge_parties WHERE to_party_id = p_to_fk_id AND merge_status='PENDING' )) --bug 4867151
5074 AND relationship_code = (
5075 SELECT relationship_code -- Bug No: 4571969
5076 FROM HZ_RELATIONSHIPS
5077 WHERE relationship_id = p_from_id
5078 AND DIRECTIONAL_FLAG='F')
5079 AND DIRECTIONAL_FLAG = 'F'
5080 AND ((start_date between from_start_date and from_end_date)
5081 or (nvl(end_date,to_date('12/31/4712','MM/DD/YYYY')) between from_start_date and from_end_date)
5082 or(start_date<from_start_date and nvl(end_date,to_date('12/31/4712','MM/DD/YYYY'))>from_end_date))
5083 AND status IN ('A','I'); --bug 5260367
5084
5085 l_party_rel_id NUMBER;
5086 l_from_party_id NUMBER;
5087 l_to_party_id NUMBER;
5088 l_dup_reln_id NUMBER;
5089 l_request_id NUMBER;
5090 l_from_last_upd_date DATE;
5091 l_to_last_upd_date DATE;
5092 l_from_party_reln_type VARCHAR2(255);
5093 l_merge_to_id NUMBER;
5094 l_temp NUMBER;
5095 from_start_date date;
5096 from_end_date date;
5097
5098 --Bug 2619913 Do not allow self relationships creation unless
5099 --defined in the relationship type table
5100
5101 l_subject_id NUMBER;
5102 l_rel_type HZ_RELATIONSHIPS.RELATIONSHIP_TYPE%TYPE;
5103 l_rel_code HZ_RELATIONSHIPS.RELATIONSHIP_CODE%TYPE;
5104 l_subject_type HZ_RELATIONSHIPS.SUBJECT_TYPE%TYPE;
5105 l_object_type HZ_RELATIONSHIPS.OBJECT_TYPE%TYPE;
5106 l_self_rel_flag VARCHAR2(1);
5107
5108 l_rel_party_id HZ_RELATIONSHIPS.PARTY_ID%TYPE;
5109 l_new_obj_party_name HZ_PARTIES.PARTY_NAME%TYPE;
5110 l_subject_name HZ_PARTIES.PARTY_NAME%TYPE;
5111 l_rel_party_number HZ_PARTIES.PARTY_NUMBER%TYPE;
5112 from_cont_source HZ_RELATIONSHIPS.ACTUAL_CONTENT_SOURCE%TYPE; --5404244
5113 from_cont_source_type HZ_ORIG_SYSTEMS_B.ORIG_SYSTEM_TYPE%TYPE;
5114
5115 --6696774 Start
5116 l_par_exists VARCHAR2(1);
5117 l_direction_code HZ_RELATIONSHIPS.DIRECTION_CODE%TYPE;
5118 --6696774 end
5119 BEGIN
5120
5121 IF (x_to_id <> FND_API.G_MISS_NUM AND x_to_id <> p_from_id) THEN
5122 OPEN c_party(p_from_id);
5123 FETCH c_party INTO l_from_party_id;
5124 IF c_party%NOTFOUND THEN
5125 l_from_party_id := NULL;
5126 END IF;
5127 CLOSE c_party;
5128
5129 OPEN c_party(x_to_id);
5130 FETCH c_party INTO l_to_party_id;
5131 IF c_party%NOTFOUND THEN
5132 l_to_party_id := NULL;
5133 END IF;
5134 CLOSE c_party;
5135
5136 IF l_to_party_id IS NOT NULL AND l_from_party_id IS NOT NULL
5137 AND l_from_party_id <> l_to_party_id THEN
5138 FND_MESSAGE.SET_NAME('AR', 'HZ_RELN_MERGE_NOT_ALLOWED');
5139 FND_MESSAGE.SET_TOKEN('FROMID',p_from_id);
5140 FND_MESSAGE.SET_TOKEN('TOID',x_to_id);
5141 FND_MSG_PUB.ADD;
5142 x_return_status := FND_API.G_RET_STS_ERROR;
5143 RETURN;
5144 END IF;
5145
5146 IF l_from_party_id IS NOT NULL THEN
5147 OPEN c_to_party_reln;
5148 UPDATE HZ_RELATIONSHIPS
5149 SET
5150 party_id = l_from_party_id,
5151 last_update_date = hz_utility_pub.last_update_date,
5152 last_updated_by = hz_utility_pub.user_id,
5153 last_update_login = hz_utility_pub.last_update_login,
5154 request_id = hz_utility_pub.request_id,
5155 program_application_id = hz_utility_pub.program_application_id,
5156 program_id = hz_utility_pub.program_id,
5157 program_update_date = sysdate
5158 WHERE relationship_id = x_to_id;
5159 CLOSE c_to_party_reln;
5160 END IF;
5161
5162 UPDATE HZ_RELATIONSHIPS
5163 SET
5164 STATUS = 'M',
5165 last_update_date = hz_utility_pub.last_update_date,
5166 last_updated_by = hz_utility_pub.user_id,
5167 last_update_login = hz_utility_pub.last_update_login,
5168 request_id = hz_utility_pub.request_id,
5169 program_application_id = hz_utility_pub.program_application_id,
5170 program_id = hz_utility_pub.program_id,
5171 program_update_date = sysdate
5172 WHERE relationship_id = p_from_id;
5173
5174 --4307667 merge usages with owner_table_name 'HZ_RELATIONSHIPS'
5175 UPDATE hz_party_usg_assignments
5176 SET status_flag = 'M',
5177 effective_end_date = trunc(sysdate)
5178 WHERE owner_table_id = p_from_id
5179 AND owner_table_name = 'HZ_RELATIONSHIPS'
5180 AND party_id = p_from_fk_id;
5181
5182 ----Start of DlProject Phase2--------------------
5183 do_hierarchy_nodes_merge(p_from_id => p_from_id,
5184 p_from_fk_id => p_from_fk_id,
5185 p_to_fk_id => p_to_fk_id,
5186 x_return_status =>x_return_status,
5187 p_action => 'M',
5188 p_sub_obj_merge =>'OBJ'
5189 );
5190 ----End of DlProject Phase2--------------------
5191 ELSE
5192
5193 open c_start_end_date;
5194 fetch c_start_end_date into from_start_date,from_end_date,from_cont_source;
5195 close c_start_end_date;
5196
5197 SELECT orig_system_type INTO from_cont_source_type --5404244
5198 FROM HZ_ORIG_SYSTEMS_B
5199 WHERE orig_system = from_cont_source;
5200 OPEN c_check_valid_merge(from_start_date, from_end_date, from_cont_source_type,from_cont_source);
5201 FETCH c_check_valid_merge INTO l_dup_reln_id, l_request_id;
5202 IF c_check_valid_merge%FOUND AND
5203 l_request_id <> hz_utility_pub.request_id THEN
5204 CLOSE c_check_valid_merge;
5205 FND_MESSAGE.SET_NAME('AR', 'HZ_RELN_TRANSFER_NOT_ALLOWED');
5206 FND_MESSAGE.SET_TOKEN('FROMID',p_from_id);
5207 FND_MSG_PUB.ADD;
5208 x_return_status := FND_API.G_RET_STS_ERROR;
5209 RETURN;
5210 END IF;
5211 CLOSE c_check_valid_merge;
5212
5213 --6696774 Start
5214 SELECT subject_id, relationship_type, relationship_code,subject_type,object_type,direction_code into l_subject_id, l_rel_type, l_rel_code,
5215 l_subject_type, l_object_type, l_direction_code
5216 FROM HZ_RELATIONSHIPS
5217 WHERE relationship_id = p_from_id
5218 AND directional_flag = 'F';
5219
5220 SELECT allow_relate_to_self_flag
5221 INTO l_self_rel_flag
5222 FROM HZ_RELATIONSHIP_TYPES
5223 WHERE RELATIONSHIP_TYPE = l_rel_type
5224 AND FORWARD_REL_CODE = l_rel_code
5225 AND SUBJECT_TYPE = l_subject_type
5226 AND OBJECT_TYPE = l_object_type;
5227
5228 l_par_exists := 'N';
5229
5230 BEGIN
5231
5232 SELECT 'Y' into l_par_exists
5233 FROM hz_hierarchy_nodes
5234 WHERE child_id = l_subject_id
5235 AND parent_id = p_to_fk_id
5236 AND l_direction_code = 'P'
5237 AND rownum = 1;
5238
5239 EXCEPTION
5240 WHEN NO_DATA_FOUND THEN
5241 null;
5242 END;
5243
5244 IF (l_subject_id <> p_to_fk_id OR l_self_rel_flag = 'Y') AND l_par_exists = 'N' THEN
5245 --6696774 END;
5246
5247 ----Start of DlProject Phase2--------------------
5248 do_hierarchy_nodes_merge(p_from_id => p_from_id,
5249 p_from_fk_id => p_from_fk_id,
5250 p_to_fk_id => p_to_fk_id,
5251 x_return_status =>x_return_status,
5252 p_action => 'T',
5253 p_sub_obj_merge =>'OBJ'
5254 );
5255 ----End of DlProject Phase2--------------------
5256 UPDATE HZ_RELATIONSHIPS
5257 SET
5258 object_id = p_to_fk_id,
5259 last_update_date = hz_utility_pub.last_update_date,
5260 last_updated_by = hz_utility_pub.user_id,
5261 last_update_login = hz_utility_pub.last_update_login,
5262 request_id = hz_utility_pub.request_id,
5263 program_application_id = hz_utility_pub.program_application_id,
5264 program_id = hz_utility_pub.program_id,
5265 program_update_date = sysdate
5266 WHERE relationship_id = p_from_id
5267 AND DIRECTIONAL_FLAG = 'F'
5268 RETURNING subject_id, relationship_type, relationship_code,
5269 subject_type, object_type, party_id
5270 into l_subject_id, l_rel_type, l_rel_code,
5271 l_subject_type , l_object_type , l_rel_party_id;
5272
5273 UPDATE HZ_RELATIONSHIPS
5274 SET
5275 subject_id = p_to_fk_id,
5276 last_update_date = hz_utility_pub.last_update_date,
5277 last_updated_by = hz_utility_pub.user_id,
5278 last_update_login = hz_utility_pub.last_update_login,
5279 request_id = hz_utility_pub.request_id,
5280 program_application_id = hz_utility_pub.program_application_id,
5281 program_id = hz_utility_pub.program_id,
5282 program_update_date = sysdate
5283 WHERE relationship_id = p_from_id
5284 AND DIRECTIONAL_FLAG = 'B';
5285
5286 ---Bug# 2688231 After transferring the reln,the name
5287 --- of the relationship party should also be changed
5288
5289 if l_rel_party_id is not null then
5290
5291 select sub.party_name , obj.party_name , rel.party_number
5292 into l_subject_name , l_new_obj_party_name , l_rel_party_number
5293 from hz_parties sub , hz_parties obj , hz_parties rel
5294 where sub.party_id = l_subject_id
5295 and obj.party_id = p_to_fk_id
5296 and rel.party_id = l_rel_party_id;
5297
5298 UPDATE HZ_PARTIES
5299 SET PARTY_NAME = SUBSTRB(l_subject_name || '-' ||
5300 l_new_obj_party_name || '-' ||
5301 l_rel_party_number, 1, 360)
5302 WHERE party_id = l_rel_party_id;
5303
5304 end if;
5305
5306 --Check if the object_id and subject_id are same and the
5307 ELSIF (l_subject_id = p_to_fk_id AND l_self_rel_flag = 'N') OR l_par_exists = 'Y' THEN --bug 6696774
5308 --IF l_subject_id = p_to_fk_id THEN
5309
5310 BEGIN
5311 --self relationship is not allowed then, Inactivate it
5312 SELECT allow_relate_to_self_flag
5313 INTO l_self_rel_flag
5314 FROM HZ_RELATIONSHIP_TYPES
5315 WHERE RELATIONSHIP_TYPE = l_rel_type
5316 AND FORWARD_REL_CODE = l_rel_code
5317 AND SUBJECT_TYPE = l_subject_type
5318 AND OBJECT_TYPE = l_object_type;
5319
5320 IF l_self_rel_flag = 'N' THEN
5321 --Inactivate the relationships BOTH FORWARD AND BACKWARD
5322 UPDATE HZ_RELATIONSHIPS
5323 SET
5324 STATUS = 'I',
5325 END_DATE = sysdate,
5326 last_update_date = hz_utility_pub.last_update_date,
5327 last_updated_by = hz_utility_pub.user_id,
5328 last_update_login = hz_utility_pub.last_update_login,
5329 request_id = hz_utility_pub.request_id,
5330 program_application_id = hz_utility_pub.program_application_id,
5331 program_id = hz_utility_pub.program_id,
5332 program_update_date = sysdate
5333 WHERE relationship_id = p_from_id;
5334 ---Start of Bug:3880218----
5335 IF l_rel_party_id is not null THEN
5336 UPDATE HZ_PARTIES
5337 SET STATUS = 'I',
5338 last_update_date = hz_utility_pub.last_update_date,
5339 last_updated_by = hz_utility_pub.user_id,
5340 last_update_login = hz_utility_pub.last_update_login,
5341 request_id = hz_utility_pub.request_id,
5342 program_application_id = hz_utility_pub.program_application_id,
5343 program_id = hz_utility_pub.program_id,
5344 program_update_date = sysdate
5345 WHERE PARTY_ID = l_rel_party_id;
5346 END IF;
5347 ----End of Bug:3880218----
5348 ----Start of DlProject Phase2--------------------
5349 do_hierarchy_nodes_merge(p_from_id => p_from_id,
5350 p_from_fk_id => p_from_fk_id,
5351 p_to_fk_id => p_to_fk_id,
5352 x_return_status =>x_return_status,
5353 p_action => 'I'
5354 );
5355 ----End of DlProject Phase2--------------------
5356 ELSE
5357 --bug 4867151--start
5358 IF l_rel_party_id is not null THEN
5359 UPDATE HZ_PARTIES
5360 SET STATUS = 'M',
5361 last_update_date = hz_utility_pub.last_update_date,
5362 last_updated_by = hz_utility_pub.user_id,
5363 last_update_login = hz_utility_pub.last_update_login,
5364 request_id = hz_utility_pub.request_id,
5365 program_application_id = hz_utility_pub.program_application_id,
5366 program_id = hz_utility_pub.program_id,
5367 program_update_date = sysdate
5368 WHERE PARTY_ID in (select party_id from hz_relationships where subject_id=p_to_fk_id
5369 and object_id=p_to_fk_id and relationship_id <>p_from_id and status='A'
5370 AND ((start_date between from_start_date and from_end_date)
5371 or (nvl(end_date,to_date('12/31/4712','MM/DD/YYYY')) between from_start_date and from_end_date)
5372 or(start_date<from_start_date and nvl(end_date,to_date('12/31/4712','MM/DD/YYYY'))>from_end_date)));
5373 END IF;
5374
5375 UPDATE HZ_RELATIONSHIPS
5376 SET
5377 STATUS = 'M',
5378 END_DATE = sysdate,
5379 last_update_date = hz_utility_pub.last_update_date,
5380 last_updated_by = hz_utility_pub.user_id,
5381 last_update_login = hz_utility_pub.last_update_login,
5382 request_id = hz_utility_pub.request_id,
5383 program_application_id = hz_utility_pub.program_application_id,
5384 program_id = hz_utility_pub.program_id,
5385 program_update_date = sysdate
5386 WHERE relationship_id in (select relationship_id from hz_relationships where subject_id=p_to_fk_id
5387 and object_id=p_to_fk_id and relationship_id <>p_from_id and status='A'
5388 AND ((start_date between from_start_date and from_end_date)
5389 or (nvl(end_date,to_date('12/31/4712','MM/DD/YYYY')) between from_start_date and from_end_date)
5390 or(start_date<from_start_date and nvl(end_date,to_date('12/31/4712','MM/DD/YYYY'))>from_end_date)));
5391
5392
5393 do_hierarchy_nodes_merge(p_from_id => p_from_id,
5394 p_from_fk_id => p_from_fk_id,
5395 p_to_fk_id => p_to_fk_id,
5396 x_return_status =>x_return_status,
5397 p_action => 'M'
5398 );
5399
5400 --bug 4867151--end
5401 END IF; --l_self_rel_flag
5402
5403 EXCEPTION
5404 WHEN OTHERS THEN
5405 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
5406 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5407 FND_MSG_PUB.ADD;
5408 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5409
5410 END;
5411 END IF; --l_subject_id = p_to_fk_id
5412
5413
5414
5415 END IF;
5416
5417 EXCEPTION
5418 WHEN OTHERS THEN
5419 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
5420 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5421 FND_MSG_PUB.ADD;
5422 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5423 END do_party_reln_obj_merge;
5424
5425 PROCEDURE do_party_reln_subj_merge(
5426 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
5427 x_to_id IN OUT NOCOPY NUMBER,
5428 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
5429 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
5430 x_return_status IN OUT NOCOPY VARCHAR2
5431
5432 ) IS
5433
5434 CURSOR c_party(cp_party_reln_id NUMBER) IS
5435 SELECT party_id
5436 FROM HZ_RELATIONSHIPS
5437 WHERE relationship_id = cp_party_reln_id
5438 AND DIRECTIONAL_FLAG = 'F'
5439 and status in ('A','I'); -- bug 5094383
5440
5441 CURSOR c_to_party_reln IS
5442 SELECT relationship_id
5443 FROM HZ_RELATIONSHIPS
5444 WHERE relationship_id = x_to_id
5445 FOR UPDATE NOWAIT;
5446
5447 cursor c_start_end_date is
5448 SELECT start_date, nvl(end_date,to_date('12/31/4712','MM/DD/YYYY')), actual_content_source --5404244
5449 FROM HZ_RELATIONSHIPS
5450 WHERE relationship_id = p_from_id
5451 AND DIRECTIONAL_FLAG='F';
5452
5453 CURSOR c_check_valid_merge(from_start_date date, from_end_date date, from_cont_source_type VARCHAR2, from_cont_source VARCHAR2) IS
5454 SELECT relationship_id, nvl(request_id,-1)
5455 FROM HZ_RELATIONSHIPS
5456 WHERE subject_id = p_to_fk_id
5457 AND actual_content_source = DECODE(from_cont_source_type, 'PURCHASED', from_cont_source, actual_content_source) --5404244
5458 AND object_id = (
5459 SELECT OBJECT_ID
5460 FROM HZ_RELATIONSHIPS
5461 WHERE relationship_id = p_from_id
5462 AND DIRECTIONAL_FLAG='F')
5463 AND object_id NOT IN
5464 ((SELECT from_party_id FROM hz_merge_parties WHERE to_party_id = p_to_fk_id AND merge_status='PENDING' )) --bug 4867151
5465 AND object_id NOT IN
5466 ((SELECT to_party_id FROM hz_merge_parties WHERE to_party_id = p_to_fk_id AND merge_status='PENDING' )) --bug 4867151
5467 AND relationship_code = (
5468 SELECT relationship_code -- Bug No: 4571969
5469 FROM HZ_RELATIONSHIPS
5470 WHERE relationship_id = p_from_id
5471 AND DIRECTIONAL_FLAG='F')
5472 AND DIRECTIONAL_FLAG = 'F'
5473 AND ((start_date between from_start_date and from_end_date)
5474 or (nvl(end_date,to_date('12/31/4712','MM/DD/YYYY')) between from_start_date and from_end_date)
5475 or(start_date<from_start_date and nvl(end_date,to_date('12/31/4712','MM/DD/YYYY'))>from_end_date))
5476 AND status IN ('A','I'); --bug 5260367
5477
5478 l_party_rel_id NUMBER;
5479 l_from_party_id NUMBER;
5480 l_to_party_id NUMBER;
5481 l_dup_reln_id NUMBER;
5482 l_request_id NUMBER;
5483 l_from_last_upd_date DATE;
5484 l_to_last_upd_date DATE;
5485 l_from_party_reln_type VARCHAR2(255);
5486 l_merge_to_id NUMBER;
5487 l_temp NUMBER;
5488 from_start_date date;
5489 from_end_date date;
5490 --Bug 2619913 Do not allow self relationships creation unless
5491 --defined in the relationship type table
5492
5493 l_object_id NUMBER;
5494 l_rel_type HZ_RELATIONSHIPS.RELATIONSHIP_TYPE%TYPE;
5495 l_rel_code HZ_RELATIONSHIPS.RELATIONSHIP_CODE%TYPE;
5496 l_subject_type HZ_RELATIONSHIPS.SUBJECT_TYPE%TYPE;
5497 l_object_type HZ_RELATIONSHIPS.OBJECT_TYPE%TYPE;
5498 l_self_rel_flag VARCHAR2(1);
5499
5500 l_rel_party_id HZ_RELATIONSHIPS.PARTY_ID%TYPE;
5501 l_new_subj_party_name HZ_PARTIES.PARTY_NAME%TYPE;
5502 l_object_name HZ_PARTIES.PARTY_NAME%TYPE;
5503 l_rel_party_number HZ_PARTIES.PARTY_NUMBER%TYPE;
5504 from_cont_source HZ_RELATIONSHIPS.ACTUAL_CONTENT_SOURCE%TYPE; --5404244
5505 from_cont_source_type HZ_ORIG_SYSTEMS_B.ORIG_SYSTEM_TYPE%TYPE;
5506
5507 --6696774 start
5508 l_par_exists VARCHAR2(1);
5509 l_direction_code HZ_RELATIONSHIPS.DIRECTION_CODE%TYPE;
5510 --6696774 start END
5511 BEGIN
5512
5513 IF (x_to_id <> FND_API.G_MISS_NUM AND x_to_id <> p_from_id) THEN
5514
5515 OPEN c_party(p_from_id);
5516 FETCH c_party INTO l_from_party_id;
5517 IF c_party%NOTFOUND THEN
5518 l_from_party_id := NULL;
5519 END IF;
5520 CLOSE c_party;
5521
5522 OPEN c_party(x_to_id);
5523 FETCH c_party INTO l_from_party_id;
5524 IF c_party%NOTFOUND THEN
5525 l_to_party_id := NULL;
5526 END IF;
5527 CLOSE c_party;
5528
5529
5530 IF l_to_party_id IS NOT NULL AND l_from_party_id IS NOT NULL
5531 AND l_from_party_id <> l_to_party_id THEN
5532 FND_MESSAGE.SET_NAME('AR', 'HZ_RELN_MERGE_NOT_ALLOWED');
5533 FND_MESSAGE.SET_TOKEN('FROMID',p_from_id);
5534 FND_MESSAGE.SET_TOKEN('TOID',x_to_id);
5535 FND_MSG_PUB.ADD;
5536 x_return_status := FND_API.G_RET_STS_ERROR;
5537 RETURN;
5538 END IF;
5539
5540 IF l_from_party_id IS NOT NULL THEN
5541 OPEN c_to_party_reln;
5542 UPDATE HZ_RELATIONSHIPS
5543 SET
5544 party_id = l_from_party_id,
5545 last_update_date = hz_utility_pub.last_update_date,
5546 last_updated_by = hz_utility_pub.user_id,
5547 last_update_login = hz_utility_pub.last_update_login,
5548 request_id = hz_utility_pub.request_id,
5549 program_application_id = hz_utility_pub.program_application_id,
5550 program_id = hz_utility_pub.program_id,
5551 program_update_date = sysdate
5552 WHERE relationship_id = x_to_id;
5553 CLOSE c_to_party_reln;
5554 END IF;
5555
5556 UPDATE HZ_RELATIONSHIPS
5557 SET
5558 STATUS = 'M',
5559 last_update_date = hz_utility_pub.last_update_date,
5560 last_updated_by = hz_utility_pub.user_id,
5561 last_update_login = hz_utility_pub.last_update_login,
5562 request_id = hz_utility_pub.request_id,
5563 program_application_id = hz_utility_pub.program_application_id,
5564 program_id = hz_utility_pub.program_id,
5565 program_update_date = sysdate
5566 WHERE relationship_id = p_from_id;
5567
5568
5569 --4307667 merge usages with owner_table_name 'HZ_RELATIONSHIPS'
5570 UPDATE hz_party_usg_assignments
5571 SET status_flag = 'M',
5572 effective_end_date = trunc(sysdate)
5573 WHERE owner_table_id = p_from_id
5574 AND owner_table_name = 'HZ_RELATIONSHIPS'
5575 AND party_id = p_from_fk_id;
5576
5577 ----Start of DlProject Phase2--------------------
5578 do_hierarchy_nodes_merge(p_from_id => p_from_id,
5579 p_from_fk_id => p_from_fk_id,
5580 p_to_fk_id => p_to_fk_id,
5581 x_return_status =>x_return_status,
5582 p_action => 'M',
5583 p_sub_obj_merge =>'SUB'
5584 );
5585 ----End of DlProject Phase2--------------------
5586
5587 ELSE
5588 open c_start_end_date;
5589 fetch c_start_end_date into from_start_date,from_end_date,from_cont_source;
5590 close c_start_end_date;
5591
5592 SELECT orig_system_type INTO from_cont_source_type --5404244
5593 FROM HZ_ORIG_SYSTEMS_B
5594 WHERE orig_system = from_cont_source;
5595
5596
5597 OPEN c_check_valid_merge(from_start_date,from_end_date,from_cont_source_type,from_cont_source);
5598
5599 FETCH c_check_valid_merge INTO l_dup_reln_id, l_request_id;
5600 IF c_check_valid_merge%FOUND AND
5601 l_request_id <> hz_utility_pub.request_id THEN
5602 CLOSE c_check_valid_merge;
5603
5604 FND_MESSAGE.SET_NAME('AR', 'HZ_RELN_TRANSFER_NOT_ALLOWED');
5605 FND_MESSAGE.SET_TOKEN('FROMID',p_from_id);
5606 FND_MSG_PUB.ADD;
5607 x_return_status := FND_API.G_RET_STS_ERROR;
5608 RETURN;
5609 END IF;
5610
5611 CLOSE c_check_valid_merge;
5612 --6696774 Start
5613 SELECT object_id, relationship_type, relationship_code,subject_type,object_type,direction_code into l_object_id, l_rel_type, l_rel_code,
5614 l_subject_type, l_object_type, l_direction_code
5615 FROM HZ_RELATIONSHIPS
5616 WHERE relationship_id = p_from_id
5617 AND directional_flag = 'F';
5618
5619 l_par_exists := 'N';
5620
5621 BEGIN
5622 SELECT 'Y' into l_par_exists
5623 FROM hz_hierarchy_nodes
5624 WHERE child_id = l_object_id
5625 AND parent_id = p_to_fk_id
5626 AND l_direction_code = 'C'
5627 AND rownum = 1;
5628 EXCEPTION
5629 WHEN NO_DATA_FOUND THEN
5630 null;
5631 END;
5632
5633 SELECT allow_relate_to_self_flag
5634 INTO l_self_rel_flag
5635 FROM HZ_RELATIONSHIP_TYPES
5636 WHERE RELATIONSHIP_TYPE = l_rel_type
5637 AND FORWARD_REL_CODE = l_rel_code
5638 AND SUBJECT_TYPE = l_subject_type
5639 AND OBJECT_TYPE = l_object_type;
5640
5641 IF (l_object_id <> p_to_fk_id OR l_self_rel_flag = 'Y') AND l_par_exists = 'N' THEN
5642 --6696774 End
5643 ----Start of DlProject Phase2--------------------
5644 do_hierarchy_nodes_merge(p_from_id => p_from_id,
5645 p_from_fk_id => p_from_fk_id,
5646 p_to_fk_id => p_to_fk_id,
5647 x_return_status =>x_return_status,
5648 p_action => 'T',
5649 p_sub_obj_merge =>'SUB'
5650 );
5651 ----End of DlProject Phase2--------------------
5652
5653 UPDATE HZ_RELATIONSHIPS
5654 SET
5655 subject_id = p_to_fk_id,
5656 last_update_date = hz_utility_pub.last_update_date,
5657 last_updated_by = hz_utility_pub.user_id,
5658 last_update_login = hz_utility_pub.last_update_login,
5659 request_id = hz_utility_pub.request_id,
5660 program_application_id = hz_utility_pub.program_application_id,
5661 program_id = hz_utility_pub.program_id,
5662 program_update_date = sysdate
5663 WHERE relationship_id = p_from_id
5664 AND DIRECTIONAL_FLAG = 'F'
5665 RETURNING object_id, relationship_type, relationship_code ,
5666 subject_type, object_type, party_id
5667 into l_object_id, l_rel_type, l_rel_code,
5668 l_subject_type , l_object_type, l_rel_party_id;
5669
5670 UPDATE HZ_RELATIONSHIPS
5671 SET
5672 object_id = p_to_fk_id,
5673 last_update_date = hz_utility_pub.last_update_date,
5674 last_updated_by = hz_utility_pub.user_id,
5675 last_update_login = hz_utility_pub.last_update_login,
5676 request_id = hz_utility_pub.request_id,
5677 program_application_id = hz_utility_pub.program_application_id,
5678 program_id = hz_utility_pub.program_id,
5679 program_update_date = sysdate
5680 WHERE relationship_id = p_from_id
5681 AND DIRECTIONAL_FLAG = 'B';
5682
5683 ---Bug# 2688231 After transferring the reln,the name
5684 --- of the relationship party should also be changed
5685
5686 if l_rel_party_id is not null then
5687
5688 select sub.party_name , obj.party_name , rel.party_number
5689 into l_new_subj_party_name , l_object_name , l_rel_party_number
5690 from hz_parties sub , hz_parties obj , hz_parties rel
5691 where sub.party_id = p_to_fk_id
5692 and obj.party_id = l_object_id
5693 and rel.party_id = l_rel_party_id;
5694
5695 UPDATE HZ_PARTIES
5696 SET PARTY_NAME = SUBSTRB(l_new_subj_party_name || '-' ||
5697 l_object_name || '-' ||
5698 l_rel_party_number, 1, 360)
5699 WHERE party_id = l_rel_party_id;
5700
5701 end if;
5702 --Check if the object_id and subject_id are same and the
5703 --6696774 start
5704 ELSIF (l_object_id = p_to_fk_id AND l_self_rel_flag = 'N') OR l_par_exists = 'Y' THEN --5591581
5705 --IF l_object_id = p_to_fk_id THEN
5706 --6696774 End
5707
5708 BEGIN
5709
5710 --check self relationship flag
5711 SELECT allow_relate_to_self_flag
5712 INTO l_self_rel_flag
5713 FROM HZ_RELATIONSHIP_TYPES
5714 WHERE RELATIONSHIP_TYPE = l_rel_type
5715 AND FORWARD_REL_CODE = l_rel_code
5716 AND SUBJECT_TYPE = l_subject_type
5717 AND OBJECT_TYPE = l_object_type;
5718
5719 IF l_self_rel_flag = 'N' THEN
5720 --Inactivate the relationships both forward and backward
5721 UPDATE HZ_RELATIONSHIPS
5722 SET
5723 STATUS = 'I',
5724 END_DATE = sysdate,
5725 last_update_date = hz_utility_pub.last_update_date,
5726 last_updated_by = hz_utility_pub.user_id,
5727 last_update_login = hz_utility_pub.last_update_login,
5728 request_id = hz_utility_pub.request_id,
5729 program_application_id = hz_utility_pub.program_application_id,
5730 program_id = hz_utility_pub.program_id,
5731 program_update_date = sysdate
5732 WHERE relationship_id = p_from_id;
5733
5734 ---Start of Bug:3880218----
5735 IF l_rel_party_id is not null THEN
5736 UPDATE HZ_PARTIES
5737 SET STATUS = 'I',
5738 last_update_date = hz_utility_pub.last_update_date,
5739 last_updated_by = hz_utility_pub.user_id,
5740 last_update_login = hz_utility_pub.last_update_login,
5741 request_id = hz_utility_pub.request_id,
5742 program_application_id = hz_utility_pub.program_application_id,
5743 program_id = hz_utility_pub.program_id,
5744 program_update_date = sysdate
5745 WHERE PARTY_ID = l_rel_party_id;
5746 END IF;
5747 ----End of Bug:3880218----
5748 ----Start of DlProject Phase2--------------------
5749 do_hierarchy_nodes_merge(p_from_id => p_from_id,
5750 p_from_fk_id => p_from_fk_id,
5751 p_to_fk_id => p_to_fk_id,
5752 x_return_status =>x_return_status,
5753 p_action => 'I'
5754 );
5755 ----End of DlProject Phase2--------------------
5756 ---bug 4867151 start
5757 ELSE
5758 IF l_rel_party_id is not null THEN
5759 UPDATE HZ_PARTIES
5760 SET STATUS = 'M',
5761 last_update_date = hz_utility_pub.last_update_date,
5762 last_updated_by = hz_utility_pub.user_id,
5763 last_update_login = hz_utility_pub.last_update_login,
5764 request_id = hz_utility_pub.request_id,
5765 program_application_id = hz_utility_pub.program_application_id,
5766 program_id = hz_utility_pub.program_id,
5767 program_update_date = sysdate
5768 WHERE PARTY_ID IN (select party_id from hz_relationships where subject_id=p_to_fk_id
5769 and object_id=p_to_fk_id and relationship_id <>p_from_id and status='A'
5770 AND ((start_date between from_start_date and from_end_date)
5771 or (nvl(end_date,to_date('12/31/4712','MM/DD/YYYY')) between from_start_date and from_end_date)
5772 or(start_date<from_start_date and nvl(end_date,to_date('12/31/4712','MM/DD/YYYY'))>from_end_date)));
5773
5774 UPDATE HZ_RELATIONSHIPS
5775 SET
5776 STATUS = 'M',
5777 END_DATE = sysdate,
5778 last_update_date = hz_utility_pub.last_update_date,
5779 last_updated_by = hz_utility_pub.user_id,
5780 last_update_login = hz_utility_pub.last_update_login,
5781 request_id = hz_utility_pub.request_id,
5782 program_application_id = hz_utility_pub.program_application_id,
5783 program_id = hz_utility_pub.program_id,
5784 program_update_date = sysdate
5785 WHERE relationship_id in (select relationship_id from hz_relationships where subject_id=p_to_fk_id
5786 and object_id=p_to_fk_id and relationship_id <>p_from_id and status='A'
5787 AND ((start_date between from_start_date and from_end_date)
5788 or (nvl(end_date,to_date('12/31/4712','MM/DD/YYYY')) between from_start_date and from_end_date)
5789 or(start_date<from_start_date and nvl(end_date,to_date('12/31/4712','MM/DD/YYYY'))>from_end_date)));
5790
5791 END IF;
5792 do_hierarchy_nodes_merge(p_from_id => p_from_id,
5793 p_from_fk_id => p_from_fk_id,
5794 p_to_fk_id => p_to_fk_id,
5795 x_return_status =>x_return_status,
5796 p_action => 'M'
5797 );
5798 ---bug 4867151 end
5799 END IF; --l_self_rel_flag
5800
5801 EXCEPTION
5802 WHEN OTHERS THEN
5803 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
5804 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5805 FND_MSG_PUB.ADD;
5806 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5807
5808 END;
5809 END IF; --l_object_id = p_to_fk_id
5810
5811
5812
5813
5814 END IF;
5815
5816 EXCEPTION
5817 WHEN OTHERS THEN
5818 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
5819 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5820 FND_MSG_PUB.ADD;
5821 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5822 END do_party_reln_subj_merge;
5823
5824 PROCEDURE do_party_relationship_merge(
5825 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
5826 x_to_id IN OUT NOCOPY NUMBER,
5827 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
5828 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
5829 x_return_status IN OUT NOCOPY VARCHAR2
5830 ) IS
5831
5832 CURSOR c_merge_to_party_reln IS
5833 SELECT relationship_id
5834 FROM HZ_RELATIONSHIPS --4500011
5835 WHERE party_id = p_to_fk_id
5836 AND subject_table_name = 'HZ_PARTIES'
5837 AND object_table_name = 'HZ_PARTIES'
5838 AND directional_flag = 'F';
5839
5840 l_to_preln_id NUMBER;
5841
5842
5843 BEGIN
5844
5845 OPEN c_merge_to_party_reln;
5846 FETCH c_merge_to_party_reln INTO l_to_preln_id;
5847 IF c_merge_to_party_reln%NOTFOUND THEN
5848 CLOSE c_merge_to_party_reln;
5849 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MERGE_TO_PRELN');
5850 FND_MESSAGE.SET_TOKEN('TOPARTYID',p_to_fk_id);
5851 FND_MSG_PUB.ADD;
5852 x_return_status := FND_API.G_RET_STS_ERROR;
5853 ELSE
5854 CLOSE c_merge_to_party_reln;
5855
5856 UPDATE HZ_RELATIONSHIPS
5857 SET
5858 STATUS = 'M',
5859 last_update_date = hz_utility_pub.last_update_date,
5860 last_updated_by = hz_utility_pub.user_id,
5861 last_update_login = hz_utility_pub.last_update_login,
5862 request_id = hz_utility_pub.request_id,
5863 program_application_id = hz_utility_pub.program_application_id,
5864 program_id = hz_utility_pub.program_id,
5865 program_update_date = sysdate
5866 WHERE relationship_id = p_from_id;
5867 ----Start of DlProject Phase2--------------------
5868 do_hierarchy_nodes_merge(p_from_id => p_from_id,
5869 p_from_fk_id => p_from_fk_id,
5870 p_to_fk_id => p_to_fk_id,
5871 x_return_status =>x_return_status,
5872 p_action => 'M'
5873 );
5874 ----End of DlProject Phase2--------------------
5875
5876
5877 --For NOCOPY fix
5878 x_to_id := l_to_preln_id;
5879 END IF;
5880 EXCEPTION
5881 WHEN OTHERS THEN
5882 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
5883 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
5884 FND_MSG_PUB.ADD;
5885 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5886 END do_party_relationship_merge;
5887
5888 PROCEDURE do_org_profile_merge(
5889 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
5890 x_to_id IN OUT NOCOPY NUMBER,
5891 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
5892 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
5893 x_return_status IN OUT NOCOPY VARCHAR2
5894 ) IS
5895
5896 CURSOR c_merge_to_org_prof(cp_cont_source VARCHAR2) IS
5897 SELECT organization_profile_id, last_update_date, duns_number_c
5898 FROM HZ_ORGANIZATION_PROFILES
5899 WHERE party_id = p_to_fk_id
5900 AND effective_end_date is null
5901 AND ACTUAL_CONTENT_SOURCE = cp_cont_source;
5902
5903 CURSOR c_cont_source IS
5904 SELECT ACTUAL_CONTENT_SOURCE, last_update_date, duns_number_c
5905 FROM HZ_ORGANIZATION_PROFILES
5906 WHERE organization_profile_id = p_from_id;
5907
5908 l_cont_source VARCHAR2(50);
5909 l_to_orgpro_id NUMBER;
5910 l_merge_to_id NUMBER := FND_API.G_MISS_NUM;
5911 l_from_last_upd_date DATE;
5912 l_to_last_upd_date DATE;
5913 l_from_duns_number VARCHAR2(255);
5914 l_to_duns_number VARCHAR2(255);
5915 l_from_branch_flag VARCHAR2(1);
5916 l_to_branch_flag VARCHAR2(1);
5917 l_temp NUMBER;
5918
5919 l_msg_data VARCHAR2(2000);
5920 l_msg_count NUMBER;
5921 l_return_status VARCHAR2(255);
5922
5923
5924 l_temp_party_id NUMBER;
5925 l_temp_party_number VARCHAR2(255);
5926
5927 l_organization_rec HZ_PARTY_V2PUB.ORGANIZATION_REC_TYPE;
5928 BEGIN
5929
5930 OPEN c_cont_source;
5931 FETCH c_cont_source INTO l_cont_source, l_from_last_upd_date, l_from_duns_number;
5932 CLOSE c_cont_source;
5933
5934 IF l_cont_source = 'USER_ENTERED' THEN
5935 open c_merge_to_org_prof('USER_ENTERED');
5936 FETCH c_merge_to_org_prof INTO x_to_id, l_to_last_upd_date, l_to_duns_number;
5937 IF c_merge_to_org_prof%NOTFOUND THEN
5938 CLOSE c_merge_to_org_prof;
5939 OPEN c_merge_to_org_prof('SST');
5940 FETCH c_merge_to_org_prof INTO x_to_id, l_to_last_upd_date, l_to_duns_number;
5941 IF c_merge_to_org_prof%NOTFOUND THEN
5942 CLOSE c_merge_to_org_prof;
5943 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MERGE_TO_ORGPRO');
5944 FND_MESSAGE.SET_TOKEN('ToId',p_to_fk_id);
5945 FND_MSG_PUB.ADD;
5946 x_return_status := FND_API.G_RET_STS_ERROR;
5947 RETURN;
5948 END IF;
5949 CLOSE c_merge_to_org_prof;
5950 ELSE
5951 CLOSE c_merge_to_org_prof;
5952 END IF;
5953
5954 ELSIF l_cont_source = 'SST' THEN
5955 open c_merge_to_org_prof('SST');
5956 FETCH c_merge_to_org_prof INTO x_to_id, l_to_last_upd_date, l_to_duns_number;
5957 IF c_merge_to_org_prof%NOTFOUND THEN
5958 CLOSE c_merge_to_org_prof;
5959 OPEN c_merge_to_org_prof('USER_ENTERED');
5960 FETCH c_merge_to_org_prof INTO x_to_id, l_to_last_upd_date, l_to_duns_number;
5961 IF c_merge_to_org_prof%NOTFOUND THEN
5962 CLOSE c_merge_to_org_prof;
5963 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MERGE_TO_ORGPRO');
5964 FND_MESSAGE.SET_TOKEN('ToId',p_to_fk_id);
5965 FND_MSG_PUB.ADD;
5966 x_return_status := FND_API.G_RET_STS_ERROR;
5967 RETURN;
5968 END IF;
5969 CLOSE c_merge_to_org_prof;
5970 ELSE
5971 CLOSE c_merge_to_org_prof;
5972 END IF;
5973
5974 ELSIF l_cont_source NOT IN ('SST','USER_ENTERED')AND l_cont_source IS NOT NULL THEN --Bug No:4114254
5975 IF x_to_id IS NULL OR x_to_id = FND_API.G_MISS_NUM THEN
5976 HZ_PARTY_V2PUB.get_organization_rec(
5977 FND_API.G_FALSE,
5978 p_from_fk_id,
5979 l_cont_source,
5980 l_organization_rec,
5981 l_return_status,
5982 l_msg_count,
5983 l_msg_data);
5984
5985 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
5986 RETURN;
5987 END IF;
5988
5989 l_organization_rec.party_rec.party_id := p_to_fk_id;
5990 HZ_PARTY_V2PUB.create_organization(
5991 FND_API.G_FALSE,
5992 l_organization_rec,
5993 l_return_status,
5994 l_msg_count,
5995 l_msg_data,
5996 l_temp_party_id,
5997 l_temp_party_number,
5998 x_to_id);
5999
6000 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6001 RETURN;
6002 END IF;
6003 END IF;
6004 END IF;
6005
6006 UPDATE HZ_ORGANIZATION_PROFILES
6007 SET
6008 STATUS = 'M',
6009 effective_end_date = trunc(SYSDATE-1),
6010 last_update_date = hz_utility_pub.last_update_date,
6011 last_updated_by = hz_utility_pub.user_id,
6012 last_update_login = hz_utility_pub.last_update_login,
6013 request_id = hz_utility_pub.request_id,
6014 program_application_id = hz_utility_pub.program_application_id,
6015 program_id = hz_utility_pub.program_id,
6016 program_update_date = sysdate
6017 WHERE organization_profile_id = p_from_id;
6018
6019 EXCEPTION
6020 WHEN OTHERS THEN
6021 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6022 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6023 FND_MSG_PUB.ADD;
6024 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6025 END do_org_profile_merge;
6026
6027 PROCEDURE do_per_profile_merge(
6028 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
6029 x_to_id IN OUT NOCOPY NUMBER,
6030 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
6031 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
6032 x_return_status IN OUT NOCOPY VARCHAR2
6033 ) IS
6034
6035 CURSOR c_merge_to_per_prof(cp_cont_source VARCHAR2) IS
6036 SELECT person_profile_id
6037 FROM HZ_PERSON_PROFILES
6038 WHERE party_id = p_to_fk_id
6039 AND effective_end_date is null
6040 AND content_source_type = cp_cont_source;
6041
6042 CURSOR c_cont_source IS
6043 SELECT CONTENT_SOURCE_TYPE
6044 FROM HZ_PERSON_PROFILES
6045 WHERE person_profile_id = p_from_id;
6046
6047 l_cont_source VARCHAR2(50);
6048 l_to_perpro_id NUMBER;
6049
6050 BEGIN
6051
6052 OPEN c_cont_source;
6053 FETCH c_cont_source INTO l_cont_source;
6054 CLOSE c_cont_source;
6055
6056 OPEN c_merge_to_per_prof(l_cont_source);
6057 FETCH c_merge_to_per_prof INTO l_to_perpro_id;
6058 IF c_merge_to_per_prof%NOTFOUND THEN
6059 CLOSE c_merge_to_per_prof;
6060 IF l_cont_source = 'USER_ENTERED' THEN
6061 FND_MESSAGE.SET_NAME('AR', 'HZ_NO_MERGE_TO_PERPRO');
6062 FND_MESSAGE.SET_TOKEN('ToId',p_to_fk_id);
6063 FND_MSG_PUB.ADD;
6064 x_return_status := FND_API.G_RET_STS_ERROR;
6065 ELSE
6066 UPDATE HZ_PERSON_PROFILES
6067 SET
6068 party_id = p_to_fk_id,
6069 last_update_date = hz_utility_pub.last_update_date,
6070 last_updated_by = hz_utility_pub.user_id,
6071 last_update_login = hz_utility_pub.last_update_login,
6072 request_id = hz_utility_pub.request_id,
6073 program_application_id = hz_utility_pub.program_application_id,
6074 program_id = hz_utility_pub.program_id,
6075 program_update_date = sysdate
6076 WHERE person_profile_id = p_from_id;
6077 END IF;
6078 ELSE
6079 CLOSE c_merge_to_per_prof;
6080
6081 UPDATE HZ_PERSON_PROFILES
6082 SET
6083 STATUS = 'M',
6084 effective_end_date = trunc(SYSDATE-1),
6085 last_update_date = hz_utility_pub.last_update_date,
6086 last_updated_by = hz_utility_pub.user_id,
6087 last_update_login = hz_utility_pub.last_update_login,
6088 request_id = hz_utility_pub.request_id,
6089 program_application_id = hz_utility_pub.program_application_id,
6090 program_id = hz_utility_pub.program_id,
6091 program_update_date = sysdate
6092 WHERE person_profile_id = p_from_id;
6093
6094 --For NOCOPY fix
6095 x_to_id := l_to_perpro_id;
6096 END IF;
6097 EXCEPTION
6098 WHEN OTHERS THEN
6099 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6100 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6101 FND_MSG_PUB.ADD;
6102 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6103 END do_per_profile_merge;
6104
6105 PROCEDURE do_party_site_merge(
6106 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
6107 x_to_id IN OUT NOCOPY NUMBER,
6108 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
6109 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
6110 p_batch_id IN NUMBER:=FND_API.G_MISS_NUM,
6111 x_return_status IN OUT NOCOPY VARCHAR2
6112 ) IS
6113
6114 CURSOR c_cont_source IS
6115 SELECT l.CONTENT_SOURCE_TYPE, l.last_update_date, ps.party_id,
6116 ps.identifying_address_flag, ps.party_site_number
6117 FROM HZ_LOCATIONS l, HZ_PARTY_SITES ps
6118 WHERE ps.party_site_id = p_from_id
6119 AND ps.location_id = l.location_id;
6120
6121 CURSOR c_merge_to IS
6122 SELECT ps.party_id, loc.content_source_type,loc.country,
6123 loc.address1, loc.address2, loc.address3, loc.address4,
6124 loc.city, loc.postal_code, loc.state, loc.province,
6125 loc.county,loc.location_id
6126 FROM HZ_LOCATIONS loc, HZ_PARTY_SITES ps
6127 WHERE ps.party_site_id = x_to_id
6128 AND ps.location_id = loc.location_id;
6129 --bug 4569674
6130 /*CURSOR c_loc_assignments IS
6131 SELECT la.loc_id, la.org_id
6132 FROM HZ_LOC_ASSIGNMENTS la, HZ_PARTY_SITES ps
6133 WHERE ps.party_site_id = p_from_id
6134 AND la.location_id = ps.location_id
6135 AND la.org_id NOT IN ( SELECT DISTINCT la1.org_id
6136 FROM HZ_LOC_ASSIGNMENTS la1, HZ_PARTY_SITES ps1
6137 WHERE ps1.party_site_id = x_to_id
6138 AND la1.location_id = ps1.location_id
6139 );
6140 */
6141 CURSOR c_locations(x_party_site_id NUMBER) IS
6142 SELECT loc.location_id
6143 FROM HZ_PARTY_SITES ps,
6144 HZ_LOCATIONS loc
6145 WHERE ps.location_id = loc.location_id
6146 AND ps.party_site_id = x_party_site_id;
6147
6148 CURSOR c_from_party_type IS
6149 SELECT party_type
6150 FROM HZ_PARTY_SITES ps,
6151 HZ_PARTIES p
6152 WHERE ps.party_id = p.party_id
6153 AND ps.party_site_id = p_from_id;
6154
6155 l_from_last_upd_date DATE;
6156 l_to_last_upd_date DATE;
6157 l_cont_source HZ_LOCATIONS.CONTENT_SOURCE_TYPE%TYPE;
6158 l_cont_source_to HZ_LOCATIONS.CONTENT_SOURCE_TYPE%TYPE;
6159 l_location_id HZ_LOCATIONS.LOCATION_ID%TYPE;
6160 l_address1 HZ_LOCATIONS.ADDRESS1%TYPE;
6161 l_address2 HZ_LOCATIONS.ADDRESS2%TYPE;
6162 l_address3 HZ_LOCATIONS.ADDRESS3%TYPE;
6163 l_address4 HZ_LOCATIONS.ADDRESS4%TYPE;
6164 l_country HZ_LOCATIONS.COUNTRY%TYPE;
6165 l_city HZ_LOCATIONS.CITY%TYPE;
6166 l_state HZ_LOCATIONS.STATE%TYPE;
6167 l_county HZ_LOCATIONS.COUNTY%TYPE;
6168 l_province HZ_LOCATIONS.PROVINCE%TYPE;
6169 l_postal HZ_LOCATIONS.POSTAL_CODE%TYPE;
6170 l_from_party_id HZ_PARTY_SITES.PARTY_ID%TYPE;
6171 l_to_party_id HZ_PARTY_SITES.PARTY_ID%TYPE;
6172 l_ident_flag HZ_PARTY_SITES.IDENTIFYING_ADDRESS_FLAG%TYPE;
6173 l_merge_to_id NUMBER;
6174 l_merge_to_loc_id NUMBER;
6175 l_temp NUMBER;
6176 l_temp1 NUMBER;
6177
6178 l_dup_exists VARCHAR2(20);
6179 l_to_id NUMBER;
6180
6181 l_discard VARCHAR2(1) := 'N';
6182
6183 party_site_rec HZ_PARTY_SITE_V2PUB.party_site_rec_type;
6184 l_party_site_number VARCHAR2(30);
6185 l_msg_data VARCHAR2(2000);
6186 l_msg_count NUMBER := 0;
6187 l_profile_option VARCHAR2(1) := 'Y';
6188
6189 l_ps_number HZ_PARTY_SITES.PARTY_SITE_NUMBER%TYPE;
6190 l_actual_cont_source VARCHAR2(30);
6191 --l_loc_id HZ_LOC_ASSIGNMENTS.LOC_ID%TYPE; bug 4569674
6192 --l_org_id HZ_LOC_ASSIGNMENTS.ORG_ID%TYPE;
6193 l_from_location_id HZ_LOCATIONS.LOCATION_ID%TYPE;
6194 l_to_location_id HZ_LOCATIONS.LOCATION_ID%TYPE;
6195 l_from_party_type HZ_PARTIES.PARTY_TYPE%TYPE;
6196 to_party_loc_id HZ_LOCATIONS.LOCATION_ID%TYPE;
6197 map_ps_id HZ_PARTY_SITES.PARTY_SITE_ID%TYPE;
6198 BEGIN
6199
6200
6201 OPEN c_cont_source;
6202 FETCH c_cont_source INTO l_cont_source, l_from_last_upd_date, l_from_party_id,
6203 l_ident_flag, l_ps_number;
6204 CLOSE c_cont_source;
6205
6206 /* From Location_Id */
6207 OPEN c_locations(p_from_id);
6208 FETCH c_locations INTO l_from_location_id;
6209 CLOSE c_locations;
6210
6211 /* From Party_Type */
6212 OPEN c_from_party_type;
6213 FETCH c_from_party_type INTO l_from_party_type;
6214 CLOSE c_from_party_type;
6215
6216 IF l_from_party_type = 'PARTY_RELATIONSHIP' AND
6217 (x_to_id = FND_API.G_MISS_NUM OR x_to_id IS NULL OR p_from_id = x_to_id)
6218 THEN
6219 BEGIN
6220
6221 /* Check if there is a ps in the merge batch that has the same loc */
6222 SELECT ps2.location_id INTO to_party_loc_id
6223 FROM HZ_MERGE_PARTY_DETAILS mpd,
6224 HZ_PARTY_SITES ps1,
6225 HZ_PARTY_SITES ps2
6226 WHERE ps1.party_site_id = mpd.merge_from_entity_id
6227 AND ps2.party_site_id = mpd.merge_to_entity_id
6228 AND mpd.merge_from_entity_id <> nvl(mpd.merge_to_entity_id, -1)
6229 AND ps1.location_id = l_from_location_id
6230 AND merge_from_entity_id <> p_from_id
6231 AND mpd.batch_party_id IN ( SELECT batch_party_id
6232 FROM hz_merge_parties mp,
6233 hz_relationships r
6234 WHERE r.party_id = p_from_fk_id
6235 AND mp.from_party_id = r.object_id
6236 AND mp.batch_id = p_batch_id)
6237 AND rownum = 1;
6238
6239 BEGIN
6240 /* Check if to_party already has a ps which has the same loc */
6241 SELECT party_site_id INTO map_ps_id
6242 FROM HZ_PARTY_SITES
6243 WHERE party_id = p_to_fk_id
6244 AND location_id = to_party_loc_id
6245 AND rownum = 1;
6246
6247 /* Merge */
6248 x_to_id := map_ps_id;
6249 EXCEPTION
6250 WHEN NO_DATA_FOUND THEN
6251 /* Transfer */
6252 UPDATE HZ_PARTY_SITES
6253 SET LOCATION_ID = to_party_loc_id
6254 WHERE PARTY_SITE_ID = p_from_id ;
6255 END;
6256 EXCEPTION
6257 WHEN NO_DATA_FOUND THEN
6258 --NULL;
6259 -- Start changes for Bug 4577535
6260
6261 l_dup_exists := HZ_MERGE_DUP_CHECK.check_address_dup(
6262 l_from_location_id,l_to_id, p_from_fk_id, p_to_fk_id,
6263 x_return_status);
6264 /* Merge */
6265 IF l_dup_exists = FND_API.G_TRUE THEN
6266 x_to_id := l_to_id;
6267 END IF;
6268
6269 WHEN OTHERS THEN
6270 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6271 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6272 FND_MSG_PUB.ADD;
6273 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6274
6275 -- End changes for Bug 4577535
6276 END;
6277 END IF;
6278
6279 IF x_to_id <> FND_API.G_MISS_NUM AND x_to_id IS NOT NULL
6280 THEN
6281
6282 IF l_from_party_type <> 'PARTY_RELATIONSHIP' THEN
6283 /* To Location_Id */
6284 OPEN c_locations(x_to_id);
6285 FETCH c_locations INTO l_to_location_id;
6286 CLOSE c_locations;
6287
6288 UPDATE HZ_PARTY_SITES
6289 SET location_id = l_to_location_id
6290 WHERE party_site_id IN (
6291 SELECT psr.party_site_id
6292 FROM hz_parties p,
6293 hz_party_sites psr,
6294 hz_party_sites pso,
6295 hz_relationships r
6296 WHERE pso.party_site_id = p_from_id
6297 AND r.object_id = pso.party_id
6298 AND r.party_id = p.party_id
6299 AND p.party_id = psr.party_id
6300 AND psr.location_id = l_from_location_id);
6301 END IF;
6302
6303
6304 /* Bug 2295088: Unset identifying_address_flag of the from site
6305 if 2 sites of the same party are being merged. */
6306
6307 OPEN c_merge_to;
6308 FETCH c_merge_to INTO l_to_party_id, l_cont_source_to, l_country, l_address1,
6309 l_address2, l_address3, l_address4, l_city, l_postal, l_state,
6310 l_province, l_county,l_location_id;
6311 CLOSE c_merge_to;
6312
6313 IF (l_from_party_id = l_to_party_id )THEN
6314 IF(l_ident_flag = 'Y') THEN
6315 IF l_cont_source_to = 'USER_ENTERED' THEN
6316 UPDATE hz_parties
6317 SET country = l_country,
6318 address1 = l_address1,
6319 address2 = l_address2,
6320 address3 = l_address3,
6321 address4 = l_address4,
6322 city = l_city,
6323 postal_code = l_postal,
6324 state = l_state,
6325 province = l_province,
6326 county = l_county
6327 WHERE party_id = l_to_party_id;
6328
6329 END IF;
6330
6331 UPDATE HZ_PARTY_SITES
6332 SET
6333 identifying_address_flag = 'Y'
6334 WHERE party_site_id = x_to_id;
6335
6336 UPDATE HZ_PARTY_SITES
6337 SET
6338 identifying_address_flag = 'N'
6339 WHERE party_site_id = p_from_id;
6340
6341 END IF;
6342 UPDATE hz_parties
6343 SET country = l_country,
6344 address1 = l_address1,
6345 address2 = l_address2,
6346 address3 = l_address3,
6347 address4 = l_address4,
6348 city = l_city,
6349 postal_code = l_postal,
6350 state = l_state,
6351 province = l_province,
6352 county = l_county
6353 WHERE party_id in
6354 (select ps.party_id from hz_party_sites ps,hz_relationships pr
6355 where ps.location_id = l_to_location_id
6356 and ps.identifying_address_flag(+)='Y'
6357 and ps.party_id = pr.party_id
6358 and pr.object_id=l_to_party_id);
6359 END IF;
6360 --bug 4569674 commenting code that creates missing Loc Assignments
6361 /* Bug Fix : 2506620. Create Missing Loc Assignments */
6362 /* Open c_loc_assignments;
6363 Loop
6364 fetch c_loc_assignments into l_loc_id,l_org_id ;
6365 IF c_loc_assignments%NOTFOUND THEN
6366 EXIT;
6367 END IF;
6368 HZ_LOC_ASSIGNMENTS_PKG.Insert_Row (
6369 X_LOCATION_ID => l_location_id,
6370 X_LOC_ID => l_loc_id,
6371 X_ORG_ID => l_org_id,
6372 X_OBJECT_VERSION_NUMBER => 1,
6373 X_CREATED_BY_MODULE => 'PARTY_MERGE',
6374 X_APPLICATION_ID => 222
6375 );
6376
6377 end loop;
6378 Close c_loc_assignments; */
6379 END IF; /* x_to_id */
6380
6381 IF ((x_to_id <> FND_API.G_MISS_NUM AND
6382 x_to_id <> p_from_id) OR l_discard = 'Y') THEN
6383
6384 UPDATE HZ_PARTY_SITES
6385 SET
6386 STATUS = 'M',
6387 last_update_date = hz_utility_pub.last_update_date,
6388 last_updated_by = hz_utility_pub.user_id,
6389 last_update_login = hz_utility_pub.last_update_login,
6390 request_id = hz_utility_pub.request_id,
6391 program_application_id = hz_utility_pub.program_application_id,
6392 program_id = hz_utility_pub.program_id,
6393 program_update_date = sysdate
6394 WHERE party_site_id = p_from_id;
6395 /* Bug 3892399
6396 UPDATE HZ_ORIG_SYS_REFERENCES
6397 SET
6398 STATUS = 'I',
6399 last_update_date = hz_utility_pub.last_update_date,
6400 last_updated_by = hz_utility_pub.user_id,
6401 last_update_login = hz_utility_pub.last_update_login
6402 WHERE owner_table_id = p_from_id and owner_table_name='HZ_PARTY_SITES';
6403 */
6404 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
6405 p_init_msg_list => FND_API.G_FALSE,
6406 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
6407 p_old_owner_table_id => p_from_id,
6408 p_new_owner_table_id => x_to_id,
6409 p_owner_table_name =>'HZ_PARTY_SITES',
6410 p_orig_system => null,
6411 p_orig_system_reference => null,
6412 p_reason_code => 'MERGED',
6413 x_return_status => x_return_status,
6414 x_msg_count =>l_msg_count,
6415 x_msg_data =>l_msg_data);
6416 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6417 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6418 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
6419 FND_MSG_PUB.ADD;
6420 x_return_status := FND_API.G_RET_STS_ERROR;
6421 RETURN;
6422 END IF;
6423
6424
6425 --For NOCOPY fix
6426 IF l_discard = 'Y' THEN
6427 x_to_id := 0;
6428 END IF;
6429
6430
6431 ELSE
6432
6433 hz_cust_account_merge_v2pvt.get_party_site_rec (
6434 p_init_msg_list => 'T',
6435 p_party_site_id => p_from_id,
6436 x_party_site_rec => party_site_rec,
6437 x_actual_cont_source => l_actual_cont_source,
6438 x_return_status => x_return_status,
6439 x_msg_count => l_msg_count,
6440 x_msg_data => l_msg_data );
6441
6442 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6443 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6444 FND_MESSAGE.SET_TOKEN('ERROR','Cannot get party site ID : ' || p_from_id);
6445 FND_MSG_PUB.ADD;
6446 x_return_status := FND_API.G_RET_STS_ERROR;
6447
6448 RETURN;
6449 END IF;
6450 --bug 4603928
6451 -- l_party_site_number := l_ps_number||'-MERGED';
6452 IF length(l_ps_number) >= 29 THEN
6453 l_party_site_number := substr(l_ps_number,1,28)||'-M';
6454 ELSE
6455 l_party_site_number := l_ps_number||'-M';
6456 END IF;
6457 --bug 4603928
6458
6459 FOR I IN 1..100 LOOP
6460 BEGIN
6461 -- Update and set party_id = p_to_fk_id where pk = from_id
6462 UPDATE HZ_PARTY_SITES
6463 SET
6464 STATUS = 'M',
6465 party_site_number = l_party_site_number,
6466 last_update_date = hz_utility_pub.last_update_date,
6467 last_updated_by = hz_utility_pub.user_id,
6468 last_update_login = hz_utility_pub.last_update_login,
6469 request_id = hz_utility_pub.request_id,
6470 program_application_id = hz_utility_pub.program_application_id,
6471 program_id = hz_utility_pub.program_id,
6472 program_update_date = sysdate
6473 WHERE party_site_id = p_from_id;
6474 EXCEPTION
6475 WHEN DUP_VAL_ON_INDEX THEN
6476 --bug 4603928
6477 -- l_party_site_number := l_party_site_number || I;
6478 IF (length(l_party_site_number)+length(I) > 30 ) THEN
6479 l_party_site_number := substr(l_party_site_number,1,length(l_party_site_number)-length(I))|| I;
6480 ELSE
6481 l_party_site_number := l_party_site_number || I;
6482 END IF;
6483 --bug 4603928
6484 END;
6485 END LOOP;
6486 /*HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
6487 p_init_msg_list => FND_API.G_FALSE,
6488 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
6489 p_old_owner_table_id => p_from_id,
6490 p_new_owner_table_id => x_to_id,
6491 p_owner_table_name =>'HZ_PARTY_SITES',
6492 p_orig_system => null,
6493 p_orig_system_reference => null,
6494 p_reason_code => 'MERGED',
6495 x_return_status => x_return_status,
6496 x_msg_count =>l_msg_count,
6497 x_msg_data =>l_msg_data);
6498 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6499 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6500 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
6501 FND_MSG_PUB.ADD;
6502 x_return_status := FND_API.G_RET_STS_ERROR;
6503 RETURN;
6504 END IF;*/
6505
6506 l_party_site_number := null;
6507 party_site_rec.party_site_id := FND_API.G_MISS_NUM;
6508 party_site_rec.party_id := p_to_fk_id;
6509 party_site_rec.party_site_number := l_ps_number;
6510
6511 --We should not set primary flag in customer merge context
6512 party_site_rec.identifying_address_flag := FND_API.G_MISS_CHAR;
6513
6514 --Create new party site.
6515 hz_cust_account_merge_v2pvt.create_party_site(
6516 p_init_msg_list => 'T',
6517 p_party_site_rec => party_site_rec,
6518 p_actual_cont_source => l_actual_cont_source,
6519 x_party_site_id => x_to_id,
6520 x_party_site_number => l_party_site_number,
6521 x_return_status => x_return_status,
6522 x_msg_count => l_msg_count,
6523 x_msg_data => l_msg_data );
6524
6525
6526 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6527 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6528 FND_MESSAGE.SET_TOKEN('ERROR','Cannot copy party site for ID : ' || p_from_id);
6529 FND_MSG_PUB.ADD;
6530 x_return_status := FND_API.G_RET_STS_ERROR;
6531 RETURN;
6532 END IF;
6533
6534 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
6535 p_init_msg_list => FND_API.G_FALSE,
6536 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
6537 p_old_owner_table_id => p_from_id,
6538 p_new_owner_table_id => x_to_id,
6539 p_owner_table_name =>'HZ_PARTY_SITES',
6540 p_orig_system => null,
6541 p_orig_system_reference => null,
6542 p_reason_code => 'MERGED',
6543 x_return_status => x_return_status,
6544 x_msg_count =>l_msg_count,
6545 x_msg_data =>l_msg_data);
6546 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6547 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6548 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
6549 FND_MSG_PUB.ADD;
6550 x_return_status := FND_API.G_RET_STS_ERROR;
6551 RETURN;
6552 END IF;
6553
6554 UPDATE hz_merge_party_details
6555 SET merge_to_entity_id = x_to_id
6556 WHERE batch_party_id IN (select batch_party_id from hz_merge_parties
6557 where batch_id = p_batch_id)
6558 AND merge_to_entity_id = p_from_id
6559 AND entity_name = 'HZ_PARTY_SITES';
6560
6561 SAVEPOINT party_site_sync;
6562 BEGIN
6563 HZ_STAGE_MAP_TRANSFORM.sync_single_party_site(x_to_id,'C');
6564 DELETE FROM HZ_DQM_SYNC_INTERFACE WHERE
6565 RECORD_ID=x_to_id and entity='PARTY_SITES' AND STAGED_FLAG='N';
6566 EXCEPTION
6567 WHEN OTHERS THEN
6568 ROLLBACK TO party_site_sync;
6569 END;
6570
6571 x_return_status := 'N';
6572
6573 END IF;
6574
6575 DELETE FROM HZ_DQM_SYNC_INTERFACE WHERE record_id = p_from_id
6576 AND ENTITY = 'PARTY_SITES' AND STAGED_FLAG='N';
6577
6578 EXCEPTION
6579 WHEN OTHERS THEN
6580 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6581 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6582 FND_MSG_PUB.ADD;
6583 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6584 END do_party_site_merge;
6585
6586
6587 PROCEDURE do_party_merge(
6588 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
6589 x_to_id IN OUT NOCOPY NUMBER,
6590 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
6591 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
6592 p_batch_party_id IN NUMBER,
6593 x_return_status IN OUT NOCOPY VARCHAR2
6594 ) IS
6595
6596 CURSOR c_party_type(cp_party_id NUMBER) IS
6597 SELECT party_type
6598 FROM HZ_PARTIES
6599 WHERE party_id = cp_party_id;
6600
6601 CURSOR c_duns IS
6602 SELECT duns_number_c, last_update_date, organization_profile_id
6603 FROM HZ_ORGANIZATION_PROFILES
6604 WHERE party_id = p_from_id
6605 AND EFFECTIVE_END_DATE IS NULL
6606 AND actual_content_source = 'DNB'
6607 AND nvl(status, 'A') = 'A';
6608
6609 CURSOR c_duns1 IS
6610 SELECT duns_number_c , last_update_date, organization_profile_id
6611 FROM HZ_ORGANIZATION_PROFILES
6612 WHERE party_id = x_to_id
6613 AND EFFECTIVE_END_DATE IS NULL
6614 AND actual_content_source = 'DNB'
6615 AND nvl(status, 'A') = 'A';
6616
6617 CURSOR c_branch IS
6618 SELECT 1
6619 FROM HZ_RELATIONSHIPS --4500011
6620 WHERE content_source_type = 'DNB'
6621 AND subject_id = p_from_id
6622 AND object_id = x_to_id
6623 AND RELATIONSHIP_CODE = 'HEADQUARTERS_OF'
6624 AND subject_table_name = 'HZ_PARTIES'
6625 AND object_table_name = 'HZ_PARTIES'
6626 AND directional_flag = 'F';
6627
6628 l_from_party_type HZ_PARTIES.PARTY_TYPE%TYPE;
6629 l_to_party_type HZ_PARTIES.PARTY_TYPE%TYPE;
6630 l_from_duns_number VARCHAR2(255);
6631 l_to_duns_number VARCHAR2(255);
6632 l_temp NUMBER;
6633
6634 l_to_is_branch VARCHAR2(1) := 'N';
6635
6636 case1 BOOLEAN := FALSE;
6637 case2 BOOLEAN := FALSE;
6638 case3 BOOLEAN := FALSE;
6639
6640 l_from NUMBER;
6641 l_to NUMBER;
6642 l_to_loc_id NUMBER;
6643 l_to_subj_id NUMBER;
6644
6645 l_to_profile_id NUMBER;
6646 l_from_profile_id NUMBER;
6647 l_from_last_upd_date DATE;
6648 l_to_last_upd_date DATE;
6649
6650 l_msg_data VARCHAR2(2000);
6651 l_msg_count NUMBER;
6652 l_return_status VARCHAR2(255);
6653 l_obj_version_number NUMBER;
6654
6655 l_organization_rec HZ_PARTY_V2PUB.ORGANIZATION_REC_TYPE;
6656
6657 BEGIN
6658
6659 -- Select record for update
6660 OPEN c_party_type(p_from_id);
6661 FETCH c_party_type INTO l_from_party_type;
6662 CLOSE c_party_type;
6663
6664 OPEN c_party_type(x_to_id);
6665 FETCH c_party_type INTO l_to_party_type;
6666 CLOSE c_party_type;
6667
6668 IF l_from_party_type IS NULL OR l_to_party_type IS NULL OR
6669 l_to_party_type <> l_from_party_type THEN
6670 FND_MESSAGE.SET_NAME('AR', 'HZ_INVALID_MERGE_PARTIES');
6671 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6672 FND_MSG_PUB.ADD;
6673 x_return_status := FND_API.G_RET_STS_ERROR;
6674 RETURN;
6675 END IF;
6676
6677 -- Update and set status to merged
6678 UPDATE HZ_PARTIES
6679 SET
6680 STATUS = 'M',
6681 last_update_date = hz_utility_pub.last_update_date,
6682 last_updated_by = hz_utility_pub.user_id,
6683 last_update_login = hz_utility_pub.last_update_login,
6684 request_id = hz_utility_pub.request_id,
6685 program_application_id = hz_utility_pub.program_application_id,
6686 program_id = hz_utility_pub.program_id,
6687 program_update_date = sysdate
6688 WHERE party_id = p_from_id;
6689
6690 UPDATE HZ_DQM_SYNC_INTERFACE
6691 SET party_id = x_to_id WHERE STAGED_FLAG='N'
6692 AND PARTY_ID = p_from_id AND ENTITY<>'PARTY';
6693
6694 HZ_ORIG_SYSTEM_REF_PVT.remap_internal_identifier(
6695 p_init_msg_list => FND_API.G_FALSE,
6696 p_validation_level => FND_API.G_VALID_LEVEL_NONE,
6697 p_old_owner_table_id => p_from_id,
6698 p_new_owner_table_id => x_to_id,
6699 p_owner_table_name =>'HZ_PARTIES',
6700 p_orig_system => null,
6701 p_orig_system_reference => null,
6702 p_reason_code => 'MERGED',
6703 x_return_status => x_return_status,
6704 x_msg_count =>l_msg_count,
6705 x_msg_data =>l_msg_data);
6706 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
6707 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6708 FND_MESSAGE.SET_TOKEN('ERROR','MOSR: cannot remap internal ID');
6709 FND_MSG_PUB.ADD;
6710 x_return_status := FND_API.G_RET_STS_ERROR;
6711 RETURN;
6712 END IF;
6713
6714 EXCEPTION
6715 WHEN OTHERS THEN
6716 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6717 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6718 FND_MSG_PUB.ADD;
6719 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6720
6721 END do_party_merge;
6722
6723 PROCEDURE do_displayed_duns_merge(
6724 p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
6725 x_to_id IN OUT NOCOPY NUMBER,
6726 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
6727 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
6728 x_return_status IN OUT NOCOPY VARCHAR2
6729 ) IS
6730
6731 BEGIN
6732
6733 UPDATE HZ_ORGANIZATION_PROFILES
6734 SET
6735 displayed_duns_party_id = p_to_fk_id,
6736 last_update_date = hz_utility_pub.last_update_date,
6737 last_updated_by = hz_utility_pub.user_id,
6738 last_update_login = hz_utility_pub.last_update_login,
6739 request_id = hz_utility_pub.request_id,
6740 program_application_id = hz_utility_pub.program_application_id,
6741 program_id = hz_utility_pub.program_id,
6742 program_update_date = sysdate
6743 WHERE organization_profile_id = p_from_id;
6744
6745
6746 EXCEPTION
6747 WHEN OTHERS THEN
6748 FND_MESSAGE.SET_NAME('AR', 'HZ_MERGE_SQL_ERROR');
6749 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
6750 FND_MSG_PUB.ADD;
6751 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6752 END do_displayed_duns_merge;
6753
6754
6755 PROCEDURE insert_request_log(
6756 p_source_party_id IN NUMBER,
6757 p_destination_party_id IN NUMBER
6758 ) IS
6759
6760 l_requested_product VARCHAR2(100);
6761 l_duns_number NUMBER;
6762
6763 BEGIN
6764
6765 --Insert a row in HZ_DNB_REQUEST_LOG table.
6766 SELECT requested_product, duns_number
6767 INTO l_requested_product, l_duns_number
6768 FROM hz_dnb_request_log
6769 WHERE party_id = p_source_party_id
6770 AND request_id = (
6771 SELECT MAX(request_id)
6772 FROM hz_dnb_request_log
6773 WHERE party_id = p_source_party_id
6774 AND status = 'S' );
6775
6776 INSERT INTO hz_dnb_request_log(
6777 REQUEST_ID,
6778 PARTY_ID,
6779 REQUESTED_PRODUCT,
6780 DUNS_NUMBER,
6781 STATUS,
6782 CREATED_BY,
6783 CREATION_DATE,
6784 LAST_UPDATED_BY,
6785 LAST_UPDATE_DATE,
6786 LAST_UPDATE_LOGIN,
6787 COPIED_FROM_PARTY_ID )
6788 VALUES(
6789 HZ_DNB_REQUEST_LOG_S.nextval,
6790 p_destination_party_id,
6791 l_requested_product,
6792 l_duns_number,
6793 'S',
6794 hz_utility_pub.CREATED_BY,
6795 hz_utility_pub.CREATION_DATE,
6796 hz_utility_pub.LAST_UPDATED_BY,
6797 hz_utility_pub.LAST_UPDATE_DATE,
6798 hz_utility_pub.LAST_UPDATE_LOGIN,
6799 p_source_party_id );
6800 EXCEPTION
6801 WHEN NO_DATA_FOUND THEN
6802 null;
6803 END insert_request_log;
6804
6805 --
6806 -- PRIVATE PROCEDURE do_denormalize_contact_point
6807 --
6808 -- DESCRIPTION
6809 -- Private procedure to denormalize some type of contact point to hz_parties.
6810 --
6811 -- EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
6812 --
6813 -- ARGUMENTS
6814 -- IN:
6815 -- p_party_id Party ID.
6816 -- p_contact_point_type Contact point type.
6817 -- p_url URL.
6818 -- p_email_address Email address.
6819 -- p_phone_contact_pt_id Contact point id.
6820 -- p_phone_purpose Contact Point Purpose.
6821 -- p_phone_line_type Phone line type.
6822 -- p_phone_country_code Phone country code.
6823 -- p_phone_area_code Phone area code.
6824 -- p_phone_number Phone Number.
6825 -- p_phone_extension Phone extension.
6826 -- NOTES
6827 --
6828 -- MODIFICATION HISTORY
6829 --
6830 -- 08-19-2003 Ramesh.Ch o Created.
6831 --
6832 --
6833
6834 PROCEDURE do_denormalize_contact_point (
6835 p_party_id IN NUMBER,
6836 p_contact_point_type IN VARCHAR2,
6837 p_url IN VARCHAR2,
6838 p_email_address IN VARCHAR2,
6839 p_phone_contact_pt_id IN NUMBER,
6840 p_phone_purpose IN VARCHAR2,
6841 p_phone_line_type IN VARCHAR2,
6842 p_phone_country_code IN VARCHAR2,
6843 p_phone_area_code IN VARCHAR2,
6844 p_phone_number IN VARCHAR2,
6845 p_phone_extension IN VARCHAR2
6846 ) IS
6847 BEGIN
6848
6849 IF p_contact_point_type = 'WEB' THEN
6850 UPDATE hz_parties
6851 SET url = p_url,
6852 last_update_date = hz_utility_v2pub.last_update_date,
6853 last_updated_by = hz_utility_v2pub.last_updated_by,
6854 last_update_login = hz_utility_v2pub.last_update_login,
6855 request_id = hz_utility_v2pub.request_id,
6856 program_application_id = hz_utility_v2pub.program_application_id,
6857 program_id = hz_utility_v2pub.program_id,
6858 program_update_date = sysdate
6859 WHERE party_id = p_party_id;
6860 ELSIF p_contact_point_type = 'EMAIL' THEN
6861 UPDATE hz_parties
6862 SET email_address = p_email_address,
6863 last_update_date = hz_utility_v2pub.last_update_date,
6864 last_updated_by = hz_utility_v2pub.last_updated_by,
6865 last_update_login = hz_utility_v2pub.last_update_login,
6866 request_id = hz_utility_v2pub.request_id,
6867 program_application_id = hz_utility_v2pub.program_application_id,
6868 program_id = hz_utility_v2pub.program_id,
6869 program_update_date = sysdate
6870 WHERE party_id = p_party_id;
6871 ELSIF p_contact_point_type = 'PHONE' THEN
6872 UPDATE hz_parties
6873 SET primary_phone_contact_pt_id = p_phone_contact_pt_id,
6874 primary_phone_purpose = p_phone_purpose,
6875 primary_phone_line_type = p_phone_line_type,
6876 primary_phone_country_code = p_phone_country_code,
6877 primary_phone_area_code = p_phone_area_code,
6878 primary_phone_number = p_phone_number,
6879 primary_phone_extension = p_phone_extension,
6880 last_update_date = hz_utility_v2pub.last_update_date,
6881 last_updated_by = hz_utility_v2pub.last_updated_by,
6882 last_update_login = hz_utility_v2pub.last_update_login,
6883 request_id = hz_utility_v2pub.request_id,
6884 program_application_id = hz_utility_v2pub.program_application_id,
6885 program_id = hz_utility_v2pub.program_id,
6886 program_update_date = sysdate
6887 WHERE party_id = p_party_id;
6888 END IF;
6889
6890
6891 END do_denormalize_contact_point;
6892
6893 PROCEDURE do_hierarchy_nodes_merge(p_from_id IN NUMBER:=FND_API.G_MISS_NUM,
6894 p_from_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
6895 p_to_fk_id IN NUMBER:=FND_API.G_MISS_NUM,
6896 x_return_status IN OUT NOCOPY VARCHAR2,
6897 p_action IN VARCHAR2,
6898 p_sub_obj_merge IN VARCHAR2 :=FND_API.G_MISS_CHAR
6899 )
6900 IS
6901 CURSOR c_hier_flag(cp_rel_type VARCHAR2) IS
6902 SELECT HIERARCHICAL_FLAG, MULTIPLE_PARENT_ALLOWED --5547536
6903 FROM HZ_RELATIONSHIP_TYPES
6904 WHERE RELATIONSHIP_TYPE = cp_rel_type
6905 AND ROWNUM = 1;
6906
6907 CURSOR c_relship_det(cp_relship_id NUMBER) IS
6908 SELECT relationship_type,subject_id,subject_table_name,subject_type,
6909 object_id,object_table_name,object_type,start_date,
6910 direction_code,status,end_date
6911 FROM HZ_RELATIONSHIPS
6912 WHERE relationship_id = cp_relship_id
6913 AND DIRECTIONAL_FLAG = 'F';
6914
6915 --5547536
6916
6917 CURSOR check_parent_exists(cp_rel_type VARCHAR2, cp_child_id NUMBER, cp_table_name VARCHAR2, cp_object_type VARCHAR2) IS
6918 SELECT parent_id
6919 FROM hz_hierarchy_nodes
6920 WHERE child_id = cp_child_id
6921 AND child_table_name = cp_table_name
6922 AND child_object_type = cp_object_type
6923 AND hierarchy_type = cp_rel_type
6924 AND effective_end_date > sysdate --bug 6696774
6925 AND level_number = 1;
6926
6927 l_hierarchical_flag VARCHAR2(1);
6928 l_hierarchy_rec HZ_HIERARCHY_PUB.HIERARCHY_NODE_REC_TYPE;
6929 l_subject_id NUMBER;
6930 l_object_id NUMBER;
6931 l_subject_table_name VARCHAR2(30);
6932 l_object_table_name VARCHAR2(30);
6933 l_start_date DATE;
6934 l_direction_code VARCHAR2(30);
6935 l_msg_count NUMBER;
6936 l_msg_data VARCHAR2(2000);
6937 l_return_status VARCHAR2(10);
6938 l_status VARCHAR2(1);
6939 l_rel_type HZ_RELATIONSHIPS.RELATIONSHIP_TYPE%TYPE;
6940 l_rel_code HZ_RELATIONSHIPS.RELATIONSHIP_CODE%TYPE;
6941 l_subject_type HZ_RELATIONSHIPS.SUBJECT_TYPE%TYPE;
6942 l_object_type HZ_RELATIONSHIPS.OBJECT_TYPE%TYPE;
6943 from_end_date date;
6944 --5547536
6945 l_multiple_parent_flag VARCHAR2(1);
6946 l_from_par_id NUMBER;
6947 l_to_par_id NUMBER;
6948
6949 BEGIN
6950
6951 OPEN c_relship_det(p_from_id);
6952 FETCH c_relship_det INTO l_rel_type,l_subject_id,l_subject_table_name,l_subject_type,
6953 l_object_id,l_object_table_name,l_object_type,l_start_date,
6954 l_direction_code,l_status,from_end_date;
6955 CLOSE c_relship_det;
6956 OPEN c_hier_flag(l_rel_type);
6957 FETCH c_hier_flag INTO l_hierarchical_flag, l_multiple_parent_flag;
6958 CLOSE c_hier_flag;
6959
6960 --5547536
6961 IF l_hierarchical_flag = 'Y' AND NVL(l_multiple_parent_flag, 'N')='N' AND p_action = 'T' THEN
6962 IF p_sub_obj_merge = 'OBJ' THEN
6963
6964 OPEN check_parent_exists(l_rel_type,p_from_fk_id,l_object_table_name,l_object_type);
6965 FETCH check_parent_exists INTO l_from_par_id;
6966 CLOSE check_parent_exists;
6967
6968 OPEN check_parent_exists(l_rel_type,p_to_fk_id,l_object_table_name,l_object_type);
6969 FETCH check_parent_exists INTO l_to_par_id;
6970 CLOSE check_parent_exists;
6971
6972 IF l_from_par_id IS NOT NULL AND l_to_par_id IS NOT NULL AND l_from_par_id <> l_to_par_id THEN
6973 FND_MESSAGE.SET_NAME('AR', 'HZ_HIER_MERGE_ERROR');
6974 FND_MESSAGE.SET_TOKEN('PARTIES',p_from_fk_id||', '||p_to_fk_id);
6975 FND_MSG_PUB.ADD;
6976 x_return_status := FND_API.G_RET_STS_ERROR;
6977 return;
6978 END IF;
6979
6980 ELSIF p_sub_obj_merge = 'SUB' THEN
6981
6982 OPEN check_parent_exists(l_rel_type,p_from_fk_id,l_subject_table_name,l_subject_type);
6983 FETCH check_parent_exists INTO l_from_par_id;
6984 CLOSE check_parent_exists;
6985
6986 OPEN check_parent_exists(l_rel_type,p_to_fk_id,l_subject_table_name,l_subject_type);
6987 FETCH check_parent_exists INTO l_to_par_id;
6988 CLOSE check_parent_exists;
6989
6990 IF l_from_par_id IS NOT NULL AND l_to_par_id IS NOT NULL AND l_from_par_id <> l_to_par_id THEN
6991 FND_MESSAGE.SET_NAME('AR', 'HZ_HIER_MERGE_ERROR');
6992 FND_MESSAGE.SET_TOKEN('PARTIES',p_from_fk_id||', '||p_to_fk_id);
6993 FND_MSG_PUB.ADD;
6994 x_return_status := FND_API.G_RET_STS_ERROR;
6995 return;
6996 END IF;
6997
6998 END IF;
6999
7000 END IF;
7001 --end 5547536
7002
7003 IF l_hierarchical_flag = 'Y' THEN
7004 l_hierarchy_rec.hierarchy_type := l_rel_type;
7005 l_hierarchy_rec.effective_end_date :=sysdate;
7006 l_hierarchy_rec.relationship_id := p_from_id;
7007 IF(p_action = 'M') THEN
7008 l_hierarchy_rec.status := 'M';
7009 ELSE
7010 l_hierarchy_rec.status := 'I';
7011 END IF;
7012 -- check if relationship type is parent one
7013 IF l_direction_code = 'P' THEN
7014 -- assign the subject to parent for hierarchy
7015 l_hierarchy_rec.parent_id := l_subject_id;
7016 l_hierarchy_rec.parent_table_name := l_subject_table_name;
7017 l_hierarchy_rec.parent_object_type := l_subject_type;
7018 l_hierarchy_rec.child_id := l_object_id;
7019 l_hierarchy_rec.child_table_name := l_object_table_name;
7020 l_hierarchy_rec.child_object_type := l_object_type;
7021 ELSIF l_direction_code = 'C' THEN
7022 -- assign the object to parent
7023 l_hierarchy_rec.parent_id := l_object_id;
7024 l_hierarchy_rec.parent_table_name := l_object_table_name;
7025 l_hierarchy_rec.parent_object_type := l_object_type;
7026 l_hierarchy_rec.child_id := l_subject_id;
7027 l_hierarchy_rec.child_table_name := l_subject_table_name;
7028 l_hierarchy_rec.child_object_type := l_subject_type;
7029
7030 END IF;
7031 HZ_HIERARCHY_PUB.update_link(
7032 p_init_msg_list => FND_API.G_FALSE,
7033 p_hierarchy_node_rec => l_hierarchy_rec,
7034 x_return_status => x_return_status,
7035 x_msg_count => l_msg_count,
7036 x_msg_data => l_msg_data
7037 );
7038 IF (p_action = 'T') THEN
7039
7040 l_hierarchy_rec.hierarchy_type := l_rel_type;
7041 l_hierarchy_rec.effective_start_date := sysdate;
7042 l_hierarchy_rec.effective_end_date := from_end_date;
7043 l_hierarchy_rec.status := 'A';
7044 l_hierarchy_rec.relationship_id := p_from_id;
7045 IF l_direction_code = 'P' THEN
7046 l_hierarchy_rec.parent_table_name := l_subject_table_name;
7047 l_hierarchy_rec.parent_object_type := l_subject_type;
7048 l_hierarchy_rec.child_table_name := l_object_table_name;
7049 l_hierarchy_rec.child_object_type := l_object_type;
7050 ELSIF l_direction_code = 'C' THEN
7051 l_hierarchy_rec.parent_table_name := l_object_table_name;
7052 l_hierarchy_rec.parent_object_type := l_object_type ;
7053 l_hierarchy_rec.child_table_name := l_subject_table_name;
7054 l_hierarchy_rec.child_object_type := l_subject_type;
7055 END IF;
7056
7057 IF(p_sub_obj_merge = 'SUB') THEN
7058 IF l_direction_code = 'P' THEN
7059 l_hierarchy_rec.parent_id := p_to_fk_id;
7060 l_hierarchy_rec.child_id := l_object_id;
7061 ELSIF l_direction_code = 'C' THEN
7062 l_hierarchy_rec.parent_id := l_object_id;
7063 l_hierarchy_rec.child_id := p_to_fk_id;
7064 END IF;
7065 ELSIF(p_sub_obj_merge = 'OBJ') THEN
7066 IF l_direction_code = 'P' THEN
7067 l_hierarchy_rec.parent_id := l_subject_id;
7068 l_hierarchy_rec.child_id := p_to_fk_id;
7069 ELSIF l_direction_code = 'C' THEN
7070 l_hierarchy_rec.parent_id := p_to_fk_id;
7071 l_hierarchy_rec.child_id := l_subject_id;
7072 END IF;
7073 END IF;
7074 HZ_HIERARCHY_PUB.create_link(
7075 p_init_msg_list => FND_API.G_FALSE,
7076 p_hierarchy_node_rec => l_hierarchy_rec,
7077 x_return_status => l_return_status,
7078 x_msg_count => l_msg_count,
7079 x_msg_data => l_msg_data
7080 );
7081
7082 END IF;
7083
7084 END IF;
7085
7086 END;
7087
7088 END HZ_MERGE_PKG;