DBA Data[Home] [Help]

PACKAGE BODY: APPS.IBE_CUSTOMER_PVT

Source


1 package body ibe_customer_pvt AS
2 /* $Header: IBEVACTB.pls 120.6 2005/11/18 18:21:58 mannamra ship $ */
3 
4 l_true VARCHAR2(1) := FND_API.G_TRUE;
5 
6 
7 --PROCEDURE Set_Bank_Acct_End_Date : This API has been removed: mannamra:10/07/2005
8 
9 
10 
11 /*
12  *PROCEDURE:
13  *      setOptInOutPreference
14  *DESCRIPTION:
15  *      -calls HZ_CONTACT_PREFERENCE_V2PUB to update the preference code
16  *      -creates a row in HZ_CONTACT_PREFERENCES if no row exists for party_id
17  */
18 PROCEDURE setOptInOutPreference(
19     p_party_id           IN    NUMBER,
20     p_preference         IN    VARCHAR2,
21     p_init_msg_list      IN    VARCHAR2 := FND_API.G_TRUE,
22     p_commit             IN    VARCHAR2 := FND_API.G_FALSE,
23     p_api                IN    NUMBER,
24     x_return_status      OUT  NOCOPY VARCHAR2,
25     x_msg_count          OUT  NOCOPY NUMBER,
26     x_msg_data           OUT  NOCOPY VARCHAR2
27 
28    )
29 IS
30     l_contact_preference_rec                hz_contact_preference_v2pub.contact_preference_rec_type;
31     l_contact_preference_rec2               hz_contact_preference_v2pub.contact_preference_rec_type;
32     l_contact_preference_id                 NUMBER;
33     l_object_version_number                 NUMBER;
34     l_id                                    NUMBER;
35     l_date                                  DATE;
36     l_obj_ver                               NUMBER;
37 
38 BEGIN
39     --IBE_UTIL.enable_debug();
40     -- standard start of API savepoint
41     SAVEPOINT setOptInOutPreference;
42 
43     -- standard call to check for call compatibility
44     IF NOT FND_API.compatible_api_call(1.0,
45                                        p_api,
46                                        'getOptInOutPreference',
47                                        G_PKG_NAME)
48     THEN
49       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
50     END IF;
51 
52     -- initialize message list if p_init_msg_list is set to TRUE.
53     IF FND_API.to_boolean(p_init_msg_list) THEN
54       FND_MSG_PUB.initialize;
55     END IF;
56 
57     --begin set/create contact preferences
58     BEGIN
59       SELECT contact_preference_id, last_update_date, object_version_number
60       INTO   l_id, l_date, l_obj_ver
61       From   hz_contact_preferences
62       WHERE  contact_level_table='HZ_PARTIES'
63       AND    contact_level_table_id=p_party_id;
64       --update reason_code if record found
65       l_contact_preference_rec.contact_preference_id := l_id;
66       l_contact_preference_rec.preference_code := p_preference;
67       l_object_version_number := l_obj_ver;
68       HZ_CONTACT_PREFERENCE_V2PUB.update_contact_preference(
69             FND_API.G_FALSE,
70             l_contact_preference_rec,
71             l_object_version_number,
72             x_return_status,
73             x_msg_count,
74             x_msg_data
75         );
76 
77       --create row when no record found
78       EXCEPTION WHEN NO_DATA_FOUND THEN
79         l_contact_preference_rec2.contact_level_table := 'HZ_PARTIES';
80         l_contact_preference_rec2.contact_level_table_id := p_party_id;
81         l_contact_preference_rec2.contact_type := 'ALL';
82         l_contact_preference_rec2.preference_code := p_preference;
83         l_contact_preference_rec2.requested_by := 'INTERNAL';
84         l_contact_preference_rec2.status := 'A';
85         l_contact_preference_rec2.created_by_module := 'TCA_V1_API';
86         HZ_CONTACT_PREFERENCE_V2PUB.create_contact_preference(
87                 FND_API.G_FALSE,
88                 l_contact_preference_rec2,
89                 l_contact_preference_id,
90                 x_return_status,
91                 x_msg_count,
92                 x_msg_data
93         );
94     END;
95     --end set/create contact preferences
96 
97 
98     -- standard check of p_commit
99     IF FND_API.to_boolean(p_commit) THEN
100       commit;
101     END IF;
102     -- standard call to get message count and if count is 1, get message info
103     FND_MSG_PUB.count_and_get(
104       p_encoded => FND_API.G_FALSE,
105       p_count => x_msg_count,
106       p_data => x_msg_data
107     );
108     --IBE_UTIL.disable_debug();
109 
110 --standard exception catching for main body
111 EXCEPTION
112   WHEN FND_API.G_EXC_ERROR THEN
113     --IBE_UTIL.enable_debug();
114 
115     ROLLBACK TO setOptInOutPreference;
116     x_return_status := FND_API.G_RET_STS_ERROR;
117     FND_MSG_PUB.count_and_get(
118       p_encoded => FND_API.G_FALSE,
119       p_count => x_msg_count,
120       p_data => x_msg_data
121     );
122     IF (IBE_UTIL.G_DEBUGON = l_true) THEN
123        IBE_UTIL.debug('G_EXC_ERROR exception');
124        IBE_UTIL.debug('x_msg_count ' || to_char(x_msg_count));
125        IBE_UTIL.debug('x_msg_data ' || x_msg_data);
126        IBE_UTIL.debug('error code : '|| to_char(SQLCODE));
127        IBE_UTIL.debug('error text : '|| SQLERRM);
128     END IF;
129 
130     --IBE_UTIL.disable_debug();
131 
132   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
133     --IBE_UTIL.enable_debug();
134 
135     ROLLBACK TO setOptInOutPreference;
136     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
137     FND_MSG_PUB.count_and_get(
138       p_encoded => FND_API.G_FALSE,
139       p_count => x_msg_count,
140       p_data => x_msg_data
141     );
142     IF (IBE_UTIL.G_DEBUGON = l_true) THEN
143        IBE_UTIL.debug('G_EXC_UNEXPECTED_ERROR exception');
144        IBE_UTIL.debug('x_msg_count ' || to_char(x_msg_count));
145        IBE_UTIL.debug('x_msg_data ' || x_msg_data);
146        IBE_UTIL.debug('error code : '|| to_char(SQLCODE));
147        IBE_UTIL.debug('error text : '|| SQLERRM);
148     END IF;
149 
150     --IBE_UTIL.disable_debug();
151 
152   WHEN OTHERS THEN
153     --IBE_UTIL.enable_debug();
154 
155     ROLLBACK TO setOptInOutPreference;
156     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
157     FND_MSG_PUB.count_and_get(
158       p_encoded => FND_API.G_FALSE,
159       p_count => x_msg_count,
160       p_data => x_msg_data
161     );
162     IF (IBE_UTIL.G_DEBUGON = l_true) THEN
163        IBE_UTIL.debug('OTHER exception');
164        IBE_UTIL.debug('x_msg_count ' || to_char(x_msg_count));
165        IBE_UTIL.debug('x_msg_data ' || x_msg_data);
166        IBE_UTIL.debug('error code : '|| to_char(SQLCODE));
167        IBE_UTIL.debug('error text : '|| SQLERRM);
168     END IF;
169 
170     --IBE_UTIL.disable_debug();
171 
172 END setOptInOutPreference;
173 
174 
175 
176 /* Local Function to get credit card type given the number
177 
178    -- Input Parameter(s)
179        - p_credit_card_number NUMBER
180    -- Returns
181          Credit_card_type VARCHAR2
182 */
183 function get_credit_card_type(
184      --fix 2861827
185      --p_Credit_Card_Number NUMBER
186      p_Credit_Card_Number VARCHAR2
187 ) RETURN VARCHAR2
188 AS
189      l_credit_Card_number Varchar2(30);
190      l_credit_card_length Number;
191 Begin
192     --fix 2861827
193      --l_credit_card_number := to_char(p_credit_card_number);
194      l_credit_card_number := p_credit_card_number;
195      l_credit_card_length := length(l_credit_card_number);
196 
197      If (l_credit_Card_length = 16 and substr(l_credit_card_number,1,2) in ('51','52','53','54','55') ) Then
198           Return ('MC');
199      Elsif ((l_credit_Card_length = 13 or l_credit_card_length = 16)  and substr(l_credit_card_number,1,1) = '4') Then
200           Return ('VISA');
201      Elsif (l_credit_Card_length = 15 and substr(l_credit_card_number,1,2) in ('34','37')) Then
202           Return ('AMEX');
203      Elsif (l_credit_card_length = 14 and substr(l_credit_card_number,1,3) in ('300','301','302','303','305','36','38')) Then
204           Return('DINERS');
205      Elsif (l_credit_card_length = 16 and substr(l_credit_card_number,1,4) = '6011')Then
206           Return ('DISCOVER');
207      Elsif ((l_credit_card_length = 15 and substr(l_credit_card_number,1,4) in ('2014','2149')) or
208      ((l_credit_card_length = 15 or l_credit_card_length = 16) and (substr(l_credit_card_number,1,1) = '3' or substr(l_credit_card_number,1,4) in ('2131','1800')))) Then
209           Return ('OTHERS');
210      Else
211           Return('ERROR');
212      End If;
213 
214 End get_credit_card_type;
215 
216 
217 -- This procedure will return a valid credit card information
218 -- if it can find a default credit card.
219 procedure get_default_credit_card_info(
220     p_api_version            IN  NUMBER,
221     p_init_msg_list          IN  VARCHAR2 := FND_API.G_FALSE,
222     p_commit                 IN  VARCHAR2 := FND_API.G_FALSE,
223     p_cust_account_id        IN  NUMBER,
224     p_party_id               IN  NUMBER,
225     p_mini_site_id           IN  NUMBER,
226     x_return_status          OUT NOCOPY VARCHAR2,
227     x_msg_count              OUT NOCOPY NUMBER,
228     x_msg_data               OUT NOCOPY VARCHAR2,
229     x_cc_assignment_id        OUT NOCOPY NUMBER
230                               )
231 IS
232   l_api_name               CONSTANT VARCHAR2(30) := 'get_default_credit_card_info';
233   l_api_version            CONSTANT NUMBER       := 1.0;
234 
235   prm_bank_acct_num AP_BANK_ACCOUNTS.BANK_ACCOUNT_NUM%TYPE := NULL;
236   prm_inactive_date AP_BANK_ACCOUNTS.INACTIVE_DATE%TYPE := NULL;
237   prm_acct_holder_name AP_BANK_ACCOUNTS.BANK_ACCOUNT_NAME%TYPE := NULL;
238   prm_credit_card_type VARCHAR2(50) := NULL;
239 
240   def_bank_acct_num AP_BANK_ACCOUNTS.BANK_ACCOUNT_NUM%TYPE := NULL;
241   def_inactive_date AP_BANK_ACCOUNTS.INACTIVE_DATE%TYPE := NULL;
242   def_acct_holder_name AP_BANK_ACCOUNTS.BANK_ACCOUNT_NAME%TYPE:= NULL;
243   def_credit_card_type VARCHAR2(50) := NULL;
244 
245   l_credit_card_type VARCHAR2(50) := NULL;
246 
247 
248 
249   CURSOR c_getPrimaryCCInfo(l_cust_acct_id NUMBER,l_party_id NUMBER,l_msite_id NUMBER) IS
250  SELECT assign.instr_assignment_id
251          FROM   iby_fndcpt_payer_assgn_instr_v assign
252          WHERE  assign.party_id = l_party_id
253          AND    assign.order_of_preference = 1
254          AND    assign.org_id is null
255          AND    assign.cust_account_id is null
256          AND    assign.instrument_type = 'CREDITCARD'
257          and    assign.ACCT_SITE_USE_ID is null
258          AND    nvl(CARD_EXPIRYDATE, sysdate) >= sysdate
259          and
260 			 exists
261 			 (select msite_information1
262 			  from ibe_msite_information m, fnd_lookup_values b
263 		       where
264 				   m.msite_id =l_msite_id and
265 				   b.lookup_type = 'CREDIT_CARD' and
266 				   b.view_application_id = 660 and
267 			        b.enabled_flag = 'Y' and
268 				 (b.tag = 'Y' or b.tag is null) and
269 				   b.language = userenv('lang') and
270 				msite_information_context = 'CC_TYPE' and
271 				  b.lookup_code = msite_information1
272                      and msite_information1 = assign.card_issuer_code);
273 
274 CURSOR c_getFirstCCInfo(l_cust_acct_id NUMBER,l_party_id NUMBER,l_msite_id NUMBER) IS
275         SELECT assign.instr_assignment_id
276          FROM   iby_fndcpt_payer_assgn_instr_v assign
277         WHERE  assign.party_id = l_party_id
278          AND    assign.org_id is null
279          AND    assign.cust_account_id is null
280          AND    assign.instrument_type = 'CREDITCARD'
281          and    assign.ACCT_SITE_USE_ID is null
282          AND    nvl(CARD_EXPIRYDATE, sysdate) >= sysdate
283          and
284                 exists
285                (select msite_information1
286                 from ibe_msite_information m, fnd_lookup_values b
287                 where
288                       m.msite_id = l_msite_id and
289                       b.lookup_type = 'CREDIT_CARD' and
290                       (b.tag = 'Y' or b.tag is null) and
291                       b.language = userenv('lang') and
292                       msite_information_context = 'CC_TYPE' and
293                       b.lookup_code = msite_information1
294                 and msite_information1 = assign.card_issuer_code)
295                 and rownum < 2
296         order by assign.order_of_preference asc;
297 
298         l_def_cc_assignment_id NUMBER;
299         l_cc_assignment_id NUMBER;
300 BEGIN
301 
302   --IBE_UTIL.enable_debug();
303 
304   IF (IBE_UTIL.G_DEBUGON = l_true) THEN
305      IBE_UTIL.debug('enter ibe_customer_pvt.get_default_credit_card_info');
306   END IF;
307 
308 
309   IF NOT FND_API.compatible_api_call(l_api_version,
310                                      p_api_version,
311                                      l_api_name,
312                                      G_PKG_NAME)
313   THEN
314     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
315   END IF;
316 
317   -- initialize message list if p_init_msg_list is set to TRUE.
318   IF FND_API.to_boolean(p_init_msg_list) THEN
319     FND_MSG_PUB.initialize;
320   END IF;
321 
322     -- Initialize API return status to success
323   x_return_status := FND_API.G_RET_STS_SUCCESS;
324 
325 
326   IF (IBE_UTIL.G_DEBUGON = l_true) THEN
327      IBE_UTIL.debug('call cursor c_getPrimaryCCInfo()');
328   END IF;
329   -- call cursor c_getPrimaryInfo
330 
331   IF (IBE_UTIL.G_DEBUGON = l_true) THEN
332      IBE_UTIL.debug('cust_acct_id = '||p_cust_account_id||'party_id = '||p_party_id||' minisite_id : '||p_mini_site_id);
333   END IF;
334 
335   OPEN c_getPrimaryCCInfo(p_cust_account_id,p_party_id,p_mini_site_id);
336 
337   FETCH c_getPrimaryCCInfo INTO l_cc_assignment_id ;
338 
339  IF (IBE_UTIL.G_DEBUGON = l_true) THEN
340     IBE_UTIL.debug('call cursor c_getFirstCCInfo()');
341  END IF;
342   OPEN c_getFirstCCInfo(p_cust_account_id,p_party_id,p_mini_site_id);
343 
344   FETCH c_getFirstCCInfo INTO l_def_cc_assignment_id;
345 
346   if c_getPrimaryCCInfo%FOUND then
347       IF (IBE_UTIL.G_DEBUGON = l_true) THEN
348          IBE_UTIL.debug('Primary CC found');
349       END IF;
350 
351      x_cc_assignment_id:= l_cc_assignment_id;
352        IF (IBE_UTIL.G_DEBUGON = l_true) THEN
353        IBE_UTIL.debug('x_cc_assign_id : '||l_cc_assignment_id);
354       END IF;
355  --else
356    --IBE_UTIL.debug('No Primary Info found');
357    --close c_getPrimaryCCInfo;
358  --end if;
359  elsif (c_getFirstCCInfo%FOUND) then
360 
361       IF (IBE_UTIL.G_DEBUGON = l_true) THEN
362          IBE_UTIL.debug('Default CC found ');
363       END IF;
364 
365         x_cc_assignment_id := l_def_cc_assignment_id;
366           IF (IBE_UTIL.G_DEBUGON = l_true) THEN
367        IBE_UTIL.debug('x_def_cc_assign_id : '||l_def_cc_assignment_id);
368       END IF;
369  else
370 
371       IF (IBE_UTIL.G_DEBUGON = l_true) THEN
372          IBE_UTIL.debug(' No default Credit card info found ');
373       END IF;
374       close c_getFirstCCInfo;
375       close c_getPrimaryCCInfo;
376 end if;
377 
378     /* 3/3/05: comment out
379     IF (IBE_UTIL.G_DEBUGON = l_true) THEN
380        IBE_UTIL.debug('x_credit_card_num : '||x_credit_card_num);
381         IBE_UTIL.debug('x_card_holder_name : '||x_card_holder_name);
382         IBE_UTIL.debug('x_credit_card_exp_date : '||x_credit_card_exp_date);
383         IBE_UTIL.debug('x_credit_card_type : '||x_credit_card_type);
384     END IF;
385     */
386 
387 
388     x_return_status := FND_API.G_RET_STS_SUCCESS;
389   -- standard check of p_commit
390   IF FND_API.to_boolean(p_commit) THEN
391     commit;
392   END IF;
393 
394   -- standard call to get message count and if count is 1, get message info
395   FND_MSG_PUB.count_and_get(
396     p_encoded => FND_API.G_FALSE,
397     p_count => x_msg_count,
398     p_data => x_msg_data
399   );
400 
401 
402   IF (IBE_UTIL.G_DEBUGON = l_true) THEN
403      IBE_UTIL.debug('exit ibe_customer_pvt.get_default_credit_card_info');
404   END IF;
405 
406   --IBE_UTIL.disable_debug();
407 
408 EXCEPTION
409 
410      WHEN FND_API.G_EXC_ERROR THEN
411     --IBE_UTIL.enable_debug();
412 
413      --ROLLBACK TO create_credit_card;
414 
415      x_return_status := FND_API.G_RET_STS_ERROR;
416 	FND_MSG_PUB.ADD;
417      FND_MSG_PUB.Count_And_Get(p_count      =>      x_msg_count,
418                                p_data       =>      x_msg_data,
419                                p_encoded    =>      'F');
420 
421     IF (IBE_UTIL.G_DEBUGON = l_true) THEN
422        IBE_UTIL.debug('G_EXC_ERROR exception');
423        IBE_UTIL.debug('x_msg_count ' || to_char(x_msg_count));
424        IBE_UTIL.debug('x_msg_data ' || x_msg_data);
425        IBE_UTIL.debug('error code : '|| to_char(SQLCODE));
426        IBE_UTIL.debug('error text : '|| SQLERRM);
427     END IF;
428 
429 
430     --IBE_UTIL.disable_debug();
431 
432 
433 
434 
435     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
436     --IBE_UTIL.enable_debug();
437 
438      --ROLLBACK TO create_credit_card;
439      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
440 	FND_MSG_PUB.ADD;
441      FND_MSG_PUB.Count_And_Get(p_count      =>      x_msg_count,
442                                p_data       =>      x_msg_data,
443                                p_encoded    =>      'F');
444 
445     IF (IBE_UTIL.G_DEBUGON = l_true) THEN
446        IBE_UTIL.debug('G_EXC_UNEXPECTED_ERROR exception');
447        IBE_UTIL.debug('x_msg_count ' || to_char(x_msg_count));
448        IBE_UTIL.debug('x_msg_data ' || x_msg_data);
449        IBE_UTIL.debug('error code : '|| to_char(SQLCODE));
450        IBE_UTIL.debug('error text : '|| SQLERRM);
451     END IF;
452 
453     --IBE_UTIL.disable_debug();
454 
455 
456 
457 
458     WHEN OTHERS THEN
459     --IBE_UTIL.enable_debug();
460 
461      --ROLLBACK TO create_credit_card;
462      FND_MESSAGE.Set_Name('FND', 'SQL_PLSQL_ERROR');
463      FND_MESSAGE.Set_Token('ROUTINE', l_api_name);
464      FND_MESSAGE.Set_Token('ERRNO', SQLCODE);
465      FND_MESSAGE.Set_Token('REASON', SQLERRM);
466      FND_MSG_PUB.Add;
467      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
468 	 FND_MSG_PUB.Add;
469 	 FND_MSG_PUB.Count_And_Get(p_count      =>      x_msg_count,
470 		  				  p_data       =>      x_msg_data,
471 						  p_encoded    =>      'F');
472 
473 
474     --IBE_UTIL.debug('OTHER exception');
475     IF (IBE_UTIL.G_DEBUGON = l_true) THEN
476        IBE_UTIL.debug('x_msg_count ' || to_char(x_msg_count));
477        IBE_UTIL.debug('x_msg_data ' || x_msg_data);
478        IBE_UTIL.debug('error code : '|| to_char(SQLCODE));
479        IBE_UTIL.debug('error text : '|| SQLERRM);
480     END IF;
481 
482     --IBE_UTIL.disable_debug();
483 
484 
485 
486 
487 END;
488 
489 -- This procedure gets the primary credit card id if it already exists
490 
491 procedure get_primary_credit_card_id(p_username         IN VARCHAR2,
492                                      x_credit_card_id   OUT NOCOPY NUMBER)
493 IS
494 
495 cursor C_get_primary_credit_card(c_party_id NUMBER) is
496 SELECT instr_assignment_id
497 FROM   IBY_FNDCPT_PAYER_ASSGN_INSTR_V
498 WHERE  party_id          = c_party_id
499 AND    org_id            is null
500 AND    cust_account_id   is null
501 AND    acct_site_use_id  IS NULL
502 AND    instrument_type   = 'CREDITCARD'
503 AND    payment_function  = 'CUSTOMER_PAYMENT'
504 and    order_of_preference = 1;
505 
506 cursor C_get_party_cust_accnt(c_username VARCHAR2) is
507 SELECT customer_id, person_party_id
508 FROM    fnd_user
509 WHERE  user_name = c_username;
510 
511 rec_get_primary_credit_card c_get_primary_credit_card%rowtype;
512 rec_get_party_cust_accnt    c_get_party_cust_accnt%rowtype;
513 
514 l_customer_id     NUMBER;
515 l_person_party_id NUMBER;
516 l_assignment_id   NUMBER;
517 l_party_to_use    NUMBER;
518 
519 BEGIN
520   --IBE_UTIL.enable_debug();
521 
522   IF (IBE_UTIL.G_DEBUGON = l_true) THEN
523      IBE_UTIL.debug('enter ibe_customer_pvt.get_primary_credit_card_id');
524   END IF;
525 
526   FOR rec_get_party_cust_accnt in C_get_party_cust_accnt(p_username) LOOP
527     l_customer_id     := rec_get_party_cust_accnt.customer_id;
528     l_person_party_id := rec_get_party_cust_accnt.person_party_id;
529     exit when c_get_party_cust_accnt%notfound;
530   END LOOP;
531 
532   IF (l_customer_id is null) THEN
533     l_party_to_use := l_person_party_id;
534     IF (IBE_UTIL.G_DEBUGON = l_true) THEN
535       IBE_UTIL.debug('customer_id does not have any value, using the person_party_id');
536     END IF;
537   ELSE
538     IF (IBE_UTIL.G_DEBUGON = l_true) THEN
539       IBE_UTIL.debug('customer_id has a value,l_party_to_use: '||l_customer_id);
540     END IF;
541     l_party_to_use := l_customer_id;
542   END IF;
543 
544   FOR rec_get_primary_credit_card in c_get_primary_credit_card(l_party_to_use) LOOP
545     l_assignment_id := rec_get_primary_credit_card.instr_assignment_id;
546     EXIT when c_get_primary_credit_card%NOTFOUND;
547   END LOOP;
548 
549   IF (IBE_UTIL.G_DEBUGON = l_true) THEN
550     IBE_UTIL.debug('primary card asignment id is '||l_assignment_id);
551   END IF;
552   x_credit_card_id := l_assignment_id;
553 END ;
554 
555 
556 -- This procedure updates the primary credit card id if it already exists,
557 -- it also sets the primary credit card id if it does not exists.
558 
559 /*procedure set_primary_credit_card_id: mannamra: 11/14/2005 : Bug 4725304: This API can be obsoleted because it is
560 used to set the value of FND Preference PRIMARY_CARD but going forward primary credit card setting will be
561 @ done in iPayment schema. */
562 
563 
564 -- This procedure creates a new credit card by calling
565 -- arp_bank_pkg.process_bank_account. It also sets the
566 -- new credit card id as primary credit card if a primary
567 -- credit card id does not exists.
568 
569 /*procedure create_credit_card: mannamra: 11/14/2005 : Bug 4725304:  This API can be obsoleted because it is used to create a credit card in AP's
570 @ Bank Accouts' schema but going forward credit cards will be stored in
571 @ iPayment schema. IBE_PAYMENT_INT_PVT.saveCC() will be used to perform this
572  operation.*/
573 
574 
575 END ibe_customer_pvt;