[Home] [Help]
PACKAGE BODY: APPS.IBY_PARTY_MERGE
Source
1 PACKAGE BODY IBY_PARTY_MERGE AS
2 /* $Header: ibyptymergb.pls 120.0.12010000.5 2010/03/24 11:16:01 sgogula noship $ */
3
4 G_DEBUG_MODULE CONSTANT VARCHAR2(100) := 'iby.plsql.IBY_PARTY_MERGE';
5
6
7 PROCEDURE acct_owner_merge
8 (p_entity_name IN VARCHAR2,
9 p_from_id IN NUMBER,
10 p_to_id IN OUT NOCOPY NUMBER,
11 p_from_fk_id IN NUMBER,
12 p_to_fk_id IN NUMBER,
13 p_parent_entity_name IN VARCHAR2,
14 p_batch_id IN NUMBER,
15 p_batch_party_id IN NUMBER,
16 x_return_status IN OUT NOCOPY VARCHAR2
17 )
18 IS
19 l_dup_id iby_account_owners.account_owner_party_id%TYPE := NULL;
20 l_merge_reason VARCHAR2(30);
21 l_dbg_mod VARCHAR2(100) := G_DEBUG_MODULE || '.acct_owner_merge';
22 g_mesg VARCHAR2(1000) := '';
23
24 CURSOR c_dupeba
25 (ci_owner_id IN iby_account_owners.account_owner_id%TYPE,
26 ci_party_id IN iby_account_owners.account_owner_party_id%TYPE)
27 IS
28 SELECT account_owner_id
29 FROM iby_account_owners mto,
30 ( SELECT ext_bank_account_id
31 FROM iby_account_owners
32 WHERE (account_owner_id = ci_owner_id) ) mfrom
33 WHERE mto.account_owner_party_id = ci_party_id
34 AND mto.ext_bank_account_id = mfrom.ext_bank_account_id;
35
36 BEGIN
37
38 g_mesg := 'Enter';
39 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
40
41 g_mesg := 'p_entity_name' || p_entity_name;
42 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
43 g_mesg := 'p_from_id' || p_from_id;
44 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
45 g_mesg := 'p_to_id' || p_to_id;
46 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
47 g_mesg := 'p_from_fk_id' || p_from_fk_id;
48 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
49 g_mesg := 'p_to_fk_id' || p_to_fk_id;
50 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
51 g_mesg := 'p_parent_entity_name' || p_parent_entity_name;
52 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
53 g_mesg := 'p_batch_id' || p_batch_id;
54 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
55
56 x_return_status := FND_API.G_RET_STS_SUCCESS;
57
58 IF c_dupeba%ISOPEN THEN CLOSE c_dupeba; END IF;
59
60 IF (p_from_fk_id = p_to_fk_id) THEN
61 p_to_id := p_from_id;
62 RETURN;
63 END IF;
64
65 SELECT merge_reason_code
66 INTO l_merge_reason
67 FROM hz_merge_batch
68 WHERE batch_id = p_batch_id;
69
70 IF (p_parent_entity_name = 'HZ_PARTIES') THEN
71
72 IF ( (l_merge_reason <> 'DUPLICATE') AND
73 (l_merge_reason <> 'MERGER') AND
74 (l_merge_reason <> 'DEDUPE') AND
75 (l_merge_reason <> 'DUPLICATE_RELN_PARTY') AND
76 (l_merge_reason <> 'De-duplication Merge') )
77 THEN
78 g_mesg := 'cannot unify non-duplicate bank account owners';
79 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
80
81 fnd_message.set_name('IBY','IBY_PARTY_UNIFY_BA_VETO');
82 fnd_msg_pub.ADD;
83 x_return_status := fnd_api.g_ret_sts_error;
84 RETURN;
85 END IF;
86
87 OPEN c_dupeba(p_from_id,p_to_fk_id);
88 FETCH c_dupeba INTO l_dup_id;
89 CLOSE c_dupeba;
90
91 g_mesg := 'duplicate account owner:='|| l_dup_id;
92 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
93
94 UPDATE iby_account_owners
95 SET account_owner_party_id = DECODE(l_dup_id, NULL,p_to_fk_id, account_owner_party_id),
96 end_date = DECODE(l_dup_id, NULL,end_date, SYSDATE),
97 last_update_date = hz_utility_pub.last_update_date,
98 last_updated_by = hz_utility_pub.user_id,
99 last_update_login = hz_utility_pub.last_update_login
100 WHERE (account_owner_id = p_from_id);
101
102 IF (l_dup_id IS NULL) THEN
103 p_to_id := p_from_id;
104 ELSE
105 p_to_id := l_dup_id;
106 END IF;
107
108 END IF;
109 g_mesg := 'Exit';
110 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
111
112 EXCEPTION
113 WHEN OTHERS THEN
114
115 g_mesg := 'Unexpected error:=' || SQLERRM;
116 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
117
118 FND_MESSAGE.SET_NAME('IBY', 'IBY_9999');
119 FND_MESSAGE.SET_TOKEN('MESSAGE_TEXT' ,SQLERRM);
120 FND_MSG_PUB.ADD;
121 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
122 END acct_owner_merge;
123
124
125
126 PROCEDURE credit_card_merge
127 (p_entity_name IN VARCHAR2,
128 p_from_id IN NUMBER,
129 p_to_id IN OUT NOCOPY NUMBER,
130 p_from_fk_id IN NUMBER,
131 p_to_fk_id IN NUMBER,
132 p_parent_entity_name IN VARCHAR2,
133 p_batch_id IN NUMBER,
134 p_batch_party_id IN NUMBER,
135 x_return_status IN OUT NOCOPY VARCHAR2
136 )
137 IS
138
139 CURSOR c_dupecc
140 (ci_instr_id IN iby_creditcard.instrid%TYPE,
141 ci_owner_id IN iby_creditcard.card_owner_id%TYPE)
142 IS
143 SELECT instrid
144 FROM iby_creditcard mto,
145 (SELECT cc_number_hash1, cc_number_hash2
146 FROM iby_creditcard WHERE (instrid = ci_instr_id)) mfrom
147 WHERE
148 mto.card_owner_id = ci_owner_id
149 AND mto.cc_number_hash1 = mfrom.cc_number_hash1
150 AND mto.cc_number_hash2 = mfrom.cc_number_hash2
151 AND NVL(mto.active_flag,'Y') = 'Y'
152 AND (NVL(mto.inactive_date,SYSDATE+10) > SYSDATE);
153
154 l_merge_reason VARCHAR2(30);
155 l_dup_id iby_creditcard.instrid%TYPE := NULL;
156 l_dbg_mod VARCHAR2(100) := G_DEBUG_MODULE || '.credit_card_merge';
157 g_mesg VARCHAR2(1000) := '';
158
159 BEGIN
160
161 g_mesg := 'Enter';
162 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
163
164 g_mesg := 'p_entity_name' || p_entity_name;
165 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
166 g_mesg := 'p_from_id' || p_from_id;
167 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
168 g_mesg := 'p_to_id' || p_to_id;
169 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
170 g_mesg := 'p_from_fk_id' || p_from_fk_id;
171 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
172 g_mesg := 'p_to_fk_id' || p_to_fk_id;
173 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
174 g_mesg := 'p_parent_entity_name' || p_parent_entity_name;
175 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
176 g_mesg := 'p_batch_id' || p_batch_id;
177 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
178
179 x_return_status := FND_API.G_RET_STS_SUCCESS;
180
181 IF (c_dupecc%ISOPEN) THEN CLOSE c_dupecc; END IF;
182
183 SELECT merge_reason_code
184 INTO l_merge_reason
185 FROM hz_merge_batch
186 WHERE batch_id = p_batch_id;
187
188 IF (p_from_fk_id = p_to_fk_id) THEN
189 p_to_id := p_from_id;
190 RETURN;
191 END IF;
192
193 IF (p_parent_entity_name = 'HZ_PARTIES') THEN
194
195 IF ( (l_merge_reason <> 'DUPLICATE') AND
196 (l_merge_reason <> 'MERGER') AND
197 (l_merge_reason <> 'DEDUPE') AND
198 (l_merge_reason <> 'DUPLICATE_RELN_PARTY') AND
199 (l_merge_reason <> 'De-duplication Merge') )
200 THEN
201 g_mesg :='cannot unify non-duplicate credit cards';
202 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
203
204 fnd_message.set_name('IBY','IBY_PARTY_UNIFY_CC_VETO');
205 fnd_msg_pub.ADD;
206 x_return_status := fnd_api.g_ret_sts_error;
207 RETURN;
208 END IF;
209
210
211 OPEN c_dupecc(p_from_id,p_to_fk_id);
212 FETCH c_dupecc INTO l_dup_id;
213 CLOSE c_dupecc;
214
215 g_mesg :='duplicate card:='|| l_dup_id;
216 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
217
218 UPDATE iby_creditcard
219 SET card_owner_id = DECODE(l_dup_id, NULL,p_to_fk_id, card_owner_id),
220 active_flag = DECODE(l_dup_id, NULL,active_flag, 'N'),
221 inactive_date = DECODE(l_dup_id, NULL,inactive_date, SYSDATE),
222 last_update_date = hz_utility_pub.last_update_date,
223 last_updated_by = hz_utility_pub.user_id,
224 last_update_login = hz_utility_pub.last_update_login,
225 request_id = hz_utility_pub.request_id,
226 program_application_id = hz_utility_pub.program_application_id,
227 program_id = hz_utility_pub.program_id,
228 program_update_date = sysdate
229 WHERE (instrid = p_from_id);
230
231 p_to_id := NVL(l_dup_id,p_from_id);
232
233 ELSIF (p_parent_entity_name = 'HZ_PARTY_SITE_USES') THEN
234
235 UPDATE iby_creditcard
236 SET addressid = p_to_fk_id,
237 last_update_date = hz_utility_pub.last_update_date,
238 last_updated_by = hz_utility_pub.user_id,
239 last_update_login = hz_utility_pub.last_update_login,
240 request_id = hz_utility_pub.request_id,
241 program_application_id = hz_utility_pub.program_application_id,
242 program_id = hz_utility_pub.program_id,
243 program_update_date = sysdate
244 WHERE (instrid = p_from_id);
245
246 p_to_id := p_from_id;
247
248 END IF;
249
250 g_mesg :='Exit';
251 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
252
253 EXCEPTION
254 WHEN OTHERS THEN
255
256 g_mesg :='Unexpected error:=' || SQLERRM;
257 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
258
259 FND_MESSAGE.SET_NAME('IBY', 'IBY_9999');
260 FND_MESSAGE.SET_TOKEN('MESSAGE_TEXT' ,SQLERRM);
261 FND_MSG_PUB.ADD;
262 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
263
264 END credit_card_merge;
265
266
267 PROCEDURE external_payer_merge
268 (p_entity_name IN VARCHAR2,
269 p_from_id IN NUMBER,
270 p_to_id IN OUT NOCOPY NUMBER,
271 p_from_fk_id IN NUMBER,
272 p_to_fk_id IN NUMBER,
273 p_parent_entity_name IN VARCHAR2,
274 p_batch_id IN NUMBER,
275 p_batch_party_id IN NUMBER,
276 x_return_status IN OUT NOCOPY VARCHAR2
277 )
278 IS
279
280 CURSOR c_dupepayer
281 (ci_payer_id IN iby_external_payers_all.ext_payer_id%TYPE,
282 ci_party_id IN iby_external_payers_all.party_id%TYPE)
283 IS
284 SELECT ext_payer_id
285 FROM iby_external_payers_all mto,
286 (SELECT payment_function,ci_party_id,cust_account_id,acct_site_use_id,
287 org_type,org_id
288 FROM iby_external_payers_all
289 WHERE (ext_payer_id = ci_payer_id)) mfrom
290 WHERE mto.ext_payer_id <> ci_payer_id
291 AND mto.payment_function = mfrom.payment_function
292 AND mto.party_id = ci_party_id
293 AND NVL(mto.cust_account_id,-99) = NVL(mfrom.cust_account_id,-99)
294 AND NVL(mto.acct_site_use_id,-99) = NVL(mfrom.acct_site_use_id,-99)
295 AND NVL(mto.org_type,'!') = NVL(mfrom.org_type,'!')
296 AND NVL(mto.org_id,-99) = NVL(mfrom.org_id,-99);
297
298 l_dbg_mod VARCHAR2(100) := G_DEBUG_MODULE || '.external_payer_merge';
299 l_dup_id iby_external_payers_all.ext_payer_id%TYPE;
300 g_mesg VARCHAR2(1000) := '';
301
302 BEGIN
303
304 g_mesg := 'Enter';
305 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
306
307 g_mesg := 'p_entity_name' || p_entity_name;
308 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
309 g_mesg := 'p_from_id' || p_from_id;
310 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
311 g_mesg := 'p_to_id' || p_to_id;
312 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
313 g_mesg := 'p_from_fk_id' || p_from_fk_id;
314 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
315 g_mesg := 'p_to_fk_id' || p_to_fk_id;
316 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
317 g_mesg := 'p_parent_entity_name' || p_parent_entity_name;
318 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
319 g_mesg := 'p_batch_id' || p_batch_id;
320 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
321
322 x_return_status := FND_API.G_RET_STS_SUCCESS;
323
324 IF (c_dupepayer%ISOPEN) THEN CLOSE c_dupepayer; END IF;
325
326 IF (p_parent_entity_name = 'HZ_PARTIES') THEN
327
328 IF (p_from_fk_id = p_to_fk_id) THEN
329 p_to_id := p_from_id;
330 RETURN;
331 END IF;
332
333 OPEN c_dupepayer(p_from_id,p_to_fk_id);
334 FETCH c_dupepayer INTO l_dup_id;
335 CLOSE c_dupepayer;
336
337 g_mesg := 'duplicate payer:='|| l_dup_id;
338 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
339
340 IF (l_dup_id IS NULL) THEN
341 UPDATE iby_external_payers_all
342 SET party_id = p_to_fk_id,
343 last_update_date = hz_utility_pub.last_update_date,
344 last_updated_by = hz_utility_pub.user_id,
345 last_update_login = hz_utility_pub.last_update_login
346 WHERE ext_payer_id = p_from_id;
347 p_to_id := p_from_id;
348 ELSE
349 p_to_id := l_dup_id;
350 END IF;
351 END IF;
352
353 g_mesg := 'Exit';
354 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
355
356 EXCEPTION
357 WHEN OTHERS THEN
358
359 g_mesg := 'Unexpected error:=' || SQLERRM;
360 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
361
362 FND_MESSAGE.SET_NAME('IBY', 'IBY_9999');
363 FND_MESSAGE.SET_TOKEN('MESSAGE_TEXT' ,SQLERRM);
364 FND_MSG_PUB.ADD;
365 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
366
367 END external_payer_merge;
368
369 PROCEDURE pmt_instrument_use_merge
370 (p_entity_name IN VARCHAR2,
371 p_from_id IN NUMBER,
372 p_to_id IN OUT NOCOPY NUMBER,
373 p_from_fk_id IN NUMBER,
374 p_to_fk_id IN NUMBER,
375 p_parent_entity_name IN VARCHAR2,
376 p_batch_id IN NUMBER,
377 p_batch_party_id IN NUMBER,
378 x_return_status IN OUT NOCOPY VARCHAR2
379 )
380 IS
381
382 l_dbg_mod VARCHAR2(100) := G_DEBUG_MODULE || '.pmt_instrument_use_merge';
383 l_dup_id iby_pmt_instr_uses_all.instrument_payment_use_id%TYPE := NULL;
384 l_flow_type iby_pmt_instr_uses_all.payment_flow%TYPE;
385 g_mesg VARCHAR2(1000) := '';
386
387 CURSOR c_dupinstr
388 (ci_use_id IN iby_pmt_instr_uses_all.instrument_payment_use_id%TYPE,
389 ci_instr_id IN iby_pmt_instr_uses_all.instrument_id%TYPE,
390 ci_instr_type IN iby_pmt_instr_uses_all.instrument_type%TYPE)
391 IS
392 SELECT mto.instrument_payment_use_id
393 FROM iby_pmt_instr_uses_all mto,
394 (SELECT ext_pmt_party_id,payment_flow
395 FROM iby_pmt_instr_uses_all
396 WHERE instrument_payment_use_id = ci_use_id) mfrom
397 WHERE
398 mto.instrument_payment_use_id <> ci_use_id
399 AND mto.payment_flow = mfrom.payment_flow
400 AND mto.ext_pmt_party_id = mfrom.ext_pmt_party_id
401 AND mto.instrument_type = ci_instr_type
402 AND mto.instrument_id = ci_instr_id;
403
404 CURSOR c_dupeparty
405 (ci_use_id IN iby_pmt_instr_uses_all.instrument_payment_use_id%TYPE,
406 ci_party_id IN iby_pmt_instr_uses_all.ext_pmt_party_id%TYPE,
407 ci_flow_type IN iby_pmt_instr_uses_all.payment_flow%TYPE)
408 IS
409 SELECT mto.instrument_payment_use_id
410 FROM iby_pmt_instr_uses_all mto,
411 (SELECT instrument_type,instrument_id
412 FROM iby_pmt_instr_uses_all
413 WHERE instrument_payment_use_id = ci_use_id) mfrom
414 WHERE
415 mto.instrument_payment_use_id <> ci_use_id
416 AND mto.payment_flow = ci_flow_type
417 AND mto.ext_pmt_party_id = ci_party_id
418 AND mto.instrument_type = mfrom.instrument_type
419 AND mto.instrument_id = mfrom.instrument_id;
420
421 BEGIN
422
423 g_mesg := 'Enter';
424 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
425
426 g_mesg := 'p_entity_name' || p_entity_name;
427 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
428 g_mesg := 'p_from_id' || p_from_id;
429 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
430 g_mesg := 'p_to_id' || p_to_id;
431 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
432 g_mesg := 'p_from_fk_id' || p_from_fk_id;
433 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
434 g_mesg := 'p_to_fk_id' || p_to_fk_id;
435 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
436 g_mesg := 'p_parent_entity_name' || p_parent_entity_name;
437 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
438 g_mesg := 'p_batch_id' || p_batch_id;
439 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
440
441 x_return_status := FND_API.G_RET_STS_SUCCESS;
442
443 IF (c_dupinstr%ISOPEN) THEN CLOSE c_dupinstr; END IF;
444 IF (c_dupeparty%ISOPEN) THEN CLOSE c_dupeparty; END IF;
445
446 IF (p_parent_entity_name = 'IBY_CREDITCARD') THEN
447
448 IF (p_from_fk_id = p_to_fk_id) THEN
449 p_to_id := p_from_id;
450 RETURN;
451 END IF;
452
453 OPEN c_dupinstr(p_from_id,p_to_fk_id,'CREDITCARD');
454 FETCH c_dupinstr INTO l_dup_id;
455 CLOSE c_dupinstr;
456
457 g_mesg := 'duplicate instr use:='|| l_dup_id;
458 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
459
460 UPDATE iby_pmt_instr_uses_all
461 SET instrument_id = DECODE(l_dup_id, NULL,p_to_fk_id, instrument_id),
462 end_date = DECODE(l_dup_id, NULL,end_date, SYSDATE),
463 last_update_date = hz_utility_pub.last_update_date,
464 last_updated_by = hz_utility_pub.user_id,
465 last_update_login = hz_utility_pub.last_update_login
466 WHERE (instrument_payment_use_id = p_from_id);
467
468 IF (l_dup_id IS NULL) THEN
469 p_to_id := p_from_id;
470 ELSE
471 p_to_id := l_dup_id;
472 END IF;
473
474 ELSIF (p_parent_entity_name = 'IBY_EXTERNAL_PAYERS_ALL')
475 THEN
476
477 IF (p_from_fk_id = p_to_fk_id) THEN
478 p_to_id := p_from_id;
479 RETURN;
480 END IF;
481
482 l_flow_type := 'FUNDS_CAPTURE';
483
484 OPEN c_dupeparty(p_from_id,p_to_fk_id,l_flow_type);
485 FETCH c_dupeparty INTO l_dup_id;
486 CLOSE c_dupeparty;
487
488 g_mesg := 'duplicate instr use:='|| l_dup_id;
489 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
490
491 UPDATE iby_pmt_instr_uses_all
492 SET ext_pmt_party_id = DECODE(l_dup_id, NULL,p_to_fk_id, ext_pmt_party_id),
493 end_date = DECODE(l_dup_id, NULL,end_date, SYSDATE),
494 last_update_date = hz_utility_pub.last_update_date,
495 last_updated_by = hz_utility_pub.user_id,
496 last_update_login = hz_utility_pub.last_update_login
497 WHERE (instrument_payment_use_id = p_from_id);
498
499 IF (l_dup_id IS NULL) THEN
500 p_to_id := p_from_id;
501 ELSE
502 p_to_id := l_dup_id;
503 END IF;
504
505 END IF;
506
507 g_mesg := 'Exit';
508 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
509
510 EXCEPTION
511 WHEN OTHERS THEN
512 g_mesg := 'Unexpected error:=' || SQLERRM;
513 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
514
515 FND_MESSAGE.SET_NAME('IBY', 'IBY_9999');
516 FND_MESSAGE.SET_TOKEN('MESSAGE_TEXT' ,SQLERRM);
517 FND_MSG_PUB.ADD;
518 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
519
520 END pmt_instrument_use_merge;
521
522
523 PROCEDURE party_pmt_methods_merge
524 (p_entity_name IN VARCHAR2,
525 p_from_id IN NUMBER,
526 p_to_id IN OUT NOCOPY NUMBER,
527 p_from_fk_id IN NUMBER,
528 p_to_fk_id IN NUMBER,
529 p_parent_entity_name IN VARCHAR2,
530 p_batch_id IN NUMBER,
531 p_batch_party_id IN NUMBER,
532 x_return_status IN OUT NOCOPY VARCHAR2
533 )
534 IS
535 l_dbg_mod VARCHAR2(100) := G_DEBUG_MODULE || '.party_pmt_methods_merge';
536 l_dup_id iby_ext_party_pmt_mthds.ext_party_pmt_mthd_id%TYPE := NULL;
537 l_flow_type iby_ext_party_pmt_mthds.payment_flow%TYPE;
538 g_mesg VARCHAR2(1000) := '';
539
540 CURSOR c_dupemth
541 (ci_mth_id IN iby_ext_party_pmt_mthds.ext_party_pmt_mthd_id%TYPE,
542 ci_party_id IN iby_ext_party_pmt_mthds.ext_pmt_party_id%TYPE,
543 ci_flow_type IN iby_ext_party_pmt_mthds.payment_flow%TYPE)
544 IS
545 SELECT ext_party_pmt_mthd_id
546 FROM iby_ext_party_pmt_mthds mto,
547 (SELECT payment_method_code
548 FROM iby_ext_party_pmt_mthds
549 WHERE (ext_party_pmt_mthd_id = ci_mth_id)) mfrom
550 WHERE
551 mto.ext_pmt_party_id = ci_party_id
552 AND mto.payment_flow = ci_flow_type
553 AND mto.payment_method_code = mfrom.payment_method_code;
554
555
556 BEGIN
557
558 g_mesg := 'Enter';
559 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
560
561 g_mesg := 'p_entity_name' || p_entity_name;
562 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
563 g_mesg := 'p_from_id' || p_from_id;
564 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
565 g_mesg := 'p_to_id' || p_to_id;
566 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
567 g_mesg := 'p_from_fk_id' || p_from_fk_id;
568 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
569 g_mesg := 'p_to_fk_id' || p_to_fk_id;
570 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
571 g_mesg := 'p_parent_entity_name' || p_parent_entity_name;
572 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
573 g_mesg := 'p_batch_id' || p_batch_id;
574 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
575
576 x_return_status := FND_API.G_RET_STS_SUCCESS;
577
578 IF (p_from_fk_id = p_to_fk_id) THEN
579 p_to_id := p_from_id;
580 RETURN;
581 END IF;
582
583 IF (p_parent_entity_name = 'IBY_EXTERNAL_PAYERS_ALL') THEN
584 l_flow_type := 'FUNDS_CAPTURE';
585
586 OPEN c_dupemth(p_from_id,p_to_fk_id,l_flow_type);
587 FETCH c_dupemth INTO l_dup_id;
588 CLOSE c_dupemth;
589
590 g_mesg := 'duplicate pmt method:='|| l_dup_id;
591 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
592
593 UPDATE iby_ext_party_pmt_mthds
594 SET ext_pmt_party_id = DECODE(l_dup_id, NULL,p_to_fk_id, ext_pmt_party_id),
595 inactive_date = DECODE(l_dup_id, NULL,inactive_date, SYSDATE),
596 last_update_date = hz_utility_pub.last_update_date,
597 last_updated_by = hz_utility_pub.user_id,
598 last_update_login = hz_utility_pub.last_update_login
599 WHERE (ext_party_pmt_mthd_id = p_from_id);
600
601 IF (l_dup_id IS NULL) THEN
602 p_to_id := p_from_id;
603 ELSE
604 p_to_id := l_dup_id;
605 END IF;
606 END IF;
607
608 g_mesg := 'Exit';
609 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
610
611 EXCEPTION
612 WHEN OTHERS THEN
613 g_mesg := 'Unexpected error:=' || SQLERRM;
614 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
615
616 FND_MESSAGE.SET_NAME('IBY', 'IBY_9999');
617 FND_MESSAGE.SET_TOKEN('MESSAGE_TEXT' ,SQLERRM);
618 FND_MSG_PUB.ADD;
619 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
620
621 END party_pmt_methods_merge;
622
623 PROCEDURE fc_tx_extensions_merge
624 (p_entity_name IN VARCHAR2,
625 p_from_id IN NUMBER,
626 p_to_id IN OUT NOCOPY NUMBER,
627 p_from_fk_id IN NUMBER,
628 p_to_fk_id IN NUMBER,
629 p_parent_entity_name IN VARCHAR2,
630 p_batch_id IN NUMBER,
631 p_batch_party_id IN NUMBER,
632 x_return_status IN OUT NOCOPY VARCHAR2
633 )
634 IS
635 l_dbg_mod VARCHAR2(100) := G_DEBUG_MODULE || '.fc_tx_extensions_merge';
636 g_mesg VARCHAR2(1000) := '';
637
638 BEGIN
639 g_mesg := 'Enter';
640 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
641
642 g_mesg := 'p_entity_name' || p_entity_name;
643 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
644 g_mesg := 'p_from_id' || p_from_id;
645 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
646 g_mesg := 'p_to_id' || p_to_id;
647 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
648 g_mesg := 'p_from_fk_id' || p_from_fk_id;
649 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
650 g_mesg := 'p_to_fk_id' || p_to_fk_id;
651 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
652 g_mesg := 'p_parent_entity_name' || p_parent_entity_name;
653 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
654 g_mesg := 'p_batch_id' || p_batch_id;
655 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
656
657 x_return_status := FND_API.G_RET_STS_SUCCESS;
658
659 -- extension is a transactional entity,it is never merged
660 p_to_id := p_from_id;
661
662 IF (p_from_fk_id = p_to_fk_id) THEN
663 p_to_id := p_from_id;
664 RETURN;
665 END IF;
666
667 IF (p_parent_entity_name = 'IBY_EXTERNAL_PAYERS_ALL') THEN
668
669 UPDATE iby_fndcpt_tx_extensions
670 SET ext_payer_id = p_to_fk_id,
671 last_update_date = hz_utility_pub.last_update_date,
672 last_updated_by = hz_utility_pub.user_id,
673 last_update_login = hz_utility_pub.last_update_login
674 WHERE (trxn_extension_id = p_from_id);
675
676 ELSIF (p_parent_entity_name = 'IBY_PMT_INSTR_USES_ALL') THEN
677
678 UPDATE iby_fndcpt_tx_extensions
679 SET instr_assignment_id = p_to_fk_id,
680 last_update_date = hz_utility_pub.last_update_date,
681 last_updated_by = hz_utility_pub.user_id,
682 last_update_login = hz_utility_pub.last_update_login
683 WHERE (trxn_extension_id = p_from_id);
684
685 END IF;
686
687 g_mesg := 'Exit';
688 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
689
690 EXCEPTION
691 WHEN OTHERS THEN
692 g_mesg := 'Unexpected error:=' || SQLERRM;
693 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
694
695 FND_MESSAGE.SET_NAME('IBY', 'IBY_9999');
696 FND_MESSAGE.SET_TOKEN('MESSAGE_TEXT' ,SQLERRM);
697 FND_MSG_PUB.ADD;
698 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
699 END fc_tx_extensions_merge;
700
701
702 PROCEDURE txn_summ_all_merge
703 (p_entity_name IN VARCHAR2,
704 p_from_id IN NUMBER,
705 p_to_id IN OUT NOCOPY NUMBER,
706 p_from_fk_id IN NUMBER,
707 p_to_fk_id IN NUMBER,
708 p_parent_entity_name IN VARCHAR2,
709 p_batch_id IN NUMBER,
710 p_batch_party_id IN NUMBER,
711 x_return_status IN OUT NOCOPY VARCHAR2
712 )
713 IS
714 l_dbg_mod VARCHAR2(100) := G_DEBUG_MODULE || '.txn_summ_all_merge';
715 g_mesg VARCHAR2(1000) := '';
716
717 BEGIN
718 g_mesg := 'Enter';
719 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
720
721 g_mesg := 'p_entity_name' || p_entity_name;
722 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
723 g_mesg := 'p_from_id' || p_from_id;
724 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
725 g_mesg := 'p_to_id' || p_to_id;
726 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
727 g_mesg := 'p_from_fk_id' || p_from_fk_id;
728 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
729 g_mesg := 'p_to_fk_id' || p_to_fk_id;
730 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
731 g_mesg := 'p_parent_entity_name' || p_parent_entity_name;
732 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
733 g_mesg := 'p_batch_id' || p_batch_id;
734 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
735
736 x_return_status := FND_API.G_RET_STS_SUCCESS;
737
738 -- summaries is a transactional entity,it is never merged
739 p_to_id := p_from_id;
740
741 IF (p_from_fk_id = p_to_fk_id) THEN
742 p_to_id := p_from_id;
743 RETURN;
744 END IF;
745
746 IF (p_parent_entity_name = 'HZ_PARTIES') THEN
747
748 UPDATE iby_trxn_summaries_all
749 SET payerid = p_to_fk_id,
750 last_update_date = hz_utility_pub.last_update_date,
751 last_updated_by = hz_utility_pub.user_id,
752 last_update_login = hz_utility_pub.last_update_login
753 WHERE (trxnmid = p_from_id);
754
755 ELSIF (p_parent_entity_name = 'IBY_PMT_INSTR_USES_ALL') THEN
756
757 UPDATE iby_trxn_summaries_all
758 SET payer_instr_assignment_id = p_to_fk_id,
759 last_update_date = hz_utility_pub.last_update_date,
760 last_updated_by = hz_utility_pub.user_id,
761 last_update_login = hz_utility_pub.last_update_login
762 WHERE (trxnmid = p_from_id);
763
764 ELSIF (p_parent_entity_name = 'IBY_CREDITCARD') THEN
765
766 UPDATE iby_trxn_summaries_all
767 SET payerinstrid = p_to_fk_id,
768 last_update_date = hz_utility_pub.last_update_date,
769 last_updated_by = hz_utility_pub.user_id,
770 last_update_login = hz_utility_pub.last_update_login
771 WHERE (trxnmid = p_from_id)
772 AND (instrtype = 'CREDITCARD');
773
774 END IF;
775
776 g_mesg := 'Exit';
777 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
778
779 EXCEPTION
780 WHEN OTHERS THEN
781 g_mesg := 'Unexpected error:=' || SQLERRM;
782 fnd_file.put_line(fnd_file.log, g_mesg || l_dbg_mod );
783
784 FND_MESSAGE.SET_NAME('IBY', 'IBY_9999');
785 FND_MESSAGE.SET_TOKEN('MESSAGE_TEXT' ,SQLERRM);
786 FND_MSG_PUB.ADD;
787 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
788
789 END txn_summ_all_merge;
790
791
792 END IBY_PARTY_MERGE;
793