[Home] [Help]
PACKAGE BODY: APPS.IBY_EXT_BANKACCT_VALIDATIONS
Source
1 PACKAGE BODY IBY_EXT_BANKACCT_VALIDATIONS AS
2 /*$Header: ibybnkvalb.pls 120.16.12010000.1 2008/07/28 05:39:41 appldev ship $*/
3
4
5 --
6 -- Forward Declarations
7 --
8 PROCEDURE print_debuginfo(
9 p_message IN VARCHAR2,
10 p_prefix IN VARCHAR2 DEFAULT 'DEBUG',
11 p_msg_level IN NUMBER DEFAULT FND_LOG.LEVEL_STATEMENT,
12 p_module IN VARCHAR2 DEFAULT G_DEBUG_MODULE
13 );
14
15 PROCEDURE check_mandatory(
16 p_field IN VARCHAR2,
17 p_value IN VARCHAR2
18 );
19
20 -- iby_validate_account_at
21 --
22 -- API name : iby_validate_account_at
23 -- Type : Public
24 -- Pre-reqs : None
25 -- Function : Austria Validations
26 -- Current version : 1.0
27 -- Previous version: 1.0
28 -- Initial version : 1.0
29
30 PROCEDURE iby_validate_account_at(
31 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
32 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
33 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
34 foreign_payment_flag IN BOOLEAN,
35 x_valid IN OUT NOCOPY BOOLEAN
36 )
37 IS
38
39 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_at';
40 l_api_version CONSTANT NUMBER := 1.0;
41 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
42
43 val_result BOOLEAN;
44 l_bank_account_num VARCHAR2(100);
45 l_bank_branch_num VARCHAR2(30);
46 l_bank_num VARCHAR2(30);
47
48 BEGIN
49
50 print_debuginfo('ENTER ' || l_module_name);
51 x_valid := FALSE;
52
53 l_bank_account_num := p_ext_bank_acct_rec.bank_account_num;
54
55 -- Validate Bank Account Information
56 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_AT (
57 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
58 Xi_PASS_MAND_CHECK => 'P',
59 Xo_VALUE_OUT => l_bank_account_num);
60
61 p_ext_bank_acct_rec.bank_account_num :=
62 NVL(l_bank_account_num,p_ext_bank_acct_rec.bank_account_num);
63
64 IF (foreign_payment_flag) THEN
65
66 l_bank_branch_num := p_ext_bank_branch_rec.branch_number;
67
68 -- Validate Bank Branch
69 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_AT(
70 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
71 Xi_PASS_MAND_CHECK => 'P',
72 Xo_VALUE_OUT => l_bank_branch_num);
73
74 p_ext_bank_branch_rec.branch_number :=
75 NVL(l_bank_branch_num, p_ext_bank_branch_rec.branch_number);
76
77 END IF;
78
79 x_valid := TRUE;
80
81 print_debuginfo('RETURN ' || l_module_name);
82
83 END iby_validate_account_at;
84
85
86 -- iby_validate_account_au
87 --
88 -- API name : iby_validate_account_au
89 -- Type : Public
90 -- Pre-reqs : None
91 -- Function : Australian Validations
92 -- Current version : 1.0
93 -- Previous version: 1.0
94 -- Initial version : 1.0
95 PROCEDURE iby_validate_account_au(
96 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
97 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
98 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
99 foreign_payment_flag IN BOOLEAN,
100 x_valid IN OUT NOCOPY BOOLEAN
101 )
102 IS
103 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_au';
104 l_api_version CONSTANT NUMBER := 1.0;
105 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
106
107 val_result BOOLEAN;
108 l_bank_account_num VARCHAR2(100);
109 l_bank_branch_num VARCHAR2(30);
110 l_bank_num VARCHAR2(30);
111
112 BEGIN
113
114 print_debuginfo('ENTER ' || l_module_name);
115 x_valid := FALSE;
116
117 -- Validate Bank Account Information
118 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_AU(
119 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
120 Xi_CURRENCY_CODE => p_ext_bank_acct_rec.currency);
121
122 IF (foreign_payment_flag) THEN
123
124 -- Validate Bank Bank
125 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_AU(
126 Xi_BANK_NUMBER => l_bank_num);
127
128 /*
129 -- Validate Bank Branch
130 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_AU(
131 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
132 Xi_BANK_ID => p_ext_bank_rec.bank_id,
133 Xi_PASS_MAND_CHECK => 'P');
134 */
135
136 -- Validate Bank Branch
137 print_debuginfo('Calling bank branch validation CE API');
138 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_BANK(
139 Xi_COUNTRY => 'AU',
140 Xi_BRANCH_NUM => p_ext_bank_branch_rec.branch_number,
141 Xi_BANK_NUM => p_ext_bank_rec.bank_number,
142 Xo_VALUE_OUT => l_bank_branch_num);
143
144 END IF;
145
146 x_valid := TRUE;
147
148 print_debuginfo('RETURN ' || l_module_name);
149
150
151 END iby_validate_account_au;
152
153
154 -- iby_validate_account_be
155 --
156 -- API name : iby_validate_account_be
157 -- Type : Public
158 -- Pre-reqs : None
159 -- Function : Belgian Validations
160 -- Current version : 1.0
161 -- Previous version: 1.0
162 -- Initial version : 1.0
163 PROCEDURE iby_validate_account_be(
164 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
165 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
166 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
167 foreign_payment_flag IN BOOLEAN,
168 x_valid IN OUT NOCOPY BOOLEAN
169 )
170 IS
171 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_be';
172 l_api_version CONSTANT NUMBER := 1.0;
173 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
174
175 val_result BOOLEAN;
176 l_bank_account_num VARCHAR2(100);
177 l_bank_branch_num VARCHAR2(30);
178 l_bank_num VARCHAR2(30);
179
180 BEGIN
181
182 print_debuginfo('ENTER ' || l_module_name);
183 x_valid := FALSE;
184
185 -- Validate Bank Account Information
186 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_BE(
187 Xi_ACCOUNT_NUMBER => l_bank_account_num,
188 Xi_PASS_MAND_CHECK => 'P');
189
190
191 x_valid := TRUE;
192
193 print_debuginfo('RETURN ' || l_module_name);
194
195
196 END iby_validate_account_be;
197
198 -- iby_validate_account_ca
199 --
200 -- API name : iby_validate_account_ca
201 -- Type : Public
202 -- Pre-reqs : None
203 -- Function : Canadian Validations
204 -- Current version : 1.0
205 -- Previous version: 1.0
206 -- Initial version : 1.0
207 PROCEDURE iby_validate_account_ca(
208 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
209 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
210 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
211 foreign_payment_flag IN BOOLEAN,
212 x_valid IN OUT NOCOPY BOOLEAN
213 )
214 IS
215 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_ca';
216 l_api_version CONSTANT NUMBER := 1.0;
217 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
218
219 val_result BOOLEAN;
220 l_bank_account_num VARCHAR2(100);
221 l_bank_branch_num VARCHAR2(30);
222 l_bank_num VARCHAR2(30);
223
224 BEGIN
225
226 print_debuginfo('ENTER ' || l_module_name);
227 x_valid := FALSE;
228
229 print_debuginfo('RETURN ' || l_module_name);
230
231 END iby_validate_account_ca;
232
233
234 -- iby_validate_account_de
235 --
236 -- API name : iby_validate_account_de
237 -- Type : Public
238 -- Pre-reqs : None
239 -- Function : German Validations
240 -- Current version : 1.0
241 -- Previous version: 1.0
242 -- Initial version : 1.0
243 PROCEDURE iby_validate_account_de(
244 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
245 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
246 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
247 foreign_payment_flag IN BOOLEAN,
248 x_valid IN OUT NOCOPY BOOLEAN
249 )
250 IS
251 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_de';
252 l_api_version CONSTANT NUMBER := 1.0;
253 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
254
255 val_result BOOLEAN;
256 l_bank_account_num VARCHAR2(100);
257 l_bank_branch_num VARCHAR2(30);
258 l_bank_num VARCHAR2(30);
259
260
261 BEGIN
262
263 print_debuginfo('ENTER ' || l_module_name);
264 x_valid := FALSE;
265
266 l_bank_account_num := p_ext_bank_acct_rec.bank_account_num;
267
268 -- Validate Bank Account Information
269 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_DE (
270 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
271 Xo_VALUE_OUT => l_bank_account_num);
272
273 p_ext_bank_acct_rec.bank_account_num :=
274 NVL(l_bank_account_num,p_ext_bank_acct_rec.bank_account_num);
275
276 IF (foreign_payment_flag) THEN
277
278 -- Validate Bank Bank
279 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_DE(
280 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number);
281
282 /*
283 -- Validate Bank Branch
284 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_DE(
285 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
286 Xi_BANK_ID => p_ext_bank_rec.bank_id);
287 */
288
289 -- Validate Bank Branch
290 print_debuginfo('Calling bank branch validation CE API');
291 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_BANK(
292 Xi_COUNTRY => 'DE',
293 Xi_BRANCH_NUM => p_ext_bank_branch_rec.branch_number,
294 Xi_BANK_NUM => p_ext_bank_rec.bank_number,
295 Xo_VALUE_OUT => l_bank_branch_num);
296 END IF;
297
298 -- Validate Check Digit
299 CE_VALIDATE_BANKINFO.CE_VALIDATE_CD_DE(
300 Xi_CD => p_ext_bank_acct_rec.check_digits,
301 Xi_X_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num);
302
303 x_valid := TRUE;
304
305 print_debuginfo('RETURN ' || l_module_name);
306
307
308 END iby_validate_account_de;
309
310
311 -- iby_validate_account_dk
312 --
313 -- API name : iby_validate_account_dk
314 -- Type : Public
315 -- Pre-reqs : None
316 -- Function : Denmark Validations
317 -- Current version : 1.0
318 -- Previous version: 1.0
319 -- Initial version : 1.0
320 PROCEDURE iby_validate_account_dk(
321 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
322 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
323 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
324 foreign_payment_flag IN BOOLEAN,
325 x_valid IN OUT NOCOPY BOOLEAN
326 )
327 IS
328 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_dk';
329 l_api_version CONSTANT NUMBER := 1.0;
330 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
331
332 val_result BOOLEAN;
333 l_bank_account_num VARCHAR2(100);
334 l_bank_branch_num VARCHAR2(30);
335 l_bank_num VARCHAR2(30);
336
337 BEGIN
338
339 print_debuginfo('ENTER ' || l_module_name);
340 x_valid := FALSE;
341
342 l_bank_account_num := p_ext_bank_acct_rec.bank_account_num;
343
344 -- Validate Bank Account Information
345 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_DK (
346 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
347 Xi_PASS_MAND_CHECK => 'P',
348 Xo_VALUE_OUT => l_bank_account_num);
349
350 p_ext_bank_acct_rec.bank_account_num :=
351 NVL(l_bank_account_num,p_ext_bank_acct_rec.bank_account_num);
352
353 x_valid := TRUE;
354
355 END iby_validate_account_dk;
356
357
358 -- iby_validate_account_fi
359 --
360 -- API name : iby_validate_account_fi
361 -- Type : Public
362 -- Pre-reqs : None
363 -- Function : Finnish Validations
364 -- Current version : 1.0
365 -- Previous version: 1.0
366 -- Initial version : 1.0
367 PROCEDURE iby_validate_account_fi(
368 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
369 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
370 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
371 foreign_payment_flag IN BOOLEAN,
372 x_valid IN OUT NOCOPY BOOLEAN
373 )
374 IS
375 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_fi';
376 l_api_version CONSTANT NUMBER := 1.0;
377 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
378
379 val_result BOOLEAN;
380 l_bank_account_num VARCHAR2(100);
381 l_bank_branch_num VARCHAR2(30);
382 l_bank_num VARCHAR2(30);
383
384 BEGIN
385
386 print_debuginfo('ENTER ' || l_module_name);
387 x_valid := FALSE;
388
389 -- Validate Bank Account Information
390 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_FI (
391 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
392 Xi_PASS_MAND_CHECK => 'P');
393
394
395 x_valid := TRUE;
396
397 print_debuginfo('RETURN ' || l_module_name);
398
399 END iby_validate_account_fi;
400
401
402 -- iby_validate_account_fr
403 --
404 -- API name : iby_validate_account_fr
405 -- Type : Public
406 -- Pre-reqs : None
407 -- Function : France Validations
408 -- Current version : 1.0
409 -- Previous version: 1.0
410 -- Initial version : 1.0
411 PROCEDURE iby_validate_account_fr(
412 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
413 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
414 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
415 foreign_payment_flag IN BOOLEAN,
416 x_valid IN OUT NOCOPY BOOLEAN
417 )
418 IS
419 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_fr';
420 l_api_version CONSTANT NUMBER := 1.0;
421 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
422
423 val_result BOOLEAN;
424 l_bank_account_num VARCHAR2(100);
425 l_bank_branch_num VARCHAR2(30);
426 l_bank_num VARCHAR2(30);
427
428
429 BEGIN
430
431 print_debuginfo('ENTER ' || l_module_name);
432 x_valid := FALSE;
433
434 l_bank_account_num := p_ext_bank_acct_rec.bank_account_num;
435
436 -- Validate Bank Account Information
437 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_FR (
438 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
439 Xi_PASS_MAND_CHECK => 'P',
440 Xo_VALUE_OUT => l_bank_account_num);
441
442 p_ext_bank_acct_rec.bank_account_num :=
443 NVL(l_bank_account_num,p_ext_bank_acct_rec.bank_account_num);
444
445 IF (foreign_payment_flag) THEN
446
447 l_bank_num := p_ext_bank_rec.bank_number;
448
449 -- Validate Bank
450 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_FR(
451 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number,
452 Xi_PASS_MAND_CHECK => 'P',
453 Xo_VALUE_OUT => l_bank_num);
454
455 p_ext_bank_rec.bank_number :=
456 NVL(l_bank_num,p_ext_bank_rec.bank_number);
457
458 l_bank_branch_num := p_ext_bank_branch_rec.branch_name;
459
460 -- Validate Bank Branch
461 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_FR(
462 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
463 Xi_PASS_MAND_CHECK => 'P',
464 Xo_VALUE_OUT => l_bank_branch_num);
465
466 p_ext_bank_branch_rec.branch_number :=
467 NVL(l_bank_branch_num, p_ext_bank_branch_rec.branch_number);
468
469 END IF;
470
471 -- Validate Check Digits
472 CE_VALIDATE_BANKINFO.CE_VALIDATE_CD_FR(
473 Xi_CD => p_ext_bank_acct_rec.check_digits,
474 Xi_PASS_MAND_CHECK => 'P',
475 Xi_X_BANK_NUMBER => p_ext_bank_rec.bank_number,
476 Xi_X_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
477 Xi_X_ACCOUNT_NUMBER => translate(p_ext_bank_acct_rec.bank_account_num,
478 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ',
479 '123456789123456789234567890'));
480
481 x_valid := TRUE;
482
483 END iby_validate_account_fr;
484
485
486 -- iby_validate_account_gb
487 --
488 -- API name : iby_validate_account_gb
489 -- Type : Public
490 -- Pre-reqs : None
491 -- Function : Greek Validations
492 -- Current version : 1.0
493 -- Previous version: 1.0
494 -- Initial version : 1.0
495 PROCEDURE iby_validate_account_gb(
496 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
497 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
498 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
499 foreign_payment_flag IN BOOLEAN,
500 x_valid IN OUT NOCOPY BOOLEAN
501 )
502 IS
503 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_gb';
504 l_api_version CONSTANT NUMBER := 1.0;
505 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
506
507 val_result BOOLEAN;
508 l_bank_account_num VARCHAR2(100);
509 l_bank_branch_num VARCHAR2(30);
510 l_bank_num VARCHAR2(30);
511
512 BEGIN
513
514 print_debuginfo('ENTER ' || l_module_name);
515 x_valid := FALSE;
516
517 l_bank_account_num := p_ext_bank_acct_rec.bank_account_num;
518
519 -- Validate Bank Account Information
520 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_GB (
521 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
522 Xo_VALUE_OUT => l_bank_account_num);
523
524 p_ext_bank_acct_rec.bank_account_num :=
525 NVL(l_bank_account_num,p_ext_bank_acct_rec.bank_account_num);
526
527 IF (foreign_payment_flag) THEN
528
529 -- Validate Bank Bank
530 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_GB(
531 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number);
532
533 /*
534 -- Validate Bank Branch
535 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_GB(
536 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
537 Xi_BANK_ID => p_ext_bank_rec.bank_id);
538 */
539
540 -- Validate Bank Branch
541 print_debuginfo('Calling bank branch validation CE API');
542 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_BANK(
543 Xi_COUNTRY => 'GB',
544 Xi_BRANCH_NUM => p_ext_bank_branch_rec.branch_number,
545 Xi_BANK_NUM => p_ext_bank_rec.bank_number,
546 Xo_VALUE_OUT => l_bank_branch_num);
547
548 END IF;
549
550 x_valid := TRUE;
551
552 print_debuginfo('RETURN ' || l_module_name);
553
554 END iby_validate_account_gb;
555
556
557 -- iby_validate_account_gr
558 --
559 -- API name : iby_validate_account_gr
560 -- Type : Public
561 -- Pre-reqs : None
562 -- Function : Greek Validations
563 -- Current version : 1.0
564 -- Previous version: 1.0
565 -- Initial version : 1.0
566 PROCEDURE iby_validate_account_gr(
567 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
568 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
569 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
570 foreign_payment_flag IN BOOLEAN,
571 x_valid IN OUT NOCOPY BOOLEAN
572 )
573 IS
574 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_gr';
575 l_api_version CONSTANT NUMBER := 1.0;
576 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
577
578 val_result BOOLEAN;
579 l_bank_account_num VARCHAR2(100);
580 l_bank_branch_num VARCHAR2(30);
581 l_bank_num VARCHAR2(30);
582
583
584 BEGIN
585
586 print_debuginfo('ENTER ' || l_module_name);
587 x_valid := FALSE;
588
589 l_bank_account_num := p_ext_bank_acct_rec.bank_account_num;
590
591 -- Validate Bank Account Information
592 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_GR (
593 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
594 Xo_VALUE_OUT => l_bank_account_num);
595
596 p_ext_bank_acct_rec.bank_account_num :=
597 NVL(l_bank_account_num,p_ext_bank_acct_rec.bank_account_num);
598
599 IF (foreign_payment_flag) THEN
600
601 -- Validate Bank Bank
602 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_GR(
603 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number);
604
605 -- Validate Bank Branch
606 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_GR(
607 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number);
608
609 END IF;
610
611 -- Validate Check Digits
612 CE_VALIDATE_BANKINFO.CE_VALIDATE_CD_GR(
613 Xi_CD => p_ext_bank_acct_rec.check_digits,
614 Xi_PASS_MAND_CHECK => 'P',
615 Xi_X_BANK_NUMBER => p_ext_bank_rec.bank_number,
616 Xi_X_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
617 Xi_X_ACCOUNT_NUMBER => translate(p_ext_bank_acct_rec.bank_account_num,
618 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ',
619 '123456789123456789234567890'));
620
621
622 x_valid := TRUE;
623
624 print_debuginfo('RETURN ' || l_module_name);
625
626 END iby_validate_account_gr;
627
628
629 -- iby_validate_account_hk
630 --
631 -- API name : iby_validate_account_hk
632 -- Type : Public
633 -- Pre-reqs : None
634 -- Function : Hongkong Validations
635 -- Current version : 1.0
636 -- Previous version: 1.0
637 -- Initial version : 1.0
638 PROCEDURE iby_validate_account_hk(
639 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
640 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
641 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
642 foreign_payment_flag IN BOOLEAN,
643 x_valid IN OUT NOCOPY BOOLEAN
644 )
645 IS
646 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_hk';
647 l_api_version CONSTANT NUMBER := 1.0;
648 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
649
650 val_result BOOLEAN;
651 l_bank_account_num VARCHAR2(100);
652 l_bank_branch_num VARCHAR2(30);
653 l_bank_num VARCHAR2(30);
654
655 BEGIN
656
657 print_debuginfo('ENTER ' || l_module_name);
658
659 x_valid := TRUE;
660
661 print_debuginfo('RETURN ' || l_module_name);
662
663 END iby_validate_account_hk;
664
665
666 -- iby_validate_account_il
667 --
668 -- API name : iby_validate_account_il
669 -- Type : Public
670 -- Pre-reqs : None
671 -- Function : Iceland Validations
672 -- Current version : 1.0
673 -- Previous version: 1.0
674 -- Initial version : 1.0
675 PROCEDURE iby_validate_account_il(
676 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
677 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
678 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
679 foreign_payment_flag IN BOOLEAN,
680 x_valid IN OUT NOCOPY BOOLEAN
681 )
682 IS
683 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_il';
684 l_api_version CONSTANT NUMBER := 1.0;
685 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
686
687 val_result BOOLEAN;
688 l_bank_account_num VARCHAR2(100);
689 l_bank_branch_num VARCHAR2(30);
690 l_bank_num VARCHAR2(30);
691
692 BEGIN
693
694 print_debuginfo('ENTER ' || l_module_name);
695 x_valid := FALSE;
696
697 -- Validate Bank Account Information
698 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_IL (
699 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num);
700
701 IF (foreign_payment_flag) THEN
702
703 -- Validate Bank
704 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_IL(
705 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number,
706 Xi_PASS_MAND_CHECK => 'P');
707
708 -- Validate Bank Branch
709 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_IL(
710 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
711 Xi_PASS_MAND_CHECK => 'P');
712
713 END IF;
714
715 x_valid := TRUE;
716
717 print_debuginfo('RETURN ' || l_module_name);
718
719
720 END iby_validate_account_il;
721
722
723 -- iby_validate_account_ie
724 --
725 -- API name : iby_validate_account_ie
726 -- Type : Public
727 -- Pre-reqs : None
728 -- Function : Ireland Validations
729 -- Current version : 1.0
730 -- Previous version: 1.0
731 -- Initial version : 1.0
732 PROCEDURE iby_validate_account_ie(
733 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
734 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
735 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
736 foreign_payment_flag IN BOOLEAN,
737 x_valid IN OUT NOCOPY BOOLEAN
738 )
739 IS
740 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_ie';
741 l_api_version CONSTANT NUMBER := 1.0;
742 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
743
744 val_result BOOLEAN;
745 l_bank_account_num VARCHAR2(100);
746 l_bank_branch_num VARCHAR2(30);
747 l_bank_num VARCHAR2(30);
748
749
750
751 BEGIN
752
753 print_debuginfo('ENTER ' || l_module_name);
754 x_valid := FALSE;
755
756 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_IE (
757 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num);
758
759 IF (foreign_payment_flag) THEN
760
761 -- Validate Bank
762 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_IE(
763 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number);
764
765 /*
766 -- Validate Bank Branch
767 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_IE(
768 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
769 Xi_BANK_ID => p_ext_bank_rec.bank_id);
770 */
771
772 -- Validate Bank Branch
773 print_debuginfo('Calling bank branch validation CE API');
774 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_BANK(
775 Xi_COUNTRY => 'IE',
776 Xi_BRANCH_NUM => p_ext_bank_branch_rec.branch_number,
777 Xi_BANK_NUM => p_ext_bank_rec.bank_number,
778 Xo_VALUE_OUT => l_bank_branch_num);
779 END IF;
780
781 x_valid := TRUE;
782
783 print_debuginfo('RETURN ' || l_module_name);
784
785 END iby_validate_account_ie;
786
787 -- iby_validate_account_is
788 --
789 -- API name : iby_validate_account_is
790 -- Type : Public
791 -- Pre-reqs : None
792 -- Function : Italy Validations
793 -- Current version : 1.0
794 -- Previous version: 1.0
795 -- Initial version : 1.0
796 PROCEDURE iby_validate_account_is(
797 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
798 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
799 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
800 foreign_payment_flag IN BOOLEAN,
801 x_valid IN OUT NOCOPY BOOLEAN
802 )
803 IS
804 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_is';
805 l_api_version CONSTANT NUMBER := 1.0;
806 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
807
808 val_result BOOLEAN;
809 l_bank_account_num VARCHAR2(100);
810 l_bank_branch_num VARCHAR2(30);
811 l_bank_num VARCHAR2(30);
812
813
814 BEGIN
815
816 print_debuginfo('ENTER ' || l_module_name);
817 x_valid := FALSE;
818
819 l_bank_account_num := p_ext_bank_acct_rec.bank_account_num;
820
821 -- Validate Bank Account Information
822 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_IS (
823 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
824 Xo_VALUE_OUT => l_bank_account_num);
825
826 p_ext_bank_acct_rec.bank_account_num :=
827 NVL(l_bank_account_num,p_ext_bank_acct_rec.bank_account_num);
828
829 IF (foreign_payment_flag) THEN
830
831 l_bank_branch_num := p_ext_bank_branch_rec.branch_name;
832
833 /*
834 -- Validate Bank Branch
835 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_IS(
836 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
837 Xi_BANK_ID => p_ext_bank_rec.bank_id,
838 Xo_VALUE_OUT => l_bank_branch_num);
839 */
840
841 -- Validate Bank Branch
842 print_debuginfo('Calling bank branch validation CE API');
843 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_BANK(
844 Xi_COUNTRY => 'IS',
845 Xi_BRANCH_NUM => p_ext_bank_branch_rec.branch_number,
846 Xi_BANK_NUM => p_ext_bank_rec.bank_number,
847 Xo_VALUE_OUT => l_bank_branch_num);
848
849 p_ext_bank_branch_rec.branch_number :=
850 NVL(l_bank_branch_num, p_ext_bank_branch_rec.branch_number);
851
852 END IF;
853
854 -- Validate Check Digits
855 CE_VALIDATE_BANKINFO.CE_VALIDATE_CD_IS(
856 Xi_CD => p_ext_bank_acct_rec.check_digits,
857 Xi_X_ACCOUNT_NUMBER => translate(p_ext_bank_acct_rec.bank_account_num,
858 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ',
859 '123456789123456789234567890'));
860
861 x_valid := TRUE;
862
863 print_debuginfo('RETURN ' || l_module_name);
864
865 END iby_validate_account_is;
866
867 -- iby_validate_account_it
868 --
869 -- API name : iby_validate_account_it
870 -- Type : Public
871 -- Pre-reqs : None
872 -- Function : Italy Validations
873 -- Current version : 1.0
874 -- Previous version: 1.0
875 -- Initial version : 1.0
876 PROCEDURE iby_validate_account_it(
877 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
878 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
879 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
880 foreign_payment_flag IN BOOLEAN,
881 x_valid IN OUT NOCOPY BOOLEAN
882 )
883 IS
884 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_it';
885 l_api_version CONSTANT NUMBER := 1.0;
886 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
887
888 val_result BOOLEAN;
889 l_bank_account_num VARCHAR2(100);
890 l_bank_branch_num VARCHAR2(30);
891 l_bank_num VARCHAR2(30);
892
893
894 BEGIN
895
896 print_debuginfo('ENTER ' || l_module_name);
897 x_valid := FALSE;
898
899 l_bank_account_num := p_ext_bank_acct_rec.bank_account_num;
900
901 -- Validate Bank Account Information
902 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_IT (
903 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
904 Xo_VALUE_OUT => l_bank_account_num);
905
906 p_ext_bank_acct_rec.bank_account_num :=
907 NVL(l_bank_account_num,p_ext_bank_acct_rec.bank_account_num);
908
909 IF (foreign_payment_flag) THEN
910
911 -- Validate Bank Branch
912 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_IT(
913 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
914 Xi_PASS_MAND_CHECK => 'P');
915
916 END IF;
917
918 -- Validate Check Digits
919 CE_VALIDATE_BANKINFO.CE_VALIDATE_CD_IT(
920 Xi_CD => p_ext_bank_acct_rec.check_digits,
921 Xi_PASS_MAND_CHECK => 'P',
922 Xi_X_BANK_NUMBER => p_ext_bank_rec.bank_number,
923 Xi_X_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
924 Xi_X_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num);
925
926 x_valid := TRUE;
927
928 print_debuginfo('RETURN ' || l_module_name);
929
930 END iby_validate_account_it;
931
932
933 -- iby_validate_account_jp
934 --
935 -- API name : iby_validate_account_jp
936 -- Type : Public
937 -- Pre-reqs : None
938 -- Function : Japan Validations
939 -- Current version : 1.0
940 -- Previous version: 1.0
941 -- Initial version : 1.0
942 PROCEDURE iby_validate_account_jp(
943 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
944 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
945 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
946 foreign_payment_flag IN BOOLEAN,
947 x_valid IN OUT NOCOPY BOOLEAN
948 )
949 IS
950 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_jp';
951 l_api_version CONSTANT NUMBER := 1.0;
952 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
953
954 val_result BOOLEAN;
955 l_bank_account_num VARCHAR2(100);
956 l_bank_branch_num VARCHAR2(30);
957 l_bank_num VARCHAR2(30);
958
959 BEGIN
960
961 print_debuginfo('ENTER ' || l_module_name);
962 x_valid := FALSE;
963
964 -- Validate Bank Account Information
965 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_JP(
966 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
967 Xi_ACCOUNT_TYPE => p_ext_bank_acct_rec.acct_type);
968
969
970 IF (foreign_payment_flag) THEN
971
972 -- Validate Bank Bank
973 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_JP(
977
974 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number,
975 Xi_BANK_NAME_ALT => p_ext_bank_rec.bank_alt_name,
976 Xi_PASS_MAND_CHECK => 'P');
978 -- Validate Bank Branch
979 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_JP(
980 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
981 Xi_BRANCH_NAME_ALT => p_ext_bank_branch_rec.alternate_branch_name,
982 Xi_PASS_MAND_CHECK => 'P');
983
984
985 END IF;
986
987 x_valid := TRUE;
988
989 print_debuginfo('RETURN ' || l_module_name);
990
991 END iby_validate_account_jp;
992
993
994 -- iby_validate_account_lu
995 --
996 -- API name : iby_validate_account_lu
997 -- Type : Public
998 -- Pre-reqs : None
999 -- Function : Luzembourg Validations
1000 -- Current version : 1.0
1001 -- Previous version: 1.0
1002 -- Initial version : 1.0
1003 PROCEDURE iby_validate_account_lu(
1004 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1005 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1006 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1007 foreign_payment_flag IN BOOLEAN,
1008 x_valid IN OUT NOCOPY BOOLEAN
1009 )
1010 IS
1011 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_lu';
1012 l_api_version CONSTANT NUMBER := 1.0;
1013 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1014
1015 val_result BOOLEAN;
1016 l_bank_account_num VARCHAR2(100);
1017 l_bank_branch_num VARCHAR2(30);
1018 l_bank_num VARCHAR2(30);
1019
1020 BEGIN
1021
1022 print_debuginfo('ENTER ' || l_module_name);
1023 x_valid := FALSE;
1024
1025 -- Validate Bank Account Information
1026 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_LU (
1027 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num);
1028
1029 IF (foreign_payment_flag) THEN
1030
1031 -- Validate Bank Bank
1032 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_LU(
1033 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number);
1034
1035 /*
1036 -- Validate Bank Branch
1037 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_LU(
1038 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
1039 Xi_BANK_ID => p_ext_bank_rec.bank_id);
1040 */
1041
1042 -- Validate Bank Branch
1043 print_debuginfo('Calling bank branch validation CE API');
1044 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_BANK(
1045 Xi_COUNTRY => 'LU',
1046 Xi_BRANCH_NUM => p_ext_bank_branch_rec.branch_number,
1047 Xi_BANK_NUM => p_ext_bank_rec.bank_number,
1048 Xo_VALUE_OUT => l_bank_branch_num);
1049
1050 END IF;
1051
1052 -- Validate Check Digits
1053 CE_VALIDATE_BANKINFO.CE_VALIDATE_CD_LU(
1054 Xi_CD => p_ext_bank_acct_rec.check_digits,
1055 Xi_X_BANK_NUMBER => p_ext_bank_rec.bank_number,
1056 Xi_X_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
1057 Xi_X_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num);
1058
1059 x_valid := TRUE;
1060
1061 print_debuginfo('RETURN ' || l_module_name);
1062
1063 END iby_validate_account_lu;
1064
1065
1066 -- iby_validate_account_nl
1067 --
1068 -- API name : iby_validate_account_nl
1069 -- Type : Public
1070 -- Pre-reqs : None
1071 -- Function : Netherlands Validations
1072 -- Current version : 1.0
1073 -- Previous version: 1.0
1074 -- Initial version : 1.0
1075 PROCEDURE iby_validate_account_nl(
1076 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1077 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1078 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1079 foreign_payment_flag IN BOOLEAN,
1080 x_valid IN OUT NOCOPY BOOLEAN
1081 )
1082 IS
1083 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_nl';
1084 l_api_version CONSTANT NUMBER := 1.0;
1085 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1086
1087 val_result BOOLEAN;
1088 l_bank_account_num VARCHAR2(100);
1089 l_bank_branch_num VARCHAR2(30);
1090 l_bank_num VARCHAR2(30);
1091
1092 BEGIN
1093
1094 print_debuginfo('ENTER ' || l_module_name);
1095
1096 -- Validate Bank Account Information
1097 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_NL (
1098 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
1099 Xi_PASS_MAND_CHECK => 'P');
1100
1101 x_valid := TRUE;
1102
1103 print_debuginfo('RETURN ' || l_module_name);
1104 END iby_validate_account_nl;
1105
1106
1107 -- iby_validate_account_nz
1108 --
1109 -- API name : iby_validate_account_nz
1110 -- Type : Public
1111 -- Pre-reqs : None
1112 -- Function : New Zealand Validations
1116 PROCEDURE iby_validate_account_nz(
1113 -- Current version : 1.0
1114 -- Previous version: 1.0
1115 -- Initial version : 1.0
1117 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1118 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1119 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1120 foreign_payment_flag IN BOOLEAN,
1121 x_valid IN OUT NOCOPY BOOLEAN
1122 )
1123 IS
1124 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_nz';
1125 l_api_version CONSTANT NUMBER := 1.0;
1126 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1127
1128 val_result BOOLEAN;
1129 l_bank_account_num VARCHAR2(100);
1130 l_bank_branch_num VARCHAR2(30);
1131 l_bank_num VARCHAR2(30);
1132
1133 BEGIN
1134
1135 print_debuginfo('ENTER ' || l_module_name);
1136 x_valid := FALSE;
1137
1138 -- Validate Bank Account Information
1139 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_NZ (
1140 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
1141 Xi_ACCOUNT_SUFFIX => p_ext_bank_acct_rec.acct_suffix);
1142
1143 IF (foreign_payment_flag) THEN
1144
1145 -- Validate Bank
1146 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_NZ(
1147 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number,
1148 Xi_PASS_MAND_CHECK => 'P');
1149
1150
1151 -- Validate Bank Branch
1152 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_NZ(
1153 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
1154 Xi_PASS_MAND_CHECK => 'P');
1155
1156 END IF;
1157
1158 x_valid := TRUE;
1159
1160 print_debuginfo('RETURN ' || l_module_name);
1161
1162 END iby_validate_account_nz;
1163
1164
1165 -- iby_validate_account_no
1166 --
1167 -- API name : iby_validate_account_no
1168 -- Type : Public
1169 -- Pre-reqs : None
1170 -- Function : Norway Validations
1171 -- Current version : 1.0
1172 -- Previous version: 1.0
1173 -- Initial version : 1.0
1174 PROCEDURE iby_validate_account_no(
1175 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1176 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1177 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1178 foreign_payment_flag IN BOOLEAN,
1179 x_valid IN OUT NOCOPY BOOLEAN
1180 )
1181 IS
1182 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_no';
1183 l_api_version CONSTANT NUMBER := 1.0;
1184 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1185
1186 val_result BOOLEAN;
1187 l_bank_account_num VARCHAR2(100);
1188 l_bank_branch_num VARCHAR2(30);
1189 l_bank_num VARCHAR2(30);
1190
1191 BEGIN
1192
1193 print_debuginfo('ENTER ' || l_module_name);
1194 x_valid := FALSE;
1195
1196 -- Validate Bank Account Information
1197 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_NO (
1198 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
1199 Xi_PASS_MAND_CHECK => 'P');
1200
1201 x_valid := TRUE;
1202
1203 print_debuginfo('RETURN ' || l_module_name);
1204
1205 END iby_validate_account_no;
1206
1207
1208 -- iby_validate_account_pl
1209 --
1210 -- API name : iby_validate_account_pl
1211 -- Type : Public
1212 -- Pre-reqs : None
1213 -- Function : Poland Validations
1214 -- Current version : 1.0
1215 -- Previous version: 1.0
1216 -- Initial version : 1.0
1217 PROCEDURE iby_validate_account_pl(
1218 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1219 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1220 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1221 foreign_payment_flag IN BOOLEAN,
1222 x_valid IN OUT NOCOPY BOOLEAN
1223 )
1224 IS
1225 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_pl';
1226 l_api_version CONSTANT NUMBER := 1.0;
1227 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1228
1229 val_result BOOLEAN;
1230 l_bank_account_num VARCHAR2(100);
1231 l_bank_branch_num VARCHAR2(30);
1232 l_bank_num VARCHAR2(30);
1233
1234 BEGIN
1235
1236 print_debuginfo('ENTER ' || l_module_name);
1237 x_valid := FALSE;
1238
1239 -- Validate Bank Account Information
1240 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_PL (
1241 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num);
1242
1243
1244 IF (foreign_payment_flag) THEN
1245
1246 -- Validate Bank
1247 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_PL(
1248 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number);
1249
1250 /*
1251 -- Validate Bank Branch
1252 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_PL(
1256
1253 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
1254 Xi_BANK_ID => p_ext_bank_rec.bank_id);
1255 */
1257 -- Validate Bank Branch
1258 print_debuginfo('Calling bank branch validation CE API');
1259 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_BANK(
1260 Xi_COUNTRY => 'PL',
1261 Xi_BRANCH_NUM => p_ext_bank_branch_rec.branch_number,
1262 Xi_BANK_NUM => p_ext_bank_rec.bank_number,
1263 Xo_VALUE_OUT => l_bank_branch_num);
1264 END IF;
1265
1266 x_valid := TRUE;
1267
1268 print_debuginfo('RETURN ' || l_module_name);
1269
1270 END iby_validate_account_pl;
1271
1272
1273 -- iby_validate_account_pt
1274 --
1275 -- API name : iby_validate_account_pt
1276 -- Type : Public
1277 -- Pre-reqs : None
1278 -- Function : Portugal Validations
1279 -- Current version : 1.0
1280 -- Previous version: 1.0
1281 -- Initial version : 1.0
1282 PROCEDURE iby_validate_account_pt(
1283 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1284 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1285 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1286 foreign_payment_flag IN BOOLEAN,
1287 x_valid IN OUT NOCOPY BOOLEAN
1288 )
1289 IS
1290 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_pt';
1291 l_api_version CONSTANT NUMBER := 1.0;
1292 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1293
1294 val_result BOOLEAN;
1295 l_bank_account_num VARCHAR2(100);
1296 l_bank_branch_num VARCHAR2(30);
1297 l_bank_num VARCHAR2(30);
1298
1299 BEGIN
1300
1301 print_debuginfo('ENTER ' || l_module_name);
1302 x_valid := FALSE;
1303
1304 l_bank_account_num := p_ext_bank_acct_rec.bank_account_num;
1305
1306 -- Validate Bank Account Information
1307 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_PT (
1308 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
1309 Xi_PASS_MAND_CHECK => 'P',
1310 Xo_VALUE_OUT => l_bank_account_num);
1311
1312 p_ext_bank_acct_rec.bank_account_num :=
1313 NVL(l_bank_account_num,p_ext_bank_acct_rec.bank_account_num);
1314
1315 IF (foreign_payment_flag) THEN
1316
1317 -- Validate Bank
1318 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_PT(
1319 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number,
1320 Xi_PASS_MAND_CHECK => 'P');
1321
1322 -- Validate Bank Branch
1323 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_PT(
1324 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
1325 Xi_PASS_MAND_CHECK => 'P');
1326
1327 END IF;
1328
1329 -- Validate Check Digits
1330 CE_VALIDATE_BANKINFO.CE_VALIDATE_CD_PT(
1331 Xi_CD => p_ext_bank_acct_rec.check_digits,
1332 Xi_PASS_MAND_CHECK => 'P',
1333 Xi_X_BANK_NUMBER => p_ext_bank_rec.bank_number,
1334 Xi_X_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
1335 Xi_X_ACCOUNT_NUMBER => translate(p_ext_bank_acct_rec.bank_account_num,
1336 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ',
1337 '123456789123456789234567890'));
1338
1339 x_valid := TRUE;
1340
1341 print_debuginfo('RETURN ' || l_module_name);
1342 END iby_validate_account_pt;
1343
1344
1345 -- iby_validate_account_sg
1346 --
1347 -- API name : iby_validate_account_sg
1348 -- Type : Public
1349 -- Pre-reqs : None
1350 -- Function : Italy Validations
1351 -- Current version : 1.0
1352 -- Previous version: 1.0
1353 -- Initial version : 1.0
1354 PROCEDURE iby_validate_account_sg(
1355 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1356 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1357 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1358 foreign_payment_flag IN BOOLEAN,
1359 x_valid IN OUT NOCOPY BOOLEAN
1360 )
1361 IS
1362 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_sg';
1363 l_api_version CONSTANT NUMBER := 1.0;
1364 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1365
1366 val_result BOOLEAN;
1367 l_bank_account_num VARCHAR2(100);
1368 l_bank_branch_num VARCHAR2(30);
1369 l_bank_num VARCHAR2(30);
1370
1371 BEGIN
1372
1373 print_debuginfo('ENTER ' || l_module_name);
1374
1375 x_valid := TRUE;
1376
1377 print_debuginfo('RETURN ' || l_module_name);
1378
1379 END iby_validate_account_sg;
1380
1381
1382
1383 -- iby_validate_account_es
1384 --
1385 -- API name : iby_validate_account_es
1386 -- Type : Public
1387 -- Pre-reqs : None
1388 -- Function : Italy Validations
1389 -- Current version : 1.0
1390 -- Previous version: 1.0
1394 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1391 -- Initial version : 1.0
1392 PROCEDURE iby_validate_account_es(
1393 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1395 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1396 foreign_payment_flag IN BOOLEAN,
1397 x_valid IN OUT NOCOPY BOOLEAN
1398 )
1399 IS
1400 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_es';
1401 l_api_version CONSTANT NUMBER := 1.0;
1402 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1403
1404 val_result BOOLEAN;
1405 l_bank_account_num VARCHAR2(100);
1406 l_bank_branch_num VARCHAR2(30);
1407 l_bank_num VARCHAR2(30);
1408
1409
1410 BEGIN
1411
1412 print_debuginfo('ENTER ' || l_module_name);
1413 x_valid := FALSE;
1414
1415 l_bank_account_num := p_ext_bank_acct_rec.bank_account_num;
1416
1417 -- Validate Bank Account Information
1418 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_ES (
1419 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num,
1420 Xi_PASS_MAND_CHECK => 'P',
1421 Xo_VALUE_OUT => l_bank_account_num);
1422
1423 p_ext_bank_acct_rec.bank_account_num :=
1424 NVL(l_bank_account_num,p_ext_bank_acct_rec.bank_account_num);
1425
1426 IF (foreign_payment_flag) THEN
1427
1428 l_bank_num := p_ext_bank_rec.bank_number;
1429
1430 -- Validate Bank
1431 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_ES(
1432 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number,
1433 Xi_PASS_MAND_CHECK => 'P',
1434 Xo_VALUE_OUT => l_bank_num);
1435
1436 p_ext_bank_rec.bank_number :=
1437 NVL(l_bank_num,p_ext_bank_rec.bank_number);
1438
1439 l_bank_branch_num := p_ext_bank_branch_rec.branch_number;
1440
1441 -- Validate Bank Branch
1442 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_ES(
1443 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
1444 Xi_PASS_MAND_CHECK => 'P',
1445 Xo_VALUE_OUT => l_bank_branch_num);
1446
1447 p_ext_bank_branch_rec.branch_number :=
1448 NVL(l_bank_branch_num, p_ext_bank_branch_rec.branch_number);
1449
1450 END IF;
1451
1452 -- Validate Check Digits
1453 CE_VALIDATE_BANKINFO.CE_VALIDATE_CD_ES(
1454 Xi_CD => p_ext_bank_acct_rec.check_digits,
1455 Xi_PASS_MAND_CHECK => 'P',
1456 Xi_X_BANK_NUMBER => p_ext_bank_rec.bank_number,
1457 Xi_X_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
1458 Xi_X_ACCOUNT_NUMBER => translate(p_ext_bank_acct_rec.bank_account_num,
1459 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ',
1460 '123456789123456789234567890'));
1461
1462 END iby_validate_account_es;
1463
1464
1465 -- iby_validate_account_se
1466 --
1467 -- API name : iby_validate_account_se
1468 -- Type : Public
1469 -- Pre-reqs : None
1470 -- Function : Italy Validations
1471 -- Current version : 1.0
1472 -- Previous version: 1.0
1473 -- Initial version : 1.0
1474 PROCEDURE iby_validate_account_se(
1475 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1476 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1477 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1478 foreign_payment_flag IN BOOLEAN,
1479 x_valid IN OUT NOCOPY BOOLEAN
1480 )
1481 IS
1482 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_se';
1483 l_api_version CONSTANT NUMBER := 1.0;
1484 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1485
1486 val_result BOOLEAN;
1487 l_bank_account_num VARCHAR2(100);
1488 l_bank_branch_num VARCHAR2(30);
1489 l_bank_num VARCHAR2(30);
1490
1491 BEGIN
1492
1493 print_debuginfo('ENTER ' || l_module_name);
1494 x_valid := FALSE;
1495
1496 -- Validate Bank Account Information
1497 CE_VALIDATE_BANKINFO.CE_VALIDATE_ACCOUNT_SE (
1498 Xi_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num);
1499
1500 IF (foreign_payment_flag) THEN
1501
1502 -- Validate Bank
1503 CE_VALIDATE_BANKINFO.CE_VALIDATE_BANK_SE(
1504 Xi_BANK_NUMBER => p_ext_bank_rec.bank_number);
1505
1506 /*
1507 -- Validate Bank Branch
1508 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_SE(
1509 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
1510 Xi_BANK_ID => p_ext_bank_rec.bank_id);
1511 */
1512
1513 -- Validate Bank Branch
1514 print_debuginfo('Calling bank branch validation CE API');
1515 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_BANK(
1516 Xi_COUNTRY => 'SE',
1517 Xi_BRANCH_NUM => p_ext_bank_branch_rec.branch_number,
1518 Xi_BANK_NUM => p_ext_bank_rec.bank_number,
1519 Xo_VALUE_OUT => l_bank_branch_num);
1520 END IF;
1521
1522 x_valid := TRUE;
1523
1524 -- Validate Check Digit
1525 CE_VALIDATE_BANKINFO.CE_VALIDATE_CD_SE(
1526 Xi_CD => p_ext_bank_acct_rec.check_digits,
1527 Xi_X_ACCOUNT_NUMBER => p_ext_bank_acct_rec.bank_account_num);
1528
1529 print_debuginfo('RETURN ' || l_module_name);
1530
1531 END iby_validate_account_se;
1532
1533
1534 -- iby_validate_account_us
1535 --
1536 -- API name : iby_validate_account_us
1537 -- Type : Public
1538 -- Pre-reqs : None
1539 -- Function : Italy Validations
1540 -- Current version : 1.0
1541 -- Previous version: 1.0
1542 -- Initial version : 1.0
1543 PROCEDURE iby_validate_account_us(
1544 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1545 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1546 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1547 foreign_payment_flag IN BOOLEAN,
1548 x_valid IN OUT NOCOPY BOOLEAN
1549 )
1550 IS
1551 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account_us';
1552 l_api_version CONSTANT NUMBER := 1.0;
1553 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1554
1555 val_result BOOLEAN;
1556 l_bank_account_num VARCHAR2(100);
1557 l_bank_branch_num VARCHAR2(30);
1558 l_bank_num VARCHAR2(30);
1559
1560 BEGIN
1561
1562 print_debuginfo('ENTER ' || l_module_name);
1563 x_valid := FALSE;
1564
1565 IF (foreign_payment_flag
1566 AND p_ext_bank_branch_rec.branch_number IS NOT NULL -- Bug 6043905
1567 ) THEN
1568
1569 l_bank_num := p_ext_bank_rec.bank_number;
1570
1571 l_bank_branch_num := p_ext_bank_branch_rec.branch_name;
1572
1573 -- Validate Bank Branch
1574 CE_VALIDATE_BANKINFO.CE_VALIDATE_BRANCH_US(
1575 Xi_BRANCH_NUMBER => p_ext_bank_branch_rec.branch_number,
1576 Xi_PASS_MAND_CHECK => 'P',
1577 Xo_VALUE_OUT => l_bank_branch_num);
1578
1579 p_ext_bank_branch_rec.branch_number :=
1580 NVL(l_bank_branch_num, p_ext_bank_branch_rec.branch_number);
1581
1582 END IF;
1583
1584 x_valid := TRUE;
1585
1586 print_debuginfo('RETURN ' || l_module_name);
1587
1588 END iby_validate_account_us;
1589
1590
1591 -- iby_validate_account
1592 --
1593 -- API name : iby_validate_account
1594 -- Type : Public
1595 -- Pre-reqs : None
1596 -- Function : validates the external bank account
1597 -- Current version : 1.0
1598 -- Previous version: 1.0
1599 -- Initial version : 1.0
1600 --
1601
1602 PROCEDURE iby_validate_account(
1603 p_api_version IN NUMBER,
1604 p_init_msg_list IN VARCHAR2 default FND_API.G_FALSE,
1605 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1606 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1607 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1608 x_return_status OUT NOCOPY VARCHAR2,
1609 x_msg_count OUT NOCOPY NUMBER,
1610 x_msg_data OUT NOCOPY VARCHAR2,
1611 x_response OUT NOCOPY IBY_FNDCPT_COMMON_PUB.Result_rec_type
1612 )
1613 IS
1614
1615 BEGIN
1616
1617 iby_validate_account(
1618 p_api_version => p_api_version,
1619 p_init_msg_list => p_init_msg_list,
1620 p_create_flag => FND_API.G_TRUE,
1621 p_ext_bank_rec => p_ext_bank_rec,
1622 p_ext_bank_branch_rec => p_ext_bank_branch_rec,
1623 p_ext_bank_acct_rec => p_ext_bank_acct_rec,
1624 x_return_status => x_return_status,
1625 x_msg_count => x_msg_count,
1626 x_msg_data => x_msg_data,
1627 x_response => x_response
1628 );
1629
1630
1631 END iby_validate_account;
1632
1633
1634 -- iby_validate_account
1635 --
1636 -- API name : iby_validate_account
1637 -- Type : Public
1638 -- Pre-reqs : None
1639 -- Function : validates the external bank account, overloaded
1640 -- using the p_create_flag parameter
1641 -- Current version : 1.0
1642 -- Previous version: 1.0
1643 -- Initial version : 1.0
1644 --
1645
1646 PROCEDURE iby_validate_account(
1647 p_api_version IN NUMBER,
1648 p_init_msg_list IN VARCHAR2 default FND_API.G_FALSE,
1649 p_create_flag IN VARCHAR2 default FND_API.G_TRUE,
1650 p_ext_bank_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBank_rec_type,
1651 p_ext_bank_branch_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankBranch_rec_type,
1652 p_ext_bank_acct_rec IN OUT NOCOPY IBY_EXT_BANKACCT_PUB.ExtBankAcct_rec_type,
1653 x_return_status OUT NOCOPY VARCHAR2,
1654 x_msg_count OUT NOCOPY NUMBER,
1655 x_msg_data OUT NOCOPY VARCHAR2,
1656 x_response OUT NOCOPY IBY_FNDCPT_COMMON_PUB.Result_rec_type
1660 l_branch_rec hz_bank_pub.bank_rec_type;
1657 )
1658 IS
1659 l_bank_rec hz_bank_pub.bank_rec_type;
1661 l_org_rec hz_party_v2pub.organization_rec_type;
1662 l_country VARCHAR2(60);
1663 l_party_rec hz_party_v2pub.party_rec_type;
1664 l_api_name CONSTANT VARCHAR2(30) := 'iby_validate_account';
1665 l_api_version CONSTANT NUMBER := 1.0;
1666 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.' || l_api_name;
1667
1668 X_PASS_MAND_CHECK VARCHAR2(1) := 'P';
1669 COUNTRY VARCHAR2(2);
1670 x_valid BOOLEAN := FALSE;
1671 l_foreign_pmt_flag BOOLEAN := FALSE;
1672 l_count NUMBER;
1673 l_return_status VARCHAR2(35);
1674 l_iban VARCHAR2(50);
1675 l_bank_number VARCHAR2(30);
1676 l_branch_number VARCHAR2(30);
1677 l_bank_name VARCHAR2(360);
1678 -- get bank info. cursor
1679 CURSOR c_bank IS
1680 SELECT hz_p.party_name, hz_org.bank_or_branch_number, hz_org.home_country
1681 FROM hz_parties hz_p,
1682 hz_organization_profiles hz_org
1683 WHERE hz_p.party_id = hz_org.party_id
1684 AND SYSDATE between TRUNC(hz_org.effective_start_date)
1685 and NVL(TRUNC(hz_org.effective_end_date), SYSDATE+1)
1686 AND hz_p.party_id = p_ext_bank_acct_rec.bank_id;
1687
1688 -- checks if account already exists
1689 CURSOR uniq_check (p_account_number VARCHAR2,
1690 p_currency VARCHAR2,
1691 p_bank_id NUMBER,
1692 p_branch_id NUMBER,
1693 p_country_code VARCHAR2,
1694 p_bank_account_id NUMBER) IS
1695
1696 SELECT count(1)
1697 FROM IBY_EXT_BANK_ACCOUNTS
1698 WHERE ((BANK_ACCOUNT_NUM = p_account_number) OR
1699 (BANK_ACCOUNT_NUM_HASH1= iby_security_pkg.Get_Hash
1700 (p_account_number,'F')
1701 AND BANK_ACCOUNT_NUM_HASH2=iby_security_pkg.Get_Hash
1702 (p_account_number,'T') ))
1703 AND ((p_currency IS NULL and CURRENCY_CODE is NULL) OR (CURRENCY_CODE = p_currency))
1704 AND ((p_bank_id IS NULL AND BANK_ID is NULL) OR (BANK_ID = p_bank_id))
1705 AND ((p_branch_id IS NULL AND BRANCH_ID is NULL) OR (BRANCH_ID = p_branch_id))
1706 AND p_country_code=COUNTRY_CODE
1707 AND ((p_bank_account_id is NULL) OR p_bank_account_id<>EXT_BANK_ACCOUNT_ID);
1708
1709
1710 BEGIN
1711
1712 print_debuginfo('ENTER ' || l_module_name);
1713
1714 -- Standard call to check for call compatibility.
1715 IF NOT FND_API.Compatible_API_Call(l_api_version,
1716 p_api_version,
1717 l_api_name,
1718 G_PKG_NAME) THEN
1719 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1720 END IF;
1721
1722 -- Initialize message list if p_init_msg_list is set to TRUE.
1723 IF FND_API.to_Boolean(p_init_msg_list) THEN
1724 FND_MSG_PUB.initialize;
1725 END IF;
1726
1727 -- Initialize API return status to success
1728 x_return_status := FND_API.G_RET_STS_SUCCESS;
1729
1730 -- Initialize message list if p_init_msg_list is set to TRUE.
1731 IF FND_API.to_Boolean(p_init_msg_list) THEN
1732 FND_MSG_PUB.initialize;
1733 END IF;
1734
1735 -- Account Number is mandatory
1736 check_mandatory('Account Number', p_ext_bank_acct_rec.bank_account_num);
1737
1738 IF (p_create_flag = FND_API.G_TRUE) THEN
1739
1740 -- Account Name if specfied should be unique
1741 IF (p_ext_bank_acct_rec.bank_account_name <> NULL) THEN
1742 SELECT COUNT(EXT_BANK_ACCOUNT_ID)
1743 INTO l_count
1744 FROM IBY_EXT_BANK_ACCOUNTS_V
1745 WHERE BANK_ACCOUNT_NAME =p_ext_bank_acct_rec.bank_account_name;
1746
1747 IF (l_count > 0) THEN
1748 fnd_message.set_name('IBY', 'IBY_UNIQ_ACCOUNT_NAME');
1749 fnd_msg_pub.add;
1750 print_debuginfo('Bank Account Name failed unique check');
1751 x_valid := FALSE;
1752 END IF;
1753 END IF;
1754
1755 -- perform unique check for account
1756 OPEN uniq_check(p_ext_bank_acct_rec.bank_account_num,
1757 p_ext_bank_acct_rec.currency,
1758 p_ext_bank_acct_rec.bank_id,
1759 p_ext_bank_acct_rec.branch_id,
1760 p_ext_bank_acct_rec.country_code,
1761 p_ext_bank_acct_rec.bank_account_id);
1762 FETCH uniq_check into l_count;
1763
1764 IF (l_count > 0) THEN
1765 fnd_message.set_name('IBY', 'IBY_UNIQ_ACCOUNT');
1766 fnd_msg_pub.add;
1767 print_debuginfo('Bank Account Name failed unique check');
1768 x_valid := FALSE;
1769 END IF;
1770
1771 END IF;
1772
1773 /* Foreign Payment Flag decides whether bank and branch records
1774 * are optional or mandatory
1775 */
1776 IF ((p_ext_bank_acct_rec.foreign_payment_use_flag = 'Y') AND
1777 (p_ext_bank_acct_rec.bank_id is NULL)) THEN
1778 l_foreign_pmt_flag := TRUE;
1779 -- Bank Name is mandatory
1780 check_mandatory('Bank Name',p_ext_bank_rec.bank_name);
1781
1785 (p_ext_bank_acct_rec.branch_id is NULL)) THEN
1782 END IF;
1783
1784 IF ((p_ext_bank_acct_rec.foreign_payment_use_flag = 'Y') AND
1786 l_foreign_pmt_flag := TRUE;
1787 -- Bank Branch Name is mandatory
1788 check_mandatory('Branch Name',p_ext_bank_branch_rec.branch_name);
1789 END IF;
1790
1791 /* if bank information provided, we need validate bank info.*/
1792 if((NOT p_ext_bank_rec.bank_name is NULL) AND
1793 (p_ext_bank_acct_rec.bank_id is NULL)) then
1794
1795 /* Bug 6043905: Bank number is not mandatory for all the countries */
1796 -- check_mandatory('Bank Number', p_ext_bank_rec.bank_number);
1797
1798 -- call CE validate bank api to validate bank
1799 -- country specific validation API call here
1800 ce_validate_bankinfo.ce_validate_bank(p_ext_bank_rec.country_code,
1801 p_ext_bank_rec.bank_number,
1802 p_ext_bank_rec.bank_name,
1803 p_ext_bank_rec.bank_alt_name,
1804 p_ext_bank_rec.tax_payer_id,
1805 null, -- bank_id
1806 FND_API.G_FALSE, -- do not re-initialize msg stack
1807 x_msg_count,
1808 x_msg_data,
1809 l_bank_number, -- reformated bank number
1810 x_return_status);
1811
1812 print_debuginfo('After return from CE country specific validation: '|| x_return_status);
1813 -- raise an exception if country specific validations fail
1814 IF (x_return_status IS NULL OR
1815 x_return_status <> fnd_api.g_ret_sts_success) THEN
1816 RAISE fnd_api.g_exc_error;
1817 END IF;
1818
1819 -- call HZ bank validation API to validate bank record
1820 l_party_rec.attribute_category := p_ext_bank_rec.attribute_category;
1821 l_party_rec.attribute1 := p_ext_bank_rec.attribute1;
1822 l_party_rec.attribute2 := p_ext_bank_rec.attribute2;
1823 l_party_rec.attribute3 := p_ext_bank_rec.attribute3;
1824 l_party_rec.attribute4 := p_ext_bank_rec.attribute4;
1825 l_party_rec.attribute5 := p_ext_bank_rec.attribute5;
1826 l_party_rec.attribute6 := p_ext_bank_rec.attribute6;
1827 l_party_rec.attribute7 := p_ext_bank_rec.attribute7;
1828 l_party_rec.attribute8 := p_ext_bank_rec.attribute8;
1829 l_party_rec.attribute9 := p_ext_bank_rec.attribute9;
1830 l_party_rec.attribute10 := p_ext_bank_rec.attribute10;
1831 l_party_rec.attribute11 := p_ext_bank_rec.attribute11;
1832 l_party_rec.attribute12 := p_ext_bank_rec.attribute12;
1833 l_party_rec.attribute13 := p_ext_bank_rec.attribute13;
1834 l_party_rec.attribute14 := p_ext_bank_rec.attribute14;
1835 l_party_rec.attribute15 := p_ext_bank_rec.attribute15;
1836 l_party_rec.attribute16 := p_ext_bank_rec.attribute16;
1837 l_party_rec.attribute17 := p_ext_bank_rec.attribute17;
1838 l_party_rec.attribute18 := p_ext_bank_rec.attribute18;
1839 l_party_rec.attribute19 := p_ext_bank_rec.attribute19;
1840 l_party_rec.attribute20 := p_ext_bank_rec.attribute20;
1841 l_party_rec.attribute21 := p_ext_bank_rec.attribute21;
1842 l_party_rec.attribute22 := p_ext_bank_rec.attribute22;
1843 l_party_rec.attribute23 := p_ext_bank_rec.attribute23;
1844 l_party_rec.attribute24 := p_ext_bank_rec.attribute24;
1845
1846
1847 l_org_rec.organization_name := p_ext_bank_rec.bank_name;
1848 l_org_rec.organization_name_phonetic := p_ext_bank_rec.bank_alt_name;
1849 l_org_rec.known_as := p_ext_bank_rec.bank_short_name;
1850 l_org_rec.mission_statement := p_ext_bank_rec.description;
1851 l_org_rec.jgzz_fiscal_code := p_ext_bank_rec.tax_payer_id;
1852 l_org_rec.tax_reference := p_ext_bank_rec.tax_registration_number;
1853 l_org_rec.created_by_module := 'CE';
1854 l_org_rec.party_rec := l_party_rec;
1855 l_org_rec.home_country := p_ext_bank_rec.country_code;
1856 l_bank_rec.bank_or_branch_number := p_ext_bank_rec.bank_number;
1857 l_bank_rec.country := p_ext_bank_rec.country_code;
1858 l_bank_rec.institution_type := 'BANK';
1859 l_bank_rec.organization_rec := l_org_rec;
1860
1861 -- now call HZ validation api
1862 hz_bank_pub.validate_bank (p_init_msg_list,
1863 l_bank_rec,
1864 'I',
1865 x_return_status,
1866 x_msg_count,
1867 x_msg_data);
1868 print_debuginfo('After return from HZ bank validation: '|| x_return_status);
1869 -- raise an exception if the validation routine is unsuccessful
1870 IF l_return_status <> fnd_api.g_ret_sts_success THEN
1871 RAISE fnd_api.g_exc_error;
1872 END IF;
1873 end if;
1874
1875 /* Bug 6043905: The branch number is not mandatory for all countries.
1876 if((NOT p_ext_bank_branch_rec.branch_name is NULL) AND
1877 (p_ext_bank_acct_rec.branch_id is NULL)) then
1878 check_mandatory('Branch Number', p_ext_bank_branch_rec.branch_number);
1879 end if;
1880 */
1881
1882 /*
1883 * If bank id is not available, do not validate the bank branch.
1884 *
1885 * The bank is the primary entity, and the branch is the secondary entity.
1886 * The CE branch validation API expects the bank id as an input param.
1887 *
1888 * Without the bank id, this API will always return an error for the
1889 * branch validation. Therefore, it is logical to skip the branch
1890 * validation when the bank id is not available.
1891 *
1895 if((NOT p_ext_bank_branch_rec.branch_name is NULL) AND
1892 * See bug 5117620 for a discussion on this subject.
1893 */
1894 -- if the bank is not new, and branch is new, we need validate the branch info.
1896 (p_ext_bank_acct_rec.branch_id is NULL) AND
1897 (NOT p_ext_bank_acct_rec.bank_id is NULL) ) then
1898
1899 -- call CE bank branch validation api
1900
1901
1902 -- get bank information
1903 OPEN c_bank;
1904 FETCH c_bank INTO l_bank_name, l_bank_number, l_country;
1905 IF c_bank%NOTFOUND THEN
1906 fnd_message.set_name('CE', 'CE_API_NO_BANK');
1907 fnd_msg_pub.add;
1908 x_return_status := fnd_api.g_ret_sts_error;
1909 RAISE fnd_api.g_exc_error;
1910 END IF;
1911 CLOSE c_bank;
1912
1913 -- country specific validation API call here
1914 ce_validate_bankinfo.ce_validate_branch(l_country,
1915 l_bank_number,
1916 p_ext_bank_branch_rec.branch_number,
1917 l_bank_name,
1918 p_ext_bank_branch_rec.branch_name,
1919 p_ext_bank_branch_rec.alternate_branch_name,
1920 p_ext_bank_acct_rec.bank_id,
1921 null, -- branch_id
1922 FND_API.G_FALSE, -- do not re-initialize msg stack
1923 x_msg_count,
1924 x_msg_data,
1925 l_branch_number, -- reformatted branch number
1926 x_return_status);
1927
1928 -- raise an exception if country specific validations fail
1929 IF (x_return_status IS NULL OR
1930 x_return_status <> fnd_api.g_ret_sts_success) THEN
1931 RAISE fnd_api.g_exc_error;
1932 END IF;
1933 -- check HZ validate branch API
1934 l_party_rec.attribute_category := p_ext_bank_branch_rec.attribute_category;
1935 l_party_rec.attribute1 := p_ext_bank_branch_rec.attribute1;
1936 l_party_rec.attribute2 := p_ext_bank_branch_rec.attribute2;
1937 l_party_rec.attribute3 := p_ext_bank_branch_rec.attribute3;
1938 l_party_rec.attribute4 := p_ext_bank_branch_rec.attribute4;
1939 l_party_rec.attribute5 := p_ext_bank_branch_rec.attribute5;
1940 l_party_rec.attribute6 := p_ext_bank_branch_rec.attribute6;
1941 l_party_rec.attribute7 := p_ext_bank_branch_rec.attribute7;
1942 l_party_rec.attribute8 := p_ext_bank_branch_rec.attribute8;
1943 l_party_rec.attribute9 := p_ext_bank_branch_rec.attribute9;
1944 l_party_rec.attribute10 := p_ext_bank_branch_rec.attribute10;
1945 l_party_rec.attribute11 := p_ext_bank_branch_rec.attribute11;
1946 l_party_rec.attribute12 := p_ext_bank_branch_rec.attribute12;
1947 l_party_rec.attribute13 := p_ext_bank_branch_rec.attribute13;
1948 l_party_rec.attribute14 := p_ext_bank_branch_rec.attribute14;
1949 l_party_rec.attribute15 := p_ext_bank_branch_rec.attribute15;
1950 l_party_rec.attribute16 := p_ext_bank_branch_rec.attribute16;
1951 l_party_rec.attribute17 := p_ext_bank_branch_rec.attribute17;
1952 l_party_rec.attribute18 := p_ext_bank_branch_rec.attribute18;
1953 l_party_rec.attribute19 :=p_ext_bank_branch_rec. attribute19;
1954 l_party_rec.attribute20 := p_ext_bank_branch_rec.attribute20;
1955 l_party_rec.attribute21 := p_ext_bank_branch_rec.attribute21;
1956 l_party_rec.attribute22 := p_ext_bank_branch_rec.attribute22;
1957 l_party_rec.attribute23 := p_ext_bank_branch_rec.attribute23;
1958 l_party_rec.attribute24 := p_ext_bank_branch_rec.attribute24;
1959
1960 l_org_rec.organization_name := p_ext_bank_branch_rec.branch_name;
1961 l_org_rec.organization_name_phonetic := p_ext_bank_branch_rec.alternate_branch_name;
1962 l_org_rec.mission_statement := p_ext_bank_branch_rec.description;
1963 l_org_rec.created_by_module := 'CE';
1964 l_org_rec.party_rec := l_party_rec;
1965 l_org_rec.home_country := l_country;
1966
1967 l_branch_rec.bank_or_branch_number := p_ext_bank_branch_rec.branch_number;
1968 l_branch_rec.branch_type := p_ext_bank_branch_rec.branch_type;
1969 l_branch_rec.rfc_code := p_ext_bank_branch_rec.rfc_identifier;
1970 l_branch_rec.institution_type := 'BANK_BRANCH';
1971 l_branch_rec.organization_rec := l_org_rec;
1972 l_branch_rec.country := l_country;
1973
1974 -- now call HZ validation branch api
1975 hz_bank_pub.validate_bank_branch (p_init_msg_list,
1976 p_ext_bank_acct_rec.bank_id,
1977 l_branch_rec,
1978 'I',
1979 x_return_status,
1980 x_msg_count,
1981 x_msg_data);
1982 print_debuginfo('After return from HZ branch validation: '|| x_return_status);
1983 -- raise an exception if the validation routine is unsuccessful
1984 IF l_return_status <> fnd_api.g_ret_sts_success THEN
1985 RAISE fnd_api.g_exc_error;
1986 END IF;
1987
1988 end if;
1989
1990 /* perform validation on bank number, bank branch number*/
1991
1992
1993 COUNTRY := p_ext_bank_acct_rec.country_code;
1994 print_debuginfo('Country Code: '||COUNTRY);
1995 CE_BANK_AND_ACCOUNT_VALIDATION.validate_country(
1999 RAISE fnd_api.g_exc_error;
1996 p_country_code => p_ext_bank_acct_rec.country_code,
1997 x_return_status => l_return_status);
1998 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
2000 END IF;
2001
2002 -- Validate IBAN Number
2003 CE_BANK_AND_ACCOUNT_VALIDATION.validate_IBAN (
2004 p_IBAN => p_ext_bank_acct_rec.iban,
2005 p_IBAN_OUT => l_iban,
2006 x_return_status => l_return_status);
2007 IF (l_return_status = fnd_api.g_ret_sts_error) THEN
2008 RAISE fnd_api.g_exc_error;
2009 END IF;
2010
2011 -- invoke Country specific validation procedures
2012 CASE COUNTRY
2013 WHEN 'AT' THEN
2014 iby_validate_account_at(
2015 p_ext_bank_rec,
2016 p_ext_bank_branch_rec,
2017 p_ext_bank_acct_rec,
2018 l_foreign_pmt_flag,
2019 x_valid);
2020 WHEN 'AU' THEN
2021 iby_validate_account_au(
2022 p_ext_bank_rec,
2023 p_ext_bank_branch_rec,
2024 p_ext_bank_acct_rec,
2025 l_foreign_pmt_flag,
2026 x_valid);
2027 WHEN 'BE' THEN
2028 iby_validate_account_be(
2029 p_ext_bank_rec,
2030 p_ext_bank_branch_rec,
2031 p_ext_bank_acct_rec,
2032 l_foreign_pmt_flag,
2033 x_valid);
2034 WHEN 'CA' THEN
2035 iby_validate_account_ca(
2036 p_ext_bank_rec,
2037 p_ext_bank_branch_rec,
2038 p_ext_bank_acct_rec,
2039 l_foreign_pmt_flag,
2040 x_valid);
2041 WHEN 'DE' THEN
2042 iby_validate_account_de(
2043 p_ext_bank_rec,
2044 p_ext_bank_branch_rec,
2045 p_ext_bank_acct_rec,
2046 l_foreign_pmt_flag,
2047 x_valid);
2048 WHEN 'DK' THEN
2049 iby_validate_account_dk(
2050 p_ext_bank_rec,
2051 p_ext_bank_branch_rec,
2052 p_ext_bank_acct_rec,
2053 l_foreign_pmt_flag,
2054 x_valid);
2055 WHEN 'ES' THEN
2056 iby_validate_account_es(
2057 p_ext_bank_rec,
2058 p_ext_bank_branch_rec,
2059 p_ext_bank_acct_rec,
2060 l_foreign_pmt_flag,
2061 x_valid);
2062 WHEN 'FI' THEN
2063 iby_validate_account_fi(
2064 p_ext_bank_rec,
2065 p_ext_bank_branch_rec,
2066 p_ext_bank_acct_rec,
2067 l_foreign_pmt_flag,
2068 x_valid);
2069 WHEN 'FR' THEN
2070 iby_validate_account_fr(
2071 p_ext_bank_rec,
2072 p_ext_bank_branch_rec,
2073 p_ext_bank_acct_rec,
2074 l_foreign_pmt_flag,
2075 x_valid);
2076 WHEN 'GB' THEN
2077 iby_validate_account_gb(
2078 p_ext_bank_rec,
2079 p_ext_bank_branch_rec,
2080 p_ext_bank_acct_rec,
2081 l_foreign_pmt_flag,
2082 x_valid);
2083 WHEN 'GR' THEN
2084 iby_validate_account_gr(
2085 p_ext_bank_rec,
2086 p_ext_bank_branch_rec,
2087 p_ext_bank_acct_rec,
2088 l_foreign_pmt_flag,
2089 x_valid);
2090 WHEN 'HK' THEN
2091 iby_validate_account_hk(
2092 p_ext_bank_rec,
2093 p_ext_bank_branch_rec,
2094 p_ext_bank_acct_rec,
2095 l_foreign_pmt_flag,
2096 x_valid);
2097 WHEN 'IE' THEN
2098 iby_validate_account_ie(
2099 p_ext_bank_rec,
2100 p_ext_bank_branch_rec,
2101 p_ext_bank_acct_rec,
2102 l_foreign_pmt_flag,
2103 x_valid);
2104 WHEN 'IL' THEN
2105 iby_validate_account_il(
2106 p_ext_bank_rec,
2107 p_ext_bank_branch_rec,
2108 p_ext_bank_acct_rec,
2109 l_foreign_pmt_flag,
2110 x_valid);
2111 WHEN 'IS' THEN
2112 iby_validate_account_is(
2113 p_ext_bank_rec,
2114 p_ext_bank_branch_rec,
2115 p_ext_bank_acct_rec,
2116 l_foreign_pmt_flag,
2117 x_valid);
2118 WHEN 'IT' THEN
2119 iby_validate_account_it(
2120 p_ext_bank_rec,
2121 p_ext_bank_branch_rec,
2122 p_ext_bank_acct_rec,
2123 l_foreign_pmt_flag,
2124 x_valid);
2125 WHEN 'JP' THEN
2126 iby_validate_account_jp(
2127 p_ext_bank_rec,
2128 p_ext_bank_branch_rec,
2129 p_ext_bank_acct_rec,
2130 l_foreign_pmt_flag,
2131 x_valid);
2132 WHEN 'LU' THEN
2133 iby_validate_account_lu(
2134 p_ext_bank_rec,
2135 p_ext_bank_branch_rec,
2136 p_ext_bank_acct_rec,
2137 l_foreign_pmt_flag,
2138 x_valid);
2139 WHEN 'NL' THEN
2140 iby_validate_account_nl(
2141 p_ext_bank_rec,
2142 p_ext_bank_branch_rec,
2143 p_ext_bank_acct_rec,
2144 l_foreign_pmt_flag,
2148 p_ext_bank_rec,
2145 x_valid);
2146 WHEN 'NO' THEN
2147 iby_validate_account_no(
2149 p_ext_bank_branch_rec,
2150 p_ext_bank_acct_rec,
2151 l_foreign_pmt_flag,
2152 x_valid);
2153 WHEN 'NZ' THEN
2154 iby_validate_account_nz(
2155 p_ext_bank_rec,
2156 p_ext_bank_branch_rec,
2157 p_ext_bank_acct_rec,
2158 l_foreign_pmt_flag,
2159 x_valid);
2160 WHEN 'PL' THEN
2161 iby_validate_account_pl(
2162 p_ext_bank_rec,
2163 p_ext_bank_branch_rec,
2164 p_ext_bank_acct_rec,
2165 l_foreign_pmt_flag,
2166 x_valid);
2167 WHEN 'PT' THEN
2168 iby_validate_account_pt(
2169 p_ext_bank_rec,
2170 p_ext_bank_branch_rec,
2171 p_ext_bank_acct_rec,
2172 l_foreign_pmt_flag,
2173 x_valid);
2174 WHEN 'SE' THEN
2175 iby_validate_account_se(
2176 p_ext_bank_rec,
2177 p_ext_bank_branch_rec,
2178 p_ext_bank_acct_rec,
2179 l_foreign_pmt_flag,
2180 x_valid);
2181 WHEN 'SG' THEN
2182 iby_validate_account_sg(
2183 p_ext_bank_rec,
2184 p_ext_bank_branch_rec,
2185 p_ext_bank_acct_rec,
2186 l_foreign_pmt_flag,
2187 x_valid);
2188 WHEN 'US' THEN
2189 iby_validate_account_us(
2190 p_ext_bank_rec,
2191 p_ext_bank_branch_rec,
2192 p_ext_bank_acct_rec,
2193 l_foreign_pmt_flag,
2194 x_valid);
2195 ELSE
2196 -- Not a recognized country, mark as successful
2197 x_valid := TRUE;
2198 print_debuginfo('No validations for country'|| COUNTRY);
2199 END CASE;
2200
2201
2202 -- get message count and if count is 1, get message info.
2203 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2204 p_count => x_msg_count,
2205 p_data => x_msg_data);
2206
2207
2208 IF x_msg_count > 0 THEN
2209 x_return_status := fnd_api.g_ret_sts_error;
2210 print_debuginfo('Account Validations Failed ');
2211 ELSE
2212 print_debuginfo('Account Validations Successful');
2213 END IF;
2214
2215 print_debuginfo('RETURN ' || l_module_name);
2216
2217 EXCEPTION
2218 WHEN fnd_api.g_exc_error THEN
2219 x_return_status := fnd_api.g_ret_sts_error;
2220 print_debuginfo('IN Exception fnd_api.g_exc_error');
2221 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2222 p_count => x_msg_count,
2223 p_data => x_msg_data);
2224
2225 WHEN fnd_api.g_exc_unexpected_error THEN
2226 x_return_status := fnd_api.g_ret_sts_unexp_error;
2227 print_debuginfo('IN Exception fnd_api.g_ret_sts_unexp_error');
2228 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2229 p_count => x_msg_count,
2230 p_data => x_msg_data);
2231
2232
2233 WHEN OTHERS THEN
2234 x_return_status := fnd_api.g_ret_sts_unexp_error;
2235 print_debuginfo('Exception : ' || SQLERRM);
2236 -- fnd_message.set_name('CE', 'CE_API_OTHERS_EXCEP');
2237 -- fnd_message.set_token('ERROR',SQLERRM);
2238 FND_MSG_PUB.add_exc_msg(G_PKG_NAME, l_module_name, null);
2239 -- fnd_msg_pub.add;
2240 fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
2241 p_count => x_msg_count,
2242 p_data => x_msg_data);
2243
2244 END iby_validate_account;
2245
2246
2247
2248 -- print_debuginfo
2249 --
2250 -- Type : check_mandatory procedure
2251 -- Pre-reqs : None
2252 -- Function : check for mandatory parameters.
2253 -- Current version : 1.0
2254 -- Previous version: 1.0
2255 -- Initial version : 1.0
2256
2257 PROCEDURE check_mandatory(
2258 p_field IN VARCHAR2,
2259 p_value IN VARCHAR2
2260 ) IS
2261
2262 l_temp VARCHAR2(80);
2263
2264 CURSOR c_validate_currency (p_currency_code VARCHAR2) IS
2265 SELECT CURRENCY_CODE
2266 FROM FND_CURRENCIES
2267 WHERE CURRENCY_CODE = p_currency_code;
2268
2269 BEGIN
2270
2271 if (p_value is NULL) THEN
2272 fnd_message.set_name('IBY', 'IBY_MISSING_MANDATORY_PARAM');
2273 fnd_message.set_token('PARAM', p_field);
2274 fnd_msg_pub.add;
2275 print_debuginfo(p_field || ' is a required parameter.');
2276 RAISE fnd_api.g_exc_error;
2277 END IF;
2278
2279
2280 --Validate Currency
2281 IF (UPPER(p_field) = 'CURRENCY') THEN
2282 OPEN c_validate_currency(p_value);
2283 FETCH c_validate_currency INTO l_temp;
2284 CLOSE c_validate_currency;
2285
2286 IF (l_temp IS NULL) THEN
2287 fnd_message.set_name('IBY', 'IBY_INVALID_CURRENCY');
2288 fnd_message.set_token('CURRENCY_CODE', p_field);
2289 fnd_msg_pub.add;
2290 RAISE fnd_api.g_exc_error;
2291 END IF;
2292
2293 END IF;
2294 print_debuginfo('Checked mandatory field : ' || p_field || ' : ' || p_value);
2295 END check_mandatory;
2296
2297
2298
2299 -- print_debuginfo
2300 --
2301 -- Type : utility procedure
2302 -- Pre-reqs : None
2303 -- Function : write to log
2304 -- Current version : 1.0
2305 -- Previous version: 1.0
2306 -- Initial version : 1.0
2307
2308 PROCEDURE print_debuginfo(
2309 p_message IN VARCHAR2,
2310 p_prefix IN VARCHAR2 DEFAULT 'DEBUG',
2311 p_msg_level IN NUMBER DEFAULT FND_LOG.LEVEL_STATEMENT,
2312 p_module IN VARCHAR2 DEFAULT G_DEBUG_MODULE
2313 ) IS
2314
2315 l_message VARCHAR2(4000);
2316 l_module VARCHAR2(255);
2317
2318 BEGIN
2319
2320
2321 IF fnd_log.level_procedure>=fnd_log.g_current_runtime_level THEN
2322 -- Debug info.
2323 l_module :=SUBSTRB(p_module,1,255);
2324
2325 IF p_prefix IS NOT NULL THEN
2326 l_message :=SUBSTRB(p_prefix||'-'||p_message,1,4000);
2327 ELSE
2328 l_message :=SUBSTRB(p_message,1,4000);
2329 END IF;
2330 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE,l_module,l_message);
2331
2332 END IF;
2333 -- dbms_output.put_line(p_module || ': ' || p_message);
2334 END print_debuginfo;
2335
2336 END IBY_EXT_BANKACCT_VALIDATIONS;