[Home] [Help]
PACKAGE BODY: APPS.IBY_VALIDATIONSETS_CALLS_PUB
Source
1 PACKAGE BODY IBY_VALIDATIONSETS_CALLS_PUB AS
2 /*$Header: ibyvalcb.pls 120.36.12020000.2 2012/12/05 09:20:35 asarada ship $*/
3
4 G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
5 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'IBY_VALIDATIONSETS_CALLS_PUB';
7
8
9 --
10 -- List of possible transaction types
11 -- These are used to insert into the IBY_TRANSACTION_ERRORS table.
12 --
13 TRANS_TYPE_DOC CONSTANT VARCHAR2(100) := 'DOCUMENT_PAYABLE';
14 TRANS_TYPE_PAY CONSTANT VARCHAR2(100) := 'PAYMENT';
15 TRANS_TYPE_INS CONSTANT VARCHAR2(100) := 'PAYMENT_INSTRUCTION';
16
17 --
18 -- List of possible error types
19 -- These are used to insert into the IBY_TRANSACTION_ERRORS table.
20 --
21 ERROR_TYPE_VALIDATION CONSTANT VARCHAR2(100) := 'VALIDATION';
22 ERROR_TYPE_BANK CONSTANT VARCHAR2(100) := 'BANK';
23
24
25 PROCEDURE validate_uri_using_modulus10(s IN VARCHAR2,
26 x_valResult OUT NOCOPY BOOLEAN,
27 x_docErrorRec IN OUT NOCOPY IBY_TRANSACTION_ERRORS%ROWTYPE);
28
29 PROCEDURE xxno_chk_mod_10_11
30 (p_kid_nr IN varchar2,
31 x_valResult OUT NOCOPY BOOLEAN,
32 x_docErrorRec IN OUT NOCOPY IBY_TRANSACTION_ERRORS%ROWTYPE);
33
34 /*--------------------------------------------------------------------
35 | NAME:
36 | CITI_AT_EFT_DOM_PAYEE
37 |
38 | PURPOSE:
39 | Citibank Austrian domestic EFT payee validation
40 |
41 | PARAMETERS:
42 | IN
43 |
44 |
45 | OUT
46 |
47 |
48 | RETURNS:
49 |
50 | NOTES:
51 |
52 *---------------------------------------------------------------------*/
53 PROCEDURE CITI_AT_EFT_DOM_PAYEE (
54 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
55 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
56 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
57 p_is_online_val IN VARCHAR2,
58 x_result OUT NOCOPY NUMBER)
59 IS
60
61 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
62 l_valResult BOOLEAN;
63 l_valid NUMBER := 0;
64 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
65 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
66
67 BEGIN
68
69 -- Initializing the document record
70 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
71
72 l_docErrorRec.validation_set_code := p_validation_set_code;
73 l_docErrorRec.transaction_id := p_document_id;
74 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
75 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
76 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
77 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
78
79 -- Validate target name
80 IBY_VALIDATIONSETS_PUB.evaluateCondition(
81 'PAYEE_PARTY_NAME',
82 l_document_rec.payee_party_name,
83 'MAXLENGTH',
84 null,
85 35,
86 l_valResult,
87 l_docErrorRec);
88
89 IF (l_valResult = FALSE) THEN
90 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
91 l_valid := 1;
92 END IF;
93
94 -- Validate target bank account number
95 -- by CE
96
97 -- Validate target bank country code
98 IBY_VALIDATIONSETS_PUB.evaluateCondition(
99 'EXT_BANK_BRANCH_COUNTRY',
100 l_document_rec.ext_bank_branch_country,
101 'STRIS',
102 'AT',
103 null,
104 l_valResult,
105 l_docErrorRec);
106
107 IF (l_valResult = FALSE) THEN
108 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
109 l_valid := 1;
110 END IF;
111
112 -- Validate target bank code
113 IBY_VALIDATIONSETS_PUB.evaluateCondition(
114 'EXT_BANK_BRANCH_NUM',
115 l_document_rec.ext_bank_branch_num,
116 'MAXLENGTH',
117 null,
118 5,
119 l_valResult,
120 l_docErrorRec);
121
122 IF (l_valResult = FALSE) THEN
123 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
124 l_valid := 1;
125 END IF;
126
127 -- Insert errors into IBY_TRANSACTION_ERRORS
128 IF (l_valid = 1) THEN
129 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
130 END IF;
131
132 -- Return the Validation Result
133 x_result := l_valid;
134
135 END CITI_AT_EFT_DOM_PAYEE;
136
137 /*--------------------------------------------------------------------
138 | NAME:
139 | CITI_AT_EFT_DOM_DOC
140 |
141 | PURPOSE:
142 | Citibank Austrian domestic EFT document validation
143 |
144 | PARAMETERS:
145 | IN
146 |
147 |
148 | OUT
149 |
150 |
151 | RETURNS:
152 |
153 | NOTES:
154 |
155 *---------------------------------------------------------------------*/
156 PROCEDURE CITI_AT_EFT_DOM_DOC (
157 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
158 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
159 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
160 p_is_online_val IN VARCHAR2,
161 x_result OUT NOCOPY NUMBER)
162 IS
163
164 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
165 l_valResult BOOLEAN;
166 l_valid NUMBER := 0;
167 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
168 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
169
170 BEGIN
171
172 -- Initializing the document record
173 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
174
175 l_docErrorRec.validation_set_code := p_validation_set_code;
176 l_docErrorRec.transaction_id := p_document_id;
177 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
178 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
179 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
180 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
181
182 -- Validate transaction code
183 IBY_VALIDATIONSETS_PUB.evaluateCondition(
184 'DELIVERY_CHANNEL_CODE',
185 l_document_rec.delivery_channel_code,
186 'INDELIV',
187 'AT',
188 null,
189 l_valResult,
190 l_docErrorRec);
191
192 IF (l_valResult = FALSE) THEN
193 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
194 l_valid := 1;
195 END IF;
196
197 -- Inserting errors into IBY_TRANSACTION_ERRORS
198 IF (l_valid = 1) THEN
199 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
200 END IF;
201
202 -- Return the Validation Result
203 x_result := l_valid;
204
205 END CITI_AT_EFT_DOM_DOC;
206
207 /*--------------------------------------------------------------------
208 | NAME:
209 | AT_EFT_INT_INTERNAL_BANK
210 |
211 | PURPOSE:
212 | Austrian International EFT internal bank validation
213 |
214 | PARAMETERS:
215 | IN
216 |
217 |
218 | OUT
219 |
220 |
221 | RETURNS:
222 |
223 | NOTES:
224 |
225 *---------------------------------------------------------------------*/
226 PROCEDURE AT_EFT_INT_INTERNAL_BANK(
227 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
228 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
229 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
230 p_is_online_val IN VARCHAR2,
231 x_result OUT NOCOPY NUMBER)
232 IS
233
234 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
235 l_valResult BOOLEAN;
236 l_valid NUMBER := 0;
237 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
238 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
239
240 BEGIN
241
242 -- Initializing the document record
243 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
244
245 l_docErrorRec.validation_set_code := p_validation_set_code;
246 l_docErrorRec.transaction_id := p_document_id;
247 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
248 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
249 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
250 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
251
252 -- Validate payer bank account number
253 -- by CE
254
255 -- Validate payer bank sort code
256 -- by CE
257
258 IBY_VALIDATIONSETS_PUB.evaluateCondition(
259 'INT_BANK_BRANCH_NUM',
260 '+'||substr(l_document_rec.int_bank_branch_num,1,1)||'+',
261 'NOTINSET',
262 '+0+9+',
263 null,
264 l_valResult,
265 l_docErrorRec);
266
267 IF (l_valResult = FALSE) THEN
268 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
269 l_valid := 1;
270 END IF;
271
272 -- Insert errors into IBY_TRANSACTION_ERRORS
273 IF (l_valid = 1) THEN
274 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
275 END IF;
276
277 -- Return the Validation Result
278 x_result := l_valid;
279
280 END AT_EFT_INT_INTERNAL_BANK;
281
282 /*--------------------------------------------------------------------
283 | NAME:
284 | AT_EFT_INT_PAYER
285 |
286 | PURPOSE:
287 | Austrian international EFT payer validation
288 |
289 | PARAMETERS:
290 | IN
291 |
292 |
293 | OUT
294 |
295 |
296 | RETURNS:
297 |
298 | NOTES:
299 |
300 *---------------------------------------------------------------------*/
301 PROCEDURE AT_EFT_INT_PAYER (
302 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
303 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
304 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
305 p_is_online_val IN VARCHAR2,
306 x_result OUT NOCOPY NUMBER)
307 IS
308
309 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
310 l_valResult BOOLEAN;
311 l_valid NUMBER := 0;
312 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
313 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
314
315 BEGIN
316
317 -- Initializing the document record
318 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
319
320 l_docErrorRec.validation_set_code := p_validation_set_code;
321 l_docErrorRec.transaction_id := p_document_id;
322 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
323 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
324 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
325 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
326
327 -- Validate payer company description
328 IBY_VALIDATIONSETS_PUB.evaluateCondition(
329 'PAYER_LE_NANE',
330 l_document_rec.payer_le_name,
331 'NOTNULL',
332 null,
333 null,
334 l_valResult,
335 l_docErrorRec);
336
337 IF (l_valResult = FALSE) THEN
338 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
339 l_valid := 1;
340 END IF;
341
342 -- Validate payer location telephone number
343 IBY_VALIDATIONSETS_PUB.evaluateCondition(
344 'PAYER_PHONE',
345 l_document_rec.payer_phone,
346 'NOTNULL',
347 null,
348 null,
349 l_valResult,
350 l_docErrorRec);
351
352 IF (l_valResult = FALSE) THEN
353 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
354 l_valid := 1;
355 END IF;
356
357 -- Insert errors into IBY_TRANSACTION_ERRORS
358 IF (l_valid = 1) THEN
359 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
360 END IF;
361
362 -- Return the Validation Result
363 x_result := l_valid;
364
365 END AT_EFT_INT_PAYER;
366
367 /*--------------------------------------------------------------------
368 | NAME:
369 | AT_EFT_INT_PAYEE
370 |
371 | PURPOSE:
372 | Austrian international EFT payee validation
373 |
374 | PARAMETERS:
375 | IN
376 |
377 |
378 | OUT
379 |
380 |
381 | RETURNS:
382 |
383 | NOTES:
384 |
385 *---------------------------------------------------------------------*/
386 PROCEDURE AT_EFT_INT_PAYEE(
387 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
388 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
389 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
390 p_is_online_val IN VARCHAR2,
391 x_result OUT NOCOPY NUMBER)
392 IS
393
394 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
395 l_valResult BOOLEAN;
396 l_valid NUMBER := 0;
397 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
398 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
399
400 BEGIN
401
402 -- Initializing the document record
403 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
404
405 l_docErrorRec.validation_set_code := p_validation_set_code;
406 l_docErrorRec.transaction_id := p_document_id;
407 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
408 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
409 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
410 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
411
412 -- Validate payee bank account number
413 IBY_VALIDATIONSETS_PUB.evaluateCondition(
414 'EXT_BANK_ACC_NUM',
415 l_document_rec.ext_bank_acc_num,
416 'NOTNULL',
417 null,
418 null,
419 l_valResult,
420 l_docErrorRec);
421
422 IF (l_valResult = FALSE) THEN
423 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
424 l_valid := 1;
425 END IF;
426
427 -- Validate payee bank sort code
428 IBY_VALIDATIONSETS_PUB.evaluateCondition(
429 'EXT_BANK_BRANCH_NUM',
430 l_document_rec.ext_bank_branch_num,
431 'NOTNULL',
432 null,
433 null,
434 l_valResult,
435 l_docErrorRec);
436
437 IF (l_valResult = FALSE) THEN
438 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
439 l_valid := 1;
440 END IF;
441
442 -- Insert errors into IBY_TRANSACTION_ERRORS
443 IF (l_valid = 1) THEN
444 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
445 END IF;
446
447 -- Return the Validation Result
448 x_result := l_valid;
449
450 END AT_EFT_INT_PAYEE;
451
452 /*--------------------------------------------------------------------
453 | NAME:
454 | CITI_BE_EFT_DOM_PAYEE
455 |
456 | PURPOSE:
457 | Citibank Belgian domestic EFT payee validation
458 |
459 | PARAMETERS:
460 | IN
461 |
462 |
463 | OUT
464 |
465 |
466 | RETURNS:
467 |
468 | NOTES:
469 |
470 *---------------------------------------------------------------------*/
471 PROCEDURE CITI_BE_EFT_DOM_PAYEE (
472 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
473 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
474 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
475 p_is_online_val IN VARCHAR2,
476 x_result OUT NOCOPY NUMBER)
477 IS
478
479 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
480 l_valResult BOOLEAN;
481 l_valid NUMBER := 0;
482 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
483 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
484
485 BEGIN
486
487 -- Initializing the document record
488 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
489
490 l_docErrorRec.validation_set_code := p_validation_set_code;
491 l_docErrorRec.transaction_id := p_document_id;
492 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
493 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
494 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
495 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
496
497 -- Validate target name
498 IBY_VALIDATIONSETS_PUB.evaluateCondition(
499 'PAYEE_PARTY_NAME',
500 l_document_rec.payee_party_name,
501 'MAXLENGTH',
502 null,
503 26,
504 l_valResult,
505 l_docErrorRec);
506
507 IF (l_valResult = FALSE) THEN
508 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
509 l_valid := 1;
510 END IF;
511
512 -- Validate target bank account number
513 IBY_VALIDATIONSETS_PUB.evaluateCondition(
514 'EXT_BANK_ACC_NUM',
515 l_document_rec.ext_bank_acc_num,
516 'MAXLENGTH',
517 null,
518 12,
519 l_valResult,
520 l_docErrorRec);
521
522 IF (l_valResult = FALSE) THEN
523 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
524 l_valid := 1;
525 END IF;
526
527 IBY_VALIDATIONSETS_PUB.evaluateCondition(
528 'EXT_BANK_ACC_NUM',
529 l_document_rec.ext_bank_acc_num,
530 'DIGITSONLY',
531 null,
532 null,
533 l_valResult,
534 l_docErrorRec);
535
536 IF (l_valResult = FALSE) THEN
537 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
538 l_valid := 1;
539 END IF;
540
541 -- by CE (the most important validation for this data)
542 -- check algorithm
543
544 -- Validate target bank country code
545 IBY_VALIDATIONSETS_PUB.evaluateCondition(
546 'EXT_BANK_BRANCH_COUNTRY',
547 l_document_rec.ext_bank_branch_country,
548 'STRIS',
549 'BE',
550 null,
551 l_valResult,
552 l_docErrorRec);
553
554 IF (l_valResult = FALSE) THEN
555 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
556 l_valid := 1;
557 END IF;
558
559 -- Inserting errors into IBY_TRANSACTION_ERRORS
560 IF (l_valid = 1) THEN
561 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
562 END IF;
563
564 -- Return the Validation Result
565 x_result := l_valid;
566
567 END CITI_BE_EFT_DOM_PAYEE;
568
569 /*--------------------------------------------------------------------
570 | NAME:
571 | P_CITI_BE_EFT_DOM_PMT
572 |
573 | PURPOSE:
574 | Citibank Belgian domestic EFT payment validation
575 |
576 | PARAMETERS:
577 | IN
578 |
579 |
580 | OUT
581 |
582 |
583 | RETURNS:
584 |
585 | NOTES:
586 |
587 *---------------------------------------------------------------------*/
588 PROCEDURE P_CITI_BE_EFT_DOM_PMT (
589 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
590 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
591 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
592 p_is_online_val IN VARCHAR2,
593 x_result OUT NOCOPY NUMBER)
594 IS
595
596 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
597 l_valResult BOOLEAN;
598 l_valid NUMBER := 0;
599 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
600 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
601
602 l_max_ach_amt NUMBER;
603
604 BEGIN
605
606 -- Initializing the payment record
607 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
608
609 l_docErrorRec.validation_set_code := p_validation_set_code;
610 l_docErrorRec.transaction_id := p_payment_id;
611 l_docErrorRec.transaction_type := 'PAYMENT';
612 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
613
614 -- Validate transaction reference
615 IBY_VALIDATIONSETS_PUB.evaluateCondition(
616 'PMT_ID',
617 l_payment_rec.pmt_id,
618 'MAXLENGTH',
619 null,
620 8,
621 l_valResult,
622 l_docErrorRec);
623
624 IF (l_valResult = FALSE) THEN
625 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
626 l_valid := 1;
627 END IF;
628
629 -- Validate transaction amount
630 IBY_VALIDATIONSETS_PUB.getParamValue(
631 p_validation_assign_id,
632 p_validation_set_code,
633 'MAX_PAYMENT_AMOUNT',
634 l_max_ach_amt );
635
636 IBY_VALIDATIONSETS_PUB.evaluateCondition(
637 'PMT_AMOUNT',
638 l_payment_rec.pmt_amount,
639 'LESSEQUAL',
640 null,
641 l_max_ach_amt,
642 l_valResult,
643 l_docErrorRec);
644
645 IF (l_valResult = FALSE) THEN
646 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
647 l_valid := 1;
648 END IF;
649
650 -- Inserting errors into IBY_TRANSACTION_ERRORS
651 -- The first parameter p_is_online_val takes hardcoded value 'N'.
652 IF (l_valid = 1) THEN
653 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
654 END IF;
655
656 -- Return the Validation Result
657 x_result := l_valid;
658
659 END P_CITI_BE_EFT_DOM_PMT;
660
661 /*--------------------------------------------------------------------
662 | NAME:
663 | BE_EFT_DOM_DOC
664 |
665 | PURPOSE:
666 | Belgian domestic EFT document validation
667 |
668 | PARAMETERS:
669 | IN
670 |
671 |
672 | OUT
673 |
674 |
675 | RETURNS:
676 |
677 | NOTES:
678 |
679 *---------------------------------------------------------------------*/
680 PROCEDURE BE_EFT_DOM_DOC (
681 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
682 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
683 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
684 p_is_online_val IN VARCHAR2,
685 x_result OUT NOCOPY NUMBER)
686 IS
687
688 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
689 l_valResult BOOLEAN;
690 l_valid NUMBER := 0;
691 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
692 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
693
694 BEGIN
695
696 -- Initializing the document record
697 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
698
699 l_docErrorRec.validation_set_code := p_validation_set_code;
700 l_docErrorRec.transaction_id := p_document_id;
701 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
702 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
703 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
704 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
705
706 -- Validate payment currency
707 IBY_VALIDATIONSETS_PUB.evaluateCondition(
708 'DOCUMENT_PAY_CURRENCY',
709 l_document_rec.document_pay_currency,
710 'STRIS',
711 'EUR',
712 null,
713 l_valResult,
714 l_docErrorRec);
715
716 IF (l_valResult = FALSE) THEN
717 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
718 l_valid := 1;
719 END IF;
720
721 -- Inserting errors into IBY_TRANSACTION_ERRORS
722 IF (l_valid = 1) THEN
723 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
724 END IF;
725
726 -- Return the Validation Result
727 x_result := l_valid;
728
729 END BE_EFT_DOM_DOC;
730
731 /*--------------------------------------------------------------------
732 | NAME:
733 | BE_EFT_INT_PAYEE
734 |
735 | PURPOSE:
736 | Belgian international EFT payee validation
737 |
738 | PARAMETERS:
739 | IN
740 |
741 |
742 | OUT
743 |
744 |
745 | RETURNS:
746 |
747 | NOTES:
748 |
749 *---------------------------------------------------------------------*/
750 PROCEDURE BE_EFT_INT_PAYEE (
751 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
752 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
753 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
754 p_is_online_val IN VARCHAR2,
755 x_result OUT NOCOPY NUMBER)
756 IS
757
758 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
759 l_valResult BOOLEAN;
760 l_valid NUMBER := 0;
761 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
762 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
763
764 BEGIN
765
766 -- Initializing the document record
767 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
768
769 l_docErrorRec.validation_set_code := p_validation_set_code;
770 l_docErrorRec.transaction_id := p_document_id;
771 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
772 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
773 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
774 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
775
776 -- Validate vendor site cost code
777 IBY_VALIDATIONSETS_PUB.evaluateCondition(
778 'BANK_CHARGE_BEARER',
779 l_document_rec.bank_charge_bearer,
780 'INLOOKUPTYPE',
781 'IBY_BANK_CHARGE_BEARER',
782 null,
783 l_valResult,
784 l_docErrorRec);
785
786 IF (l_valResult = FALSE) THEN
787 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
788 l_valid := 1;
789 END IF;
790
791 -- Validate payee bank number/branch number
792 IBY_VALIDATIONSETS_PUB.evaluateCondition(
793 'EXT_BANK_NUM',
794 l_document_rec.ext_bank_num,
795 'NOTNULL',
796 null,
797 null,
798 l_valResult,
799 l_docErrorRec);
800
801 IF (l_valResult = FALSE) THEN
802 IBY_VALIDATIONSETS_PUB.evaluateCondition(
803 'EXT_BANK_BRANCH_NUM',
804 l_document_rec.ext_bank_branch_num,
805 'NOTNULL',
806 null,
807 null,
808 l_valResult,
809 l_docErrorRec);
810
811 IF (l_valResult = FALSE) THEN
812 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
813 l_valid := 1;
814 END IF;
815 END IF;
816
817 -- Validate EFT cost code
818 -- Not necessary. Combined into Validate Supplier cost code.
819
820 -- Inserting errors into IBY_TRANSACTION_ERRORS
821 IF (l_valid = 1) THEN
822 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
823 END IF;
824
825 -- Return the Validation Result
826 x_result := l_valid;
827
828 END BE_EFT_INT_PAYEE;
829
830 /*--------------------------------------------------------------------
831 | NAME:
832 | BE_EFT_INT_DOC
833 |
834 | PURPOSE:
835 | Belgian international EFT document validation
836 |
837 | PARAMETERS:
838 | IN
839 |
840 |
841 | OUT
842 |
843 |
844 | RETURNS:
845 |
846 | NOTES:
847 |
848 *---------------------------------------------------------------------*/
849 PROCEDURE BE_EFT_INT_DOC (
850 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
851 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
852 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
853 p_is_online_val IN VARCHAR2,
854 x_result OUT NOCOPY NUMBER)
855 IS
856
857 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
858 l_valResult BOOLEAN;
859 l_valid NUMBER := 0;
860 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
861 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
862
863 BEGIN
864
865 -- Initializing the document record
866 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
867
868 l_docErrorRec.validation_set_code := p_validation_set_code;
869 l_docErrorRec.transaction_id := p_document_id;
870 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
871 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
872 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
873 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
874
875 -- Validate payment method
876 IBY_VALIDATIONSETS_PUB.evaluateCondition(
877 'EXT_BANK_ACC_NUM',
878 l_document_rec.ext_bank_acc_num,
879 'NOTNULL',
880 null,
881 null,
882 l_valResult,
883 l_docErrorRec);
884
885 IF (l_valResult = FALSE) THEN
886 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
887 l_valid := 1;
888 END IF;
889
890 -- Validate number of IBLC code
891 -- Not coded. This has been moved to the payment level.
892
893 -- Validate number of detail records
894 -- Not coded. This has been moved to the instruction level.
895
896 -- Inserting errors into IBY_TRANSACTION_ERRORS
897 IF (l_valid = 1) THEN
898 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
899 END IF;
900
901 -- Return the Validation Result
902 x_result := l_valid;
903
904 END BE_EFT_INT_DOC;
905
906 /*--------------------------------------------------------------------
907 | NAME:
908 | P_BE_EFT_INT_PMT
909 |
910 | PURPOSE:
911 | Belgian international EFT payment validation.
912 |
913 | PARAMETERS:
914 | IN
915 |
916 |
917 | OUT
918 |
919 |
920 | RETURNS:
921 |
922 | NOTES:
923 |
924 *---------------------------------------------------------------------*/
925 PROCEDURE P_BE_EFT_INT_PMT (
926 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
927 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
928 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
929 p_is_online_val IN VARCHAR2,
930 x_result OUT NOCOPY NUMBER)
931 IS
932
933 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
934 l_valResult BOOLEAN;
935 l_valid NUMBER := 0;
936 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
937 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
938
939 l_max_check_amt NUMBER;
940 l_max_pay_reason_cnt NUMBER;
941
942 BEGIN
943
944 -- Initializing the payment record
945 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
946
947 l_docErrorRec.validation_set_code := p_validation_set_code;
948 l_docErrorRec.transaction_id := p_payment_id;
949 l_docErrorRec.transaction_type := 'PAYMENT';
950 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
951
952 -- Validate payment amount
953 IBY_VALIDATIONSETS_PUB.getParamValue(
954 p_validation_assign_id,
955 p_validation_set_code,
956 'MAX_PAYMENT_AMOUNT',
957 l_max_check_amt );
958
959 IBY_VALIDATIONSETS_PUB.evaluateCondition(
960 'PMT_AMOUNT',
961 l_payment_rec.pmt_amount,
962 'LESSEQUAL',
963 null,
964 l_max_check_amt,
965 l_valResult,
966 l_docErrorRec);
967
968 IF (l_valResult = FALSE) THEN
969 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
970 l_valid := 1;
971 END IF;
972
973 -- Validate number of IBLC codes
974 -- Bug 5411492 changes start here
975 -- Analysis - the commenting of this code will ignore the validation.
976 /*------------------------------------------------------------------------
977 IBY_VALIDATIONSETS_PUB.getParamValue(
978 p_validation_assign_id,
979 p_validation_set_code,
980 'MAX_PAYMENT_REASON_COUNT',
981 l_max_pay_reason_cnt );
982
983 IBY_VALIDATIONSETS_PUB.evaluateCondition(
984 'PMT_PAYMENT_REASON_COUNT',
985 l_payment_rec.pmt_payment_reason_count,
986 'LESSEQUAL',
987 null,
988 l_max_pay_reason_cnt,
989 l_valResult,
990 l_docErrorRec);
991
992 IF (l_valResult = FALSE) THEN
993 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
994 l_valid := 1;
995 END IF;
996
997 ---------------------------------------------------------------------------*/
998
999 -- Bug 5411492 changes end here
1000
1001 -- Inserting errors into IBY_TRANSACTION_ERRORS
1002 -- The first parameter p_is_online_val takes hardcoded value 'N'.
1003 IF (l_valid = 1) THEN
1004 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
1005 END IF;
1006
1007 -- Return the Validation Result
1008 x_result := l_valid;
1009
1010 END P_BE_EFT_INT_PMT;
1011
1012 /*--------------------------------------------------------------------
1013 | NAME:
1014 | I_BE_EFT_INT_INSTR
1015 |
1016 | PURPOSE:
1017 | Belgian international EFT payment instruction validation
1018 |
1019 | PARAMETERS:
1020 | IN
1021 |
1022 |
1023 | OUT
1024 |
1025 |
1026 | RETURNS:
1027 |
1028 | NOTES:
1029 |
1030 *---------------------------------------------------------------------*/
1031 PROCEDURE I_BE_EFT_INT_INSTR (
1032 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
1033 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
1034 p_instruction_id IN IBY_PAY_INSTRUCTIONS_ALL.payment_instruction_id%type,
1035 p_is_online_val IN VARCHAR2,
1036 x_result OUT NOCOPY NUMBER)
1037 IS
1038
1039 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
1040 l_valResult BOOLEAN;
1041 l_valid NUMBER := 0;
1042 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
1043 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
1044
1045 l_max_num_of_docs NUMBER;
1046
1047 BEGIN
1048
1049 -- Initializing the payment record
1050 IBY_VALIDATIONSETS_PUB.initInstructionData(p_instruction_id,l_instruction_rec);
1051
1052 l_docErrorRec.validation_set_code := p_validation_set_code;
1053 l_docErrorRec.transaction_id := p_instruction_id;
1054 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
1055 l_docErrorRec.calling_app_doc_unique_ref1 := p_instruction_id;
1056
1057 -- Validate number of detail records
1058 IBY_VALIDATIONSETS_PUB.getParamValue(
1059 p_validation_assign_id,
1060 p_validation_set_code,
1061 'MAX_DOCUMENT_COUNT',
1062 l_max_num_of_docs );
1063
1064 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1065 'INS_DOCUMENT_COUNT',
1066 l_instruction_rec.ins_document_count,
1067 'LESSEQUAL',
1068 null,
1069 l_max_num_of_docs,
1070 l_valResult,
1071 l_docErrorRec);
1072
1073 IF (l_valResult = FALSE) THEN
1074 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1075 l_valid := 1;
1076 END IF;
1077
1078 -- Inserting errors into IBY_TRANSACTION_ERRORS
1079 -- The first parameter p_is_online_val takes hardcoded value 'N'.
1080 IF (l_valid = 1) THEN
1081 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
1082 END IF;
1083
1084 -- Return the Validation Result
1085 x_result := l_valid;
1086
1087 END I_BE_EFT_INT_INSTR;
1088
1089 /*--------------------------------------------------------------------
1090 | NAME:
1091 | CITI_CH_EFT_DOM_PAYEE
1092 |
1093 | PURPOSE:
1094 | Citibank Swiss domestic EFT payee validation.
1095 |
1096 | PARAMETERS:
1097 | IN
1098 |
1099 |
1100 | OUT
1101 |
1102 |
1103 | RETURNS:
1104 |
1105 | NOTES:
1106 |
1107 *---------------------------------------------------------------------*/
1108 PROCEDURE CITI_CH_EFT_DOM_PAYEE(
1109 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
1110 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
1111 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
1112 p_is_online_val IN VARCHAR2,
1113 x_result OUT NOCOPY NUMBER)
1114 IS
1115
1116 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
1117 l_valResult BOOLEAN;
1118 l_valid NUMBER := 0;
1119 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
1120 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
1121
1122 BEGIN
1123
1124 -- Initializing the document record
1125 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
1126
1127 l_docErrorRec.validation_set_code := p_validation_set_code;
1128 l_docErrorRec.transaction_id := p_document_id;
1129 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
1130 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
1131 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
1132 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
1133
1134 if l_document_rec.delivery_channel_code = '1000' then
1135
1136 -- Validate target name
1137 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1138 'PAYEE_PARTY_NAME',
1139 l_document_rec.payee_party_name,
1140 'MAXLENGTH',
1141 null,
1142 20,
1143 l_valResult,
1144 l_docErrorRec);
1145
1146 IF (l_valResult = FALSE) THEN
1147 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1148 l_valid := 1;
1149 END IF;
1150
1151 -- Validate target address
1152 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1153 'PAYEE_PARTY_SITE_ADDR1',
1154 l_document_rec.payee_party_addr1,
1155 'NOTNULL',
1156 null,
1157 null,
1158 l_valResult,
1159 l_docErrorRec);
1160
1161 IF (l_valResult = FALSE) THEN
1162 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1163 l_valid := 1;
1164 END IF;
1165
1166 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1167 'PAYEE_PARTY_SITE_ADDR1',
1168 l_document_rec.payee_party_addr1,
1169 'MAXLENGTH',
1170 null,
1171 20,
1172 l_valResult,
1173 l_docErrorRec);
1174
1175 IF (l_valResult = FALSE) THEN
1176 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1177 l_valid := 1;
1178 END IF;
1179
1180 -- Validate target bank account number
1181 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1182 'EXT_BANK_ACC_NUM',
1183 l_document_rec.ext_bank_acc_num,
1184 'DIGITSONLY',
1185 null,
1186 null,
1187 l_valResult,
1188 l_docErrorRec);
1189
1190 IF (l_valResult = FALSE) THEN
1191 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1192 l_valid := 1;
1193 END IF;
1194
1195 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1196 'EXT_BANK_ACC_NUM',
1197 l_document_rec.ext_bank_acc_num,
1198 'EXACTLENGTH',
1199 null,
1200 9,
1201 l_valResult,
1202 l_docErrorRec);
1203
1204 IF (l_valResult = FALSE) THEN
1205 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1206 l_valid := 1;
1207 END IF;
1208
1209 elsif l_document_rec.delivery_channel_code in ('0100', '0000') then
1210
1211 -- Validate target name
1212 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1213 'PAYEE_PARTY_NAME',
1214 l_document_rec.payee_party_name,
1215 'MAXLENGTH',
1216 null,
1217 24,
1218 l_valResult,
1219 l_docErrorRec);
1220
1221 IF (l_valResult = FALSE) THEN
1222 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1223 l_valid := 1;
1224 END IF;
1225
1226 -- Validate target address
1227 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1228 'PAYEE_PARTY_SITE_ADDR1',
1229 l_document_rec.payee_party_addr1,
1230 'NOTNULL',
1231 null,
1232 null,
1233 l_valResult,
1234 l_docErrorRec);
1235
1236 IF (l_valResult = FALSE) THEN
1237 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1238 l_valid := 1;
1239 END IF;
1240
1241 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1242 'PAYEE_PARTY_SITE_ADDR1',
1243 l_document_rec.payee_party_addr1,
1244 'MAXLENGTH',
1245 null,
1246 24,
1247 l_valResult,
1248 l_docErrorRec);
1249
1250 IF (l_valResult = FALSE) THEN
1251 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1252 l_valid := 1;
1253 END IF;
1254
1255 -- Validate target bank address
1256 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1257 'EXT_BANK_BRANCH_ADDR1',
1258 l_document_rec.ext_bank_branch_addr1,
1259 'NOTNULL',
1260 null,
1261 null,
1262 l_valResult,
1263 l_docErrorRec);
1264
1265 IF (l_valResult = FALSE) THEN
1266 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(
1267 l_docErrorRec, l_docErrorTab);
1268 l_valid := 1;
1269 END IF;
1270
1271 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1272 'EXT_BANK_BRANCH_ADDR1',
1273 l_document_rec.ext_bank_branch_addr1,
1274 'MAXLENGTH',
1275 null,
1276 24,
1277 l_valResult,
1278 l_docErrorRec);
1279
1280 IF (l_valResult = FALSE) THEN
1281 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1282 l_valid := 1;
1283 END IF;
1284
1285 -- Validate target bank code
1286 if (length(l_document_rec.ext_bank_branch_num) in (3, 4, 5) or
1287 (length(l_document_rec.ext_bank_branch_num) = 9 and
1288 substr(l_document_rec.ext_bank_branch_num,1,2) = '07') ) then
1289 null;
1290 else
1291 -- this is a dummy validation for generating the error message.
1292 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1293 'EXT_BANK_BRANCH_NUM',
1294 l_document_rec.ext_bank_branch_num,
1295 'MAXLENGTH',
1296 null,
1297 -1,
1298 l_valResult,
1299 l_docErrorRec);
1300
1301 IF (l_valResult = FALSE) THEN
1302 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1303 l_valid := 1;
1304 END IF;
1305 end if;
1306
1307 -- Validate target bank account number
1308 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1309 'EXT_BANK_ACC_NUM',
1310 l_document_rec.ext_bank_acc_num,
1311 'MAXLENGTH',
1312 null,
1313 27,
1314 l_valResult,
1315 l_docErrorRec);
1316
1317 IF (l_valResult = FALSE) THEN
1318 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1319 l_valid := 1;
1320 END IF;
1321 else
1322 null;
1323 end if;
1324
1325 -- Insert errors into IBY_TRANSACTION_ERRORS
1326 IF (l_valid = 1) THEN
1327 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
1328 END IF;
1329
1330 -- Return the validation result
1331 x_result := l_valid;
1332
1333 END CITI_CH_EFT_DOM_PAYEE;
1334
1335 /*--------------------------------------------------------------------
1336 | NAME:
1337 | CITI_CH_EFT_DOM_DOC
1338 |
1339 | PURPOSE:
1340 | Citibank Swiss domestic EFT document validation.
1341 |
1342 | PARAMETERS:
1343 | IN
1344 |
1345 |
1346 | OUT
1347 |
1348 |
1349 | RETURNS:
1350 |
1351 | NOTES:
1352 |
1353 *---------------------------------------------------------------------*/
1354 PROCEDURE CITI_CH_EFT_DOM_DOC (
1355 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
1356 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
1357 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
1358 p_is_online_val IN VARCHAR2,
1359 x_result OUT NOCOPY NUMBER)
1360 IS
1361
1362 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
1363 l_valResult BOOLEAN;
1364 l_valid NUMBER := 0;
1365 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
1366 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
1367
1368 BEGIN
1369
1370 -- Initializing the document record
1371 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
1372
1373 l_docErrorRec.validation_set_code := p_validation_set_code;
1374 l_docErrorRec.transaction_id := p_document_id;
1375 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
1376 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
1377 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
1378 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
1379
1380 -- Validate transaction code
1381 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1382 'DELIVERY_CHANNEL_CODE',
1383 l_document_rec.delivery_channel_code,
1384 'INDELIV',
1385 'CH',
1386 null,
1387 l_valResult,
1388 l_docErrorRec);
1389
1390 IF (l_valResult = FALSE) THEN
1391 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1392 l_valid := 1;
1393 END IF;
1394
1395 -- Validate ESR reference number
1396 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1397 'UNIQUE_REMIT_ID_CODE',
1398 l_document_rec.unique_remit_id_code,
1399 'VALID_CH_ESR',
1400 null,
1401 null,
1402 l_valResult,
1403 l_docErrorRec);
1404
1405 IF (l_valResult = FALSE) THEN
1406 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1407 l_valid := 1;
1408 END IF;
1409
1410 -- Inserting errors into IBY_TRANSACTION_ERRORS
1411 IF (l_valid = 1) THEN
1412 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
1413 END IF;
1414
1415 -- Return the Validation Result
1416 x_result := l_valid;
1417
1418 END CITI_CH_EFT_DOM_DOC;
1419
1420 /*--------------------------------------------------------------------
1421 | NAME:
1422 | P_CITI_CH_EFT_DOM_PMT
1423 |
1424 | PURPOSE:
1425 | Citibank Swiss domestic EFT payment validation.
1426 |
1427 | PARAMETERS:
1428 | IN
1429 |
1430 |
1431 | OUT
1432 |
1433 |
1434 | RETURNS:
1435 |
1436 | NOTES:
1437 |
1438 *---------------------------------------------------------------------*/
1439 PROCEDURE P_CITI_CH_EFT_DOM_PMT (
1440 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
1441 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
1442 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
1443 p_is_online_val IN VARCHAR2,
1444 x_result OUT NOCOPY NUMBER)
1445 IS
1446
1447 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
1448 l_valResult BOOLEAN;
1449 l_valid NUMBER := 0;
1450 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
1451 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
1452
1453 BEGIN
1454
1455 -- Initializing the payment record
1456 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
1457
1458 l_docErrorRec.validation_set_code := p_validation_set_code;
1459 l_docErrorRec.transaction_id := p_payment_id;
1460 l_docErrorRec.transaction_type := 'PAYMENT';
1461 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
1462
1463 -- Validate transaction reference
1464 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1465 'PMT_ID',
1466 l_payment_rec.pmt_id,
1467 'MAXLENGTH',
1468 null,
1469 11,
1470 l_valResult,
1471 l_docErrorRec);
1472
1473 IF (l_valResult = FALSE) THEN
1474 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1475 l_valid := 1;
1476 END IF;
1477
1478 -- Inserting errors into IBY_TRANSACTION_ERRORS
1479 -- The first parameter p_is_online_val takes hardcoded value 'N'.
1480 IF (l_valid = 1) THEN
1481 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
1482 END IF;
1483
1484 -- Return the Validation Result
1485 x_result := l_valid;
1486
1487 END P_CITI_CH_EFT_DOM_PMT;
1488
1489 /*--------------------------------------------------------------------
1490 | NAME:
1491 | CH_EFT_GEN_PAYEE
1492 |
1493 | PURPOSE:
1494 | Swiss EFT general payee validation.
1495 |
1496 | PARAMETERS:
1497 | IN
1498 |
1499 |
1500 | OUT
1501 |
1502 |
1503 | RETURNS:
1504 |
1505 | NOTES:
1506 |
1507 *---------------------------------------------------------------------*/
1508 PROCEDURE CH_EFT_GEN_PAYEE (
1509 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
1510 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
1511 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
1512 p_is_online_val IN VARCHAR2,
1513 x_result OUT NOCOPY NUMBER)
1514 IS
1515
1516 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
1517 l_valResult BOOLEAN;
1518 l_valid NUMBER := 0;
1519 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
1520 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
1521
1522 BEGIN
1523
1524 -- Initializing the payment record
1525 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
1526
1527 l_docErrorRec.validation_set_code := p_validation_set_code;
1528 l_docErrorRec.transaction_id := p_document_id;
1529 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
1530 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
1531 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
1532 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
1533
1534 -- Validate bank account type (delivery channel)
1535 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1536 'DELIVERY_CHANNEL_CODE',
1537 l_document_rec.delivery_channel_code,
1538 'INDELIV',
1539 'CH',
1540 null,
1541 l_valResult,
1542 l_docErrorRec);
1543
1544 IF (l_valResult = FALSE) THEN
1545 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1546 l_valid := 1;
1547 END IF;
1548
1549 -- Validate bank account number
1550 /*
1551 Bug 6269371: Corrected delivery channel codes as seeded in
1552 IBY_DELIVERY_CHANNELS_B table.
1553 */
1554 if l_document_rec.delivery_channel_code in ('CH_BANK', 'CH_DTACHECK') then
1555 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1556 'EXT_BANK_ACC_NUM',
1557 l_document_rec.ext_bank_acc_num,
1558 'NOTNULL',
1559 null,
1560 null,
1561 l_valResult,
1562 l_docErrorRec);
1563
1564 IF (l_valResult = FALSE) THEN
1565 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1566 l_valid := 1;
1567 END IF;
1568 end if;
1569
1570 -- Validate supplier name and address
1571 -- Note coded. This will be handled in a separate validation set for char set.
1572
1573 -- Insert errors into IBY_TRANSACTION_ERRORS
1574 IF (l_valid = 1) THEN
1575 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
1576 END IF;
1577
1578 -- Return the validation result
1579 x_result := l_valid;
1580
1581 END CH_EFT_GEN_PAYEE;
1582
1583 /*--------------------------------------------------------------------
1584 | NAME:
1585 | CH_EFT_GEN_DOC
1586 |
1587 | PURPOSE:
1588 | Swiss EFT general document validation.
1589 |
1590 | PARAMETERS:
1591 | IN
1592 |
1593 |
1594 | OUT
1595 |
1596 |
1597 | RETURNS:
1598 |
1599 | NOTES:
1600 |
1601 *---------------------------------------------------------------------*/
1602 PROCEDURE CH_EFT_GEN_DOC (
1603 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
1604 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
1605 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
1606 p_is_online_val IN VARCHAR2,
1607 x_result OUT NOCOPY NUMBER)
1608 IS
1609
1610 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
1611 l_valResult BOOLEAN;
1612 l_valid NUMBER := 0;
1613 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
1614 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
1615
1616 BEGIN
1617
1618 -- Initializing the payment record
1619 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
1620
1621 l_docErrorRec.validation_set_code := p_validation_set_code;
1622 l_docErrorRec.transaction_id := p_document_id;
1623 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
1624 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
1625 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
1626 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
1627
1628 if l_document_rec.delivery_channel_code = 'CH_ESR' then -- Bug 6269371
1629
1630 -- Validate ESR exclusive payment flag
1631 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1632 'EXCLUSIVE_PAYMENT_FLAG',
1633 l_document_rec.exclusive_payment_flag,
1634 'STRIS',
1635 'Y',
1636 null,
1637 l_valResult,
1638 l_docErrorRec);
1639
1640 IF (l_valResult = FALSE) THEN
1641 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1642 l_valid := 1;
1643 END IF;
1644
1645 -- Validate ESR number: case 1 ESR number is null
1646 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1647 'UNIQUE_REMIT_ID_CODE',
1648 l_document_rec.unique_remit_id_code,
1649 'NOTNULL',
1650 null,
1651 null,
1652 l_valResult,
1653 l_docErrorRec);
1654
1655 IF (l_valResult = FALSE) THEN
1656 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1657 l_valid := 1;
1658 END IF;
1659
1660 -- Validate ESR number: case 2 ESR number length is 15, 16 or 27
1661 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1662 'UNIQUE_REMIT_ID_CODE',
1663 '+'||length(l_document_rec.unique_remit_id_code)||'+',
1664 'INSET',
1665 '+15+16+27+',
1666 null,
1667 l_valResult,
1668 l_docErrorRec);
1669
1670 IF (l_valResult = FALSE) THEN
1671 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1672 l_valid := 1;
1673 END IF;
1674
1675 -- Validate ESR number: case 3
1676 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1677 'UNIQUE_REMIT_ID_CODE',
1678 l_document_rec.unique_remit_id_code,
1679 'DIGITSONLY',
1680 null,
1681 null,
1682 l_valResult,
1683 l_docErrorRec);
1684
1685 IF (l_valResult = FALSE) THEN
1686 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1687 l_valid := 1;
1688 ELSE
1689 if length(l_document_rec.unique_remit_id_code) <> 15 then
1690 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1691 'UNIQUE_REMIT_ID_CODE',
1692 l_document_rec.unique_remit_id_code,
1693 'VALID_CH_ESR',
1694 null,
1695 null,
1696 l_valResult,
1697 l_docErrorRec);
1698
1699 IF (l_valResult = FALSE) THEN
1700 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1701 l_valid := 1;
1702 END IF;
1703
1704 end if;
1705 END IF;
1706
1707 -- Validate invoice amount
1708 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1709 'DOCUMENT_AMOUNT',
1710 l_document_rec.document_amount,
1711 'GRTEQUAL',
1712 null,
1713 0,
1714 l_valResult,
1715 l_docErrorRec);
1716
1717 IF (l_valResult = FALSE) THEN
1718 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1719 l_valid := 1;
1720 END IF;
1721
1722 elsif l_document_rec.delivery_channel_code = 'CH_BANK' then -- Bug 6269371
1723
1724 -- Validate payment currency
1725 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1726 'DOCUMENT_PAY_CURRENCY',
1727 l_document_rec.document_pay_currency,
1728 'STRIS',
1729 'CHF',
1730 null,
1731 l_valResult,
1732 l_docErrorRec);
1733
1734 IF (l_valResult = FALSE) THEN
1735 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1736 l_valid := 1;
1737 END IF;
1738
1739 else
1740 null;
1741 end if;
1742
1743 -- Validate ESR number for non-ESR payments
1744 if l_document_rec.delivery_channel_code <> 'CH_ESR' then -- Bug 6269371
1745 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1746 'UNIQUE_REMIT_ID_CODE',
1747 trim(l_document_rec.unique_remit_id_code),
1748 'ISNULL',
1749 null,
1750 null,
1751 l_valResult,
1752 l_docErrorRec);
1753
1754 IF (l_valResult = FALSE) THEN
1755 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1756 l_valid := 1;
1757 END IF;
1758 end if;
1759
1760 -- Validate invoice number
1761 -- Not coded. To be handled in a separate validation set for char set.
1762
1763 -- Validate bank account type for SAD payments
1764 -- Ignore: SAD format is obsolete.
1765
1766 -- Insert errors into IBY_TRANSACTION_ERRORS
1767 IF (l_valid = 1) THEN
1768 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
1769 END IF;
1770
1771 -- Return the validation result
1772 x_result := l_valid;
1773
1774 END CH_EFT_GEN_DOC;
1775
1776 /*--------------------------------------------------------------------
1777 | NAME:
1778 | CITI_DE_EFT_DOM_PAYEE
1779 |
1780 | PURPOSE:
1781 | Citibank German domestic EFT payee validation
1782 |
1783 | PARAMETERS:
1784 | IN
1785 |
1786 |
1787 | OUT
1788 |
1789 |
1790 | RETURNS:
1791 |
1792 | NOTES:
1793 |
1794 *---------------------------------------------------------------------*/
1795 PROCEDURE CITI_DE_EFT_DOM_PAYEE (
1796 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
1797 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
1798 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
1799 p_is_online_val IN VARCHAR2,
1800 x_result OUT NOCOPY NUMBER)
1801 IS
1802
1803 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
1804 l_valResult BOOLEAN;
1805 l_valid NUMBER := 0;
1806 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
1807 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
1808
1809 BEGIN
1810
1811 -- Initializing the document record
1812 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
1813
1814 l_docErrorRec.validation_set_code := p_validation_set_code;
1815 l_docErrorRec.transaction_id := p_document_id;
1816 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
1817 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
1818 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
1819 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
1820
1821 -- Validate target name
1822 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1823 'PAYEE_PARTY_NAME',
1824 l_document_rec.payee_party_name,
1825 'MAXLENGTH',
1826 null,
1827 27,
1828 l_valResult,
1829 l_docErrorRec);
1830
1831 IF (l_valResult = FALSE) THEN
1832 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1833 l_valid := 1;
1834 END IF;
1835
1836 -- Validate target bank account number
1837 -- by CE
1838
1839 -- Validate target bank country code
1840 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1841 'EXT_BANK_BRANCH_COUNTRY',
1842 l_document_rec.ext_bank_branch_country,
1843 'STRIS',
1844 'DE',
1845 null,
1846 l_valResult,
1847 l_docErrorRec);
1848
1849 IF (l_valResult = FALSE) THEN
1850 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1851 l_valid := 1;
1852 END IF;
1853
1854 -- Validate target bank code
1855 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1856 'EXT_BANK_BRANCH_NUM',
1857 l_document_rec.ext_bank_branch_num,
1858 'MAXLENGTH',
1859 null,
1860 8,
1861 l_valResult,
1862 l_docErrorRec);
1863
1864 IF (l_valResult = FALSE) THEN
1865 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1866 l_valid := 1;
1867 END IF;
1868
1869 -- Inserting errors into IBY_TRANSACTION_ERRORS
1870 IF (l_valid = 1) THEN
1871 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
1872 END IF;
1873
1874 -- Return the Validation Result
1875 x_result := l_valid;
1876
1877 END CITI_DE_EFT_DOM_PAYEE;
1878
1879 /*--------------------------------------------------------------------
1880 | NAME:
1881 | CITI_DE_EFT_DOM_DOC
1882 |
1883 | PURPOSE:
1884 | Citibank German domestic EFT document validation
1885 |
1886 | PARAMETERS:
1887 | IN
1888 |
1889 |
1890 | OUT
1891 |
1892 |
1893 | RETURNS:
1894 |
1895 | NOTES:
1896 |
1897 *---------------------------------------------------------------------*/
1898 PROCEDURE CITI_DE_EFT_DOM_DOC (
1899 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
1900 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
1901 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
1902 p_is_online_val IN VARCHAR2,
1903 x_result OUT NOCOPY NUMBER)
1904 IS
1905
1906 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
1907 l_valResult BOOLEAN;
1908 l_valid NUMBER := 0;
1909 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
1910 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
1911
1912 BEGIN
1913
1914 -- Initializing the document record
1915 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
1916
1917 l_docErrorRec.validation_set_code := p_validation_set_code;
1918 l_docErrorRec.transaction_id := p_document_id;
1919 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
1920 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
1921 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
1922 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
1923
1924 -- Validate transaction code
1925 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1926 'DELIVERY_CHANNEL_CODE',
1927 l_document_rec.delivery_channel_code,
1928 'INDELIV',
1929 'DE',
1930 null,
1931 l_valResult,
1932 l_docErrorRec);
1933
1934 IF (l_valResult = FALSE) THEN
1935 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
1936 l_valid := 1;
1937 END IF;
1938
1939 -- Inserting errors into IBY_TRANSACTION_ERRORS
1940 IF (l_valid = 1) THEN
1941 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
1942 END IF;
1943
1944 -- Return the Validation Result
1945 x_result := l_valid;
1946
1947 END CITI_DE_EFT_DOM_DOC;
1948
1949 /*--------------------------------------------------------------------
1950 | NAME:
1951 | DE_EFT_DOM_INTERNAL_BANK
1952 |
1953 | PURPOSE:
1954 | German domestic EFT internal bank validation
1955 |
1956 | PARAMETERS:
1957 | IN
1958 |
1959 |
1960 | OUT
1961 |
1962 |
1963 | RETURNS:
1964 |
1965 | NOTES:
1966 |
1967 *---------------------------------------------------------------------*/
1968 PROCEDURE DE_EFT_DOM_INTERNAL_BANK (
1969 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
1970 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
1971 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
1972 p_is_online_val IN VARCHAR2,
1973 x_result OUT NOCOPY NUMBER)
1974 IS
1975
1976 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
1977 l_valResult BOOLEAN;
1978 l_valid NUMBER := 0;
1979 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
1980 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
1981
1982 BEGIN
1983
1984 -- Initializing the document record
1985 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
1986
1987 l_docErrorRec.validation_set_code := p_validation_set_code;
1988 l_docErrorRec.transaction_id := p_document_id;
1989 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
1990 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
1991 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
1992 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
1993
1994 -- Validate user EFT number
1995 IBY_VALIDATIONSETS_PUB.evaluateCondition(
1996 'INT_EFT_USER_NUMBER',
1997 l_document_rec.int_eft_user_number,
1998 'EXACTLENGTH',
1999 10,
2000 null,
2001 l_valResult,
2002 l_docErrorRec);
2003
2004 IF (l_valResult = FALSE) THEN
2005 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2006 l_valid := 1;
2007 END IF;
2008
2009 -- Validate user bank account number
2010 -- by CE
2011
2012 -- Validate user bank BLZ
2013 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2014 'INT_BANK_BRANCH_NUM',
2015 l_document_rec.int_bank_branch_num,
2016 'EXACTLENGTH',
2017 8,
2018 null,
2019 l_valResult,
2020 l_docErrorRec);
2021
2022 IF (l_valResult = FALSE) THEN
2023 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2024 l_valid := 1;
2025 END IF;
2026
2027 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2028 'INT_BANK_BRANCH_NUM',
2029 '+'||substr(l_document_rec.int_bank_branch_num, 1, 1)||'+',
2030 'NOTINSET',
2031 '+0+9+',
2032 null,
2033 l_valResult,
2034 l_docErrorRec);
2035
2036 IF (l_valResult = FALSE) THEN
2037 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2038 l_valid := 1;
2039 END IF;
2040
2041 -- Inserting errors into IBY_TRANSACTION_ERRORS
2042 IF (l_valid = 1) THEN
2043 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
2044 END IF;
2045
2046 -- Return the Validation Result
2047 x_result := l_valid;
2048
2049 END DE_EFT_DOM_INTERNAL_BANK;
2050
2051 /*--------------------------------------------------------------------
2052 | NAME:
2053 | DE_EFT_DOM_PAYER
2054 |
2055 | PURPOSE:
2056 | German domestic EFT payer validation
2057 |
2058 | PARAMETERS:
2059 | IN
2060 |
2061 |
2062 | OUT
2063 |
2064 |
2065 | RETURNS:
2066 |
2067 | NOTES:
2068 |
2069 *---------------------------------------------------------------------*/
2070 PROCEDURE DE_EFT_DOM_PAYER (
2071 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2072 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2073 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
2074 p_is_online_val IN VARCHAR2,
2075 x_result OUT NOCOPY NUMBER)
2076 IS
2077
2078 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
2079 l_valResult BOOLEAN;
2080 l_valid NUMBER := 0;
2081 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2082 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2083
2084 BEGIN
2085
2086 -- Initializing the document record
2087 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
2088
2089 l_docErrorRec.validation_set_code := p_validation_set_code;
2090 l_docErrorRec.transaction_id := p_document_id;
2091 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
2092 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
2093 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
2094 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
2095
2096 -- Validate location description for organization ID
2097 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2098 'PAYER_LE_NANE',
2099 l_document_rec.payer_le_name,
2100 'NOTNULL',
2101 null,
2102 null,
2103 l_valResult,
2104 l_docErrorRec);
2105
2106 IF (l_valResult = FALSE) THEN
2107 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2108 l_valid := 1;
2109 END IF;
2110
2111 -- Inserting errors into IBY_TRANSACTION_ERRORS
2112 IF (l_valid = 1) THEN
2113 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
2114 END IF;
2115
2116 -- Return the Validation Result
2117 x_result := l_valid;
2118
2119 END DE_EFT_DOM_PAYER;
2120
2121 /*--------------------------------------------------------------------
2122 | NAME:
2123 | DE_EFT_DOM_PAYEE
2124 |
2125 | PURPOSE:
2126 | German domestic EFT payee validation
2127 |
2128 | PARAMETERS:
2129 | IN
2130 |
2131 |
2132 | OUT
2133 |
2134 |
2135 | RETURNS:
2136 |
2137 | NOTES:
2138 |
2139 *---------------------------------------------------------------------*/
2140 PROCEDURE DE_EFT_DOM_PAYEE (
2141 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2142 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2143 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
2144 p_is_online_val IN VARCHAR2,
2145 x_result OUT NOCOPY NUMBER)
2146 IS
2147
2148 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
2149 l_valResult BOOLEAN;
2150 l_valid NUMBER := 0;
2151 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2152 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2153
2154 BEGIN
2155
2156 -- Initializing the document record
2157 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
2158
2159 l_docErrorRec.validation_set_code := p_validation_set_code;
2160 l_docErrorRec.transaction_id := p_document_id;
2161 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
2162 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
2163 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
2164 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
2165
2166 -- Validate customer/supplier bank name
2167 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2168 'EXT_BANK_ACC_NAME',
2169 l_document_rec.ext_bank_acc_name,
2170 'NOTNULL',
2171 null,
2172 null,
2173 l_valResult,
2174 l_docErrorRec);
2175
2176 IF (l_valResult = FALSE) THEN
2177 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2178 l_valid := 1;
2179 END IF;
2180
2181 -- Validate customer/supplier bank account number
2182 -- by CE
2183
2184 -- Validate customer/supplier bank BLZ
2185 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2186 'EXT_BANK_BRANCH_NUM',
2187 l_document_rec.ext_bank_branch_num,
2188 'EXACTLENGTH',
2189 8,
2190 null,
2191 l_valResult,
2192 l_docErrorRec);
2193
2194 IF (l_valResult = FALSE) THEN
2195 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2196 l_valid := 1;
2197 END IF;
2198
2199 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2200 'EXT_BANK_BRANCH_NUM',
2201 '+'||substr(l_document_rec.ext_bank_branch_num, 1, 1)||'+',
2202 'NOTINSET',
2203 '+0+9+',
2204 null,
2205 l_valResult,
2206 l_docErrorRec);
2207
2208 IF (l_valResult = FALSE) THEN
2209 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2210 l_valid := 1;
2211 END IF;
2212
2213 -- Inserting errors into IBY_TRANSACTION_ERRORS
2214 IF (l_valid = 1) THEN
2215 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
2216 END IF;
2217
2218 -- Return the Validation Result
2219 x_result := l_valid;
2220
2221 END DE_EFT_DOM_PAYEE;
2222
2223 /*--------------------------------------------------------------------
2224 | NAME:
2225 | P_DE_EFT_DOM_PMT
2226 |
2227 | PURPOSE:
2228 | German domestic EFT payment validation
2229 |
2230 | PARAMETERS:
2231 | IN
2232 |
2233 |
2234 | OUT
2235 |
2236 |
2237 | RETURNS:
2238 |
2239 | NOTES:
2240 |
2241 *---------------------------------------------------------------------*/
2242 PROCEDURE P_DE_EFT_DOM_PMT (
2243 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2244 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2245 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
2246 p_is_online_val IN VARCHAR2,
2247 x_result OUT NOCOPY NUMBER)
2248 IS
2249
2250 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
2251 l_valResult BOOLEAN;
2252 l_valid NUMBER := 0;
2253 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2254 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2255
2256 BEGIN
2257
2258 -- Initializing the payment record
2259 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
2260
2261 l_docErrorRec.validation_set_code := p_validation_set_code;
2262 l_docErrorRec.transaction_id := p_payment_id;
2263 l_docErrorRec.transaction_type := 'PAYMENT';
2264 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
2265
2266 -- Validate payment amount
2267 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2268 'PMT_AMOUNT',
2269 l_payment_rec.pmt_amount,
2270 'NOTEQUALTO',
2271 null,
2272 0,
2273 l_valResult,
2274 l_docErrorRec);
2275
2276 IF (l_valResult = FALSE) THEN
2277 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2278 l_valid := 1;
2279 END IF;
2280
2281 -- Inserting errors into IBY_TRANSACTION_ERRORS
2282 IF (l_valid = 1) THEN
2283 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
2284 END IF;
2285
2286 -- Return the Validation Result
2287 x_result := l_valid;
2288
2289 END P_DE_EFT_DOM_PMT;
2290
2291 /*--------------------------------------------------------------------
2292 | NAME:
2293 | DE_EFT_INT_INTERNAL_BANK
2294 |
2295 | PURPOSE:
2296 | German international EFT internal bank validation
2297 |
2298 | PARAMETERS:
2299 | IN
2300 |
2301 |
2302 | OUT
2303 |
2304 |
2305 | RETURNS:
2306 |
2307 | NOTES:
2308 |
2309 *---------------------------------------------------------------------*/
2310 PROCEDURE DE_EFT_INT_INTERNAL_BANK (
2311 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2312 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2313 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
2314 p_is_online_val IN VARCHAR2,
2315 x_result OUT NOCOPY NUMBER)
2316 IS
2317
2318 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
2319 l_valResult BOOLEAN;
2320 l_valid NUMBER := 0;
2321 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2322 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2323
2324 BEGIN
2325
2326 -- Initializing the document record
2327 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
2328
2329 l_docErrorRec.validation_set_code := p_validation_set_code;
2330 l_docErrorRec.transaction_id := p_document_id;
2331 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
2332 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
2333 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
2334 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
2335
2336 -- Validate user EFT number
2337 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2338 'INT_EFT_USER_NUMBER',
2339 l_document_rec.int_eft_user_number,
2340 'EXACTLENGTH',
2341 null,
2342 10,
2343 l_valResult,
2344 l_docErrorRec);
2345
2346 IF (l_valResult = FALSE) THEN
2347 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2348 l_valid := 1;
2349 END IF;
2350
2351 -- Validate user bank account number
2352 -- by CE
2353
2354 -- Validate user bank BLZ
2355 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2356 'INT_BANK_BRANCH_NUM',
2357 l_document_rec.int_bank_branch_num,
2358 'NOTNULL',
2359 null,
2360 null,
2361 l_valResult,
2362 l_docErrorRec);
2363
2364 IF (l_valResult = FALSE) THEN
2365 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2366 l_valid := 1;
2367 END IF;
2368
2369 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2370 'INT_BANK_BRANCH_NUM',
2371 '+'||substr(l_document_rec.int_bank_branch_num, 1, 1)||'+',
2372 'NOTINSET',
2373 '+0+9+',
2374 null,
2375 l_valResult,
2376 l_docErrorRec);
2377
2378 IF (l_valResult = FALSE) THEN
2379 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2380 l_valid := 1;
2381 END IF;
2382
2383 -- Inserting errors into IBY_TRANSACTION_ERRORS
2384 IF (l_valid = 1) THEN
2385 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
2386 END IF;
2387
2388 -- Return the Validation Result
2389 x_result := l_valid;
2390
2391 END DE_EFT_INT_INTERNAL_BANK;
2392
2393 /*--------------------------------------------------------------------
2394 | NAME:
2395 | DE_EFT_INT_PAYEE
2396 |
2397 | PURPOSE:
2398 | German international EFT payee validation
2399 |
2400 | PARAMETERS:
2401 | IN
2402 |
2403 |
2404 | OUT
2405 |
2406 |
2407 | RETURNS:
2408 |
2409 | NOTES:
2410 |
2411 *---------------------------------------------------------------------*/
2412 PROCEDURE DE_EFT_INT_PAYEE (
2413 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2414 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2415 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
2416 p_is_online_val IN VARCHAR2,
2417 x_result OUT NOCOPY NUMBER)
2418 IS
2419
2420 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
2421 l_valResult BOOLEAN;
2422 l_valid NUMBER := 0;
2423 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2424 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2425
2426 BEGIN
2427
2428 -- Initializing the document record
2429 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
2430
2431 l_docErrorRec.validation_set_code := p_validation_set_code;
2432 l_docErrorRec.transaction_id := p_document_id;
2433 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
2434 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
2435 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
2436 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
2437
2438 -- Validate customer/supplier bank name
2439 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2440 'EXT_BANK_ACC_NAME',
2441 l_document_rec.ext_bank_acc_name,
2442 'NOTNULL',
2443 null,
2444 null,
2445 l_valResult,
2446 l_docErrorRec);
2447
2448 IF (l_valResult = FALSE) THEN
2449 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2450 l_valid := 1;
2451 END IF;
2452
2453 -- Validate customer/supplier bank account number
2454 -- by CE
2455
2456 -- Validate document country
2457 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2458 'PAYEE_PARTY_SITE_COUNTRY',
2459 l_document_rec.payee_party_country,
2460 'STRISNOT',
2461 l_document_rec.payer_le_country,
2462 null,
2463 l_valResult,
2464 l_docErrorRec);
2465
2466 IF (l_valResult = FALSE) THEN
2467 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2468 l_valid := 1;
2469 END IF;
2470
2471 -- Inserting errors into IBY_TRANSACTION_ERRORS
2472 IF (l_valid = 1) THEN
2473 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
2474 END IF;
2475
2476 -- Return the Validation Result
2477 x_result := l_valid;
2478
2479 END DE_EFT_INT_PAYEE;
2480
2481 /*--------------------------------------------------------------------
2482 | NAME:
2483 | DE_EFT_INT_PAYER
2484 |
2485 | PURPOSE:
2486 | German international EFT payer validation
2487 |
2488 | PARAMETERS:
2489 | IN
2490 |
2491 |
2492 | OUT
2493 |
2494 |
2495 | RETURNS:
2496 |
2497 | NOTES:
2498 |
2499 *---------------------------------------------------------------------*/
2500 PROCEDURE DE_EFT_INT_PAYER (
2501 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2502 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2503 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
2504 p_is_online_val IN VARCHAR2,
2505 x_result OUT NOCOPY NUMBER)
2506 IS
2507
2508 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
2509 l_valResult BOOLEAN;
2510 l_valid NUMBER := 0;
2511 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2512 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2513
2514 BEGIN
2515
2516 -- Initializing the document record
2517 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
2518
2519 l_docErrorRec.validation_set_code := p_validation_set_code;
2520 l_docErrorRec.transaction_id := p_document_id;
2521 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
2522 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
2523 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
2524 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
2525
2526 /*-------------------------------------------------------------*/
2527
2528 /*
2529 * Fix for bug 5439146:
2530 *
2531 * Germany EFT company number and LZB area validations
2532 * fall under the category of payment system specific
2533 * validations.
2534 *
2535 * Currently, the area of payment system specific
2536 * validations is under re-design. This is because
2537 * each payment system can be linked to a variable number
2538 * of validations, so a general approachs needs to
2539 * be defined on how these validations should be
2540 * implemented and how a meaningful error message
2541 * can be returned to the user.
2542 *
2543 * Until then comment out these validations.
2544 */
2545
2546 /*
2547 -- Validate EFT company number
2548 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2549 'INT_BANK_ASSIGNED_ID2',
2550 l_document_rec.int_bank_assigned_id2,
2551 'NOTNULL',
2552 null,
2553 null,
2554 l_valResult,
2555 l_docErrorRec);
2556
2557 IF (l_valResult = FALSE) THEN
2558 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2559 l_valid := 1;
2560 END IF;
2561
2562 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2563 'INT_BANK_ASSIGNED_ID2',
2564 l_document_rec.int_bank_assigned_id2,
2565 'MAXLENGTH',
2566 null,
2567 8,
2568 l_valResult,
2569 l_docErrorRec);
2570
2571 IF (l_valResult = FALSE) THEN
2572 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2573 l_valid := 1;
2574 END IF;
2575
2576 -- Validate EFT LZB area
2577 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2578 'INT_BANK_ASSIGNED_ID1',
2579 l_document_rec.int_bank_assigned_id1,
2580 'NOTNULL',
2581 null,
2582 null,
2583 l_valResult,
2584 l_docErrorRec);
2585
2586 IF (l_valResult = FALSE) THEN
2587 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2588 l_valid := 1;
2589 END IF;
2590
2591 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2592 'INT_BANK_ASSIGNED_ID1',
2593 l_document_rec.int_bank_assigned_id1,
2594 'MAXLENGTH',
2595 null,
2596 2,
2597 l_valResult,
2598 l_docErrorRec);
2599
2600 IF (l_valResult = FALSE) THEN
2601 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2602 l_valid := 1;
2603 END IF;
2604
2605 -- Inserting errors into IBY_TRANSACTION_ERRORS
2606 IF (l_valid = 1) THEN
2607 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
2608 END IF;
2609 */
2610 /*-------------------------------------------------------------*/
2611
2612 -- Return the Validation Result
2613 x_result := l_valid;
2614
2615 END DE_EFT_INT_PAYER;
2616
2617 /*--------------------------------------------------------------------
2618 | NAME:
2619 | P_DE_EFT_INT_PMT
2620 |
2621 | PURPOSE:
2622 | German international EFT payment validation
2623 |
2624 | PARAMETERS:
2625 | IN
2626 |
2627 |
2628 | OUT
2629 |
2630 |
2631 | RETURNS:
2632 |
2633 | NOTES:
2634 |
2635 *---------------------------------------------------------------------*/
2636 PROCEDURE P_DE_EFT_INT_PMT (
2637 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2638 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2639 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
2640 p_is_online_val IN VARCHAR2,
2641 x_result OUT NOCOPY NUMBER)
2642 IS
2643
2644 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
2645 l_valResult BOOLEAN;
2646 l_valid NUMBER := 0;
2647 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2648 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2649
2650 BEGIN
2651
2652 -- Initializing the payment record
2653 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
2654
2655 l_docErrorRec.validation_set_code := p_validation_set_code;
2656 l_docErrorRec.transaction_id := p_payment_id;
2657 l_docErrorRec.transaction_type := 'PAYMENT';
2658 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
2659
2660 -- Validate payment amount
2661 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2662 'PMT_AMOUNT',
2663 l_payment_rec.pmt_amount,
2664 'NOTEQUALTO',
2665 null,
2666 0,
2667 l_valResult,
2668 l_docErrorRec);
2669
2670 IF (l_valResult = FALSE) THEN
2671 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2672 l_valid := 1;
2673 END IF;
2674
2675 -- Validate document country
2676 -- Not coded. The validation has been moved to the document level at payee validation.
2677
2678 -- Inserting errors into IBY_TRANSACTION_ERRORS
2679 -- The first parameter p_is_online_val takes hardcoded value 'N'.
2680 IF (l_valid = 1) THEN
2681 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
2682 END IF;
2683
2684 -- Return the Validation Result
2685 x_result := l_valid;
2686
2687 END P_DE_EFT_INT_PMT;
2688
2689 /*--------------------------------------------------------------------
2690 | NAME:
2691 | DK_EFT_DOM_DOC
2692 |
2693 | PURPOSE:
2694 | Danish domestic EFT document validation
2695 |
2696 | PARAMETERS:
2697 | IN
2698 |
2699 |
2700 | OUT
2701 |
2702 |
2703 | RETURNS:
2704 |
2705 | NOTES:
2706 | Bug 5569624: Added new document level validation set for Denmark
2707 |
2708 *---------------------------------------------------------------------*/
2709 PROCEDURE DK_EFT_DOM_DOC (
2710 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2711 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2712 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
2713 p_is_online_val IN VARCHAR2,
2714 x_result OUT NOCOPY NUMBER)
2715 IS
2716
2717 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
2718 l_valResult BOOLEAN;
2719 l_valid NUMBER := 0;
2720 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2721 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2722
2723 BEGIN
2724
2725 -- Initializing the payment record
2726 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
2727
2728 l_docErrorRec.validation_set_code := p_validation_set_code;
2729 l_docErrorRec.transaction_id := p_document_id;
2730 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
2731 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
2732 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
2733 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
2734
2735 -- Validate transaction code
2736 validate_uri_using_modulus10(
2737 l_document_rec.unique_remit_id_code,
2738 l_valResult,
2739 l_docErrorRec);
2740
2741 IF (l_valResult = FALSE) THEN
2742 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2743 l_valid := 1;
2744 END IF;
2745
2746 -- Inserting errors into IBY_TRANSACTION_ERRORS
2747 IF (l_valid = 1) THEN
2748 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
2749 END IF;
2750
2751 -- Return the Validation Result
2752 x_result := l_valid;
2753
2754 END DK_EFT_DOM_DOC;
2755
2756 /*--------------------------------------------------------------------
2757 | NAME:
2758 | CITI_DK_EFT_DOM_PAYEE
2759 |
2760 | PURPOSE:
2761 | Citibank Danish domestic EFT payee validation
2762 |
2763 | PARAMETERS:
2764 | IN
2765 |
2766 |
2767 | OUT
2768 |
2769 |
2770 | RETURNS:
2771 |
2772 | NOTES:
2773 |
2774 *---------------------------------------------------------------------*/
2775 PROCEDURE CITI_DK_EFT_DOM_PAYEE (
2776 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2777 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2778 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
2779 p_is_online_val IN VARCHAR2,
2780 x_result OUT NOCOPY NUMBER)
2781 IS
2782
2783 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
2784 l_valResult BOOLEAN;
2785 l_valid NUMBER := 0;
2786 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2787 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2788
2789 BEGIN
2790
2791 -- Initializing the payment record
2792 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
2793
2794 l_docErrorRec.validation_set_code := p_validation_set_code;
2795 l_docErrorRec.transaction_id := p_document_id;
2796 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
2797 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
2798 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
2799 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
2800
2801 -- Validate target bank account number
2802 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2803 'EXT_BANK_NUM',
2804 l_document_rec.ext_bank_num,
2805 'EXACTLENGTH',
2806 null,
2807 4,
2808 l_valResult,
2809 l_docErrorRec);
2810
2811 IF (l_valResult = FALSE) THEN
2812 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2813 l_valid := 1;
2814 END IF;
2815
2816 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2817 'EXT_BANK_ACC_NUM',
2818 l_document_rec.ext_bank_acc_num,
2819 'MAXLENGTH',
2820 null,
2821 10,
2822 l_valResult,
2823 l_docErrorRec);
2824
2825 IF (l_valResult = FALSE) THEN
2826 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2827 l_valid := 1;
2828 END IF;
2829
2830 -- Inserting errors into IBY_TRANSACTION_ERRORS
2831 IF (l_valid = 1) THEN
2832 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
2833 END IF;
2834
2835 -- Return the Validation Result
2836 x_result := l_valid;
2837
2838 END CITI_DK_EFT_DOM_PAYEE;
2839
2840 /*--------------------------------------------------------------------
2841 | NAME:
2842 | CITI_DK_EFT_DOM_DOC
2843 |
2844 | PURPOSE:
2845 | Citibank Danish domestic EFT document validation
2846 |
2847 | PARAMETERS:
2848 | IN
2849 |
2850 |
2851 | OUT
2852 |
2853 |
2854 | RETURNS:
2855 |
2856 | NOTES:
2857 |
2858 *---------------------------------------------------------------------*/
2859 PROCEDURE CITI_DK_EFT_DOM_DOC (
2860 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2861 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2862 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
2863 p_is_online_val IN VARCHAR2,
2864 x_result OUT NOCOPY NUMBER)
2865 IS
2866
2867 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
2868 l_valResult BOOLEAN;
2869 l_valid NUMBER := 0;
2870 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2871 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2872
2873 BEGIN
2874
2875 -- Initializing the payment record
2876 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
2877
2878 l_docErrorRec.validation_set_code := p_validation_set_code;
2879 l_docErrorRec.transaction_id := p_document_id;
2880 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
2881 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
2882 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
2883 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
2884
2885 -- Validate transaction code
2886 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2887 'DELIVERY_CHANNEL_CODE',
2888 l_document_rec.delivery_channel_code,
2889 'INDELIV',
2890 'DK',
2891 null,
2892 l_valResult,
2893 l_docErrorRec);
2894
2895 IF (l_valResult = FALSE) THEN
2896 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2897 l_valid := 1;
2898 END IF;
2899
2900 -- Inserting errors into IBY_TRANSACTION_ERRORS
2901 IF (l_valid = 1) THEN
2902 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
2903 END IF;
2904
2905 -- Return the Validation Result
2906 x_result := l_valid;
2907
2908 END CITI_DK_EFT_DOM_DOC;
2909
2910 /*--------------------------------------------------------------------
2911 | NAME:
2912 | P_CITI_DK_EFT_DOM_PMT
2913 |
2914 | PURPOSE:
2915 | Citibank Danish domestic EFT payment validation
2916 |
2917 | PARAMETERS:
2918 | IN
2919 |
2920 |
2921 | OUT
2922 |
2923 |
2924 | RETURNS:
2925 |
2926 | NOTES:
2927 |
2928 *---------------------------------------------------------------------*/
2929 PROCEDURE P_CITI_DK_EFT_DOM_PMT (
2930 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
2931 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
2932 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
2933 p_is_online_val IN VARCHAR2,
2934 x_result OUT NOCOPY NUMBER)
2935 IS
2936
2937 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
2938 l_valResult BOOLEAN;
2939 l_valid NUMBER := 0;
2940 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
2941 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
2942
2943 BEGIN
2944
2945 -- Initializing the payment record
2946 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
2947
2948 l_docErrorRec.validation_set_code := p_validation_set_code;
2949 l_docErrorRec.transaction_id := p_payment_id;
2950 l_docErrorRec.transaction_type := 'PAYMENT';
2951 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
2952
2953 -- Validate transaction reference
2954 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2955 'PMT_ID',
2956 l_payment_rec.pmt_id,
2957 'MAXLENGTH',
2958 null,
2959 8,
2960 l_valResult,
2961 l_docErrorRec);
2962
2963 IF (l_valResult = FALSE) THEN
2964 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2965 l_valid := 1;
2966 END IF;
2967
2968 -- Validate transaction amount
2969 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2970 'PMT_AMOUNT',
2971 l_payment_rec.pmt_amount,
2972 'MAXLENGTH',
2973 null,
2974 12,
2975 l_valResult,
2976 l_docErrorRec);
2977
2978 IF (l_valResult = FALSE) THEN
2979 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2980 l_valid := 1;
2981 END IF;
2982
2983 -- Validate transaction currency
2984 IBY_VALIDATIONSETS_PUB.evaluateCondition(
2985 'PMT_CURRENCY',
2986 nvl(l_payment_rec.pmt_currency, 'DKK'),
2987 'STRIS',
2988 'DKK',
2989 null,
2990 l_valResult,
2991 l_docErrorRec);
2992
2993 IF (l_valResult = FALSE) THEN
2994 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
2995 l_valid := 1;
2996 END IF;
2997
2998 -- Inserting errors into IBY_TRANSACTION_ERROR
2999 -- The first parameter p_is_online_val takes hardcoded value 'N'.
3000 IF (l_valid = 1) THEN
3001 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
3002 END IF;
3003
3004 -- Return the Validation Result
3005 x_result := l_valid;
3006
3007 END P_CITI_DK_EFT_DOM_PMT;
3008
3009 /*--------------------------------------------------------------------
3010 | NAME:
3011 | CITI_ES_CHECK_DOM_PAYEE
3012 |
3013 | PURPOSE:
3014 | Citibank Spanish domestic check payee validation
3015 |
3016 | PARAMETERS:
3017 | IN
3018 |
3019 |
3020 | OUT
3021 |
3022 |
3023 | RETURNS:
3024 |
3025 | NOTES:
3026 |
3027 *---------------------------------------------------------------------*/
3028 PROCEDURE CITI_ES_CHECK_DOM_PAYEE (
3029 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3030 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3031 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
3032 p_is_online_val IN VARCHAR2,
3033 x_result OUT NOCOPY NUMBER)
3034 IS
3035
3036 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
3037 l_valResult BOOLEAN;
3038 l_valid NUMBER := 0;
3039 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3040 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3041
3042 BEGIN
3043
3044 -- Initializing the document record
3045 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
3046
3047 l_docErrorRec.validation_set_code := p_validation_set_code;
3048 l_docErrorRec.transaction_id := p_document_id;
3049 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
3050 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
3051 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
3052 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
3053
3054 -- Validate target name
3055 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3056 'PAYEE_PARTY_NAME',
3057 l_document_rec.payee_party_name,
3058 'MAXLENGTH',
3059 null,
3060 35,
3061 l_valResult,
3062 l_docErrorRec);
3063
3064 IF (l_valResult = FALSE) THEN
3065 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3066 l_valid := 1;
3067 END IF;
3068
3069 -- Validate target address line 1
3070 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3071 'PAYEE_PARTY_SITE_ADDR1',
3072 l_document_rec.payee_party_addr1,
3073 'MAXLENGTH',
3074 null,
3075 35,
3076 l_valResult,
3077 l_docErrorRec);
3078
3079 IF (l_valResult = FALSE) THEN
3080 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3081 l_valid := 1;
3082 END IF;
3083
3084 -- Validate target address line 2
3085 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3086 'PAYEE_PARTY_SITE_CITY',
3087 l_document_rec.payee_party_city||l_document_rec.payee_party_postal,
3088 'MAXLENGTH',
3089 null,
3090 35,
3091 l_valResult,
3092 l_docErrorRec);
3093
3094 IF (l_valResult = FALSE) THEN
3095 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3096 l_valid := 1;
3097 END IF;
3098
3099 -- Inserting errors into IBY_TRANSACTION_ERRORS
3100 IF (l_valid = 1) THEN
3101 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
3102 END IF;
3103
3104 -- Return the Validation Result
3105 x_result := l_valid;
3106
3107 END CITI_ES_CHECK_DOM_PAYEE;
3108
3109 /*--------------------------------------------------------------------
3110 | NAME:
3111 | P_CITI_ES_CHECK_DOM_PMT
3112 |
3113 | PURPOSE:
3114 | Citibank Spanish domestic check payment validation
3115 |
3116 | PARAMETERS:
3117 | IN
3118 |
3119 |
3120 | OUT
3121 |
3122 |
3123 | RETURNS:
3124 |
3125 | NOTES:
3126 |
3127 *---------------------------------------------------------------------*/
3128 PROCEDURE P_CITI_ES_CHECK_DOM_PMT (
3129 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3130 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3131 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
3132 p_is_online_val IN VARCHAR2,
3133 x_result OUT NOCOPY NUMBER)
3134 IS
3135
3136 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
3137 l_valResult BOOLEAN;
3138 l_valid NUMBER := 0;
3139 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3140 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3141
3142 BEGIN
3143
3144 -- Initializing the payment record
3145 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
3146
3147 l_docErrorRec.validation_set_code := p_validation_set_code;
3148 l_docErrorRec.transaction_id := p_payment_id;
3149 l_docErrorRec.transaction_type := 'PAYMENT';
3150 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
3151
3152 -- Validate transaction reference
3153 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3154 'PMT_ID',
3155 l_payment_rec.pmt_id,
3156 'MAXLENGTH',
3157 null,
3158 12,
3159 l_valResult,
3160 l_docErrorRec);
3161
3162 IF (l_valResult = FALSE) THEN
3163 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3164 l_valid := 1;
3165 END IF;
3166
3167 -- Inserting errors into IBY_TRANSACTION_ERRORS
3168 -- The first parameter p_is_online_val takes hardcoded value 'N'.
3169 IF (l_valid = 1) THEN
3170 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
3171 END IF;
3172
3173 -- Return the Validation Result
3174 x_result := l_valid;
3175
3176 END P_CITI_ES_CHECK_DOM_PMT;
3177
3178 /*--------------------------------------------------------------------
3179 | NAME:
3180 | CITI_ES_EFT_DOM_PAYEE
3181 |
3182 | PURPOSE:
3183 | Citibank Spanish domestic EFT payee validation
3184 |
3185 | PARAMETERS:
3186 | IN
3187 |
3188 |
3189 | OUT
3190 |
3191 |
3192 | RETURNS:
3193 |
3194 | NOTES:
3195 |
3196 *---------------------------------------------------------------------*/
3197 PROCEDURE CITI_ES_EFT_DOM_PAYEE (
3198 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3199 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3200 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
3201 p_is_online_val IN VARCHAR2,
3202 x_result OUT NOCOPY NUMBER)
3203 IS
3204
3205 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
3206 l_valResult BOOLEAN;
3207 l_valid NUMBER := 0;
3208 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3209 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3210
3211 BEGIN
3212
3213 -- Initializing the document record
3214 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
3215
3216 l_docErrorRec.validation_set_code := p_validation_set_code;
3217 l_docErrorRec.transaction_id := p_document_id;
3218 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
3219 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
3220 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
3221 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
3222
3223 -- Validate target name
3224 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3225 'PAYEE_PARTY_NAME',
3226 l_document_rec.payee_party_name,
3227 'MAXLENGTH',
3228 null,
3229 35,
3230 l_valResult,
3231 l_docErrorRec);
3232
3233 IF (l_valResult = FALSE) THEN
3234 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3235 l_valid := 1;
3236 END IF;
3237
3238 -- Validate target address line 1
3239 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3240 'PAYEE_PARTY_SITE_ADDR1',
3241 l_document_rec.payee_party_addr1,
3242 'MAXLENGTH',
3243 null,
3244 35,
3245 l_valResult,
3246 l_docErrorRec);
3247
3248 IF (l_valResult = FALSE) THEN
3249 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3250 l_valid := 1;
3251 END IF;
3252
3253 -- Validate target address line 2
3254 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3255 'PAYEE_PARTY_SITE_CITY',
3256 l_document_rec.payee_party_city||l_document_rec.payee_party_postal,
3257 'MAXLENGTH',
3258 null,
3259 35,
3260 l_valResult,
3261 l_docErrorRec);
3262
3263 IF (l_valResult = FALSE) THEN
3264 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3265 l_valid := 1;
3266 END IF;
3267
3268 -- Validate target bank code
3269 -- by CE
3270
3271 -- Validate target bank account number
3272 -- by CE
3273
3274 -- Validate target bank branch code
3275 -- by CE
3276
3277 -- Validate target bank country code
3278 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3279 'EXT_BANK_BRANCH_COUNTRY',
3280 l_document_rec.ext_bank_branch_country,
3281 'STRIS',
3282 'ES',
3283 null,
3284 l_valResult,
3285 l_docErrorRec);
3286
3287 IF (l_valResult = FALSE) THEN
3288 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3289 l_valid := 1;
3290 END IF;
3291
3292 -- Insert errors into IBY_TRANSACTION_ERRORS
3293 IF (l_valid = 1) THEN
3294 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
3295 END IF;
3296
3297 -- Return the Validation Result
3298 x_result := l_valid;
3299
3300 END CITI_ES_EFT_DOM_PAYEE;
3301
3302 /*--------------------------------------------------------------------
3303 | NAME:
3304 | CITI_ES_EFT_DOM_DOC
3305 |
3306 | PURPOSE:
3307 | Citibank Spanish domestic EFT document validation
3308 |
3309 | PARAMETERS:
3310 | IN
3311 |
3312 |
3313 | OUT
3314 |
3315 |
3316 | RETURNS:
3317 |
3318 | NOTES:
3319 |
3320 *---------------------------------------------------------------------*/
3321 PROCEDURE CITI_ES_EFT_DOM_DOC (
3322 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3323 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3324 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
3325 p_is_online_val IN VARCHAR2,
3326 x_result OUT NOCOPY NUMBER)
3327 IS
3328
3329 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
3330 l_valResult BOOLEAN;
3331 l_valid NUMBER := 0;
3332 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3333 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3334
3335 BEGIN
3336
3337 -- Initializing the document record
3338 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
3339
3340 l_docErrorRec.validation_set_code := p_validation_set_code;
3341 l_docErrorRec.transaction_id := p_document_id;
3342 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
3343 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
3344 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
3345 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
3346
3347 -- Validate transaction code
3348 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3349 'DELIVERY_CHANNEL_CODE',
3350 l_document_rec.delivery_channel_code,
3351 'INDELIV',
3352 'ES',
3353 null,
3354 l_valResult,
3355 l_docErrorRec);
3356
3357 IF (l_valResult = FALSE) THEN
3358 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3359 l_valid := 1;
3360 END IF;
3361
3362 -- Inserting errors into IBY_TRANSACTION_ERRORS
3363 IF (l_valid = 1) THEN
3364 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
3365 END IF;
3366
3367 -- Return the Validation Result
3368 x_result := l_valid;
3369
3370 END CITI_ES_EFT_DOM_DOC;
3371
3372 /*--------------------------------------------------------------------
3373 | NAME:
3374 | P_CITI_ES_EFT_DOM_PMT
3375 |
3376 | PURPOSE:
3377 | Citibank Spanish domestic EFT payment validation
3378 |
3379 | PARAMETERS:
3380 | IN
3381 |
3382 |
3383 | OUT
3384 |
3385 |
3386 | RETURNS:
3387 |
3388 | NOTES:
3389 |
3390 *---------------------------------------------------------------------*/
3391 PROCEDURE P_CITI_ES_EFT_DOM_PMT (
3392 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3393 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3394 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
3395 p_is_online_val IN VARCHAR2,
3396 x_result OUT NOCOPY NUMBER)
3397 IS
3398
3399 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
3400 l_valResult BOOLEAN;
3401 l_valid NUMBER := 0;
3402 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3403 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3404
3405 BEGIN
3406
3407 -- Initializing the payment record
3408 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
3409
3410 l_docErrorRec.validation_set_code := p_validation_set_code;
3411 l_docErrorRec.transaction_id := p_payment_id;
3412 l_docErrorRec.transaction_type := 'PAYMENT';
3413 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
3414
3415 -- Validate transaction reference
3416 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3417 'PMT_ID',
3418 l_payment_rec.pmt_id,
3419 'MAXLENGTH',
3420 null,
3421 12,
3422 l_valResult,
3423 l_docErrorRec);
3424
3425 IF (l_valResult = FALSE) THEN
3426 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3427 l_valid := 1;
3428 END IF;
3429
3430 -- Inserting errors into IBY_TRANSACTION_ERRORS
3431 -- The first parameter p_is_online_val takes hardcoded value 'N'.
3432 IF (l_valid = 1) THEN
3433 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
3434 END IF;
3435
3436 -- Return the Validation Result
3437 x_result := l_valid;
3438
3439 END P_CITI_ES_EFT_DOM_PMT;
3440
3441 /*--------------------------------------------------------------------
3442 | NAME:
3443 | CITI_FI_EFT_DOM_PAYEE
3444 |
3445 | PURPOSE:
3446 | Citibank Finnish domestic EFT payee validation
3447 |
3448 | PARAMETERS:
3449 | IN
3450 |
3451 |
3452 | OUT
3453 |
3454 |
3455 | RETURNS:
3456 |
3457 | NOTES:
3458 |
3459 *---------------------------------------------------------------------*/
3460 PROCEDURE CITI_FI_EFT_DOM_PAYEE (
3461 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3462 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3463 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
3464 p_is_online_val IN VARCHAR2,
3465 x_result OUT NOCOPY NUMBER)
3466 IS
3467
3468 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
3469 l_valResult BOOLEAN;
3470 l_valid NUMBER := 0;
3471 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3472 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3473
3474 BEGIN
3475
3476 -- Initializing the document record
3477 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
3478
3479 l_docErrorRec.validation_set_code := p_validation_set_code;
3480 l_docErrorRec.transaction_id := p_document_id;
3481 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
3482 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
3483 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
3484 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
3485
3486 -- Validate target name
3487 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3488 'PAYEE_PARTY_NAME',
3489 l_document_rec.payee_party_name,
3490 'MAXLENGTH',
3491 null,
3492 30,
3493 l_valResult,
3494 l_docErrorRec);
3495
3496 IF (l_valResult = FALSE) THEN
3497 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3498 l_valid := 1;
3499 END IF;
3500
3501 -- Validate target bank account number
3502 -- by CE
3503
3504 -- Validate target bank country code
3505 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3506 'EXT_BANK_BRANCH_COUNTRY',
3507 l_document_rec.ext_bank_branch_country,
3508 'STRIS',
3509 'FI',
3510 null,
3511 l_valResult,
3512 l_docErrorRec);
3513
3514 IF (l_valResult = FALSE) THEN
3515 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3516 l_valid := 1;
3517 END IF;
3518
3519 -- Insert errors into IBY_TRANSACTION_ERRORS
3520 IF (l_valid = 1) THEN
3521 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
3522 END IF;
3523
3524 -- Return the validation result
3525 x_result := l_valid;
3526
3527 END CITI_FI_EFT_DOM_PAYEE;
3528
3529 /*--------------------------------------------------------------------
3530 | NAME:
3531 | CITI_FI_EFT_DOM_DOC
3532 |
3533 | PURPOSE:
3534 | Citibank Finnish domestic EFT document validation
3535 |
3536 | PARAMETERS:
3537 | IN
3538 |
3539 |
3540 | OUT
3541 |
3542 |
3543 | RETURNS:
3544 |
3545 | NOTES:
3546 |
3547 *---------------------------------------------------------------------*/
3548 PROCEDURE CITI_FI_EFT_DOM_DOC (
3549 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3550 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3551 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
3552 p_is_online_val IN VARCHAR2,
3553 x_result OUT NOCOPY NUMBER)
3554 IS
3555
3556 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
3557 l_valResult BOOLEAN;
3558 l_valid NUMBER := 0;
3559 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3560 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3561
3562 BEGIN
3563
3564 -- Initializing the document record
3565 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
3566
3567 l_docErrorRec.validation_set_code := p_validation_set_code;
3568 l_docErrorRec.transaction_id := p_document_id;
3569 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
3570 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
3571 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
3572 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
3573
3574 -- Validate transaction code
3575 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3576 'DELIVERY_CHANNEL_CODE',
3577 l_document_rec.delivery_channel_code,
3578 'INDELIV',
3579 'FI',
3580 null,
3581 l_valResult,
3582 l_docErrorRec);
3583
3584 IF (l_valResult = FALSE) THEN
3585 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3586 l_valid := 1;
3587 END IF;
3588
3589 -- Insert errors into IBY_TRANSACTION_ERRORS
3590 IF (l_valid = 1) THEN
3591 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
3592 END IF;
3593
3594 -- Return the validation result
3595 x_result := l_valid;
3596
3597 END CITI_FI_EFT_DOM_DOC;
3598
3599 /*--------------------------------------------------------------------
3600 | NAME:
3601 | P_CITI_FI_EFT_DOM_PMT
3602 |
3603 | PURPOSE:
3604 | Citibank Finnish domestic EFT payment validation
3605 |
3606 | PARAMETERS:
3607 | IN
3608 |
3609 |
3610 | OUT
3611 |
3612 |
3613 | RETURNS:
3614 |
3615 | NOTES:
3616 |
3617 *---------------------------------------------------------------------*/
3618 PROCEDURE P_CITI_FI_EFT_DOM_PMT (
3619 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3620 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3621 p_payment_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
3622 p_is_online_val IN VARCHAR2,
3623 x_result OUT NOCOPY NUMBER)
3624 IS
3625
3626 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
3627 l_valResult BOOLEAN;
3628 l_valid NUMBER := 0;
3629 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3630 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3631
3632 BEGIN
3633
3634 -- Initializing the payment record
3635 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
3636
3637 l_docErrorRec.validation_set_code := p_validation_set_code;
3638 l_docErrorRec.transaction_id := p_payment_id;
3639 l_docErrorRec.transaction_type := 'PAYMENT';
3640 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
3641
3642 -- Validate transaction amount
3643 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3644 'PMT_AMOUNT',
3645 l_payment_rec.pmt_amount,
3646 'MAXLENGTH',
3647 null,
3648 12,
3649 l_valResult,
3650 l_docErrorRec);
3651
3652 IF (l_valResult = FALSE) THEN
3653 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3654 l_valid := 1;
3655 END IF;
3656
3657 -- Inserting errors into IBY_TRANSACTION_ERRORS
3658 -- The first parameter p_is_online_val takes hardcoded value 'N'.
3659 IF (l_valid = 1) THEN
3660 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
3661 END IF;
3662
3663 -- Return the Validation Result
3664 x_result := l_valid;
3665
3666 END P_CITI_FI_EFT_DOM_PMT;
3667
3668 /*--------------------------------------------------------------------
3669 | NAME:
3670 | CITI_FR_EFT_DOM_PAYEE
3671 |
3672 | PURPOSE:
3673 | Citibank French domestic EFT payee validation
3674 |
3675 | PARAMETERS:
3676 | IN
3677 |
3678 |
3679 | OUT
3680 |
3681 |
3682 | RETURNS:
3683 |
3684 | NOTES:
3685 |
3686 *---------------------------------------------------------------------*/
3687 PROCEDURE CITI_FR_EFT_DOM_PAYEE (
3688 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3689 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3690 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
3691 p_is_online_val IN VARCHAR2,
3692 x_result OUT NOCOPY NUMBER)
3693 IS
3694
3695 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
3696 l_valResult BOOLEAN;
3697 l_valid NUMBER := 0;
3698 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3699 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3700
3701 BEGIN
3702
3703 -- Initializing the document record
3704 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id, l_document_rec, p_is_online_val);
3705
3706 l_docErrorRec.validation_set_code := p_validation_set_code;
3707 l_docErrorRec.transaction_id := p_document_id;
3708 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
3709 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
3710 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
3711 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
3712
3713 -- Validate target name
3714 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3715 'PAYEE_PARTY_NAME',
3716 l_document_rec.payee_party_name,
3717 'MAXLENGTH',
3718 null,
3719 24,
3720 l_valResult,
3721 l_docErrorRec);
3722
3723 IF (l_valResult = FALSE) THEN
3724 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3725 l_valid := 1;
3726 END IF;
3727
3728 -- Validate target bank code
3729 -- by CE
3730
3731 -- Validate target bank branch code
3732 -- by CE
3733
3734 -- Validate target bank account number
3735 -- by CE
3736
3737 -- Validate target bank account check digits
3738 -- by CE
3739
3740 -- Validate target bank country code
3741 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3742 'EXT_BANK_BRANCH_COUNTRY',
3743 l_document_rec.ext_bank_branch_country,
3744 'STRIS',
3745 'FR',
3746 null,
3747 l_valResult,
3748 l_docErrorRec);
3749
3750 IF (l_valResult = FALSE) THEN
3751 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3752 l_valid := 1;
3753 END IF;
3754
3755 -- Inserting errors into IBY_TRANSACTION_ERRORS
3756 IF (l_valid = 1) THEN
3757 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
3758 END IF;
3759
3760 -- Return the Validation Result
3761 x_result := l_valid;
3762
3763 END CITI_FR_EFT_DOM_PAYEE;
3764
3765 /*--------------------------------------------------------------------
3766 | NAME:
3767 | CITI_FR_EFT_DOM_DOC
3768 |
3769 | PURPOSE:
3770 | Citibank French domestic EFT document validation
3771 |
3772 | PARAMETERS:
3773 | IN
3774 |
3775 |
3776 | OUT
3777 |
3778 |
3779 | RETURNS:
3780 |
3781 | NOTES:
3782 |
3783 *---------------------------------------------------------------------*/
3784 PROCEDURE CITI_FR_EFT_DOM_DOC (
3785 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3786 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3787 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
3788 p_is_online_val IN VARCHAR2,
3789 x_result OUT NOCOPY NUMBER)
3790 IS
3791
3792 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
3793 l_valResult BOOLEAN;
3794 l_valid NUMBER := 0;
3795 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3796 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3797
3798 BEGIN
3799
3800 -- Initializing the document record
3801 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
3802
3803 l_docErrorRec.validation_set_code := p_validation_set_code;
3804 l_docErrorRec.transaction_id := p_document_id;
3805 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
3806 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
3807 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
3808 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
3809
3810 -- Validate transaction code
3811 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3812 'DELIVERY_CHANNEL_CODE',
3813 l_document_rec.delivery_channel_code,
3814 'INDELIV',
3815 'FR',
3816 null,
3817 l_valResult,
3818 l_docErrorRec);
3819
3820 IF (l_valResult = FALSE) THEN
3821 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3822 l_valid := 1;
3823 END IF;
3824
3825 -- Inserting errors into IBY_TRANSACTION_ERRORS
3826 IF (l_valid = 1) THEN
3827 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
3828 END IF;
3829
3830 -- Return the Validation Result
3831 x_result := l_valid;
3832
3833 END CITI_FR_EFT_DOM_DOC;
3834
3835 /*--------------------------------------------------------------------
3836 | NAME:
3837 | P_CITI_FR_EFT_DOM_PMT
3838 |
3839 | PURPOSE:
3840 | Citibank French domestic EFT payment validation
3841 |
3842 | PARAMETERS:
3843 | IN
3844 |
3845 |
3846 | OUT
3847 |
3848 |
3849 | RETURNS:
3850 |
3851 | NOTES:
3852 |
3853 *---------------------------------------------------------------------*/
3854 PROCEDURE P_CITI_FR_EFT_DOM_PMT (
3855 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3856 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3857 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
3858 p_is_online_val IN VARCHAR2,
3859 x_result OUT NOCOPY NUMBER)
3860 IS
3861
3862 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
3863 l_valResult BOOLEAN;
3864 l_valid NUMBER := 0;
3865 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3866 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3867
3868 l_max_ach_amt NUMBER;
3869
3870 BEGIN
3871
3872 -- Initializing the payment record
3873 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
3874
3875 l_docErrorRec.validation_set_code := p_validation_set_code;
3876 l_docErrorRec.transaction_id := p_payment_id;
3877 l_docErrorRec.transaction_type := 'PAYMENT';
3878 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
3879
3880 -- Validate transaction amount
3881 IBY_VALIDATIONSETS_PUB.getParamValue(
3882 p_validation_assign_id,
3883 p_validation_set_code,
3884 'MAX_PAYMENT_AMOUNT',
3885 l_max_ach_amt );
3886
3887 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3888 'PMT_AMOUNT',
3889 l_payment_rec.pmt_amount,
3890 'LESSEQUAL',
3891 null,
3892 l_max_ach_amt,
3893 l_valResult,
3894 l_docErrorRec);
3895
3896 IF (l_valResult = FALSE) THEN
3897 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3898 l_valid := 1;
3899 END IF;
3900
3901 -- Inserting errors into IBY_TRANSACTION_ERRORS
3902 -- The first parameter p_is_online_val takes hardcoded value 'N'.
3903 IF (l_valid = 1) THEN
3904 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
3905 END IF;
3906
3907 -- Return the Validation Result
3908 x_result := l_valid;
3909
3910 END P_CITI_FR_EFT_DOM_PMT;
3911
3912 /*--------------------------------------------------------------------
3913 | NAME:
3914 | CITI_GR_CHECK_DOMESTIC_PAYEE
3915 |
3916 | PURPOSE:
3917 | Citibank Greek domestic check payee validation
3918 |
3919 | PARAMETERS:
3920 | IN
3921 |
3922 |
3923 | OUT
3924 |
3925 |
3926 | RETURNS:
3927 |
3928 | NOTES:
3929 |
3930 *---------------------------------------------------------------------*/
3931 PROCEDURE CITI_GR_CHECK_DOM_PAYEE (
3932 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
3933 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
3934 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
3935 p_is_online_val IN VARCHAR2,
3936 x_result OUT NOCOPY NUMBER)
3937 IS
3938
3939 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
3940 l_valResult BOOLEAN;
3941 l_valid NUMBER := 0;
3942 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
3943 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
3944
3945 BEGIN
3946
3947 -- Initializing the document record
3948 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
3949
3950 l_docErrorRec.validation_set_code := p_validation_set_code;
3951 l_docErrorRec.transaction_id := p_document_id;
3952 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
3953 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
3954 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
3955 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
3956
3957 -- Validate target name
3958 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3959 'PAYEE_PARTY_NAME',
3960 l_document_rec.payee_party_name,
3961 'MAXLENGTH',
3962 null,
3963 33,
3964 l_valResult,
3965 l_docErrorRec);
3966
3967 IF (l_valResult = FALSE) THEN
3968 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3969 l_valid := 1;
3970 END IF;
3971
3972 -- Validate target bank name
3973 IBY_VALIDATIONSETS_PUB.evaluateCondition(
3974 'EXT_BANK_NAME',
3975 l_document_rec.ext_bank_name,
3976 'MAXLENGTH',
3977 null,
3978 33,
3979 l_valResult,
3980 l_docErrorRec);
3981
3982 IF (l_valResult = FALSE) THEN
3983 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
3984 l_valid := 1;
3985 END IF;
3986
3987 -- Validate target bank code
3988 -- by CE
3989
3990 -- Validate target bank branch code
3991 -- by CE
3992
3993 -- Validate target bank account number
3994 -- by CE
3995
3996 -- Insert errors into IBY_TRANSACTION_ERRORS
3997 IF (l_valid = 1) THEN
3998 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
3999 END IF;
4000
4001 -- Return the validation result
4002 x_result := l_valid;
4003
4004 END CITI_GR_CHECK_DOM_PAYEE;
4005
4006 /*--------------------------------------------------------------------
4007 | NAME:
4008 | CITI_GR_CHECK_DOM_DOC
4009 |
4010 | PURPOSE:
4011 | Citibank Greek domestic check document validation
4012 |
4013 | PARAMETERS:
4014 | IN
4015 |
4016 |
4017 | OUT
4018 |
4019 |
4020 | RETURNS:
4021 |
4022 | NOTES:
4023 |
4024 *---------------------------------------------------------------------*/
4025 PROCEDURE CITI_GR_CHECK_DOM_DOC (
4026 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4027 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4028 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
4029 p_is_online_val IN VARCHAR2,
4030 x_result OUT NOCOPY NUMBER)
4031 IS
4032
4033 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
4034 l_valResult BOOLEAN;
4035 l_valid NUMBER := 0;
4036 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4037 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4038
4039 BEGIN
4040
4041 -- Initializing the document record
4042 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
4043
4044 l_docErrorRec.validation_set_code := p_validation_set_code;
4045 l_docErrorRec.transaction_id := p_document_id;
4046 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
4047 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
4048 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
4049 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
4050
4051 -- Validate transaction code
4052 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4053 'DELIVERY_CHANNEL_CODE',
4054 l_document_rec.delivery_channel_code,
4055 'INDELIV',
4056 'GR',
4057 null,
4058 l_valResult,
4059 l_docErrorRec);
4060
4061 IF (l_valResult = FALSE) THEN
4062 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4063 l_valid := 1;
4064 END IF;
4065
4066 -- Insert errors into IBY_TRANSACTION_ERRORS
4067 IF (l_valid = 1) THEN
4068 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
4069 END IF;
4070
4071 -- Return the validation result
4072 x_result := l_valid;
4073
4074 END CITI_GR_CHECK_DOM_DOC;
4075
4076 /*--------------------------------------------------------------------
4077 | NAME:
4078 | P_CITI_GR_CHECK_DOM_PMT
4079 |
4080 | PURPOSE:
4081 | Citibank Greek domestic check payment validation
4082 |
4083 | PARAMETERS:
4084 | IN
4085 |
4086 |
4087 | OUT
4088 |
4089 |
4090 | RETURNS:
4091 |
4092 | NOTES:
4093 |
4094 *---------------------------------------------------------------------*/
4095 PROCEDURE P_CITI_GR_CHECK_DOM_PMT (
4096 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4097 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4098 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
4099 p_is_online_val IN VARCHAR2,
4100 x_result OUT NOCOPY NUMBER)
4101 IS
4102
4103 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
4104 l_valResult BOOLEAN;
4105 l_valid NUMBER := 0;
4106 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4107 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4108
4109 BEGIN
4110
4111 -- Initializing the payment record
4112 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
4113
4114 l_docErrorRec.validation_set_code := p_validation_set_code;
4115 l_docErrorRec.transaction_id := p_payment_id;
4116 l_docErrorRec.transaction_type := 'PAYMENT';
4117 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
4118
4119 -- Validate transaction reference
4120 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4121 'PMT_ID',
4122 l_payment_rec.pmt_id,
4123 'MAXLENGTH',
4124 null,
4125 16,
4126 l_valResult,
4127 l_docErrorRec);
4128
4129 IF (l_valResult = FALSE) THEN
4130 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4131 l_valid := 1;
4132 END IF;
4133
4134 -- Inserting errors into IBY_TRANSACTION_ERRORS
4135 -- The first parameter p_is_online_val takes hardcoded value 'N'.
4136 IF (l_valid = 1) THEN
4137 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
4138 END IF;
4139
4140 -- Return the Validation Result
4141 x_result := l_valid;
4142
4143 END P_CITI_GR_CHECK_DOM_PMT;
4144
4145 /*--------------------------------------------------------------------
4146 | NAME:
4147 | CITI_GR_EFT_DOM_PAYEE
4148 |
4149 | PURPOSE:
4150 | Citibank Greek domestic EFT payee validation
4151 |
4152 | PARAMETERS:
4153 | IN
4154 |
4155 |
4156 | OUT
4157 |
4158 |
4159 | RETURNS:
4160 |
4161 | NOTES:
4162 |
4163 *---------------------------------------------------------------------*/
4164 PROCEDURE CITI_GR_EFT_DOM_PAYEE (
4165 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4166 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4167 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
4168 p_is_online_val IN VARCHAR2,
4169 x_result OUT NOCOPY NUMBER)
4170 IS
4171
4172 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
4173 l_valResult BOOLEAN;
4174 l_valid NUMBER := 0;
4175 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4176 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4177
4178 BEGIN
4179
4180 -- Initializing the document record
4181 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
4182
4183 l_docErrorRec.validation_set_code := p_validation_set_code;
4184 l_docErrorRec.transaction_id := p_document_id;
4185 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
4186 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
4187 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
4188 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
4189
4190 -- Validate target name
4191 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4192 'PAYEE_PARTY_NAME',
4193 l_document_rec.payee_party_name,
4194 'MAXLENGTH',
4195 null,
4196 33,
4197 l_valResult,
4198 l_docErrorRec);
4199
4200 IF (l_valResult = FALSE) THEN
4201 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4202 l_valid := 1;
4203 END IF;
4204
4205 -- Validate target bank code
4206 -- by CE
4207
4208 -- Validate target bank branch code
4209 -- by CE
4210
4211 -- Validate target bank account number
4212 -- by CE
4213
4214 -- Insert errors into IBY_TRANSACTION_ERRORS
4215 IF (l_valid = 1) THEN
4216 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
4217 END IF;
4218
4219 -- Return the validation result
4220 x_result := l_valid;
4221
4222 END CITI_GR_EFT_DOM_PAYEE;
4223
4224 /*--------------------------------------------------------------------
4225 | NAME:
4226 | CITI_GR_EFT_DOM_DOC
4227 |
4228 | PURPOSE:
4229 | Citibank Greek domestic EFT document validation
4230 |
4231 | PARAMETERS:
4232 | IN
4233 |
4234 |
4235 | OUT
4236 |
4237 |
4238 | RETURNS:
4239 |
4240 | NOTES:
4241 |
4242 *---------------------------------------------------------------------*/
4243 PROCEDURE CITI_GR_EFT_DOM_DOC (
4244 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4245 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4246 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
4247 p_is_online_val IN VARCHAR2,
4248 x_result OUT NOCOPY NUMBER)
4249 IS
4250
4251 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
4252 l_valResult BOOLEAN;
4253 l_valid NUMBER := 0;
4254 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4255 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4256 l_validTrxnCodes VARCHAR2(100) := '0001, 0003, 0004';
4257
4258 BEGIN
4259
4260 -- Initializing the document record
4261 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
4262
4263 l_docErrorRec.validation_set_code := p_validation_set_code;
4264 l_docErrorRec.transaction_id := p_document_id;
4265 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
4266 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
4267 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
4268 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
4269
4270 -- Validate transaction code
4271 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4272 'DELIVERY_CHANNEL_CODE',
4273 l_document_rec.delivery_channel_code,
4274 'INDELIV',
4275 'GR',
4276 null,
4277 l_valResult,
4278 l_docErrorRec);
4279
4280 IF (l_valResult = FALSE) THEN
4281 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4282 l_valid := 1;
4283 END IF;
4284
4285 -- Insert errors into IBY_TRANSACTION_ERRORS
4286 IF (l_valid = 1) THEN
4287 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
4288 END IF;
4289
4290 -- Return the validation result
4291 x_result := l_valid;
4292
4293 END CITI_GR_EFT_DOM_DOC;
4294
4295 /*--------------------------------------------------------------------
4296 | NAME:
4297 | P_CITI_GR_EFT_DOM_PMT
4298 |
4299 | PURPOSE:
4300 | Citibank Greek domestic EFT payment validation
4301 |
4302 | PARAMETERS:
4303 | IN
4304 |
4305 |
4306 | OUT
4307 |
4308 |
4309 | RETURNS:
4310 |
4311 | NOTES:
4312 |
4313 *---------------------------------------------------------------------*/
4314 PROCEDURE P_CITI_GR_EFT_DOM_PMT (
4315 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4316 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4317 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
4318 p_is_online_val IN VARCHAR2,
4319 x_result OUT NOCOPY NUMBER)
4320 IS
4321
4322 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
4323 l_valResult BOOLEAN;
4324 l_valid NUMBER := 0;
4325 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4326 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4327
4328 BEGIN
4329
4330 -- Initializing the payment record
4331 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
4332
4333 l_docErrorRec.validation_set_code := p_validation_set_code;
4334 l_docErrorRec.transaction_id := p_payment_id;
4335 l_docErrorRec.transaction_type := 'PAYMENT';
4336 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
4337
4338 -- Validate transaction reference
4339 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4340 'PMT_ID',
4341 l_payment_rec.pmt_id,
4342 'MAXLENGTH',
4343 null,
4344 16,
4345 l_valResult,
4346 l_docErrorRec);
4347
4348 IF (l_valResult = FALSE) THEN
4349 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4350 l_valid := 1;
4351 END IF;
4352
4353 -- Inserting errors into IBY_TRANSACTION_ERRORS
4354 -- The first parameter p_is_online_val takes hardcoded value 'N'.
4355 IF (l_valid = 1) THEN
4356 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
4357 END IF;
4358
4359 -- Return the Validation Result
4360 x_result := l_valid;
4361
4362 END P_CITI_GR_EFT_DOM_PMT;
4363
4364 /*--------------------------------------------------------------------
4365 | NAME:
4366 | CITI_IE_EFT_DOM_PAYEE
4367 |
4368 | PURPOSE:
4369 | Citibank Irish domestic EFT payee validation
4370 |
4371 | PARAMETERS:
4372 | IN
4373 |
4374 |
4375 | OUT
4376 |
4377 |
4378 | RETURNS:
4379 |
4380 | NOTES:
4381 |
4382 *---------------------------------------------------------------------*/
4383 PROCEDURE CITI_IE_EFT_DOM_PAYEE (
4384 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4385 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4386 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
4387 p_is_online_val IN VARCHAR2,
4388 x_result OUT NOCOPY NUMBER)
4389 IS
4390
4391 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
4392 l_valResult BOOLEAN;
4393 l_valid NUMBER := 0;
4394 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4395 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4396
4397 BEGIN
4398
4399 -- Initializing the document record
4400 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
4401
4402 l_docErrorRec.validation_set_code := p_validation_set_code;
4403 l_docErrorRec.transaction_id := p_document_id;
4404 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
4405 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
4406 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
4407 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
4408
4409 -- Validate beneficiary name
4410 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4411 'PAYEE_PARTY_NAME',
4412 l_document_rec.payee_party_name,
4413 'MAXLENGTH',
4414 null,
4415 18,
4416 l_valResult,
4417 l_docErrorRec);
4418
4419 IF (l_valResult = FALSE) THEN
4420 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4421 l_valid := 1;
4422 END IF;
4423
4424 -- Validate target name
4425 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4426 'PAYEE_PARTY_NAME',
4427 l_document_rec.payee_party_name,
4428 'MAXLENGTH',
4429 null,
4430 18,
4431 l_valResult,
4432 l_docErrorRec);
4433
4434 IF (l_valResult = FALSE) THEN
4435 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4436 l_valid := 1;
4437 END IF;
4438
4439 -- Validate target bank account number
4440 -- by CE
4441
4442 -- Validate target bank country code
4443 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4444 'EXT_BANK_BRANCH_COUNTRY',
4445 l_document_rec.ext_bank_branch_country,
4446 'STRIS',
4447 'IE',
4448 null,
4449 l_valResult,
4450 l_docErrorRec);
4451
4452 IF (l_valResult = FALSE) THEN
4453 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4454 l_valid := 1;
4455 END IF;
4456
4457 -- Validate target bank branch code
4458 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4459 'EXT_BANK_BRANCH_NUM',
4460 l_document_rec.ext_bank_branch_num,
4461 'EXACTLENGTH',
4462 null,
4463 6,
4464 l_valResult,
4465 l_docErrorRec);
4466
4467 IF (l_valResult = FALSE) THEN
4468 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4469 l_valid := 1;
4470 END IF;
4471
4472 -- by CE, validation on digits only.
4473
4474 -- Inserting errors into IBY_TRANSACTION_ERRORS
4475 IF (l_valid = 1) THEN
4476 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
4477 END IF;
4478
4479 -- Return the Validation Result
4480 x_result := l_valid;
4481
4482 END CITI_IE_EFT_DOM_PAYEE;
4483
4484 /*--------------------------------------------------------------------
4485 | NAME:
4486 | P_CITI_IE_EFT_DOM_PMT
4487 |
4488 | PURPOSE:
4489 | Citibank Irish domestic EFT payment validation
4490 |
4491 | PARAMETERS:
4492 | IN
4493 |
4494 |
4495 | OUT
4496 |
4497 |
4498 | RETURNS:
4499 |
4500 | NOTES:
4501 |
4502 *---------------------------------------------------------------------*/
4503 PROCEDURE P_CITI_IE_EFT_DOM_PMT (
4504 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4505 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4506 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
4507 p_is_online_val IN VARCHAR2,
4508 x_result OUT NOCOPY NUMBER)
4509 IS
4510
4511 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
4512 l_valResult BOOLEAN;
4513 l_valid NUMBER := 0;
4514 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4515 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4516
4517 BEGIN
4518
4519 -- Initializing the payment record
4520 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
4521
4522 l_docErrorRec.validation_set_code := p_validation_set_code;
4523 l_docErrorRec.transaction_id := p_payment_id;
4524 l_docErrorRec.transaction_type := 'PAYMENT';
4525 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
4526
4527 -- Validate transactional reference
4528 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4529 'PMT_ID',
4530 l_payment_rec.pmt_id,
4531 'MAXLENGTH',
4532 null,
4533 15,
4534 l_valResult,
4535 l_docErrorRec);
4536
4537 IF (l_valResult = FALSE) THEN
4538 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4539 l_valid := 1;
4540 END IF;
4541
4542 -- Validate instruction currency code
4543 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4544 'PMT_CURRENCY',
4545 l_payment_rec.pmt_currency,
4546 'MAXLENGTH',
4547 null,
4548 3,
4549 l_valResult,
4550 l_docErrorRec);
4551
4552 IF (l_valResult = FALSE) THEN
4553 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4554 l_valid := 1;
4555 END IF;
4556
4557 -- Validate transaction amount
4558 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4559 'PMT_AMOUNT',
4560 l_payment_rec.pmt_amount,
4561 'MAXLENGTH',
4562 null,
4563 12,
4564 l_valResult,
4565 l_docErrorRec);
4566
4567 IF (l_valResult = FALSE) THEN
4568 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4569 l_valid := 1;
4570 END IF;
4571
4572 -- Inserting errors into IBY_TRANSACTION_ERRORS
4573 -- The first parameter p_is_online_val takes hardcoded value 'N'.
4574 IF (l_valid = 1) THEN
4575 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
4576 END IF;
4577
4578 -- Return the Validation Result
4579 x_result := l_valid;
4580
4581 END P_CITI_IE_EFT_DOM_PMT;
4582
4583 /*--------------------------------------------------------------------
4584 | NAME:
4585 | CITI_IE_EFT_DOM_DOC
4586 |
4587 | PURPOSE:
4588 | Citibank Irish domestic EFT document validation
4589 |
4590 | PARAMETERS:
4591 | IN
4592 |
4593 |
4594 | OUT
4595 |
4596 |
4597 | RETURNS:
4598 |
4599 | NOTES:
4600 |
4601 *---------------------------------------------------------------------*/
4602 PROCEDURE CITI_IE_EFT_DOM_DOC (
4603 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4604 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4605 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
4606 p_is_online_val IN VARCHAR2,
4607 x_result OUT NOCOPY NUMBER)
4608 IS
4609
4610 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
4611 l_valResult BOOLEAN;
4612 l_valid NUMBER := 0;
4613 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4614 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4615
4616 BEGIN
4617
4618 -- Initializing the document record
4619 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
4620
4621 l_docErrorRec.validation_set_code := p_validation_set_code;
4622 l_docErrorRec.transaction_id := p_document_id;
4623 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
4624 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
4625 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
4626 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
4627
4628 -- Validate transaction code
4629 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4630 'DELIVERY_CHANNEL_CODE',
4631 l_document_rec.delivery_channel_code,
4632 'INDELIV',
4633 'IE',
4634 null,
4635 l_valResult,
4636 l_docErrorRec);
4637
4638 IF (l_valResult = FALSE) THEN
4639 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4640 l_valid := 1;
4641 END IF;
4642
4643 -- Inserting errors into IBY_TRANSACTION_ERRORS
4644 IF (l_valid = 1) THEN
4645 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
4646 END IF;
4647
4648 -- Return the Validation Result
4649 x_result := l_valid;
4650
4651 END CITI_IE_EFT_DOM_DOC;
4652
4653 /*--------------------------------------------------------------------
4654 | NAME:
4655 | CITI_IT_EFT_DOM_PAYEE
4656 |
4657 | PURPOSE:
4658 | Citibank Italian domestic EFT payee validation
4659 |
4660 | PARAMETERS:
4661 | IN
4662 |
4663 |
4664 | OUT
4665 |
4666 |
4667 | RETURNS:
4668 |
4669 | NOTES:
4670 |
4671 *---------------------------------------------------------------------*/
4672 PROCEDURE CITI_IT_EFT_DOM_PAYEE (
4673 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4674 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4675 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
4676 p_is_online_val IN VARCHAR2,
4677 x_result OUT NOCOPY NUMBER)
4678 IS
4679
4680 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
4681 l_valResult BOOLEAN;
4682 l_valid NUMBER := 0;
4683 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4684 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4685
4686 BEGIN
4687
4688 -- Initializing the document record
4689 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
4690
4691 l_docErrorRec.validation_set_code := p_validation_set_code;
4692 l_docErrorRec.transaction_id := p_document_id;
4693 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
4694 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
4695 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
4696 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
4697
4698 -- Validate target name
4699 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4700 'PAYEE_PARTY_NAME',
4701 l_document_rec.payee_party_name,
4702 'MAXLENGTH',
4703 null,
4704 30,
4705 l_valResult,
4706 l_docErrorRec);
4707
4708 IF (l_valResult = FALSE) THEN
4709 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4710 l_valid := 1;
4711 END IF;
4712
4713 -- Validate target postal code
4714 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4715 'PAYEE_PARTY_SITE_POSTAL',
4716 l_document_rec.payee_party_postal,
4717 'MAXLENGTH',
4718 null,
4719 5,
4720 l_valResult,
4721 l_docErrorRec);
4722
4723 IF (l_valResult = FALSE) THEN
4724 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4725 l_valid := 1;
4726 END IF;
4727
4728 -- Validate target bank code
4729 -- by CE
4730
4731 -- Validate target branch code
4732 -- by CE
4733
4734 -- Validate target bank account number
4735 -- by CE
4736
4737 -- Validate target bank account check digit
4738 -- by CE
4739
4740 -- Validate target bank name
4741 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4742 'EXT_BANK_NAME',
4743 l_document_rec.ext_bank_name,
4744 'MAXLENGTH',
4745 null,
4746 30,
4747 l_valResult,
4748 l_docErrorRec);
4749
4750 IF (l_valResult = FALSE) THEN
4751 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4752 l_valid := 1;
4753 END IF;
4754
4755 -- Validate target bank country code
4756 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4757 'EXT_BANK_BRANCH_COUNTRY',
4758 l_document_rec.ext_bank_branch_country,
4759 'STRIS',
4760 'IT',
4761 null,
4762 l_valResult,
4763 l_docErrorRec);
4764
4765 IF (l_valResult = FALSE) THEN
4766 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4767 l_valid := 1;
4768 END IF;
4769
4770 -- Insert errors into IBY_TRANSACTION_ERRORS
4771 IF (l_valid = 1) THEN
4772 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
4773 END IF;
4774
4775 -- Return the validation result
4776 x_result := l_valid;
4777
4778 END CITI_IT_EFT_DOM_PAYEE;
4779
4780 /*--------------------------------------------------------------------
4781 | NAME:
4782 | P_CITI_IT_EFT_DOM_PMT
4783 |
4784 | PURPOSE:
4785 | Citibank Italian domestic EFT payment validation
4786 |
4787 | PARAMETERS:
4788 | IN
4789 |
4790 |
4791 | OUT
4792 |
4793 |
4794 | RETURNS:
4795 |
4796 | NOTES:
4797 |
4798 *---------------------------------------------------------------------*/
4799 PROCEDURE P_CITI_IT_EFT_DOM_PMT (
4800 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4801 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4802 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
4803 p_is_online_val IN VARCHAR2,
4804 x_result OUT NOCOPY NUMBER)
4805 IS
4806
4807 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
4808 l_valResult BOOLEAN;
4809 l_valid NUMBER := 0;
4810 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4811 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4812
4813 BEGIN
4814
4815 -- Initializing the payment record
4816 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
4817
4818 l_docErrorRec.validation_set_code := p_validation_set_code;
4819 l_docErrorRec.transaction_id := p_payment_id;
4820 l_docErrorRec.transaction_type := 'PAYMENT';
4821 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
4822
4823 -- Validate transaction reference
4824 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4825 'PMT_ID',
4826 l_payment_rec.pmt_id,
4827 'MAXLENGTH',
4828 null,
4829 16,
4830 l_valResult,
4831 l_docErrorRec);
4832
4833 IF (l_valResult = FALSE) THEN
4834 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4835 l_valid := 1;
4836 END IF;
4837
4838 -- Validate transaction amount
4839 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4840 'PMT_AMOUNT',
4841 l_payment_rec.pmt_amount,
4842 'MAXLENGTH',
4843 null,
4844 13,
4845 l_valResult,
4846 l_docErrorRec);
4847
4848 IF (l_valResult = FALSE) THEN
4849 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4850 l_valid := 1;
4851 END IF;
4852
4853 -- Insert errors into IBY_TRANSACTION_ERRORS
4854 -- The first parameter p_is_online_val takes hardcoded value 'N'.
4855 IF (l_valid = 1) THEN
4856 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
4857 END IF;
4858
4859 -- Return the validation result
4860 x_result := l_valid;
4861
4862 END P_CITI_IT_EFT_DOM_PMT;
4863
4864 /*--------------------------------------------------------------------
4865 | NAME:
4866 | JP_EFT_ZENGIN_INTERNAL_BANK
4867 |
4868 | PURPOSE:
4869 | Japanese Zengin EFT internal bank validation
4870 |
4871 | PARAMETERS:
4872 | IN
4873 |
4874 |
4875 | OUT
4876 |
4877 |
4878 | RETURNS:
4879 |
4880 | NOTES:
4881 |
4882 *---------------------------------------------------------------------*/
4883 PROCEDURE JP_EFT_ZENGIN_INTERNAL_BANK (
4884 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4885 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4886 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
4887 p_is_online_val IN VARCHAR2,
4888 x_result OUT NOCOPY NUMBER)
4889 IS
4890
4891 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
4892 l_valResult BOOLEAN;
4893 l_valid NUMBER := 0;
4894 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4895 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4896
4897 BEGIN
4898
4899 -- Initializing the document record
4900 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id, l_document_rec, p_is_online_val);
4901
4902 l_docErrorRec.validation_set_code := p_validation_set_code;
4903 l_docErrorRec.transaction_id := p_document_id;
4904 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
4905 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
4906 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
4907 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
4908
4909 -- Validate internal bank code
4910 -- by CE
4911
4912 -- Validate internal branch code
4913 -- by CE
4914
4915 -- Validate internal bank kana name
4916 -- by CE
4917
4918 -- Validate internal bank branch kana name
4919 -- by CE
4920
4921 -- Validate internal bank account number
4922 -- by CE
4923
4924 -- Validate internal bank account type
4925 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4926 'INT_BANK_ACC_TYPE',
4927 '+'||substr(l_document_rec.int_bank_acc_type, 1, 1)||'+',
4928 'INSET',
4929 '+1+2+4+9+',
4930 null,
4931 l_valResult,
4932 l_docErrorRec);
4933
4934 IF (l_valResult = FALSE) THEN
4935 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4936 l_valid := 1;
4937 END IF;
4938
4939 -- Validate internal bank account holder name alternate
4940 -- by CE
4941
4942 -- Validate EFT requester id
4943 IBY_VALIDATIONSETS_PUB.evaluateCondition(
4944 'INT_EFT_USER_NUMBER',
4945 l_document_rec.int_eft_user_number,
4946 'DIGITSONLY',
4947 null,
4948 null,
4949 l_valResult,
4950 l_docErrorRec);
4951
4952 IF (l_valResult = FALSE) THEN
4953 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
4954 l_valid := 1;
4955 END IF;
4956
4957 -- Insert errors into IBY_TRANSACTION_ERRORS
4958 IF (l_valid = 1) THEN
4959 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
4960 END IF;
4961
4962 -- Return the validation result
4963 x_result := l_valid;
4964
4965 END JP_EFT_ZENGIN_INTERNAL_BANK;
4966
4967 /*--------------------------------------------------------------------
4968 | NAME:
4969 | JP_EFT_ZENGIN_PAYEE
4970 |
4971 | PURPOSE:
4972 | Japanese Zengin EFT payee validation
4973 |
4974 | PARAMETERS:
4975 | IN
4976 |
4977 |
4978 | OUT
4979 |
4980 |
4981 | RETURNS:
4982 |
4983 | NOTES:
4984 |
4985 *---------------------------------------------------------------------*/
4986 PROCEDURE JP_EFT_ZENGIN_PAYEE (
4987 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
4988 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
4989 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
4990 p_is_online_val IN VARCHAR2,
4991 x_result OUT NOCOPY NUMBER)
4992 IS
4993
4994 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
4995 l_valResult BOOLEAN;
4996 l_valid NUMBER := 0;
4997 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
4998 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
4999
5000 BEGIN
5001
5002 -- Initializing the document record
5003 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id, l_document_rec, p_is_online_val);
5004
5005 l_docErrorRec.validation_set_code := p_validation_set_code;
5006 l_docErrorRec.transaction_id := p_document_id;
5007 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
5008 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
5009 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
5010 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
5011
5012 -- Validate supplier bank account id
5013 -- not coded.
5014
5015 -- Validate supplier bank code
5016 -- by CE
5017
5018 -- Validate supplier bank branch code
5019 -- by CE
5020
5021 -- Validate supplier bank kana name
5022 -- by CE
5023
5024 -- Validate supplier bank branch kana name
5025 -- by CE
5026
5027 -- Validate supplier bank account type
5028 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5029 'EXT_BANK_ACC_TYPE',
5030 '+'||substr(l_document_rec.ext_bank_acc_type, 1, 1)||'+',
5031 'INSET',
5032 '+1+2+4+9+',
5033 null,
5034 l_valResult,
5035 l_docErrorRec);
5036
5037 IF (l_valResult = FALSE) THEN
5038 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5039 l_valid := 1;
5040 END IF;
5041
5042 -- Validate supplier bank account number
5043 -- by CE
5044
5045 -- Validate supplier bank account name alternate
5046 -- by CE
5047
5048 -- Insert errors into IBY_TRANSACTION_ERRORS
5049 IF (l_valid = 1) THEN
5050 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
5051 END IF;
5052
5053 -- Return the validation result
5054 x_result := l_valid;
5055
5056 END JP_EFT_ZENGIN_PAYEE;
5057
5058 /*--------------------------------------------------------------------
5059 | NAME:
5060 | NO_EFT_DOM_DOC
5061 |
5062 | PURPOSE:
5063 | Norwegian domestic EFT document validation
5064 |
5065 | PARAMETERS:
5066 | IN
5067 |
5068 |
5069 | OUT
5070 |
5071 |
5072 | RETURNS:
5073 |
5074 | NOTES:
5075 | Bug 5571714: Unique Remittance Identifier (KID code) validation
5076 | for Norway.
5077 |
5078 *---------------------------------------------------------------------*/
5079 PROCEDURE NO_EFT_DOM_DOC (
5080 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5081 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5082 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
5083 p_is_online_val IN VARCHAR2,
5084 x_result OUT NOCOPY NUMBER)
5085 IS
5086
5087 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
5088 l_valResult BOOLEAN;
5089 l_valid NUMBER := 0;
5090 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5091 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5092
5093 BEGIN
5094
5095 -- Initializing the document record
5096 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
5097
5098 l_docErrorRec.validation_set_code := p_validation_set_code;
5099 l_docErrorRec.transaction_id := p_document_id;
5100 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
5101 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
5102 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
5103 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
5104
5105 -- Validate unique remittance identifier (KID Code)
5106 -- Bug 5571714: This function returns validity of the KID code. This
5107 -- code is picked up from /jedev/xxno/11.5/admin/sql/XXNOEC04.sql
5108
5109 xxno_chk_mod_10_11( l_document_rec.unique_remit_id_code
5110 , l_valResult
5111 , l_docErrorRec);
5112
5113 IF (l_valResult = FALSE) THEN
5114 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec,l_docErrorTab);
5115 l_valid := 1;
5116 END IF;
5117
5118 -- Inserting errors into IBY_TRANSACTION_ERRORS
5119 IF (l_valid = 1) THEN
5120 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
5121 END IF;
5122
5123 -- Return the Validation Result
5124 x_result := l_valid;
5125
5126 END NO_EFT_DOM_DOC;
5127
5128 /*--------------------------------------------------------------------
5129 | NAME:
5130 | CITI_NO_EFT_DOM_PAYEE
5131 |
5132 | PURPOSE:
5133 | Citibank Norwegian domestic EFT payee validation
5134 |
5135 | PARAMETERS:
5136 | IN
5137 |
5138 |
5139 | OUT
5140 |
5141 |
5142 | RETURNS:
5143 |
5144 | NOTES:
5145 |
5146 *---------------------------------------------------------------------*/
5147 PROCEDURE CITI_NO_EFT_DOM_PAYEE (
5148 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5149 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5150 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
5151 p_is_online_val IN VARCHAR2,
5152 x_result OUT NOCOPY NUMBER)
5153 IS
5154
5155 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
5156 l_valResult BOOLEAN;
5157 l_valid NUMBER := 0;
5158 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5159 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5160
5161 BEGIN
5162
5163 -- Initializing the document record
5164 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
5165
5166 l_docErrorRec.validation_set_code := p_validation_set_code;
5167 l_docErrorRec.transaction_id := p_document_id;
5168 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
5169 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
5170 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
5171 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
5172
5173 -- Validate target name
5174 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5175 'PAYEE_PARTY_NAME',
5176 l_document_rec.payee_party_name,
5177 'MAXLENGTH',
5178 null,
5179 35,
5180 l_valResult,
5181 l_docErrorRec);
5182
5183 IF (l_valResult = FALSE) THEN
5184 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5185 l_valid := 1;
5186 END IF;
5187
5188 -- Validate address line 3
5189 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5190 'PAYEE_PARTY_SITE_POSTAL',
5191 l_document_rec.payee_party_postal,
5192 'NOTNULL',
5193 null,
5194 null,
5195 l_valResult,
5196 l_docErrorRec);
5197
5198 IF (l_valResult = FALSE) THEN
5199 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5200 l_valid := 1;
5201 END IF;
5202
5203 -- Inserting errors into IBY_TRANSACTION_ERRORS
5204 IF (l_valid = 1) THEN
5205 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
5206 END IF;
5207
5208 -- Return the Validation Result
5209 x_result := l_valid;
5210
5211 END CITI_NO_EFT_DOM_PAYEE;
5212
5213 /*--------------------------------------------------------------------
5214 | NAME:
5215 | CITI_NO_EFT_DOM_DOC
5216 |
5217 | PURPOSE:
5218 | Citibank Norwegian domestic EFT document validation
5219 |
5220 | PARAMETERS:
5221 | IN
5222 |
5223 |
5224 | OUT
5225 |
5226 |
5227 | RETURNS:
5228 |
5229 | NOTES:
5230 |
5231 *---------------------------------------------------------------------*/
5232 PROCEDURE CITI_NO_EFT_DOM_DOC (
5233 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5234 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5235 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
5236 p_is_online_val IN VARCHAR2,
5237 x_result OUT NOCOPY NUMBER)
5238 IS
5239
5240 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
5241 l_valResult BOOLEAN;
5242 l_valid NUMBER := 0;
5243 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5244 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5245
5246 BEGIN
5247
5248 -- Initializing the document record
5249 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
5250
5251 l_docErrorRec.validation_set_code := p_validation_set_code;
5252 l_docErrorRec.transaction_id := p_document_id;
5253 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
5254 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
5255 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
5256 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
5257
5258 -- Validate transaction code
5259 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5260 'DELIVERY_CHANNEL_CODE',
5261 l_document_rec.delivery_channel_code,
5262 'INDELIV',
5263 'NO',
5264 null,
5265 l_valResult,
5266 l_docErrorRec);
5267
5268 IF (l_valResult = FALSE) THEN
5269 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec,l_docErrorTab);
5270 l_valid := 1;
5271 END IF;
5272
5273 /*
5274 -- Validate unique remittance identifier (KID Code)
5275 -- Bug 5571714: This function returns validity of the KID code. This
5276 -- code is picked up from /jedev/xxno/11.5/admin/sql/XXNOEC04.sql
5277
5278 xxno_chk_mod_10_11( l_document_rec.unique_remit_id_code
5279 , l_valResult
5280 , l_docErrorRec);
5281
5282 IF (l_valResult = FALSE) THEN
5283 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec,l_docErrorTab);
5284 l_valid := 1;
5285 END IF;
5286 */
5287
5288 -- Inserting errors into IBY_TRANSACTION_ERRORS
5289 IF (l_valid = 1) THEN
5290 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
5291 END IF;
5292
5293 -- Return the Validation Result
5294 x_result := l_valid;
5295
5296 END CITI_NO_EFT_DOM_DOC;
5297
5298 /*--------------------------------------------------------------------
5299 | NAME:
5300 | P_CITI_NO_EFT_DOM_PMT
5301 |
5302 | PURPOSE:
5303 | Citibank Norwegian domestic EFT payment validation
5304 |
5305 | PARAMETERS:
5306 | IN
5307 |
5308 |
5309 | OUT
5310 |
5311 |
5312 | RETURNS:
5313 |
5314 | NOTES:
5315 |
5316 *---------------------------------------------------------------------*/
5317 PROCEDURE P_CITI_NO_EFT_DOM_PMT (
5318 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5319 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5320 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
5321 p_is_online_val IN VARCHAR2,
5322 x_result OUT NOCOPY NUMBER)
5323 IS
5324
5325 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
5326 l_valResult BOOLEAN;
5327 l_valid NUMBER := 0;
5328 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5329 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5330
5331 BEGIN
5332
5333 -- Initializing the payment record
5334 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
5335
5336 l_docErrorRec.validation_set_code := p_validation_set_code;
5337 l_docErrorRec.transaction_id := p_payment_id;
5338 l_docErrorRec.transaction_type := 'PAYMENT';
5339 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
5340
5341 -- Validate transaction reference
5342 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5343 'PMT_ID',
5344 l_payment_rec.pmt_id,
5345 'MAXLENGTH',
5346 null,
5347 16,
5348 l_valResult,
5349 l_docErrorRec);
5350
5351 IF (l_valResult = FALSE) THEN
5352 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5353 l_valid := 1;
5354 END IF;
5355
5356 -- Inserting errors into IBY_TRANSACTION_ERRORS
5357 -- The first parameter p_is_online_val takes hardcoded value 'N'.
5358 IF (l_valid = 1) THEN
5359 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
5360 END IF;
5361
5362 -- Return the Validation Result
5363 x_result := l_valid;
5364
5365 END P_CITI_NO_EFT_DOM_PMT;
5366
5367 /*--------------------------------------------------------------------
5368 | NAME:
5369 | CITI_PL_EFT_MTMS_INTERNAL_BANK
5370 |
5371 | PURPOSE:
5372 | Citibank Polish MTMS EFT internal bank validation
5373 |
5374 | PARAMETERS:
5375 | IN
5376 |
5377 |
5378 | OUT
5379 |
5380 |
5381 | RETURNS:
5382 |
5383 | NOTES:
5384 |
5385 *---------------------------------------------------------------------*/
5386 PROCEDURE CITI_PL_EFT_MTMS_INTERNAL_BANK (
5387 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5388 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5389 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
5390 p_is_online_val IN VARCHAR2,
5391 x_result OUT NOCOPY NUMBER)
5392 IS
5393
5394 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
5395 l_valResult BOOLEAN;
5396 l_valid NUMBER := 0;
5397 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5398 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5399
5400 BEGIN
5401
5402 -- Initializing the document record with the Document Payables information
5403 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
5404
5405 l_docErrorRec.validation_set_code := p_validation_set_code;
5406 l_docErrorRec.transaction_id := p_document_id;
5407 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
5408 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
5409 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
5410 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
5411
5412 -- Validate payer bank account number
5413 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5414 'INT_BANK_ACC_IBAN',
5415 l_document_rec.int_bank_acc_iban,
5416 'NOTNULL',
5417 null,
5418 null,
5419 l_valResult,
5420 l_docErrorRec);
5421
5422 IF (l_valResult = FALSE) THEN
5423 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5424 'INT_BANK_ACC_NUM',
5425 l_document_rec.int_bank_acc_num,
5426 'EXACTLENGTH',
5427 null,
5428 10,
5429 l_valResult,
5430 l_docErrorRec);
5431
5432 IF (l_valResult = FALSE) THEN
5433 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5434 l_valid := 1;
5435 END IF;
5436 END IF;
5437
5438 -- Inserting errors into IBY_TRANSACTION_ERRORS
5439 IF (l_valid = 1) THEN
5440 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
5441 END IF;
5442
5443 -- Return the Validation Result
5444 x_result := l_valid;
5445
5446 END CITI_PL_EFT_MTMS_INTERNAL_BANK;
5447
5448 /*--------------------------------------------------------------------
5449 | NAME:
5450 | CITI_POLAND_EFT_MTMS_PAYEE
5451 |
5452 | PURPOSE:
5453 | Citibank Polish MTMS EFT payee validation
5454 |
5455 | PARAMETERS:
5456 | IN
5457 |
5458 |
5459 | OUT
5460 |
5461 |
5462 | RETURNS:
5463 |
5464 | NOTES:
5465 |
5466 *---------------------------------------------------------------------*/
5467 PROCEDURE CITI_PL_EFT_MTMS_PAYEE (
5468 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5469 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5470 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
5471 p_is_online_val IN VARCHAR2,
5472 x_result OUT NOCOPY NUMBER)
5473 IS
5474
5475 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
5476 l_valResult BOOLEAN;
5477 l_valid NUMBER := 0;
5478 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5479 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5480
5481 BEGIN
5482
5483 -- Initializing the document record
5484 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
5485
5486 l_docErrorRec.validation_set_code := p_validation_set_code;
5487 l_docErrorRec.transaction_id := p_document_id;
5488 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
5489 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
5490 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
5491 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
5492
5493 -- Validate supplier bank number
5494 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5495 'EXT_BANK_ACC_IBAN',
5496 l_document_rec.ext_bank_acc_iban,
5497 'NOTNULL',
5498 null,
5499 null,
5500 l_valResult,
5501 l_docErrorRec);
5502
5503 IF (l_valResult = FALSE) THEN
5504 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5505 'EXT_BANK_NUM',
5506 l_document_rec.ext_bank_num,
5507 'NOTNULL',
5508 null,
5509 null,
5510 l_valResult,
5511 l_docErrorRec);
5512
5513 IF (l_valResult = FALSE) THEN
5514 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5515 l_valid := 1;
5516 END IF;
5517 END IF;
5518
5519 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5520 'EXT_BANK_ACC_IBAN',
5521 l_document_rec.ext_bank_acc_iban,
5522 'MAXLENGTH',
5523 null,
5524 8,
5525 l_valResult,
5526 l_docErrorRec);
5527
5528 IF (l_valResult = FALSE) THEN
5529 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5530 'EXT_BANK_NUM',
5531 l_document_rec.ext_bank_num,
5532 'MAXLENGTH',
5533 null,
5534 8,
5535 l_valResult,
5536 l_docErrorRec);
5537
5538 IF (l_valResult = FALSE) THEN
5539 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5540 l_valid := 1;
5541 END IF;
5542 END IF;
5543
5544 -- Validate supplier name
5545 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5546 'PAYEE_PARTY_NAME',
5547 l_document_rec.payee_party_name,
5548 'MAXLENGTH',
5549 null,
5550 35,
5551 l_valResult,
5552 l_docErrorRec);
5553
5554 IF (l_valResult = FALSE) THEN
5555 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5556 l_valid := 1;
5557 END IF;
5558
5559 IF (l_valResult = FALSE) THEN
5560 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5561 l_valid := 1;
5562 END IF;
5563
5564 -- Validate supplier site address
5565 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5566 'PAYEE_PARTY_SITE_ADDR1',
5567 l_document_rec.payee_party_addr1 || l_document_rec.payee_party_city ||
5568 l_document_rec.payee_party_postal,
5569 'MAXLENGTH',
5570 null,
5571 35,
5572 l_valResult,
5573 l_docErrorRec);
5574
5575 IF (l_valResult = FALSE) THEN
5576 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5577 l_valid := 1;
5578 END IF;
5579
5580 -- Inserting errors into IBY_TRANSACTION_ERRORS
5581 IF (l_valid = 1) THEN
5582 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
5583 END IF;
5584
5585 -- Return the Validation Result
5586 x_result := l_valid;
5587
5588 END CITI_PL_EFT_MTMS_PAYEE;
5589
5590 /*--------------------------------------------------------------------
5591 | NAME:
5592 | P_CITI_PL_EFT_MTMS_PMT
5593 |
5594 | PURPOSE:
5595 | Citibank Polish MTMS EFT payment validation
5596 |
5597 | PARAMETERS:
5598 | IN
5599 |
5600 |
5601 | OUT
5602 |
5603 |
5604 | RETURNS:
5605 |
5606 | NOTES:
5607 |
5608 *---------------------------------------------------------------------*/
5609 PROCEDURE P_CITI_PL_EFT_MTMS_PMT (
5610 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5611 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5612 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
5613 p_is_online_val IN VARCHAR2,
5614 x_result OUT NOCOPY NUMBER)
5615 IS
5616
5617 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
5618 l_valResult BOOLEAN;
5619 l_valid NUMBER := 0;
5620 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5621 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5622
5623 l_max_payment_amt number;
5624
5625 BEGIN
5626
5627 -- Initializing the payment record
5628 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
5629
5630 l_docErrorRec.validation_set_code := p_validation_set_code;
5631 l_docErrorRec.transaction_id := p_payment_id;
5632 l_docErrorRec.transaction_type := 'PAYMENT';
5633 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
5634
5635 -- Validate payment amount
5636 IBY_VALIDATIONSETS_PUB.getParamValue(
5637 p_validation_assign_id,
5638 p_validation_set_code,
5639 'MAX_PAYMENT_AMOUNT',
5640 l_max_payment_amt );
5641
5642 -- Validate transaction amount
5643 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5644 'PMT_AMOUNT',
5645 l_payment_rec.pmt_amount,
5646 'LESSEQUAL',
5647 null,
5648 l_max_payment_amt,
5649 l_valResult,
5650 l_docErrorRec);
5651
5652 IF (l_valResult = FALSE) THEN
5653 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5654 l_valid := 1;
5655 END IF;
5656
5657 -- Validate concatenated list of invoice numbers
5658 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5659 'PMT_DETAIL',
5660 l_payment_rec.pmt_detail,
5661 'MAXLENGTH',
5662 null,
5663 140,
5664 l_valResult,
5665 l_docErrorRec);
5666
5667 IF (l_valResult = FALSE) THEN
5668 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5669 l_valid := 1;
5670 END IF;
5671
5672 -- Inserting errors into IBY_TRANSACTION_ERRORS
5673 -- The first parameter p_is_online_val takes hardcoded value 'N'.
5674 IF (l_valid = 1) THEN
5675 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
5676 END IF;
5677
5678 -- Return the Validation Result
5679 x_result := l_valid;
5680
5681 END P_CITI_PL_EFT_MTMS_PMT;
5682
5683 /*--------------------------------------------------------------------
5684 | NAME:
5685 | PEKAO_PL_WIRE_TR_INTERNAL_BANK
5686 |
5687 | PURPOSE:
5688 | Pekao Polish transfer wire internal bank validation
5689 |
5690 | PARAMETERS:
5691 | IN
5692 |
5693 |
5694 | OUT
5695 |
5696 |
5697 | RETURNS:
5698 |
5699 | NOTES:
5700 |
5701 *---------------------------------------------------------------------*/
5702 PROCEDURE PEKAO_PL_WIRE_TR_INTERNAL_BANK (
5703 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5704 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5705 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
5706 p_is_online_val IN VARCHAR2,
5707 x_result OUT NOCOPY NUMBER)
5708 IS
5709
5710 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
5711 l_valResult BOOLEAN;
5712 l_valid NUMBER := 0;
5713 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5714 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5715
5716 BEGIN
5717
5718 -- Initializing the document record with the Document Payables information
5719 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
5720
5721 l_docErrorRec.validation_set_code := p_validation_set_code;
5722 l_docErrorRec.transaction_id := p_document_id;
5723 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
5724 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
5725 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
5726 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
5727
5728 -- Validate payer bank account number
5729 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5730 'INT_BANK_ACC_IBAN',
5731 l_document_rec.int_bank_acc_iban,
5732 'NOTNULL',
5733 null,
5734 null,
5735 l_valResult,
5736 l_docErrorRec);
5737
5738 IF (l_valResult = FALSE) THEN
5739 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5740 'INT_BANK_ACC_NUM',
5741 l_document_rec.int_bank_acc_num,
5742 'MAXLENGTH',
5743 null,
5744 34,
5745 l_valResult,
5746 l_docErrorRec);
5747
5748 IF (l_valResult = FALSE) THEN
5749 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5750 l_valid := 1;
5751 END IF;
5752 END IF;
5753
5754 -- Inserting errors into IBY_TRANSACTION_ERRORS
5755 IF (l_valid = 1) THEN
5756 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
5757 END IF;
5758
5759 -- Return the Validation Result
5760 x_result := l_valid;
5761
5762 END PEKAO_PL_WIRE_TR_INTERNAL_BANK;
5763
5764 /*--------------------------------------------------------------------
5765 | NAME:
5766 | PEKAO_PL_WIRE_TR_PAYEE
5767 |
5768 | PURPOSE:
5769 | PeKao Polish transfer wire payee validation
5770 |
5771 | PARAMETERS:
5772 | IN
5773 |
5774 |
5775 | OUT
5776 |
5777 |
5778 | RETURNS:
5779 |
5780 | NOTES:
5781 |
5782 *---------------------------------------------------------------------*/
5783 PROCEDURE PEKAO_PL_WIRE_TR_PAYEE (
5784 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5785 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5786 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
5787 p_is_online_val IN VARCHAR2,
5788 x_result OUT NOCOPY NUMBER)
5789 IS
5790
5791 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
5792 l_valResult BOOLEAN;
5793 l_valid NUMBER := 0;
5794 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5795 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5796
5797 BEGIN
5798
5799 -- Initializing the document record
5800 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
5801
5802 l_docErrorRec.validation_set_code := p_validation_set_code;
5803 l_docErrorRec.transaction_id := p_document_id;
5804 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
5805 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
5806 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
5807 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
5808
5809 -- Validate supplier bank number
5810 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5811 'EXT_BANK_ACC_IBAN',
5812 l_document_rec.ext_bank_acc_iban,
5813 'NOTNULL',
5814 null,
5815 null,
5816 l_valResult,
5817 l_docErrorRec);
5818
5819 IF (l_valResult = FALSE) THEN
5820 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5821 'EXT_BANK_NUM',
5822 l_document_rec.ext_bank_num,
5823 'NOTNULL',
5824 null,
5825 null,
5826 l_valResult,
5827 l_docErrorRec);
5828
5829 IF (l_valResult = FALSE) THEN
5830 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5831 l_valid := 1;
5832 END IF;
5833 END IF;
5834
5835 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5836 'EXT_BANK_ACC_IBAN',
5837 l_document_rec.ext_bank_acc_iban,
5838 'MAXLENGTH',
5839 null,
5840 35,
5841 l_valResult,
5842 l_docErrorRec);
5843
5844 IF (l_valResult = FALSE) THEN
5845 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5846 'EXT_BANK_NUM',
5847 l_document_rec.ext_bank_num,
5848 'MAXLENGTH',
5849 null,
5850 35,
5851 l_valResult,
5852 l_docErrorRec);
5853
5854 IF (l_valResult = FALSE) THEN
5855 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5856 l_valid := 1;
5857 END IF;
5858 END IF;
5859
5860 -- Inserting errors into IBY_TRANSACTION_ERRORS
5861 IF (l_valid = 1) THEN
5862 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
5863 END IF;
5864
5865 -- Return the Validation Result
5866 x_result := l_valid;
5867
5868 END PEKAO_PL_WIRE_TR_PAYEE;
5869
5870 /*--------------------------------------------------------------------
5871 | NAME:
5872 | PEKAO_PL_WIRE_TR_DOC
5873 |
5874 | PURPOSE:
5875 | Pekao Polish transfer wire document validation
5876 |
5877 | PARAMETERS:
5878 | IN
5879 |
5880 |
5881 | OUT
5882 |
5883 |
5884 | RETURNS:
5885 |
5886 | NOTES:
5887 |
5888 *---------------------------------------------------------------------*/
5889 PROCEDURE PEKAO_PL_WIRE_TR_DOC (
5890 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5891 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5892 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
5893 p_is_online_val IN VARCHAR2,
5894 x_result OUT NOCOPY NUMBER)
5895 IS
5896
5897 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
5898 l_valResult BOOLEAN;
5899 l_valid NUMBER := 0;
5900 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5901 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5902
5903 BEGIN
5904
5905 -- Initializing the document record with the Document Payables information
5906 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
5907
5908 l_docErrorRec.validation_set_code := p_validation_set_code;
5909 l_docErrorRec.transaction_id := p_document_id;
5910 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
5911 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
5912 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
5913 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
5914
5915 -- Validate invoice reference ...
5916
5917 -- Inserting errors into IBY_TRANSACTION_ERRORS
5918 IF (l_valid = 1) THEN
5919 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
5920 END IF;
5921
5922 -- Return the Validation Result
5923 x_result := l_valid;
5924
5925 END PEKAO_PL_WIRE_TR_DOC;
5926
5927 /*--------------------------------------------------------------------
5928 | NAME:
5929 | P_PEKAO_PL_WIRE_TR_PMT
5930 |
5931 | PURPOSE:
5932 | PeKao Polish transfer wire payment validation
5933 |
5934 | PARAMETERS:
5935 | IN
5936 |
5937 |
5938 | OUT
5939 |
5940 |
5941 | RETURNS:
5942 |
5943 | NOTES:
5944 |
5945 *---------------------------------------------------------------------*/
5946 PROCEDURE P_PEKAO_PL_WIRE_TR_PMT (
5947 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
5948 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
5949 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
5950 p_is_online_val IN VARCHAR2,
5951 x_result OUT NOCOPY NUMBER)
5952 IS
5953
5954 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
5955 l_valResult BOOLEAN;
5956 l_valid NUMBER := 0;
5957 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
5958 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
5959
5960 l_max_payment_amt number;
5961
5962 BEGIN
5963
5964 -- Initializing the payment record
5965 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
5966
5967 l_docErrorRec.validation_set_code := p_validation_set_code;
5968 l_docErrorRec.transaction_id := p_payment_id;
5969 l_docErrorRec.transaction_type := 'PAYMENT';
5970 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
5971
5972 -- Validate payment amount
5973 IBY_VALIDATIONSETS_PUB.getParamValue(
5974 p_validation_assign_id,
5975 p_validation_set_code,
5976 'MAX_PAYMENT_AMOUNT',
5977 l_max_payment_amt );
5978
5979 -- Validate transaction amount
5980 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5981 'PMT_AMOUNT',
5982 l_payment_rec.pmt_amount,
5983 'LESSEQUAL',
5984 null,
5985 l_max_payment_amt,
5986 l_valResult,
5987 l_docErrorRec);
5988
5989 IF (l_valResult = FALSE) THEN
5990 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
5991 l_valid := 1;
5992 END IF;
5993
5994 -- Validate concatenated list of invoice numbers
5995 IBY_VALIDATIONSETS_PUB.evaluateCondition(
5996 'PMT_DETAIL',
5997 l_payment_rec.pmt_detail,
5998 'MAXLENGTH',
5999 null,
6000 140,
6001 l_valResult,
6002 l_docErrorRec);
6003
6004 IF (l_valResult = FALSE) THEN
6005 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6006 l_valid := 1;
6007 END IF;
6008
6009 -- Inserting errors into IBY_TRANSACTION_ERRORS
6010 -- The first parameter p_is_online_val takes hardcoded value 'N'.
6011 IF (l_valid = 1) THEN
6012 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
6013 END IF;
6014
6015 -- Return the Validation Result
6016 x_result := l_valid;
6017
6018 END P_PEKAO_PL_WIRE_TR_PMT;
6019
6020 /*--------------------------------------------------------------------
6021 | NAME:
6022 | PEKAO_PL_WIRE_ST_INTERNAL_BANK
6023 |
6024 | PURPOSE:
6025 | Pekao Polish standard wire internal bank validation
6026 |
6027 | PARAMETERS:
6028 | IN
6029 |
6030 |
6031 | OUT
6032 |
6033 |
6034 | RETURNS:
6035 |
6036 | NOTES:
6037 |
6038 *---------------------------------------------------------------------*/
6039 PROCEDURE PEKAO_PL_WIRE_ST_INTERNAL_BANK (
6040 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6041 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6042 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
6043 p_is_online_val IN VARCHAR2,
6044 x_result OUT NOCOPY NUMBER)
6045 IS
6046
6047 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
6048 l_valResult BOOLEAN;
6049 l_valid NUMBER := 0;
6050 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6051 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6052
6053 BEGIN
6054
6055 -- Initializing the document record with the Document Payables information
6056 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
6057
6058 l_docErrorRec.validation_set_code := p_validation_set_code;
6059 l_docErrorRec.transaction_id := p_document_id;
6060 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
6061 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
6062 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
6063 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
6064
6065 -- Validate payer bank account number
6066 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6067 'INT_BANK_ACC_IBAN',
6068 l_document_rec.int_bank_acc_iban,
6069 'NOTNULL',
6070 null,
6071 null,
6072 l_valResult,
6073 l_docErrorRec);
6074
6075 IF (l_valResult = FALSE) THEN
6076 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6077 'INT_BANK_ACC_NUM',
6078 l_document_rec.int_bank_acc_num,
6079 'MAXLENGTH',
6080 null,
6081 34,
6082 l_valResult,
6083 l_docErrorRec);
6084
6085 IF (l_valResult = FALSE) THEN
6086 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6087 l_valid := 1;
6088 END IF;
6089 END IF;
6090
6091 -- Inserting errors into IBY_TRANSACTION_ERRORS
6092 IF (l_valid = 1) THEN
6093 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
6094 END IF;
6095
6096 -- Return the Validation Result
6097 x_result := l_valid;
6098
6099 END PEKAO_PL_WIRE_ST_INTERNAL_BANK;
6100
6101 /*--------------------------------------------------------------------
6102 | NAME:
6103 | PEKAO_PL_WIRE_ST_PAYEE
6104 |
6105 | PURPOSE:
6106 | PeKao Polish standard wire payee validation
6107 |
6108 | PARAMETERS:
6109 | IN
6110 |
6111 |
6112 | OUT
6113 |
6114 |
6115 | RETURNS:
6116 |
6117 | NOTES:
6118 |
6119 *---------------------------------------------------------------------*/
6120 PROCEDURE PEKAO_PL_WIRE_ST_PAYEE (
6121 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6122 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6123 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
6124 p_is_online_val IN VARCHAR2,
6125 x_result OUT NOCOPY NUMBER)
6126 IS
6127
6128 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
6129 l_valResult BOOLEAN;
6130 l_valid NUMBER := 0;
6131 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6132 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6133
6134 BEGIN
6135
6136 -- Initializing the document record
6137 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
6138
6139 l_docErrorRec.validation_set_code := p_validation_set_code;
6140 l_docErrorRec.transaction_id := p_document_id;
6141 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
6142 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
6143 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
6144 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
6145
6146 -- Validate supplier bank number
6147 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6148 'EXT_BANK_ACC_IBAN',
6149 l_document_rec.ext_bank_acc_iban,
6150 'NOTNULL',
6151 null,
6152 null,
6153 l_valResult,
6154 l_docErrorRec);
6155
6156 IF (l_valResult = FALSE) THEN
6157 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6158 'EXT_BANK_NUM',
6159 l_document_rec.ext_bank_num,
6160 'NOTNULL',
6161 null,
6162 null,
6163 l_valResult,
6164 l_docErrorRec);
6165
6166 IF (l_valResult = FALSE) THEN
6167 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6168 l_valid := 1;
6169 END IF;
6170 END IF;
6171
6172 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6173 'EXT_BANK_ACC_IBAN',
6174 l_document_rec.ext_bank_acc_iban,
6175 'MAXLENGTH',
6176 null,
6177 35,
6178 l_valResult,
6179 l_docErrorRec);
6180
6181 IF (l_valResult = FALSE) THEN
6182 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6183 'EXT_BANK_NUM',
6184 l_document_rec.ext_bank_num,
6185 'MAXLENGTH',
6186 null,
6187 35,
6188 l_valResult,
6189 l_docErrorRec);
6190
6191 IF (l_valResult = FALSE) THEN
6192 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6193 l_valid := 1;
6194 END IF;
6195 END IF;
6196
6197 -- Inserting errors into IBY_TRANSACTION_ERRORS
6198 IF (l_valid = 1) THEN
6199 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
6200 END IF;
6201
6202 -- Return the Validation Result
6203 x_result := l_valid;
6204
6205 END PEKAO_PL_WIRE_ST_PAYEE;
6206
6207 /*--------------------------------------------------------------------
6208 | NAME:
6209 | PEKAO_PL_WIRE_ST_DOC
6210 |
6211 | PURPOSE:
6212 | Pekao Polish standard wire document validation
6213 |
6214 | PARAMETERS:
6215 | IN
6216 |
6217 |
6218 | OUT
6219 |
6220 |
6221 | RETURNS:
6222 |
6223 | NOTES:
6224 |
6225 *---------------------------------------------------------------------*/
6226 PROCEDURE PEKAO_PL_WIRE_ST_DOC (
6227 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6228 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6229 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
6230 p_is_online_val IN VARCHAR2,
6231 x_result OUT NOCOPY NUMBER)
6232 IS
6233
6234 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
6235 l_valResult BOOLEAN;
6236 l_valid NUMBER := 0;
6237 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6238 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6239
6240 BEGIN
6241
6242 -- Initializing the document record with the Document Payables information
6243 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
6244
6245 l_docErrorRec.validation_set_code := p_validation_set_code;
6246 l_docErrorRec.transaction_id := p_document_id;
6247 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
6248 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
6249 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
6250 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
6251
6252 -- Validate invoice document sequence numbers
6253
6254 -- Inserting errors into IBY_TRANSACTION_ERRORS
6255 IF (l_valid = 1) THEN
6256 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
6257 END IF;
6258
6259 -- Return the Validation Result
6260 x_result := l_valid;
6261
6262 END PEKAO_PL_WIRE_ST_DOC;
6263
6264 /*--------------------------------------------------------------------
6265 | NAME:
6266 | CITI_PT_EFT_DOM_PAYEE
6267 |
6268 | PURPOSE:
6269 | Citibank Portuguese domestic EFT payee validation
6270 |
6271 | PARAMETERS:
6272 | IN
6273 |
6274 |
6275 | OUT
6276 |
6277 |
6278 | RETURNS:
6279 |
6280 | NOTES:
6281 |
6282 *---------------------------------------------------------------------*/
6283 PROCEDURE CITI_PT_EFT_DOM_PAYEE (
6284 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6285 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6286 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
6287 p_is_online_val IN VARCHAR2,
6288 x_result OUT NOCOPY NUMBER)
6289 IS
6290
6291 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
6292 l_valResult BOOLEAN;
6293 l_valid NUMBER := 0;
6294 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6295 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6296
6297 BEGIN
6298
6299 -- Initializing the document record
6300 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
6301
6302 l_docErrorRec.validation_set_code := p_validation_set_code;
6303 l_docErrorRec.transaction_id := p_document_id;
6304 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
6305 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
6306 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
6307 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
6308
6309 -- Validate target name
6310 if l_document_rec.delivery_channel_code = '0050' then
6311 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6312 'PAYEE_PARTY_NAME',
6313 l_document_rec.payee_party_name,
6314 'MAXLENGTH',
6315 null,
6316 35,
6317 l_valResult,
6318 l_docErrorRec);
6319
6320 IF (l_valResult = FALSE) THEN
6321 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6322 l_valid := 1;
6323 END IF;
6324 else
6325 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6326 'PAYEE_PARTY_NAME',
6327 l_document_rec.payee_party_name,
6328 'MAXLENGTH',
6329 null,
6330 27,
6331 l_valResult,
6332 l_docErrorRec);
6333
6334 IF (l_valResult = FALSE) THEN
6335 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6336 l_valid := 1;
6337 END IF;
6338 end if;
6339
6340 -- Validate target bank country code
6341 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6342 'EXT_BANK_BRANCH_COUNTRY',
6343 l_document_rec.ext_bank_branch_country,
6344 'STRIS',
6345 'PT',
6346 null,
6347 l_valResult,
6348 l_docErrorRec);
6349
6350 IF (l_valResult = FALSE) THEN
6351 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6352 l_valid := 1;
6353 END IF;
6354
6355 -- Inserting errors into IBY_TRANSACTION_ERRORS
6356 IF (l_valid = 1) THEN
6357 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
6358 END IF;
6359
6360 -- Return the Validation Result
6361 x_result := l_valid;
6362
6363 END CITI_PT_EFT_DOM_PAYEE;
6364
6365 /*--------------------------------------------------------------------
6366 | NAME:
6367 | CITI_PT_EFT_DOM_DOC
6368 |
6369 | PURPOSE:
6370 | Citibank Portuguese domestic EFT document validation
6371 |
6372 | PARAMETERS:
6373 | IN
6374 |
6375 |
6376 | OUT
6377 |
6378 |
6379 | RETURNS:
6380 |
6381 | NOTES:
6382 |
6383 *---------------------------------------------------------------------*/
6384 PROCEDURE CITI_PT_EFT_DOM_DOC (
6385 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6386 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6387 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
6388 p_is_online_val IN VARCHAR2,
6389 x_result OUT NOCOPY NUMBER)
6390 IS
6391
6392 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
6393 l_valResult BOOLEAN;
6394 l_valid NUMBER := 0;
6395 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6396 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6397
6398 BEGIN
6399
6400 -- Initializing the document record
6401 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
6402
6403 l_docErrorRec.validation_set_code := p_validation_set_code;
6404 l_docErrorRec.transaction_id := p_document_id;
6405 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
6406 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
6407 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
6408 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
6409
6410 -- Validate transaction code
6411 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6412 'DELIVERY_CHANNEL_CODE',
6413 l_document_rec.delivery_channel_CODE,
6414 'INDELIV',
6415 'PT',
6416 null,
6417 l_valResult,
6418 l_docErrorRec);
6419
6420 IF (l_valResult = FALSE) THEN
6421 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6422 l_valid := 1;
6423 END IF;
6424
6425 -- Inserting errors into IBY_TRANSACTION_ERRORS
6426 IF (l_valid = 1) THEN
6427 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
6428 END IF;
6429
6430 -- Return the Validation Result
6431 x_result := l_valid;
6432
6433 END CITI_PT_EFT_DOM_DOC;
6434
6435 /*--------------------------------------------------------------------
6436 | NAME:
6437 | P_CITI_PT_EFT_DOM_PMT
6438 |
6439 | PURPOSE:
6440 | Citibank Portuguese domestic EFT payment validation
6441 |
6442 | PARAMETERS:
6443 | IN
6444 |
6445 |
6446 | OUT
6447 |
6448 |
6449 | RETURNS:
6450 |
6451 | NOTES:
6452 |
6453 *---------------------------------------------------------------------*/
6454 PROCEDURE P_CITI_PT_EFT_DOM_PMT (
6455 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6456 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6457 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
6458 p_is_online_val IN VARCHAR2,
6459 x_result OUT NOCOPY NUMBER)
6460 IS
6461
6462 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
6463 l_valResult BOOLEAN;
6464 l_valid NUMBER := 0;
6465 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6466 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6467
6468 BEGIN
6469
6470 -- Initializing the payment record
6471 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
6472
6473 l_docErrorRec.validation_set_code := p_validation_set_code;
6474 l_docErrorRec.transaction_id := p_payment_id;
6475 l_docErrorRec.transaction_type := 'PAYMENT';
6476 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
6477
6478 -- Validate transaction amount
6479 if l_payment_rec.pmt_delivery_channel_code = '0050' then
6480 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6481 'PMT_AMOUNT',
6482 l_payment_rec.pmt_amount,
6483 'MAXLENGTH',
6484 null,
6485 15,
6486 l_valResult,
6487 l_docErrorRec);
6488
6489 IF (l_valResult = FALSE) THEN
6490 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6491 l_valid := 1;
6492 END IF;
6493 else
6494 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6495 'PMT_AMOUNT',
6496 l_payment_rec.pmt_amount,
6497 'MAXLENGTH',
6498 null,
6499 11,
6500 l_valResult,
6501 l_docErrorRec);
6502
6503 IF (l_valResult = FALSE) THEN
6504 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6505 l_valid := 1;
6506 END IF;
6507 end if;
6508
6509 -- Inserting errors into IBY_TRANSACTION_ERRORS
6510 -- The first parameter p_is_online_val takes hardcoded value 'N'.
6511 IF (l_valid = 1) THEN
6512 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
6513 END IF;
6514
6515 -- Return the Validation Result
6516 x_result := l_valid;
6517
6518 END P_CITI_PT_EFT_DOM_PMT;
6519
6520 /*--------------------------------------------------------------------
6521 | NAME:
6522 | PT_CHECK_GEN
6523 |
6524 | PURPOSE:
6525 | Portuguese check generic validation
6526 |
6527 | PARAMETERS:
6528 | IN
6529 |
6530 |
6531 | OUT
6532 |
6533 |
6534 | RETURNS:
6535 |
6536 | NOTES:
6537 |
6538 *---------------------------------------------------------------------*/
6539 PROCEDURE PT_CHECK_GEN (
6540 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6541 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6542 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
6543 p_is_online_val IN VARCHAR2,
6544 x_result OUT NOCOPY NUMBER)
6545 IS
6546
6547 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
6548 l_valResult BOOLEAN;
6549 l_valid NUMBER := 0;
6550 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6551 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6552
6553 BEGIN
6554
6555 -- Initializing the document record
6556 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
6557
6558 l_docErrorRec.validation_set_code := p_validation_set_code;
6559 l_docErrorRec.transaction_id := p_document_id;
6560 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
6561 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
6562 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
6563 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
6564
6565 -- Validate first party office site
6566 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6567 'PAYER_LE_NAME',
6568 l_document_rec.payer_le_name,
6569 'NOTNULL',
6570 null,
6571 null,
6572 l_valResult,
6573 l_docErrorRec);
6574
6575 IF (l_valResult = FALSE) THEN
6576 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6577 l_valid := 1;
6578 END IF;
6579
6580 -- Insert errors into IBY_TRANSACTION_ERRORS
6581 IF (l_valid = 1) THEN
6582 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
6583 END IF;
6584
6585 -- Return the Validation Result
6586 x_result := l_valid;
6587
6588 END PT_CHECK_GEN;
6589
6590 /*--------------------------------------------------------------------
6591 | NAME:
6592 | CITI_SE_EFT_DOM_PAYEE
6593 |
6594 | PURPOSE:
6595 | Citibank Swedish domestic EFT payee
6596 |
6597 | PARAMETERS:
6598 | IN
6599 |
6600 |
6601 | OUT
6602 |
6603 |
6604 | RETURNS:
6605 |
6606 | NOTES:
6607 |
6608 *---------------------------------------------------------------------*/
6609 PROCEDURE CITI_SE_EFT_DOM_PAYEE (
6610 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6611 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6612 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
6613 p_is_online_val IN VARCHAR2,
6614 x_result OUT NOCOPY NUMBER)
6615 IS
6616
6617 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
6618 l_valResult BOOLEAN;
6619 l_valid NUMBER := 0;
6620 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6621 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6622
6623 BEGIN
6624
6625 -- Initializing the document record
6626 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
6627
6628 l_docErrorRec.validation_set_code := p_validation_set_code;
6629 l_docErrorRec.transaction_id := p_document_id;
6630 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
6631 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
6632 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
6633 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
6634
6635 -- Validate target name
6636 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6637 'PAYEE_PARTY_NAME',
6638 l_document_rec.payee_party_name,
6639 'MAXLENGTH',
6640 null,
6641 35,
6642 l_valResult,
6643 l_docErrorRec);
6644
6645 IF (l_valResult = FALSE) THEN
6646 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6647 l_valid := 1;
6648 END IF;
6649
6650 -- Validate target address line 1
6651 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6652 'PAYEE_PARTY_SITE_ADDR1',
6653 l_document_rec.payee_party_addr1,
6654 'MAXLENGTH',
6655 null,
6656 35,
6657 l_valResult,
6658 l_docErrorRec);
6659
6660 IF (l_valResult = FALSE) THEN
6661 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6662 l_valid := 1;
6663 END IF;
6664
6665 -- Validate target address line 2
6666 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6667 'PAYEE_PARTY_SITE_POSTAL',
6668 l_document_rec.payee_party_postal,
6669 'MAXLENGTH',
6670 null,
6671 5,
6672 l_valResult,
6673 l_docErrorRec);
6674
6675 IF (l_valResult = FALSE) THEN
6676 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6677 l_valid := 1;
6678 END IF;
6679
6680 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6681 'PAYEE_PARTY_SITE_POSTAL',
6682 l_document_rec.payee_party_postal,
6683 'DIGITSONLY',
6684 null,
6685 null,
6686 l_valResult,
6687 l_docErrorRec);
6688
6689 IF (l_valResult = FALSE) THEN
6690 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6691 l_valid := 1;
6692 END IF;
6693
6694 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6695 'PAYEE_PARTY_SITE_CITY',
6696 l_document_rec.payee_party_city,
6697 'NOTNULL',
6698 null,
6699 null,
6700 l_valResult,
6701 l_docErrorRec);
6702
6703 IF (l_valResult = FALSE) THEN
6704 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6705 l_valid := 1;
6706 END IF;
6707
6708 -- Validate target bank account number
6709 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6710 'EXT_BANK_ACC_NUM',
6711 l_document_rec.ext_bank_acc_num,
6712 'MAXLENGTH',
6713 null,
6714 12,
6715 l_valResult,
6716 l_docErrorRec);
6717
6718 IF (l_valResult = FALSE) THEN
6719 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6720 l_valid := 1;
6721 END IF;
6722
6723 -- Inserting errors into IBY_TRANSACTION_ERRORS
6724 IF (l_valid = 1) THEN
6725 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
6726 END IF;
6727
6728 -- Return the Validation Result
6729 x_result := l_valid;
6730
6731 END CITI_SE_EFT_DOM_PAYEE;
6732
6733 /*--------------------------------------------------------------------
6734 | NAME:
6735 | CITI_SE_EFT_DOM_DOC
6736 |
6737 | PURPOSE:
6738 | Citibank Swedish domestic EFT document validation
6739 |
6740 | PARAMETERS:
6741 | IN
6742 |
6743 |
6744 | OUT
6745 |
6746 |
6747 | RETURNS:
6748 |
6749 | NOTES:
6750 |
6751 *---------------------------------------------------------------------*/
6752 PROCEDURE CITI_SE_EFT_DOM_DOC (
6753 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6754 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6755 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
6756 p_is_online_val IN VARCHAR2,
6757 x_result OUT NOCOPY NUMBER)
6758 IS
6759
6760 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
6761 l_valResult BOOLEAN;
6762 l_valid NUMBER := 0;
6763 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6764 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6765
6766 BEGIN
6767
6768 -- Initializing the document record
6769 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
6770
6771 l_docErrorRec.validation_set_code := p_validation_set_code;
6772 l_docErrorRec.transaction_id := p_document_id;
6773 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
6774 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
6775 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
6776 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
6777
6778 -- Validate transaction code
6779 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6780 'DELIVERY_CHANNEL_CODE',
6781 l_document_rec.delivery_channel_CODE,
6782 'INDELIV',
6783 'SE',
6784 null,
6785 l_valResult,
6786 l_docErrorRec);
6787
6788 IF (l_valResult = FALSE) THEN
6789 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6790 l_valid := 1;
6791 END IF;
6792
6793 -- Inserting errors into IBY_TRANSACTION_ERRORS
6794 IF (l_valid = 1) THEN
6795 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
6796 END IF;
6797
6798 -- Return the Validation Result
6799 x_result := l_valid;
6800
6801 END CITI_SE_EFT_DOM_DOC;
6802
6803 /*--------------------------------------------------------------------
6804 | NAME:
6805 | P_CITI_SE_EFT_DOM_PMT
6806 |
6807 | PURPOSE:
6808 | Citibank Swedish domestic EFT payment validation
6809 |
6810 | PARAMETERS:
6811 | IN
6812 |
6813 |
6814 | OUT
6815 |
6816 |
6817 | RETURNS:
6818 |
6819 | NOTES:
6820 |
6821 *---------------------------------------------------------------------*/
6822 PROCEDURE P_CITI_SE_EFT_DOM_PMT (
6823 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6824 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6825 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
6826 p_is_online_val IN VARCHAR2,
6827 x_result OUT NOCOPY NUMBER)
6828 IS
6829
6830 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
6831 l_valResult BOOLEAN;
6832 l_valid NUMBER := 0;
6833 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6834 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6835
6836 BEGIN
6837
6838 -- Initializing the payment record
6839 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
6840
6841 l_docErrorRec.validation_set_code := p_validation_set_code;
6842 l_docErrorRec.transaction_id := p_payment_id;
6843 l_docErrorRec.transaction_type := 'PAYMENT';
6844 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
6845
6846 -- Validate payment currency
6847 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6848 'PMT_CURRENCY',
6849 l_payment_rec.pmt_currency,
6850 'STRIS',
6851 'SEK',
6852 null,
6853 l_valResult,
6854 l_docErrorRec);
6855
6856 IF (l_valResult = FALSE) THEN
6857 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6858 l_valid := 1;
6859 END IF;
6860
6861 -- Validate transaction reference
6862 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6863 'PMT_ID',
6864 l_payment_rec.pmt_id,
6865 'MAXLENGTH',
6866 null,
6867 16,
6868 l_valResult,
6869 l_docErrorRec);
6870
6871 IF (l_valResult = FALSE) THEN
6872 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6873 l_valid := 1;
6874 END IF;
6875
6876 -- Inserting errors into IBY_TRANSACTION_ERRORS
6877 -- The first parameter p_is_online_val takes hardcoded value 'N'.
6878 IF (l_valid = 1) THEN
6879 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
6880 END IF;
6881
6882 -- Return the Validation Result
6883 x_result := l_valid;
6884
6885 END P_CITI_SE_EFT_DOM_PMT;
6886
6887 /*--------------------------------------------------------------------
6888 | NAME:
6889 | SE_EFT_BANKGIRO_INLAND_DOC
6890 |
6891 | PURPOSE:
6892 | Swedish Bankgiro Inland EFT document validation
6893 |
6894 | PARAMETERS:
6895 | IN
6896 |
6897 |
6898 | OUT
6899 |
6900 |
6901 | RETURNS:
6902 |
6903 | NOTES:
6904 |
6905 *---------------------------------------------------------------------*/
6906 PROCEDURE SE_EFT_BANKGIRO_INLAND_DOC (
6907 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
6908 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
6909 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
6910 p_is_online_val IN VARCHAR2,
6911 x_result OUT NOCOPY NUMBER)
6912 IS
6913
6914 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
6915 l_valResult BOOLEAN;
6916 l_valid NUMBER := 0;
6917 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
6918 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
6919
6920 BEGIN
6921
6922 -- Initializing the document record
6923 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
6924
6925 l_docErrorRec.validation_set_code := p_validation_set_code;
6926 l_docErrorRec.transaction_id := p_document_id;
6927 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
6928 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
6929 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
6930 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
6931
6932 -- Validate payment currency
6933 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6934 'DOCUMENT_PAY_CURRENCY',
6935 l_document_rec.document_pay_currency,
6936 'STRIS',
6937 'SEK',
6938 null,
6939 l_valResult,
6940 l_docErrorRec);
6941
6942 IF (l_valResult = FALSE) THEN
6943 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6944 'DOCUMENT_PAY_CURRENCY',
6945 l_document_rec.document_pay_currency,
6946 'STRIS',
6947 'EUR',
6948 null,
6949 l_valResult,
6950 l_docErrorRec);
6951 END IF;
6952
6953 IF (l_valResult = FALSE) THEN
6954 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6955 l_valid := 1;
6956 END IF;
6957
6958 -- Validate payment type
6959 IBY_VALIDATIONSETS_PUB.evaluateCondition(
6960 'DELIVERY_CHANNEL_CODE',
6961 l_document_rec.delivery_channel_code,
6962 'STRISNOT',
6963 'CHECK',
6964 null,
6965 l_valResult,
6966 l_docErrorRec);
6967
6968 IF (l_valResult = FALSE) THEN
6969 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
6970 l_valid := 1;
6971 END IF;
6972
6973 -- Insert errors into IBY_TRANSACTION_ERRORS
6974 IF (l_valid = 1) THEN
6975 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
6976 END IF;
6977
6978 -- Return the Validation Result
6979 x_result := l_valid;
6980
6981 END SE_EFT_BANKGIRO_INLAND_DOC;
6982
6983 /*--------------------------------------------------------------------
6984 | NAME:
6985 | SE_EFT_BANKGIRO_UTLAND_DOC
6986 |
6987 | PURPOSE:
6988 | Swedish Bankgiro Utland SISU EFT document validation
6989 |
6990 | PARAMETERS:
6991 | IN
6992 |
6993 |
6994 | OUT
6995 |
6996 |
6997 | RETURNS:
6998 |
6999 | NOTES:
7000 |
7001 *---------------------------------------------------------------------*/
7002 PROCEDURE SE_EFT_BANKGIRO_UTLAND_SI_DOC (
7003 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7004 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7005 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
7006 p_is_online_val IN VARCHAR2,
7007 x_result OUT NOCOPY NUMBER)
7008 IS
7009
7010 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7011 l_valResult BOOLEAN;
7012 l_valid NUMBER := 0;
7013 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7014 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7015
7016 BEGIN
7017
7018 -- Initializing the document record
7019 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
7020
7021 l_docErrorRec.validation_set_code := p_validation_set_code;
7022 l_docErrorRec.transaction_id := p_document_id;
7023 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7024 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7025 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
7026 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
7027
7028 -- Validate payment type
7029 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7030 'DELIVERY_CHANNEL_CODE',
7031 '+'||l_document_rec.delivery_channel_code||'+',
7032 'NOTINSET',
7033 '+KONTOAVI+AVI+GIRO+',
7034 null,
7035 l_valResult,
7036 l_docErrorRec);
7037
7038 IF (l_valResult = FALSE) THEN
7039 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7040 l_valid := 1;
7041 END IF;
7042
7043 -- Insert errors into IBY_TRANSACTION_ERRORS
7044 IF (l_valid = 1) THEN
7045 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
7046 END IF;
7047
7048 -- Return the Validation Result
7049 x_result := l_valid;
7050
7051 END SE_EFT_BANKGIRO_UTLAND_SI_DOC;
7052
7053 /*--------------------------------------------------------------------
7054 | NAME:
7055 | SE_EFT_BANKGIRO_UTLAND_UT_DOC
7056 |
7057 | PURPOSE:
7058 | Swedish Bankgiro Utland UTLI EFT document validation
7059 |
7060 | PARAMETERS:
7061 | IN
7062 |
7063 |
7064 | OUT
7065 |
7066 |
7067 | RETURNS:
7068 |
7069 | NOTES:
7070 |
7071 *---------------------------------------------------------------------*/
7072 PROCEDURE SE_EFT_BANKGIRO_UTLAND_UT_DOC (
7073 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7074 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7075 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
7076 p_is_online_val IN VARCHAR2,
7077 x_result OUT NOCOPY NUMBER)
7078 IS
7079
7080 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7081 l_valResult BOOLEAN;
7082 l_valid NUMBER := 0;
7083 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7084 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7085
7086 BEGIN
7087
7088 -- Initializing the document record
7089 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
7090
7091 l_docErrorRec.validation_set_code := p_validation_set_code;
7092 l_docErrorRec.transaction_id := p_document_id;
7093 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7094 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7095 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
7096 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
7097
7098 -- Validate payment type
7099 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7100 'DELIVERY_CHANNEL_CODE',
7101 '+'||l_document_rec.delivery_channel_code||'+',
7102 'NOTINSET',
7103 '+KONTOAVI+AVI+GIRO+',
7104 null,
7105 l_valResult,
7106 l_docErrorRec);
7107
7108 IF (l_valResult = FALSE) THEN
7109 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7110 l_valid := 1;
7111 END IF;
7112
7113 -- Insert errors into IBY_TRANSACTION_ERRORS
7114 IF (l_valid = 1) THEN
7115 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
7116 END IF;
7117
7118 -- Return the Validation Result
7119 x_result := l_valid;
7120
7121 END SE_EFT_BANKGIRO_UTLAND_UT_DOC;
7122
7123 /*--------------------------------------------------------------------
7124 | NAME:
7125 | SE_EFT_POSTGIRO_INLAND_DOC
7126 |
7127 | PURPOSE:
7128 | Swedish Postgiro Inland EFT document validation
7129 |
7130 | PARAMETERS:
7131 | IN
7132 |
7133 |
7134 | OUT
7135 |
7136 |
7137 | RETURNS:
7138 |
7139 | NOTES:
7140 |
7141 *---------------------------------------------------------------------*/
7142 PROCEDURE SE_EFT_POSTGIRO_INLAND_DOC (
7143 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7144 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7145 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
7146 p_is_online_val IN VARCHAR2,
7147 x_result OUT NOCOPY NUMBER)
7148 IS
7149
7150 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7151 l_valResult BOOLEAN;
7152 l_valid NUMBER := 0;
7153 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7154 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7155
7156 BEGIN
7157
7158 -- Initializing the document record with the Document Payables information
7159 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
7160
7161 l_docErrorRec.validation_set_code := p_validation_set_code;
7162 l_docErrorRec.transaction_id := p_document_id;
7163 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7164 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7165 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
7166 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
7167
7168 -- Validate payment type
7169 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7170 'DELIVERY_CHANNEL_CODE',
7171 '+'||l_document_rec.delivery_channel_code||'+',
7172 'NOTINSET',
7173 '+KONTOAVI+CHECK+',
7174 null,
7175 l_valResult,
7176 l_docErrorRec);
7177
7178 IF (l_valResult = FALSE) THEN
7179 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7180 l_valid := 1;
7181 END IF;
7182
7183 -- Insert errors into IBY_TRANSACTION_ERRORS
7184 IF (l_valid = 1) THEN
7185 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
7186 END IF;
7187
7188 -- Return the Validation Result
7189 x_result := l_valid;
7190
7191 END SE_EFT_POSTGIRO_INLAND_DOC;
7192
7193 /*--------------------------------------------------------------------
7194 | NAME:
7195 | SE_EFT_POSTGIRO_UTLAND_DOC
7196 |
7197 | PURPOSE:
7198 | Swedish Postgiro Utland EFT document validation
7199 |
7200 | PARAMETERS:
7201 | IN
7202 |
7203 |
7204 | OUT
7205 |
7206 |
7207 | RETURNS:
7208 |
7209 | NOTES:
7210 |
7211 *---------------------------------------------------------------------*/
7212 PROCEDURE SE_EFT_POSTGIRO_UTLAND_DOC (
7213 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7214 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7215 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
7216 p_is_online_val IN VARCHAR2,
7217 x_result OUT NOCOPY NUMBER)
7218 IS
7219
7220 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7221 l_valResult BOOLEAN;
7222 l_valid NUMBER := 0;
7223 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7224 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7225
7226 BEGIN
7227
7228 -- Initializing the document record with the Document Payables information
7229 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
7230
7231 l_docErrorRec.validation_set_code := p_validation_set_code;
7232 l_docErrorRec.transaction_id := p_document_id;
7233 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7234 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7235 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
7236 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
7237
7238 -- Validate payment type
7239 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7240 'DELIVERY_CHANNEL_CODE',
7241 l_document_rec.delivery_channel_code,
7242 'STRISNOT',
7243 'KONTOAVI',
7244 null,
7245 l_valResult,
7246 l_docErrorRec);
7247
7248 IF (l_valResult = FALSE) THEN
7249 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7250 l_valid := 1;
7251 END IF;
7252
7253 -- Insert errors into IBY_TRANSACTION_ERRORS
7254 IF (l_valid = 1) THEN
7255 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
7256 END IF;
7257
7258 -- Return the Validation Result
7259 x_result := l_valid;
7260
7261 END SE_EFT_POSTGIRO_UTLAND_DOC;
7262
7263 /*--------------------------------------------------------------------
7264 | NAME:
7265 | CITI_GB_EFT_DOM_PAYEE
7266 |
7267 | PURPOSE:
7268 | Citibank UK domestic EFT payee validation
7269 |
7270 | PARAMETERS:
7271 | IN
7272 |
7273 |
7274 | OUT
7275 |
7276 |
7277 | RETURNS:
7278 |
7279 | NOTES:
7280 |
7281 *---------------------------------------------------------------------*/
7282 PROCEDURE CITI_GB_EFT_DOM_PAYEE (
7283 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7284 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7285 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
7286 p_is_online_val IN VARCHAR2,
7287 x_result OUT NOCOPY NUMBER)
7288 IS
7289
7290 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7291 l_valResult BOOLEAN;
7292 l_valid NUMBER := 0;
7293 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7294 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7295
7296 BEGIN
7297
7298 -- Initializing the document record
7299 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
7300
7301 l_docErrorRec.validation_set_code := p_validation_set_code;
7302 l_docErrorRec.transaction_id := p_document_id;
7303 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7304 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7305 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
7306 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
7307
7308 -- Validate target name
7309 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7310 'PAYEE_PARTY_NAME',
7311 l_document_rec.payee_party_name,
7312 'MAXLENGTH',
7313 null,
7314 18,
7315 l_valResult,
7316 l_docErrorRec);
7317
7318 IF (l_valResult = FALSE) THEN
7319 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7320 l_valid := 1;
7321 END IF;
7322
7323 -- Validate target bank account number
7324 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7325 'EXT_BANK_ACC_NUM',
7326 l_document_rec.ext_bank_acc_num,
7327 'MAXLENGTH',
7328 null,
7329 10,
7330 l_valResult,
7331 l_docErrorRec);
7332
7333 IF (l_valResult = FALSE) THEN
7334 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7335 l_valid := 1;
7336 END IF;
7337
7338 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7339 'EXT_BANK_ACC_NUM',
7340 l_document_rec.ext_bank_acc_num,
7341 'MINLENGTH',
7342 null,
7343 8,
7344 l_valResult,
7345 l_docErrorRec);
7346
7347 IF (l_valResult = FALSE) THEN
7348 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7349 l_valid := 1;
7350 END IF;
7351
7352 -- Validate target bank branch code
7353 -- by CE
7354
7355 -- Inserting errors into IBY_TRANSACTION_ERRORS
7356 IF (l_valid = 1) THEN
7357 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
7358 END IF;
7359
7360 -- Return the Validation Result
7361 x_result := l_valid;
7362
7363 END CITI_GB_EFT_DOM_PAYEE;
7364
7365 /*--------------------------------------------------------------------
7366 | NAME:
7367 | CITI_GB_EFT_DOM_DOC
7368 |
7369 | PURPOSE:
7370 | Citibank UK domestic EFT document validation
7371 |
7372 | PARAMETERS:
7373 | IN
7374 |
7375 |
7376 | OUT
7377 |
7378 |
7379 | RETURNS:
7380 |
7381 | NOTES:
7382 |
7383 *---------------------------------------------------------------------*/
7384 PROCEDURE CITI_GB_EFT_DOM_DOC (
7385 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7386 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7387 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
7388 p_is_online_val IN VARCHAR2,
7389 x_result OUT NOCOPY NUMBER)
7390 IS
7391
7392 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7393 l_valResult BOOLEAN;
7394 l_valid NUMBER := 0;
7395 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7396 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7397
7398 BEGIN
7399
7400 -- Initializing the document record
7401 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id, l_document_rec, p_is_online_val);
7402
7403 l_docErrorRec.validation_set_code := p_validation_set_code;
7404 l_docErrorRec.transaction_id := p_document_id;
7405 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7406 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7407 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
7408 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
7409
7410 -- Validate transaction code
7411 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7412 'DELIVERY_CHANNEL_CODE',
7413 l_document_rec.delivery_channel_code,
7414 'INDELIV',
7415 'GB',
7416 null,
7417 l_valResult,
7418 l_docErrorRec);
7419
7420 IF (l_valResult = FALSE) THEN
7421 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7422 l_valid := 1;
7423 END IF;
7424
7425 -- Inserting errors into IBY_TRANSACTION_ERRORS
7426 IF (l_valid = 1) THEN
7427 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
7428 END IF;
7429
7430 -- Return the Validation Result
7431 x_result := l_valid;
7432
7433 END CITI_GB_EFT_DOM_DOC;
7434
7435 /*--------------------------------------------------------------------
7436 | NAME:
7437 | P_CITI_GB_EFT_DOM_PMT
7438 |
7439 | PURPOSE:
7440 | Citibank UK domestic EFT payment validation
7441 |
7442 | PARAMETERS:
7443 | IN
7444 |
7445 |
7446 | OUT
7447 |
7448 |
7449 | RETURNS:
7450 |
7451 | NOTES:
7452 |
7453 *---------------------------------------------------------------------*/
7454 PROCEDURE P_CITI_GB_EFT_DOM_PMT (
7455 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7456 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7457 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
7458 p_is_online_val IN VARCHAR2,
7459 x_result OUT NOCOPY NUMBER)
7460 IS
7461
7462 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
7463 l_valResult BOOLEAN;
7464 l_valid NUMBER := 0;
7465 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7466 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7467
7468 BEGIN
7469
7470 -- Initializing the payment record
7471 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
7472
7473 l_docErrorRec.validation_set_code := p_validation_set_code;
7474 l_docErrorRec.transaction_id := p_payment_id;
7475 l_docErrorRec.transaction_type := 'PAYMENT';
7476 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
7477
7478 -- Validate transaction reference
7479 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7480 'PMT_ID',
7481 l_payment_rec.pmt_id,
7482 'MAXLENGTH',
7483 null,
7484 15,
7485 l_valResult,
7486 l_docErrorRec);
7487
7488 IF (l_valResult = FALSE) THEN
7489 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7490 l_valid := 1;
7491 END IF;
7492
7493 -- Validate instruction currency
7494 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7495 'PMT_CURRENCY',
7496 l_payment_rec.pmt_currency,
7497 'EXACTLENGTH',
7498 null,
7499 3,
7500 l_valResult,
7501 l_docErrorRec);
7502
7503 IF (l_valResult = FALSE) THEN
7504 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7505 l_valid := 1;
7506 END IF;
7507
7508 -- Inserting errors into IBY_TRANSACTION_ERRORS
7509 -- The first parameter p_is_online_val takes hardcoded value 'N'.
7510 IF (l_valid = 1) THEN
7511 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
7512 END IF;
7513
7514 -- Return the Validation Result
7515 x_result := l_valid;
7516
7517 END P_CITI_GB_EFT_DOM_PMT;
7518
7519 /*--------------------------------------------------------------------
7520 | NAME:
7521 | US_NACHA_INTERNAL_BANK
7522 |
7523 | PURPOSE:
7524 | US Nacha internal bank validation
7525 |
7526 | PARAMETERS:
7527 | IN
7528 |
7529 |
7530 | OUT
7531 |
7532 |
7533 | RETURNS:
7534 |
7535 | NOTES:
7536 |
7537 *---------------------------------------------------------------------*/
7538 PROCEDURE US_NACHA_INTERNAL_BANK (
7539 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7540 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7541 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
7542 p_is_online_val IN VARCHAR2,
7543 x_result OUT NOCOPY NUMBER)
7544 IS
7545
7546 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7547 l_valResult BOOLEAN;
7548 l_valid NUMBER := 0;
7549 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7550 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7551
7552 BEGIN
7553
7554 -- Initializing the document record
7555 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
7556
7557 l_docErrorRec.validation_set_code := p_validation_set_code;
7558 l_docErrorRec.transaction_id := p_document_id;
7559 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7560 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7561 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
7562 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
7563
7564 -- Validate originating bank routing number
7565 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7566 'INT_BANK_BRANCH_NUM',
7567 l_document_rec.int_bank_branch_num,
7568 'EXACTLENGTH',
7569 null,
7570 9,
7571 l_valResult,
7572 l_docErrorRec);
7573
7574 IF (l_valResult = FALSE) THEN
7575 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7576 l_valid := 1;
7577 END IF;
7578
7579 -- Insert errors into IBY_TRANSACTION_ERRORS
7580 IF (l_valid = 1) THEN
7581 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
7582 END IF;
7583
7584 -- Return the validation result
7585 x_result := l_valid;
7586
7587 END US_NACHA_INTERNAL_BANK;
7588
7589 /*--------------------------------------------------------------------
7590 | NAME:
7591 | US_NACHA_PAYEE
7592 |
7593 | PURPOSE:
7594 | US Nacha payee validation
7595 |
7596 | PARAMETERS:
7597 | IN
7598 |
7599 |
7600 | OUT
7601 |
7602 |
7603 | RETURNS:
7604 |
7605 | NOTES:
7606 |
7607 *---------------------------------------------------------------------*/
7608 PROCEDURE US_NACHA_PAYEE (
7609 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7610 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7611 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
7612 p_is_online_val IN VARCHAR2,
7613 x_result OUT NOCOPY NUMBER)
7614 IS
7615
7616 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7617 l_valResult BOOLEAN;
7618 l_valid NUMBER := 0;
7619 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7620 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7621
7622 BEGIN
7623
7624 -- Initializing the document record
7625 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
7626
7627 l_docErrorRec.validation_set_code := p_validation_set_code;
7628 l_docErrorRec.transaction_id := p_document_id;
7629 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7630 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7631 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
7632 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
7633
7634 -- Validate supplier bank routing number
7635 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7636 'EXT_BANK_BRANCH_NUM',
7637 l_document_rec.ext_bank_branch_num,
7638 'EXACTLENGTH',
7639 null,
7640 9,
7641 l_valResult,
7642 l_docErrorRec);
7643
7644 IF (l_valResult = FALSE) THEN
7645 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7646 l_valid := 1;
7647 END IF;
7648
7649 -- Insert errors into IBY_TRANSACTION_ERRORS
7650 IF (l_valid = 1) THEN
7651 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
7652 END IF;
7653
7654 -- Return the validation result
7655 x_result := l_valid;
7656
7657 END US_NACHA_PAYEE;
7658
7659 /*--------------------------------------------------------------------
7660 | NAME:
7661 | US_NACHA_PAYEE_ACCOUNT
7662 |
7663 | PURPOSE:
7664 | US Nacha IAT Payee Bank Account Validation
7665 |
7666 | PARAMETERS:
7667 | IN
7668 |
7669 |
7670 | OUT
7671 |
7672 |
7673 | RETURNS:
7674 |
7675 | NOTES:
7676 |
7677 *---------------------------------------------------------------------*/
7678 PROCEDURE US_NACHA_PAYEE_ACCOUNT (
7679 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7680 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7681 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
7682 p_is_online_val IN VARCHAR2,
7683 x_result OUT NOCOPY NUMBER)
7684 IS
7685
7686 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7687 l_valResult BOOLEAN;
7688 l_valid NUMBER := 0;
7689 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7690 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7691
7692 BEGIN
7693
7694 -- Initializing the document record
7695 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
7696
7697 l_docErrorRec.validation_set_code := p_validation_set_code;
7698 l_docErrorRec.transaction_id := p_document_id;
7699 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7700 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7701 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
7702 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
7703
7704 -- Validate supplier bank routing number
7705 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7706 'EXT_BANK_ACC_NUM',
7707 l_document_rec.ext_bank_acc_num,
7708 'NOTNULL',
7709 null,
7710 null,
7711 l_valResult,
7712 l_docErrorRec);
7713
7714 IF (l_valResult = FALSE) THEN
7715 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7716 l_valid := 1;
7717 END IF;
7718
7719 -- Insert errors into IBY_TRANSACTION_ERRORS
7720 IF (l_valid = 1) THEN
7721 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
7722 END IF;
7723
7724 -- Return the validation result
7725 x_result := l_valid;
7726
7727 END US_NACHA_PAYEE_ACCOUNT;
7728
7729 /*--------------------------------------------------------------------
7730 | NAME:
7731 | I_US_NACHA_INSTR
7732 |
7733 | PURPOSE:
7734 | US Nacha payment instruction validation
7735 |
7736 | PARAMETERS:
7737 | IN
7738 |
7739 |
7740 | OUT
7741 |
7742 |
7743 | RETURNS:
7744 |
7745 | NOTES:
7746 |
7747 *---------------------------------------------------------------------*/
7748 PROCEDURE I_US_NACHA_INSTR (
7749 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7750 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
7751 p_instruction_id IN IBY_PAY_INSTRUCTIONS_ALL.payment_instruction_id%type,
7752 p_is_online_val IN VARCHAR2,
7753 x_result OUT NOCOPY NUMBER)
7754 IS
7755
7756 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
7757 l_valResult BOOLEAN;
7758 l_valid NUMBER := 0;
7759 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7760 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7761
7762 l_max_nacha_amt NUMBER;
7763
7764 BEGIN
7765
7766 -- Initializing the payment record
7767 IBY_VALIDATIONSETS_PUB.initInstructionData(p_instruction_id,l_instruction_rec);
7768
7769 l_docErrorRec.validation_set_code := p_validation_set_code;
7770 l_docErrorRec.transaction_id := p_instruction_id;
7771 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
7772 l_docErrorRec.calling_app_doc_unique_ref1 := p_instruction_id;
7773
7774 -- Validate number of detail records
7775 IBY_VALIDATIONSETS_PUB.getParamValue(
7776 p_validation_assign_id,
7777 p_validation_set_code,
7778 'MAX_PAYMENT_INSTR_AMOUNT',
7779 l_max_nacha_amt );
7780
7781 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7782 'INS_AMOUNT',
7783 l_instruction_rec.ins_amount,
7784 'LESSEQUAL',
7785 null,
7786 l_max_nacha_amt,
7787 l_valResult,
7788 l_docErrorRec);
7789
7790 IF (l_valResult = FALSE) THEN
7791 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7792 l_valid := 1;
7793 END IF;
7794
7795 -- Inserting errors into IBY_TRANSACTION_ERRORS
7796 -- The first parameter p_is_online_val takes hardcoded value 'N'.
7797 IF (l_valid = 1) THEN
7798 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
7799 END IF;
7800
7801 -- Return the Validation Result
7802 x_result := l_valid;
7803
7804 END I_US_NACHA_INSTR;
7805
7806 /*--------------------------------------------------------------------
7807 | NAME:
7808 | ECE_DOC
7809 |
7810 | PURPOSE:
7811 | Transactional field validations for E-Commerce gateway format
7812 | (EDI validations).
7813 |
7814 | See ER for EDI validations: 5518630
7815 |
7816 |
7817 | PARAMETERS:
7818 | IN
7819 |
7820 |
7821 | OUT
7822 |
7823 |
7824 | RETURNS:
7825 |
7826 | NOTES:
7827 |
7828 *---------------------------------------------------------------------*/
7829 PROCEDURE ECE_DOC (
7830 p_validation_assign_id IN
7831 IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7832 p_validation_set_code IN
7833 IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
7834 p_document_id IN
7835 IBY_DOCS_PAYABLE_ALL.document_payable_id%TYPE,
7836 p_is_online_val IN VARCHAR2,
7837 x_result OUT NOCOPY NUMBER)
7838 IS
7839
7840 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7841 l_valResult BOOLEAN;
7842 l_valid NUMBER := 0;
7843 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7844 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7845
7846 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.ECE_DOC';
7847 BEGIN
7848
7849 /*
7850 * Initialize the document record
7851 */
7852 IBY_VALIDATIONSETS_PUB.initDocumentData(
7853 p_document_id, l_document_rec, p_is_online_val);
7854
7855 l_docErrorRec.validation_set_code := p_validation_set_code;
7856 l_docErrorRec.transaction_id := p_document_id;
7857 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7858 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7859 l_docErrorRec.pay_proc_trxn_type_code
7860 := l_document_rec.pay_proc_trxn_type_cd;
7861 l_docErrorRec.calling_app_doc_unique_ref1
7862 := l_document_rec.calling_app_doc_id1;
7863
7864
7865 /*
7866 * Validate delivery channel code
7867 */
7868 IBY_VALIDATIONSETS_PUB.evaluateCondition(
7869 'DELIVERY_CHANNEL_CODE',
7870 l_document_rec.delivery_channel_code,
7871 'NOTNULL',
7872 null,
7873 null,
7874 l_valResult,
7875 l_docErrorRec);
7876
7877
7878 IF (l_valResult = FALSE) THEN
7879
7880 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
7881 print_debuginfo(l_module_name, 'Error: Delivery channel code '
7882 || 'should not be null for EDI payments [document id: '
7883 || p_document_id
7884 || ']'
7885 );
7886
7887 END IF;
7888 IBY_VALIDATIONSETS_PUB.
7889 insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
7890
7891 l_valid := 1;
7892
7893 END IF;
7894
7895 /*
7896 * Insert errors into IBY_TRANSACTION_ERRORS
7897 */
7898 IF (l_valid = 1) THEN
7899 IBY_VALIDATIONSETS_PUB.
7900 insert_transaction_errors(p_is_online_val,l_docErrorTab);
7901 END IF;
7902
7903 /*
7904 * Return the validation result
7905 */
7906 x_result := l_valid;
7907
7908 END ECE_DOC;
7909
7910 /*--------------------------------------------------------------------
7911 | NAME:
7912 | ECE_INTERNAL_BANK
7913 |
7914 | PURPOSE:
7915 | Internal bank account validations for E-Commerce gateway format.
7916 | (EDI validations).
7917 |
7918 | PARAMETERS:
7919 | IN
7920 |
7921 |
7922 | OUT
7923 |
7924 |
7925 | RETURNS:
7926 |
7927 | NOTES:
7928 |
7929 *---------------------------------------------------------------------*/
7930 PROCEDURE ECE_INTERNAL_BANK (
7931 p_validation_assign_id IN
7932 IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
7933 p_validation_set_code IN
7934 IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
7935 p_document_id IN
7936 IBY_DOCS_PAYABLE_ALL.document_payable_id%TYPE,
7937 p_is_online_val IN VARCHAR2,
7938 x_result OUT NOCOPY NUMBER)
7939 IS
7940
7941 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.ECE_INTERNAL_BANK';
7942
7943 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
7944 l_valResult BOOLEAN;
7945 l_valid NUMBER := 0;
7946 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
7947 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
7948
7949 l_bank_branch_type CE_BANK_BRANCHES_V.bank_branch_type%TYPE;
7950 l_bank_edi_id_number HZ_CONTACT_POINTS.edi_id_number%TYPE;
7951 l_bank_name CE_BANK_BRANCHES_V.bank_name%TYPE;
7952 l_bank_branch_name CE_BANK_BRANCHES_V.bank_branch_name%TYPE;
7953
7954 BEGIN
7955
7956 /*
7957 * Initialize the document record
7958 */
7959 IBY_VALIDATIONSETS_PUB.initDocumentData(
7960 p_document_id, l_document_rec, p_is_online_val);
7961
7962 l_docErrorRec.validation_set_code := p_validation_set_code;
7963 l_docErrorRec.transaction_id := p_document_id;
7964 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
7965 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
7966 l_docErrorRec.pay_proc_trxn_type_code
7967 := l_document_rec.pay_proc_trxn_type_cd;
7968 l_docErrorRec.calling_app_doc_unique_ref1
7969 := l_document_rec.calling_app_doc_id1;
7970
7971 /*
7972 * Pick up the payer bank branch type.
7973 */
7974 BEGIN
7975
7976 SELECT
7977 abb.BANK_BRANCH_TYPE,
7978 edi.EDI_ID_NUMBER,
7979 abb.BANK_NAME,
7980 abb.BANK_BRANCH_NAME
7981 INTO
7982 l_bank_branch_type,
7983 l_bank_edi_id_number,
7984 l_bank_name,
7985 l_bank_branch_name
7986 FROM
7987 IBY_DOCS_PAYABLE_ALL doc,
7988 CE_BANK_BRANCHES_V abb,
7989 CE_BANK_ACCOUNTS cba,
7990 HZ_CONTACT_POINTS edi
7991 WHERE
7992 doc.document_payable_id = p_document_id
7993 AND doc.internal_bank_account_id = cba.bank_account_id
7994 AND cba.bank_branch_id = abb.branch_party_id
7995 AND edi.owner_table_id = abb.branch_party_id
7996 AND edi.owner_table_name = 'HZ_PARTIES'
7997 AND edi.contact_point_type = 'EFT'
7998 ;
7999
8000 EXCEPTION
8001 WHEN OTHERS THEN
8002
8003 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8004 print_debuginfo(l_module_name, 'Non-fatal: Exception occured '
8005 || 'when attempting to get payer bank branch type '
8006 || 'for document id: '
8007 || p_document_id
8008 );
8009
8010 print_debuginfo(l_module_name, 'SQL code: ' || SQLCODE);
8011 print_debuginfo(l_module_name, 'SQL err msg: '|| SQLERRM);
8012
8013 END IF;
8014 END;
8015
8016 /*
8017 * Validate payer bank branch type
8018 */
8019 IBY_VALIDATIONSETS_PUB.evaluateCondition(
8020 'INT_BANK_BRANCH_TYPE',
8021 l_bank_branch_type,
8022 'NOTNULL',
8023 null,
8024 null,
8025 l_valResult,
8026 l_docErrorRec
8027 );
8028
8029 IF (l_valResult = FALSE) THEN
8030
8031 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8032 print_debuginfo(l_module_name, 'Error: Payer bank branch type '
8033 || 'should not be null for EDI payments [document id: '
8034 || p_document_id
8035 || ', bank name: '
8036 || l_bank_name
8037 || ', branch name: '
8038 || l_bank_branch_name
8039 || ']'
8040 );
8041
8042 END IF;
8043 IBY_VALIDATIONSETS_PUB.
8044 insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
8045
8046 l_valid := 1;
8047
8048 END IF;
8049
8050 /*
8051 * Insert errors into IBY_TRANSACTION_ERRORS
8052 */
8053 IF (l_valid = 1) THEN
8054 IBY_VALIDATIONSETS_PUB.
8055 insert_transaction_errors(p_is_online_val,l_docErrorTab);
8056 END IF;
8057
8058 /*
8059 * Return the validation result
8060 */
8061 x_result := l_valid;
8062
8063 END ECE_INTERNAL_BANK;
8064
8065 /*--------------------------------------------------------------------
8066 | NAME:
8067 | ECE_PAYEE
8068 |
8069 | PURPOSE:
8070 | Payee validations for E-Commerce gateway format.
8071 | (EDI validations).
8072 |
8073 | PARAMETERS:
8074 | IN
8075 |
8076 |
8077 | OUT
8078 |
8079 |
8080 | RETURNS:
8081 |
8082 | NOTES:
8083 |
8084 *---------------------------------------------------------------------*/
8085 PROCEDURE ECE_PAYEE (
8086 p_validation_assign_id IN
8087 IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
8088 p_validation_set_code IN
8089 IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
8090 p_document_id IN
8091 IBY_DOCS_PAYABLE_ALL.document_payable_id%TYPE,
8092 p_is_online_val IN VARCHAR2,
8093 x_result OUT NOCOPY NUMBER)
8094 IS
8095
8096 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME || '.ECE_PAYEE';
8097
8098 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
8099 l_valResult BOOLEAN;
8100 l_valid NUMBER := 0;
8101 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
8102 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
8103
8104 l_bank_branch_type CE_BANK_BRANCHES_V.bank_branch_type%TYPE;
8105 l_trxn_handling IBY_EXTERNAL_PAYEES_ALL.bank_instruction2_code%TYPE;
8106 l_edi_pmt_format IBY_EXTERNAL_PAYEES_ALL.bank_instruction1_code%TYPE;
8107
8108 BEGIN
8109
8110 /*
8111 * Initialize the document record
8112 */
8113 IBY_VALIDATIONSETS_PUB.initDocumentData(
8114 p_document_id, l_document_rec, p_is_online_val);
8115
8116 l_docErrorRec.validation_set_code := p_validation_set_code;
8117 l_docErrorRec.transaction_id := p_document_id;
8118 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
8119 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
8120 l_docErrorRec.pay_proc_trxn_type_code
8121 := l_document_rec.pay_proc_trxn_type_cd;
8122 l_docErrorRec.calling_app_doc_unique_ref1
8123 := l_document_rec.calling_app_doc_id1;
8124
8125 /*
8126 * Retrieve supplier bank branch type.
8127 * Inactivating validation for bug 7192723
8128 *
8129 BEGIN
8130
8131 SELECT
8132 cbb.bank_branch_type
8133 INTO
8134 l_bank_branch_type
8135 FROM
8136 IBY_DOCS_PAYABLE_ALL doc,
8137 IBY_EXT_BANK_ACCOUNTS_V eba,
8138 CE_BANK_BRANCHES_V cbb
8139 WHERE
8140 doc.document_payable_id = p_document_id
8141 AND doc.external_bank_account_id = eba.ext_bank_account_id(+)
8142 AND eba.bank_party_id = cbb.bank_party_id(+)
8143 AND eba.branch_party_id = cbb.branch_party_id(+)
8144 ;
8145
8146 EXCEPTION
8147 WHEN OTHERS THEN
8148
8149 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8150 print_debuginfo(l_module_name, 'Non-fatal: Exception occured '
8151 || 'when attempting to get payee bank branch type '
8152 || 'for document id: '
8153 || p_document_id
8154 );
8155
8156 print_debuginfo(l_module_name, 'SQL code: ' || SQLCODE);
8157 print_debuginfo(l_module_name, 'SQL err msg: '|| SQLERRM);
8158
8159 END IF;
8160 END;
8161 */
8162
8163 /*
8164 * Validate payee bank branch type.
8165 * Inactivating validation for bug 7192723
8166 *
8167 IBY_VALIDATIONSETS_PUB.evaluateCondition(
8168 'EXT_BANK_BRANCH_TYPE',
8169 l_bank_branch_type,
8170 'NOTNULL',
8171 null,
8172 null,
8173 l_valResult,
8174 l_docErrorRec
8175 );
8176
8177 IF (l_valResult = FALSE) THEN
8178
8179 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8180 print_debuginfo(l_module_name, 'Error: Payee bank branch type '
8181 || 'should not be null for EDI payments [document id: '
8182 || p_document_id
8183 || ']'
8184 );
8185
8186 END IF;
8187 IBY_VALIDATIONSETS_PUB.
8188 insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
8189
8190 l_valid := 1;
8191
8192 END IF;
8193 */
8194
8195
8196 /*
8197 * Retrieve EDI transaction handling.
8198 */
8199 BEGIN
8200
8201 SELECT
8202 ep.bank_instruction2_code
8203 INTO
8204 l_trxn_handling
8205 FROM
8206 IBY_DOCS_PAYABLE_ALL doc,
8207 IBY_EXTERNAL_PAYEES_ALL ep
8208 WHERE
8209 doc.document_payable_id = p_document_id
8210 AND doc.ext_payee_id = ep.ext_payee_id
8211 ;
8212
8213 EXCEPTION
8214 WHEN OTHERS THEN
8215
8216 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8217 print_debuginfo(l_module_name, 'Non-fatal: Exception occured '
8218 || 'when attempting to get payee transaction handling '
8219 || 'for document id: '
8220 || p_document_id
8221 );
8222
8223 print_debuginfo(l_module_name, 'SQL code: ' || SQLCODE);
8224 print_debuginfo(l_module_name, 'SQL err msg: '|| SQLERRM);
8225
8226 END IF;
8227 END;
8228
8229 /*
8230 * Validate EDI transaction handling.
8231 */
8232 IBY_VALIDATIONSETS_PUB.evaluateCondition(
8233 'EXT_PAYEE_BANK_CD2',
8234 l_trxn_handling,
8235 'NOTNULL',
8236 null,
8237 null,
8238 l_valResult,
8239 l_docErrorRec
8240 );
8241
8242 IF (l_valResult = FALSE) THEN
8243
8244 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8245 print_debuginfo(l_module_name, 'Error: Payee bank instruction code 2 '
8246 || 'should not be null for EDI payments (this field indicates '
8247 || 'transaction handling). [document id: '
8248 || p_document_id
8249 || ']'
8250 );
8251
8252 END IF;
8253 IBY_VALIDATIONSETS_PUB.
8254 insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
8255
8256 l_valid := 1;
8257
8258 END IF;
8259
8260 /*
8261 * For EDI payments, the EDI payment format should not
8262 * be null if the payment method code is 'ACH'.
8263 */
8264 IF (l_document_rec.payment_method_cd = 'ACH') THEN
8265
8266 /*
8267 * Retrieve EDI payment format.
8268 */
8269 BEGIN
8270
8271 SELECT
8272 ep.bank_instruction1_code
8273 INTO
8274 l_edi_pmt_format
8275 FROM
8276 IBY_DOCS_PAYABLE_ALL doc,
8277 IBY_EXTERNAL_PAYEES_ALL ep
8278 WHERE
8279 doc.document_payable_id = p_document_id
8280 AND doc.ext_payee_id = ep.ext_payee_id
8281 ;
8282
8283 EXCEPTION
8284 WHEN OTHERS THEN
8285
8286 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8287 print_debuginfo(l_module_name, 'Non-fatal: Exception occured '
8288 || 'when attempting to get EDI payment format '
8289 || 'for document id: '
8290 || p_document_id
8291 );
8292
8293 print_debuginfo(l_module_name, 'SQL code: ' || SQLCODE);
8294 print_debuginfo(l_module_name, 'SQL err msg: '|| SQLERRM);
8295
8296 END IF;
8297 END;
8298
8299 /*
8300 * Fix for bug 5557010:
8301 *
8302 * Moved this validation into the if block as
8303 * it is only applicable to ACH payment method.
8304 */
8305
8306 /*
8307 * Validate EDI payment format.
8308 */
8309 IBY_VALIDATIONSETS_PUB.evaluateCondition(
8310 'EXT_PAYEE_BANK_CD1',
8311 l_edi_pmt_format,
8312 'NOTNULL',
8313 null,
8314 null,
8315 l_valResult,
8316 l_docErrorRec
8317 );
8318
8319 IF (l_valResult = FALSE) THEN
8320
8321 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
8322 print_debuginfo(l_module_name, 'Error: Payee bank instruction '
8323 || 'code 1 should not be null for EDI payments (this '
8324 || 'field indicates EDI payment format). [document id: '
8325 || p_document_id
8326 || ']'
8327 );
8328
8329 END IF;
8330 IBY_VALIDATIONSETS_PUB.
8331 insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
8332
8333 l_valid := 1;
8334
8335 END IF;
8336
8337 END IF; -- if pmt method = 'ACH'
8338
8339 /*
8340 * Insert errors into IBY_TRANSACTION_ERRORS
8341 */
8342 IF (l_valid = 1) THEN
8343 IBY_VALIDATIONSETS_PUB.
8344 insert_transaction_errors(p_is_online_val,l_docErrorTab);
8345 END IF;
8346
8347 /*
8348 * Return the validation result
8349 */
8350 x_result := l_valid;
8351
8352 END ECE_PAYEE;
8353
8354 /*-----------------------------------------*/
8355 /*
8356 * Component Validations Section
8357 */
8358 /*-----------------------------------------*/
8359 /*--------------------------------------------------------------------
8360 | NAME:
8361 | IS_NOT_NULL
8362 |
8363 | PURPOSE:
8364 | Validate the field named is not null
8365 |
8366 | PARAMETERS:
8367 | IN
8368 |
8369 |
8370 | OUT
8371 |
8372 |
8373 | RETURNS:
8374 |
8375 | NOTES:
8376 |
8377 *---------------------------------------------------------------------*/
8378 PROCEDURE IS_NOT_NULL (
8379 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
8380 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
8381 p_transaction_id IN NUMBER,
8382 p_is_online_val IN VARCHAR2,
8383 x_result OUT NOCOPY NUMBER)
8384 IS
8385
8386 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
8387 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
8388 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
8389 l_valResult BOOLEAN;
8390 l_valid NUMBER := 0;
8391 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
8392 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
8393
8394 l_field_name VARCHAR2(500);
8395 l_field_value VARCHAR2(500);
8396
8397 BEGIN
8398
8399 -- Get the field name
8400 IBY_VALIDATIONSETS_PUB.getParamValue(
8401 p_validation_assign_id,
8402 p_validation_set_code,
8403 'P_FIELD_NAME',
8404 l_field_name );
8405
8406 -- if field name is null, the validation is skipped, i.e. nothing is validated
8407 if l_field_name is null then
8408 x_result := l_valid;
8409 return;
8410 end if;
8411
8412 l_docErrorRec.validation_set_code := p_validation_set_code;
8413 l_docErrorRec.transaction_id := p_transaction_id;
8414
8415 -- Payment instruction field
8416 if substr(l_field_name,1,3) = 'INS' then
8417 -- Initializing the payment instruction record
8418 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
8419
8420 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
8421 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
8422
8423 -- Get the field value
8424 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
8425
8426 -- Payment field
8427 elsif substr(l_field_name,1,3) = 'PMT' then
8428 -- Initializing the payment record
8429 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
8430
8431 l_docErrorRec.transaction_type := 'PAYMENT';
8432 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
8433
8434 -- Get the field value
8435 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
8436
8437 -- Document field
8438 else
8439 -- Intializing the document record
8440 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
8441
8442 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
8443 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
8444 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
8445 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
8446
8447 -- Get the field value
8448 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
8449 end if;
8450
8451 -- Validate that the field is not null
8452 IBY_VALIDATIONSETS_PUB.evaluateCondition(
8453 l_field_name,
8454 l_field_value,
8455 'NOTNULL',
8456 null,
8457 null,
8458 l_valResult,
8459 l_docErrorRec);
8460
8461 IF (l_valResult = FALSE) THEN
8462 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
8463 l_valid := 1;
8464 END IF;
8465
8466 IF (l_valid = 1) THEN
8467 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
8468 END IF;
8469
8470 -- Return the Validation Result
8471 x_result := l_valid;
8472
8473 END IS_NOT_NULL;
8474
8475 /*--------------------------------------------------------------------
8476 | NAME:
8477 | IS_NULL
8478 |
8479 | PURPOSE:
8480 | Validate the field named is not null
8481 |
8482 | PARAMETERS:
8483 | IN
8484 |
8485 |
8486 | OUT
8487 |
8488 |
8489 | RETURNS:
8490 |
8491 | NOTES:
8492 |
8493 *---------------------------------------------------------------------*/
8494 PROCEDURE IS_NULL (
8495 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
8496 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
8497 p_transaction_id IN NUMBER,
8498 p_is_online_val IN VARCHAR2,
8499 x_result OUT NOCOPY NUMBER)
8500 IS
8501
8502 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
8503 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
8504 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
8505 l_valResult BOOLEAN;
8506 l_valid NUMBER := 0;
8507 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
8508 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
8509
8510 l_field_name VARCHAR2(500);
8511 l_field_value VARCHAR2(500);
8512
8513 BEGIN
8514
8515 -- Get the field name
8516 IBY_VALIDATIONSETS_PUB.getParamValue(
8517 p_validation_assign_id,
8518 p_validation_set_code,
8519 'P_FIELD_NAME',
8520 l_field_name );
8521
8522 -- if field name is null, the validation is skipped, i.e. nothing is validated
8523 if l_field_name is null then
8524 x_result := l_valid;
8525 return;
8526 end if;
8527
8528 l_docErrorRec.validation_set_code := p_validation_set_code;
8529 l_docErrorRec.transaction_id := p_transaction_id;
8530
8531 -- Payment instruction field
8532 if substr(l_field_name,1,3) = 'INS' then
8533 -- Initializing the payment instruction record
8534 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
8535
8536 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
8537 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
8538
8539 -- Get the field value
8540 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
8541
8542 -- Payment field
8543 elsif substr(l_field_name,1,3) = 'PMT' then
8544 -- Initializing the payment record
8545 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
8546
8547 l_docErrorRec.transaction_type := 'PAYMENT';
8548 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
8549
8550 -- Get the field value
8551 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
8552
8553 -- Document field
8554 else
8555 -- Intializing the document record
8556 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
8557
8558 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
8559 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
8560 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
8561 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
8562
8563 -- Get the field value
8564 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
8565 end if;
8566
8567 -- Validate that the field is null
8568 IBY_VALIDATIONSETS_PUB.evaluateCondition(
8569 l_field_name,
8570 trim(l_field_value),
8571 'ISNULL',
8572 null,
8573 null,
8574 l_valResult,
8575 l_docErrorRec);
8576
8577 IF (l_valResult = FALSE) THEN
8578 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
8579 l_valid := 1;
8580 END IF;
8581
8582 IF (l_valid = 1) THEN
8583 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
8584 END IF;
8585
8586 -- Return the Validation Result
8587 x_result := l_valid;
8588
8589 END IS_NULL;
8590
8591 /*--------------------------------------------------------------------
8592 | NAME:
8593 | VALIDATE_LENGTH
8594 |
8595 | PURPOSE:
8596 | Validate the length of a field
8597 |
8598 | PARAMETERS:
8599 | IN
8600 |
8601 |
8602 | OUT
8603 |
8604 |
8605 | RETURNS:
8606 |
8607 | NOTES:
8608 |
8609 *---------------------------------------------------------------------*/
8610 PROCEDURE VALIDATE_LENGTH (
8611 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
8612 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
8613 p_transaction_id IN NUMBER,
8614 p_is_online_val IN VARCHAR2,
8615 x_result OUT NOCOPY NUMBER)
8616 IS
8617
8618 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
8619 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
8620 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
8621 l_valResult BOOLEAN;
8622 l_valid NUMBER := 0;
8623 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
8624 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
8625
8626 l_field_name VARCHAR2(500);
8627 l_field_value VARCHAR2(500);
8628 l_min_length number;
8629 l_max_length number;
8630
8631 BEGIN
8632
8633 -- Get the field name
8634 IBY_VALIDATIONSETS_PUB.getParamValue(
8635 p_validation_assign_id,
8636 p_validation_set_code,
8637 'P_FIELD_NAME',
8638 l_field_name );
8639
8640 -- if field name is null, the validation is skipped, i.e. nothing is validated
8641 if l_field_name is null then
8642 x_result := l_valid;
8643 return;
8644 end if;
8645
8646 l_docErrorRec.validation_set_code := p_validation_set_code;
8647 l_docErrorRec.transaction_id := p_transaction_id;
8648
8649 -- Payment instruction field
8650 if substr(l_field_name,1,3) = 'INS' then
8651 -- Initializing the payment instruction record
8652 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
8653
8654 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
8655 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
8656
8657 -- Get the field value
8658 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
8659
8660 -- Payment field
8661 elsif substr(l_field_name,1,3) = 'PMT' then
8662 -- Initializing the payment record
8663 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
8664
8665 l_docErrorRec.transaction_type := 'PAYMENT';
8666 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
8667
8668 -- Get the field value
8669 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
8670
8671 -- Document field
8672 else
8673 -- Intializing the document record
8674 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
8675
8676 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
8677 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
8678 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
8679 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
8680
8681 -- Get the field value
8682 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
8683 end if;
8684
8685 IBY_VALIDATIONSETS_PUB.getParamValue(
8686 p_validation_assign_id,
8687 p_validation_set_code,
8688 'P_MIN_LENGTH',
8689 l_min_length );
8690
8691 IBY_VALIDATIONSETS_PUB.getParamValue(
8692 p_validation_assign_id,
8693 p_validation_set_code,
8694 'P_MAX_LENGTH',
8695 l_max_length );
8696
8697 -- Validate that the field length is between the min and max
8698 IBY_VALIDATIONSETS_PUB.evaluateCondition(
8699 l_field_name,
8700 l_field_value,
8701 'MINLENGTH',
8702 null,
8703 nvl(l_min_length,0),
8704 l_valResult,
8705 l_docErrorRec);
8706
8707 IF (l_valResult = FALSE) THEN
8708 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
8709 l_valid := 1;
8710 END IF;
8711
8712 IBY_VALIDATIONSETS_PUB.evaluateCondition(
8713 l_field_name,
8714 l_field_value,
8715 'MAXLENGTH',
8716 null,
8717 nvl(l_max_length,1000000000000),
8718 l_valResult,
8719 l_docErrorRec);
8720
8721 IF (l_valResult = FALSE) THEN
8722 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
8723 l_valid := 1;
8724 END IF;
8725
8726 IF (l_valid = 1) THEN
8727 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
8728 END IF;
8729
8730 -- Return the Validation Result
8731 x_result := l_valid;
8732
8733 END VALIDATE_LENGTH;
8734
8735 /*--------------------------------------------------------------------
8736 | NAME:
8737 | DIGITS_ONLY
8738 |
8739 | PURPOSE:
8740 | Validate the field name contains digits only
8741 |
8742 | PARAMETERS:
8743 | IN
8744 |
8745 |
8746 | OUT
8747 |
8748 |
8749 | RETURNS:
8750 |
8751 | NOTES:
8752 |
8753 *---------------------------------------------------------------------*/
8754 PROCEDURE DIGITS_ONLY (
8755 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
8756 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
8757 p_transaction_id IN NUMBER,
8758 p_is_online_val IN VARCHAR2,
8759 x_result OUT NOCOPY NUMBER)
8760 IS
8761
8762 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
8763 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
8764 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
8765 l_valResult BOOLEAN;
8766 l_valid NUMBER := 0;
8767 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
8768 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
8769
8770 l_field_name VARCHAR2(500);
8771 l_field_value VARCHAR2(500);
8772
8773 BEGIN
8774
8775 -- Get the field name
8776 IBY_VALIDATIONSETS_PUB.getParamValue(
8777 p_validation_assign_id,
8778 p_validation_set_code,
8779 'P_FIELD_NAME',
8780 l_field_name );
8781
8782 -- if field name is null, the validation is skipped, i.e. nothing is validated
8783 if l_field_name is null then
8784 x_result := l_valid;
8785 return;
8786 end if;
8787
8788 l_docErrorRec.validation_set_code := p_validation_set_code;
8789 l_docErrorRec.transaction_id := p_transaction_id;
8790
8791 -- Payment instruction field
8792 if substr(l_field_name,1,3) = 'INS' then
8793 -- Initializing the payment instruction record
8794 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
8795
8796 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
8797 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
8798
8799 -- Get the field value
8800 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
8801
8802 -- Payment field
8803 elsif substr(l_field_name,1,3) = 'PMT' then
8804 -- Initializing the payment record
8805 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
8806
8807 l_docErrorRec.transaction_type := 'PAYMENT';
8808 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
8809
8810 -- Get the field value
8811 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
8812
8813 -- Document field
8814 else
8815 -- Intializing the document record
8816 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
8817
8818 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
8819 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
8820 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
8821 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
8822
8823 -- Get the field value
8824 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
8825 end if;
8826
8827 -- Validate that the field contains digits only
8828 IBY_VALIDATIONSETS_PUB.evaluateCondition(
8829 l_field_name,
8830 l_field_value,
8831 'DIGITSONLY',
8832 null,
8833 null,
8834 l_valResult,
8835 l_docErrorRec);
8836
8837 IF (l_valResult = FALSE) THEN
8838 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
8839 l_valid := 1;
8840 END IF;
8841
8842 IF (l_valid = 1) THEN
8843 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
8844 END IF;
8845
8846 -- Return the Validation Result
8847 x_result := l_valid;
8848
8849 END DIGITS_ONLY;
8850
8851 PROCEDURE IS_NUMERIC (
8852 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
8853 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
8854 p_transaction_id IN NUMBER,
8855 p_is_online_val IN VARCHAR2,
8856 x_result OUT NOCOPY NUMBER)
8857 is
8858 begin
8859 -- To be added
8860 null;
8861 end IS_NUMERIC;
8862
8863 /*--------------------------------------------------------------------
8864 | NAME:
8865 | IS_STRING
8866 |
8867 | PURPOSE:
8868 | Validate the field name
8869 |
8870 | PARAMETERS:
8871 | IN
8872 |
8873 |
8874 | OUT
8875 |
8876 |
8877 | RETURNS:
8878 |
8879 | NOTES:
8880 |
8881 *---------------------------------------------------------------------*/
8882 PROCEDURE IS_STRING (
8883 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
8884 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
8885 p_transaction_id IN NUMBER,
8886 p_is_online_val IN VARCHAR2,
8887 x_result OUT NOCOPY NUMBER)
8888 IS
8889
8890 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
8891 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
8892 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
8893 l_valResult BOOLEAN;
8894 l_valid NUMBER := 0;
8895 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
8896 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
8897
8898 l_field_name VARCHAR2(500);
8899 l_field_value VARCHAR2(500);
8900
8901 l_string VARCHAR2(500);
8902
8903 BEGIN
8904
8905 -- Get the field name
8906 IBY_VALIDATIONSETS_PUB.getParamValue(
8907 p_validation_assign_id,
8908 p_validation_set_code,
8909 'P_FIELD_NAME',
8910 l_field_name );
8911
8912 -- if field name is null, the validation is skipped, i.e. nothing is validated
8913 if l_field_name is null then
8914 x_result := l_valid;
8915 return;
8916 end if;
8917
8918 l_docErrorRec.validation_set_code := p_validation_set_code;
8919 l_docErrorRec.transaction_id := p_transaction_id;
8920
8921 -- Payment instruction field
8922 if substr(l_field_name,1,3) = 'INS' then
8923 -- Initializing the payment instruction record
8924 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
8925
8926 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
8927 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
8928
8929 -- Get the field value
8930 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
8931
8932 -- Payment field
8933 elsif substr(l_field_name,1,3) = 'PMT' then
8934 -- Initializing the payment record
8935 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
8936
8937 l_docErrorRec.transaction_type := 'PAYMENT';
8938 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
8939
8940 -- Get the field value
8941 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
8942
8943 -- Document field
8944 else
8945 -- Intializing the document record
8946 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
8947
8948 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
8949 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
8950 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
8951 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
8952
8953 -- Get the field value
8954 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
8955 end if;
8956
8957 IBY_VALIDATIONSETS_PUB.getParamValue(
8958 p_validation_assign_id,
8959 p_validation_set_code,
8960 'P_STRING',
8961 l_string );
8962
8963 -- Validate that the field is same as the string
8964 IBY_VALIDATIONSETS_PUB.evaluateCondition(
8965 l_field_name,
8966 l_field_value,
8967 'STRIS',
8968 l_string,
8969 null,
8970 l_valResult,
8971 l_docErrorRec);
8972
8973 IF (l_valResult = FALSE) THEN
8974 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
8975 l_valid := 1;
8976 END IF;
8977
8978 IF (l_valid = 1) THEN
8979 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
8980 END IF;
8981
8982 -- Return the Validation Result
8983 x_result := l_valid;
8984
8985 END IS_STRING;
8986
8987 /*--------------------------------------------------------------------
8988 | NAME:
8989 | IS_NOT_STRING
8990 |
8991 | PURPOSE:
8992 | Validate the field name
8993 |
8994 | PARAMETERS:
8995 | IN
8996 |
8997 |
8998 | OUT
8999 |
9000 |
9001 | RETURNS:
9002 |
9003 | NOTES:
9004 |
9005 *---------------------------------------------------------------------*/
9006 PROCEDURE IS_NOT_STRING (
9007 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
9008 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
9009 p_transaction_id IN NUMBER,
9010 p_is_online_val IN VARCHAR2,
9011 x_result OUT NOCOPY NUMBER)
9012 IS
9013
9014 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
9015 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
9016 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
9017 l_valResult BOOLEAN;
9018 l_valid NUMBER := 0;
9019 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
9020 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
9021
9022 l_field_name VARCHAR2(500);
9023 l_field_value VARCHAR2(500);
9024
9025 l_string VARCHAR2(500);
9026
9027 BEGIN
9028
9029 -- Get the field name
9030 IBY_VALIDATIONSETS_PUB.getParamValue(
9031 p_validation_assign_id,
9032 p_validation_set_code,
9033 'P_FIELD_NAME',
9034 l_field_name );
9035
9036 -- if field name is null, the validation is skipped, i.e. nothing is validated
9037 if l_field_name is null then
9038 x_result := l_valid;
9039 return;
9040 end if;
9041
9042 l_docErrorRec.validation_set_code := p_validation_set_code;
9043 l_docErrorRec.transaction_id := p_transaction_id;
9044
9045 -- Payment instruction field
9046 if substr(l_field_name,1,3) = 'INS' then
9047 -- Initializing the payment instruction record
9048 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
9049
9050 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
9051 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9052
9053 -- Get the field value
9054 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
9055
9056 -- Payment field
9057 elsif substr(l_field_name,1,3) = 'PMT' then
9058 -- Initializing the payment record
9059 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
9060
9061 l_docErrorRec.transaction_type := 'PAYMENT';
9062 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9063
9064 -- Get the field value
9065 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
9066
9067 -- Document field
9068 else
9069 -- Intializing the document record
9070 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
9071
9072 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
9073 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
9074 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
9075 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
9076
9077 -- Get the field value
9078 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
9079 end if;
9080
9081 IBY_VALIDATIONSETS_PUB.getParamValue(
9082 p_validation_assign_id,
9083 p_validation_set_code,
9084 'P_STRING',
9085 l_string );
9086
9087 -- Validate that the field is not same as the string
9088 IBY_VALIDATIONSETS_PUB.evaluateCondition(
9089 l_field_name,
9090 l_field_value,
9091 'STRISNOT',
9092 l_string,
9093 null,
9094 l_valResult,
9095 l_docErrorRec);
9096
9097 IF (l_valResult = FALSE) THEN
9098 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
9099 l_valid := 1;
9100 END IF;
9101
9102 IF (l_valid = 1) THEN
9103 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
9104 END IF;
9105
9106 -- Return the Validation Result
9107 x_result := l_valid;
9108
9109 END IS_NOT_STRING;
9110
9111 /*--------------------------------------------------------------------
9112 | NAME:
9113 | IN_SET
9114 |
9115 | PURPOSE:
9116 | Validate the field name
9117 |
9118 | PARAMETERS:
9119 | IN
9120 |
9121 |
9122 | OUT
9123 |
9124 |
9125 | RETURNS:
9126 |
9127 | NOTES:
9128 |
9129 *---------------------------------------------------------------------*/
9130 PROCEDURE IN_SET (
9131 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
9132 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
9133 p_transaction_id IN NUMBER,
9134 p_is_online_val IN VARCHAR2,
9135 x_result OUT NOCOPY NUMBER)
9136 IS
9137
9138 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
9139 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
9140 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
9141 l_valResult BOOLEAN;
9142 l_valid NUMBER := 0;
9143 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
9144 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
9145
9146 l_field_name VARCHAR2(500);
9147 l_field_value VARCHAR2(500);
9148
9149 l_string_set VARCHAR2(500);
9150
9151 BEGIN
9152
9153 -- Get the field name
9154 IBY_VALIDATIONSETS_PUB.getParamValue(
9155 p_validation_assign_id,
9156 p_validation_set_code,
9157 'P_FIELD_NAME',
9158 l_field_name );
9159
9160 -- if field name is null, the validation is skipped, i.e. nothing is validated
9161 if l_field_name is null then
9162 x_result := l_valid;
9163 return;
9164 end if;
9165
9166 l_docErrorRec.validation_set_code := p_validation_set_code;
9167 l_docErrorRec.transaction_id := p_transaction_id;
9168
9169 -- Payment instruction field
9170 if substr(l_field_name,1,3) = 'INS' then
9171 -- Initializing the payment instruction record
9172 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
9173
9174 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
9175 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9176
9177 -- Get the field value
9178 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
9179
9180 -- Payment field
9181 elsif substr(l_field_name,1,3) = 'PMT' then
9182 -- Initializing the payment record
9183 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
9184
9185 l_docErrorRec.transaction_type := 'PAYMENT';
9186 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9187
9188 -- Get the field value
9189 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
9190
9191 -- Document field
9192 else
9193 -- Intializing the document record
9194 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
9195
9196 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
9197 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
9198 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
9199 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
9200
9201 -- Get the field value
9202 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
9203 end if;
9204
9205 IBY_VALIDATIONSETS_PUB.getParamValue(
9206 p_validation_assign_id,
9207 p_validation_set_code,
9208 'P_STRING_SET',
9209 l_string_set );
9210
9211 -- Validate that the field is among the set of strings
9212 IBY_VALIDATIONSETS_PUB.evaluateCondition(
9213 l_field_name,
9214 l_field_value,
9215 'INSET',
9216 l_string_set,
9217 null,
9218 l_valResult,
9219 l_docErrorRec);
9220
9221 IF (l_valResult = FALSE) THEN
9222 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
9223 l_valid := 1;
9224 END IF;
9225
9226 IF (l_valid = 1) THEN
9227 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
9228 END IF;
9229
9230 -- Return the Validation Result
9231 x_result := l_valid;
9232
9233 END IN_SET;
9234
9235 /*--------------------------------------------------------------------
9236 | NAME:
9237 | NOT_IN_SET
9238 |
9239 | PURPOSE:
9240 | Validate the field name
9241 |
9242 | PARAMETERS:
9243 | IN
9244 |
9245 |
9246 | OUT
9247 |
9248 |
9249 | RETURNS:
9250 |
9251 | NOTES:
9252 |
9253 *---------------------------------------------------------------------*/
9254 PROCEDURE NOT_IN_SET (
9255 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
9256 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
9257 p_transaction_id IN NUMBER,
9258 p_is_online_val IN VARCHAR2,
9259 x_result OUT NOCOPY NUMBER)
9260 IS
9261
9262 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
9263 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
9264 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
9265 l_valResult BOOLEAN;
9266 l_valid NUMBER := 0;
9267 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
9268 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
9269
9270 l_field_name VARCHAR2(500);
9271 l_field_value VARCHAR2(500);
9272
9273 l_string_set VARCHAR2(500);
9274
9275 BEGIN
9276
9277 -- Get the field name
9278 IBY_VALIDATIONSETS_PUB.getParamValue(
9279 p_validation_assign_id,
9280 p_validation_set_code,
9281 'P_FIELD_NAME',
9282 l_field_name );
9283
9284 -- if field name is null, the validation is skipped, i.e. nothing is validated
9285 if l_field_name is null then
9286 x_result := l_valid;
9287 return;
9288 end if;
9289
9290 l_docErrorRec.validation_set_code := p_validation_set_code;
9291 l_docErrorRec.transaction_id := p_transaction_id;
9292
9293 -- Payment instruction field
9294 if substr(l_field_name,1,3) = 'INS' then
9295 -- Initializing the payment instruction record
9296 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
9297
9298 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
9299 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9300
9301 -- Get the field value
9302 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
9303
9304 -- Payment field
9305 elsif substr(l_field_name,1,3) = 'PMT' then
9306 -- Initializing the payment record
9307 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
9308
9309 l_docErrorRec.transaction_type := 'PAYMENT';
9310 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9311
9312 -- Get the field value
9313 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
9314
9315 -- Document field
9316 else
9317 -- Intializing the document record
9318 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
9319
9320 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
9321 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
9322 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
9323 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
9324
9325 -- Get the field value
9326 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
9327 end if;
9328
9329 IBY_VALIDATIONSETS_PUB.getParamValue(
9330 p_validation_assign_id,
9331 p_validation_set_code,
9332 'P_STRING_SET',
9333 l_string_set );
9334
9335 -- Validate that the field is not among the set of strings
9336 IBY_VALIDATIONSETS_PUB.evaluateCondition(
9337 l_field_name,
9338 l_field_value,
9339 'NOTINSET',
9340 l_string_set,
9341 null,
9342 l_valResult,
9343 l_docErrorRec);
9344
9345 IF (l_valResult = FALSE) THEN
9346 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
9347 l_valid := 1;
9348 END IF;
9349
9350 IF (l_valid = 1) THEN
9351 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
9352 END IF;
9353
9354 -- Return the Validation Result
9355 x_result := l_valid;
9356
9357 END NOT_IN_SET;
9358
9359 /*--------------------------------------------------------------------
9360 | NAME:
9361 | START_WITH
9362 |
9363 | PURPOSE:
9364 | Validate the field name
9365 |
9366 | PARAMETERS:
9367 | IN
9368 |
9369 |
9370 | OUT
9371 |
9372 |
9373 | RETURNS:
9374 |
9375 | NOTES:
9376 |
9377 *---------------------------------------------------------------------*/
9378 PROCEDURE START_WITH (
9379 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
9380 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
9381 p_transaction_id IN NUMBER,
9382 p_is_online_val IN VARCHAR2,
9383 x_result OUT NOCOPY NUMBER)
9384 IS
9385
9386 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
9387 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
9388 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
9389 l_valResult BOOLEAN;
9390 l_valid NUMBER := 0;
9391 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
9392 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
9393
9394 l_field_name VARCHAR2(500);
9395 l_field_value VARCHAR2(500);
9396
9397 l_string VARCHAR2(500);
9398
9399 BEGIN
9400
9401 -- Get the field name
9402 IBY_VALIDATIONSETS_PUB.getParamValue(
9403 p_validation_assign_id,
9404 p_validation_set_code,
9405 'P_FIELD_NAME',
9406 l_field_name );
9407
9408 -- if field name is null, the validation is skipped, i.e. nothing is validated
9409 if l_field_name is null then
9410 x_result := l_valid;
9411 return;
9412 end if;
9413
9414 l_docErrorRec.validation_set_code := p_validation_set_code;
9415 l_docErrorRec.transaction_id := p_transaction_id;
9416
9417 -- Payment instruction field
9418 if substr(l_field_name,1,3) = 'INS' then
9419 -- Initializing the payment instruction record
9420 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
9421
9422 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
9423 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9424
9425 -- Get the field value
9426 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
9427
9428 -- Payment field
9429 elsif substr(l_field_name,1,3) = 'PMT' then
9430 -- Initializing the payment record
9431 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
9432
9433 l_docErrorRec.transaction_type := 'PAYMENT';
9434 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9435
9436 -- Get the field value
9437 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
9438
9439 -- Document field
9440 else
9441 -- Intializing the document record
9442 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
9443
9444 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
9445 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
9446 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
9447 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
9448
9449 -- Get the field value
9450 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
9451 end if;
9452
9453 IBY_VALIDATIONSETS_PUB.getParamValue(
9454 p_validation_assign_id,
9455 p_validation_set_code,
9456 'P_STRING',
9457 l_string );
9458
9459 -- Validate that the field starts with the string
9460 IBY_VALIDATIONSETS_PUB.evaluateCondition(
9461 l_field_name,
9462 l_field_value,
9463 'STARTWITH',
9464 l_string,
9465 null,
9466 l_valResult,
9467 l_docErrorRec);
9468
9469 IF (l_valResult = FALSE) THEN
9470 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
9471 l_valid := 1;
9472 END IF;
9473
9474 IF (l_valid = 1) THEN
9475 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
9476 END IF;
9477
9478 -- Return the Validation Result
9479 x_result := l_valid;
9480
9481 END START_WITH;
9482
9483 /*--------------------------------------------------------------------
9484 | NAME:
9485 | NOT_START_WITH
9486 |
9487 | PURPOSE:
9488 | Validate the field name
9489 |
9490 | PARAMETERS:
9491 | IN
9492 |
9493 |
9494 | OUT
9495 |
9496 |
9497 | RETURNS:
9498 |
9499 | NOTES:
9500 |
9501 *---------------------------------------------------------------------*/
9502 PROCEDURE NOT_START_WITH (
9503 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
9504 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
9505 p_transaction_id IN NUMBER,
9506 p_is_online_val IN VARCHAR2,
9507 x_result OUT NOCOPY NUMBER)
9508 IS
9509
9510 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
9511 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
9512 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
9513 l_valResult BOOLEAN;
9514 l_valid NUMBER := 0;
9515 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
9516 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
9517
9518 l_field_name VARCHAR2(500);
9519 l_field_value VARCHAR2(500);
9520
9521 l_string VARCHAR2(500);
9522
9523 BEGIN
9524
9525 -- Get the field name
9526 IBY_VALIDATIONSETS_PUB.getParamValue(
9527 p_validation_assign_id,
9528 p_validation_set_code,
9529 'P_FIELD_NAME',
9530 l_field_name );
9531
9532 -- if field name is null, the validation is skipped, i.e. nothing is validated
9533 if l_field_name is null then
9534 x_result := l_valid;
9535 return;
9536 end if;
9537
9538 l_docErrorRec.validation_set_code := p_validation_set_code;
9539 l_docErrorRec.transaction_id := p_transaction_id;
9540
9541 -- Payment instruction field
9542 if substr(l_field_name,1,3) = 'INS' then
9543 -- Initializing the payment instruction record
9544 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
9545
9546 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
9547 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9548
9549 -- Get the field value
9550 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
9551
9552 -- Payment field
9553 elsif substr(l_field_name,1,3) = 'PMT' then
9554 -- Initializing the payment record
9555 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
9556
9557 l_docErrorRec.transaction_type := 'PAYMENT';
9558 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9559
9560 -- Get the field value
9561 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
9562
9563 -- Document field
9564 else
9565 -- Intializing the document record
9566 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
9567
9568 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
9569 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
9570 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
9571 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
9572
9573 -- Get the field value
9574 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
9575 end if;
9576
9577 IBY_VALIDATIONSETS_PUB.getParamValue(
9578 p_validation_assign_id,
9579 p_validation_set_code,
9580 'P_STRING',
9581 l_string );
9582
9583 -- Validate that the field does not start with the string
9584 IBY_VALIDATIONSETS_PUB.evaluateCondition(
9585 l_field_name,
9586 l_field_value,
9587 'NOTSTARTWITH',
9588 l_string,
9589 null,
9590 l_valResult,
9591 l_docErrorRec);
9592
9593 IF (l_valResult = FALSE) THEN
9594 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
9595 l_valid := 1;
9596 END IF;
9597
9598 IF (l_valid = 1) THEN
9599 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
9600 END IF;
9601
9602 -- Return the Validation Result
9603 x_result := l_valid;
9604
9605 END NOT_START_WITH;
9606
9607 /*--------------------------------------------------------------------
9608 | NAME:
9609 | IS_IN_LOOKUP
9610 |
9611 | PURPOSE:
9612 | Validate the field name
9613 |
9614 | PARAMETERS:
9615 | IN
9616 |
9617 |
9618 | OUT
9619 |
9620 |
9621 | RETURNS:
9622 |
9623 | NOTES:
9624 |
9625 *---------------------------------------------------------------------*/
9626 PROCEDURE IS_IN_LOOKUP (
9627 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
9628 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
9629 p_transaction_id IN NUMBER,
9630 p_is_online_val IN VARCHAR2,
9631 x_result OUT NOCOPY NUMBER)
9632 IS
9633
9634 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
9635 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
9636 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
9637 l_valResult BOOLEAN;
9638 l_valid NUMBER := 0;
9639 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
9640 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
9641
9642 l_field_name VARCHAR2(500);
9643 l_field_value VARCHAR2(500);
9644
9645 l_lookup_type VARCHAR2(500);
9646
9647 BEGIN
9648
9649 -- Get the field name
9650 IBY_VALIDATIONSETS_PUB.getParamValue(
9651 p_validation_assign_id,
9652 p_validation_set_code,
9653 'P_FIELD_NAME',
9654 l_field_name );
9655
9656 -- if field name is null, the validation is skipped, i.e. nothing is validated
9657 if l_field_name is null then
9658 x_result := l_valid;
9659 return;
9660 end if;
9661
9662 l_docErrorRec.validation_set_code := p_validation_set_code;
9663 l_docErrorRec.transaction_id := p_transaction_id;
9664
9665 -- Payment instruction field
9666 if substr(l_field_name,1,3) = 'INS' then
9667 -- Initializing the payment instruction record
9668 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
9669
9670 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
9671 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9672
9673 -- Get the field value
9674 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
9675
9676 -- Payment field
9677 elsif substr(l_field_name,1,3) = 'PMT' then
9678 -- Initializing the payment record
9679 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
9680
9681 l_docErrorRec.transaction_type := 'PAYMENT';
9682 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9683
9684 -- Get the field value
9685 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
9686
9687 -- Document field
9688 else
9689 -- Intializing the document record
9690 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
9691
9692 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
9693 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
9694 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
9695 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
9696
9697 -- Get the field value
9698 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
9699 end if;
9700
9701 IBY_VALIDATIONSETS_PUB.getParamValue(
9702 p_validation_assign_id,
9703 p_validation_set_code,
9704 'P_LOOKUP_TYPE',
9705 l_lookup_type );
9706
9707 -- Validate that the field is among the records in the lookup type
9708 IBY_VALIDATIONSETS_PUB.evaluateCondition(
9709 l_field_name,
9710 l_field_value,
9711 'INLOOKUPTYPE',
9712 l_lookup_type,
9713 null,
9714 l_valResult,
9715 l_docErrorRec);
9716
9717 IF (l_valResult = FALSE) THEN
9718 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
9719 l_valid := 1;
9720 END IF;
9721
9722 IF (l_valid = 1) THEN
9723 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
9724 END IF;
9725
9726 -- Return the Validation Result
9727 x_result := l_valid;
9728
9729 END IS_IN_LOOKUP;
9730
9731 /*--------------------------------------------------------------------
9732 | NAME:
9733 | GREATER_THAN
9734 |
9735 | PURPOSE:
9736 | Validate the field name
9737 |
9738 | PARAMETERS:
9739 | IN
9740 |
9741 |
9742 | OUT
9743 |
9744 |
9745 | RETURNS:
9746 |
9747 | NOTES:
9748 |
9749 *---------------------------------------------------------------------*/
9750 PROCEDURE GREATER_THAN (
9751 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
9752 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
9753 p_transaction_id IN NUMBER,
9754 p_is_online_val IN VARCHAR2,
9755 x_result OUT NOCOPY NUMBER)
9756 IS
9757
9758 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
9759 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
9760 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
9761 l_valResult BOOLEAN;
9762 l_valid NUMBER := 0;
9763 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
9764 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
9765
9766 l_field_name VARCHAR2(500);
9767 l_field_value VARCHAR2(500);
9768
9769 l_num_value number;
9770
9771 BEGIN
9772
9773 -- Get the field name
9774 IBY_VALIDATIONSETS_PUB.getParamValue(
9775 p_validation_assign_id,
9776 p_validation_set_code,
9777 'P_FIELD_NAME',
9778 l_field_name );
9779
9780 -- if field name is null, the validation is skipped, i.e. nothing is validated
9781 if l_field_name is null then
9782 x_result := l_valid;
9783 return;
9784 end if;
9785
9786 l_docErrorRec.validation_set_code := p_validation_set_code;
9787 l_docErrorRec.transaction_id := p_transaction_id;
9788
9789 -- Payment instruction field
9790 if substr(l_field_name,1,3) = 'INS' then
9791 -- Initializing the payment instruction record
9792 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
9793
9794 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
9795 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9796
9797 -- Get the field value
9798 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
9799
9800 -- Payment field
9801 elsif substr(l_field_name,1,3) = 'PMT' then
9802 -- Initializing the payment record
9803 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
9804
9805 l_docErrorRec.transaction_type := 'PAYMENT';
9806 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9807
9808 -- Get the field value
9809 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
9810
9811 -- Document field
9812 else
9813 -- Intializing the document record
9814 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
9815
9816 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
9817 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
9818 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
9819 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
9820
9821 -- Get the field value
9822 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
9823 end if;
9824
9825 IBY_VALIDATIONSETS_PUB.getParamValue(
9826 p_validation_assign_id,
9827 p_validation_set_code,
9828 'P_NUMBER',
9829 l_num_value );
9830
9831 -- Validate that the field is greater than the value
9832 IBY_VALIDATIONSETS_PUB.evaluateCondition(
9833 l_field_name,
9834 l_field_value,
9835 'GRTTHAN',
9836 null,
9837 l_num_value,
9838 l_valResult,
9839 l_docErrorRec);
9840
9841 IF (l_valResult = FALSE) THEN
9842 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
9843 l_valid := 1;
9844 END IF;
9845
9846 IF (l_valid = 1) THEN
9847 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
9848 END IF;
9849
9850 -- Return the Validation Result
9851 x_result := l_valid;
9852
9853 END GREATER_THAN;
9854
9855 /*--------------------------------------------------------------------
9856 | NAME:
9857 | GREATER_THAN_EQUAL_TO
9858 |
9859 | PURPOSE:
9860 | Validate the field name
9861 |
9862 | PARAMETERS:
9863 | IN
9864 |
9865 |
9866 | OUT
9867 |
9868 |
9869 | RETURNS:
9870 |
9871 | NOTES:
9872 |
9873 *---------------------------------------------------------------------*/
9874 PROCEDURE GREATER_THAN_EQUAL_TO (
9875 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
9876 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
9877 p_transaction_id IN NUMBER,
9878 p_is_online_val IN VARCHAR2,
9879 x_result OUT NOCOPY NUMBER)
9880 IS
9881
9882 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
9883 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
9884 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
9885 l_valResult BOOLEAN;
9886 l_valid NUMBER := 0;
9887 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
9888 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
9889
9890 l_field_name VARCHAR2(500);
9891 l_field_value VARCHAR2(500);
9892
9893 l_num_value number;
9894
9895 BEGIN
9896
9897 -- Get the field name
9898 IBY_VALIDATIONSETS_PUB.getParamValue(
9899 p_validation_assign_id,
9900 p_validation_set_code,
9901 'P_FIELD_NAME',
9902 l_field_name );
9903
9904 -- if field name is null, the validation is skipped, i.e. nothing is validated
9905 if l_field_name is null then
9906 x_result := l_valid;
9907 return;
9908 end if;
9909
9910 l_docErrorRec.validation_set_code := p_validation_set_code;
9911 l_docErrorRec.transaction_id := p_transaction_id;
9912
9913 -- Payment instruction field
9914 if substr(l_field_name,1,3) = 'INS' then
9915 -- Initializing the payment instruction record
9916 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
9917
9918 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
9919 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9920
9921 -- Get the field value
9922 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
9923
9924 -- Payment field
9925 elsif substr(l_field_name,1,3) = 'PMT' then
9926 -- Initializing the payment record
9927 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
9928
9929 l_docErrorRec.transaction_type := 'PAYMENT';
9930 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
9931
9932 -- Get the field value
9933 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
9934
9935 -- Document field
9936 else
9937 -- Intializing the document record
9938 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
9939
9940 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
9941 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
9942 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
9943 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
9944
9945 -- Get the field value
9946 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
9947 end if;
9948
9949 IBY_VALIDATIONSETS_PUB.getParamValue(
9950 p_validation_assign_id,
9951 p_validation_set_code,
9952 'P_NUMBER',
9953 l_num_value );
9954
9955 -- Validate that the field is greater than or equal to the value
9956 IBY_VALIDATIONSETS_PUB.evaluateCondition(
9957 l_field_name,
9958 l_field_value,
9959 'GRTEQUAL',
9960 null,
9961 l_num_value,
9962 l_valResult,
9963 l_docErrorRec);
9964
9965 IF (l_valResult = FALSE) THEN
9966 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
9967 l_valid := 1;
9968 END IF;
9969
9970 IF (l_valid = 1) THEN
9971 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
9972 END IF;
9973
9974 -- Return the Validation Result
9975 x_result := l_valid;
9976
9977 END GREATER_THAN_EQUAL_TO;
9978
9979 /*--------------------------------------------------------------------
9980 | NAME:
9981 | LESS_THAN
9982 |
9983 | PURPOSE:
9984 | Validate the field name
9985 |
9986 | PARAMETERS:
9987 | IN
9988 |
9989 |
9990 | OUT
9991 |
9992 |
9993 | RETURNS:
9994 |
9995 | NOTES:
9996 |
9997 *---------------------------------------------------------------------*/
9998 PROCEDURE LESS_THAN (
9999 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
10000 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
10001 p_transaction_id IN NUMBER,
10002 p_is_online_val IN VARCHAR2,
10003 x_result OUT NOCOPY NUMBER)
10004 IS
10005
10006 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
10007 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
10008 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
10009 l_valResult BOOLEAN;
10010 l_valid NUMBER := 0;
10011 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
10012 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
10013
10014 l_field_name VARCHAR2(500);
10015 l_field_value VARCHAR2(500);
10016
10017 l_num_value number;
10018
10019 BEGIN
10020
10021 -- Get the field name
10022 IBY_VALIDATIONSETS_PUB.getParamValue(
10023 p_validation_assign_id,
10024 p_validation_set_code,
10025 'P_FIELD_NAME',
10026 l_field_name );
10027
10028 -- if field name is null, the validation is skipped, i.e. nothing is validated
10029 if l_field_name is null then
10030 x_result := l_valid;
10031 return;
10032 end if;
10033
10034 l_docErrorRec.validation_set_code := p_validation_set_code;
10035 l_docErrorRec.transaction_id := p_transaction_id;
10036
10037 -- Payment instruction field
10038 if substr(l_field_name,1,3) = 'INS' then
10039 -- Initializing the payment instruction record
10040 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
10041
10042 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
10043 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
10044
10045 -- Get the field value
10046 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
10047
10048 -- Payment field
10049 elsif substr(l_field_name,1,3) = 'PMT' then
10050 -- Initializing the payment record
10051 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
10052
10053 l_docErrorRec.transaction_type := 'PAYMENT';
10054 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
10055
10056 -- Get the field value
10057 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
10058
10059 -- Document field
10060 else
10061 -- Intializing the document record
10062 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
10063
10064 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
10065 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
10066 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
10067 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
10068
10069 -- Get the field value
10070 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
10071 end if;
10072
10073 IBY_VALIDATIONSETS_PUB.getParamValue(
10074 p_validation_assign_id,
10075 p_validation_set_code,
10076 'P_NUMBER',
10077 l_num_value );
10078
10079 -- Validate that the field is less than the value
10080 IBY_VALIDATIONSETS_PUB.evaluateCondition(
10081 l_field_name,
10082 l_field_value,
10083 'LESSTHAN',
10084 null,
10085 l_num_value,
10086 l_valResult,
10087 l_docErrorRec);
10088
10089 IF (l_valResult = FALSE) THEN
10090 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
10091 l_valid := 1;
10092 END IF;
10093
10094 IF (l_valid = 1) THEN
10095 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
10096 END IF;
10097
10098 -- Return the Validation Result
10099 x_result := l_valid;
10100
10101 END LESS_THAN;
10102
10103 /*--------------------------------------------------------------------
10104 | NAME:
10105 | LESS_THAN_EQUAL_TO
10106 |
10107 | PURPOSE:
10108 | Validate the field name
10109 |
10110 | PARAMETERS:
10111 | IN
10112 |
10113 |
10114 | OUT
10115 |
10116 |
10117 | RETURNS:
10118 |
10119 | NOTES:
10120 |
10121 *---------------------------------------------------------------------*/
10122 PROCEDURE LESS_THAN_EQUAL_TO (
10123 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
10124 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
10125 p_transaction_id IN NUMBER,
10126 p_is_online_val IN VARCHAR2,
10127 x_result OUT NOCOPY NUMBER)
10128 IS
10129
10130 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
10131 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
10132 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
10133 l_valResult BOOLEAN;
10134 l_valid NUMBER := 0;
10135 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
10136 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
10137
10138 l_field_name VARCHAR2(500);
10139 l_field_value VARCHAR2(500);
10140
10141 l_num_value number;
10142
10143 BEGIN
10144
10145 -- Get the field name
10146 IBY_VALIDATIONSETS_PUB.getParamValue(
10147 p_validation_assign_id,
10148 p_validation_set_code,
10149 'P_FIELD_NAME',
10150 l_field_name );
10151
10152 -- if field name is null, the validation is skipped, i.e. nothing is validated
10153 if l_field_name is null then
10154 x_result := l_valid;
10155 return;
10156 end if;
10157
10158 l_docErrorRec.validation_set_code := p_validation_set_code;
10159 l_docErrorRec.transaction_id := p_transaction_id;
10160
10161 -- Payment instruction field
10162 if substr(l_field_name,1,3) = 'INS' then
10163 -- Initializing the payment instruction record
10164 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
10165
10166 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
10167 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
10168
10169 -- Get the field value
10170 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
10171
10172 -- Payment field
10173 elsif substr(l_field_name,1,3) = 'PMT' then
10174 -- Initializing the payment record
10175 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
10176
10177 l_docErrorRec.transaction_type := 'PAYMENT';
10178 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
10179
10180 -- Get the field value
10181 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
10182
10183 -- Document field
10184 else
10185 -- Intializing the document record
10186 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
10187
10188 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
10189 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
10190 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
10191 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
10192
10193 -- Get the field value
10194 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
10195 end if;
10196
10197 IBY_VALIDATIONSETS_PUB.getParamValue(
10198 p_validation_assign_id,
10199 p_validation_set_code,
10200 'P_NUMBER',
10201 l_num_value );
10202
10203 -- Validate that the field is less than or equal to the value
10204 IBY_VALIDATIONSETS_PUB.evaluateCondition(
10205 l_field_name,
10206 l_field_value,
10207 'LESSEQUAL',
10208 null,
10209 l_num_value,
10210 l_valResult,
10211 l_docErrorRec);
10212
10213 IF (l_valResult = FALSE) THEN
10214 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
10215 l_valid := 1;
10216 END IF;
10217
10218 IF (l_valid = 1) THEN
10219 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
10220 END IF;
10221
10222 -- Return the Validation Result
10223 x_result := l_valid;
10224
10225 END LESS_THAN_EQUAL_TO;
10226
10227 /*--------------------------------------------------------------------
10228 | NAME:
10229 | EQUAL_TO
10230 |
10231 | PURPOSE:
10232 | Validate the field name
10233 |
10234 | PARAMETERS:
10235 | IN
10236 |
10237 |
10238 | OUT
10239 |
10240 |
10241 | RETURNS:
10242 |
10243 | NOTES:
10244 |
10245 *---------------------------------------------------------------------*/
10246 PROCEDURE EQUAL_TO (
10247 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
10248 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
10249 p_transaction_id IN NUMBER,
10250 p_is_online_val IN VARCHAR2,
10251 x_result OUT NOCOPY NUMBER)
10252 IS
10253
10254 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
10255 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
10256 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
10257 l_valResult BOOLEAN;
10258 l_valid NUMBER := 0;
10259 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
10260 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
10261
10262 l_field_name VARCHAR2(500);
10263 l_field_value VARCHAR2(500);
10264
10265 l_num_value number;
10266
10267 BEGIN
10268
10269 -- Get the field name
10270 IBY_VALIDATIONSETS_PUB.getParamValue(
10271 p_validation_assign_id,
10272 p_validation_set_code,
10273 'P_FIELD_NAME',
10274 l_field_name );
10275
10276 -- if field name is null, the validation is skipped, i.e. nothing is validated
10277 if l_field_name is null then
10278 x_result := l_valid;
10279 return;
10280 end if;
10281
10282 l_docErrorRec.validation_set_code := p_validation_set_code;
10283 l_docErrorRec.transaction_id := p_transaction_id;
10284
10285 -- Payment instruction field
10286 if substr(l_field_name,1,3) = 'INS' then
10287 -- Initializing the payment instruction record
10288 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
10289
10290 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
10291 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
10292
10293 -- Get the field value
10294 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
10295
10296 -- Payment field
10297 elsif substr(l_field_name,1,3) = 'PMT' then
10298 -- Initializing the payment record
10299 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
10300
10301 l_docErrorRec.transaction_type := 'PAYMENT';
10302 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
10303
10304 -- Get the field value
10305 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
10306
10307 -- Document field
10308 else
10309 -- Intializing the document record
10310 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
10311
10312 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
10313 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
10314 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
10315 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
10316
10317 -- Get the field value
10318 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
10319 end if;
10320
10321 IBY_VALIDATIONSETS_PUB.getParamValue(
10322 p_validation_assign_id,
10323 p_validation_set_code,
10324 'P_NUMBER',
10325 l_num_value );
10326
10327 -- Validate that the field is equal to the value
10328 IBY_VALIDATIONSETS_PUB.evaluateCondition(
10329 l_field_name,
10330 l_field_value,
10331 'EQUALTO',
10332 null,
10333 l_num_value,
10334 l_valResult,
10335 l_docErrorRec);
10336
10337 IF (l_valResult = FALSE) THEN
10338 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
10339 l_valid := 1;
10340 END IF;
10341
10342 IF (l_valid = 1) THEN
10343 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
10344 END IF;
10345
10346 -- Return the Validation Result
10347 x_result := l_valid;
10348
10349 END EQUAL_TO;
10350
10351 /*--------------------------------------------------------------------
10352 | NAME:
10353 | NOT_EQUAL_TO
10354 |
10355 | PURPOSE:
10356 | Validate the field name
10357 |
10358 | PARAMETERS:
10359 | IN
10360 |
10361 |
10362 | OUT
10363 |
10364 |
10365 | RETURNS:
10366 |
10367 | NOTES:
10368 |
10369 *---------------------------------------------------------------------*/
10370 PROCEDURE NOT_EQUAL_TO (
10371 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
10372 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
10373 p_transaction_id IN NUMBER,
10374 p_is_online_val IN VARCHAR2,
10375 x_result OUT NOCOPY NUMBER)
10376 IS
10377
10378 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
10379 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
10380 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
10381 l_valResult BOOLEAN;
10382 l_valid NUMBER := 0;
10383 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
10384 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
10385
10386 l_field_name VARCHAR2(500);
10387 l_field_value VARCHAR2(500);
10388
10389 l_num_value number;
10390
10391 BEGIN
10392
10393 -- Get the field name
10394 IBY_VALIDATIONSETS_PUB.getParamValue(
10395 p_validation_assign_id,
10396 p_validation_set_code,
10397 'P_FIELD_NAME',
10398 l_field_name );
10399
10400 -- if field name is null, the validation is skipped, i.e. nothing is validated
10401 if l_field_name is null then
10402 x_result := l_valid;
10403 return;
10404 end if;
10405
10406 l_docErrorRec.validation_set_code := p_validation_set_code;
10407 l_docErrorRec.transaction_id := p_transaction_id;
10408
10409 -- Payment instruction field
10410 if substr(l_field_name,1,3) = 'INS' then
10411 -- Initializing the payment instruction record
10412 IBY_VALIDATIONSETS_PUB.initInstructionData(p_transaction_id,l_instruction_rec);
10413
10414 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
10415 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
10416
10417 -- Get the field value
10418 IBY_VALIDATIONSETS_PUB.getInstructionFieldValue (l_field_name, l_instruction_rec, l_field_value);
10419
10420 -- Payment field
10421 elsif substr(l_field_name,1,3) = 'PMT' then
10422 -- Initializing the payment record
10423 IBY_VALIDATIONSETS_PUB.initPaymentData(p_transaction_id,l_payment_rec);
10424
10425 l_docErrorRec.transaction_type := 'PAYMENT';
10426 l_docErrorRec.calling_app_doc_unique_ref1 := p_transaction_id;
10427
10428 -- Get the field value
10429 IBY_VALIDATIONSETS_PUB.getPaymentFieldValue (l_field_name, l_payment_rec, l_field_value);
10430
10431 -- Document field
10432 else
10433 -- Intializing the document record
10434 IBY_VALIDATIONSETS_PUB.initDocumentData(p_transaction_id,l_document_rec,p_is_online_val);
10435
10436 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
10437 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
10438 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
10439 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
10440
10441 -- Get the field value
10442 IBY_VALIDATIONSETS_PUB.getDocumentFieldValue (l_field_name, l_document_rec, l_field_value);
10443 end if;
10444
10445 IBY_VALIDATIONSETS_PUB.getParamValue(
10446 p_validation_assign_id,
10447 p_validation_set_code,
10448 'P_NUMBER',
10449 l_num_value );
10450
10451 -- Validate that the field is not equal to the value
10452 IBY_VALIDATIONSETS_PUB.evaluateCondition(
10453 l_field_name,
10454 l_field_value,
10455 'NOTEQUALTO',
10456 null,
10457 l_num_value,
10458 l_valResult,
10459 l_docErrorRec);
10460
10461 IF (l_valResult = FALSE) THEN
10462 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
10463 l_valid := 1;
10464 END IF;
10465
10466 IF (l_valid = 1) THEN
10467 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
10468 END IF;
10469
10470 -- Return the Validation Result
10471 x_result := l_valid;
10472
10473 END NOT_EQUAL_TO;
10474
10475
10476 -- End of Section Component Validation
10477
10478 /*--------------------------------------------------------------------
10479 | NAME:
10480 | performCharacterValidation
10481 |
10482 | PURPOSE:
10483 | Procedure to validate character set.
10484 |
10485 | PARAMETERS:
10486 | IN
10487 |
10488 |
10489 | OUT
10490 |
10491 |
10492 | RETURNS:
10493 |
10494 | NOTES:
10495 |
10496 *---------------------------------------------------------------------*/
10497 PROCEDURE performCharacterValidation(
10498 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.
10499 validation_assignment_id%TYPE,
10500 p_validation_set_code IN IBY_VALIDATION_SETS_VL.
10501 validation_set_code%TYPE,
10502 p_document_id IN IBY_DOCS_PAYABLE_ALL.payment_id%TYPE,
10503 p_is_online_val IN VARCHAR2,
10504 x_result OUT NOCOPY NUMBER)
10505 IS
10506
10507 l_charval_rec IBY_VALIDATIONSETS_PUB.charValRecType;
10508 l_valResult BOOLEAN;
10509 l_valid NUMBER := 0;
10510 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
10511 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
10512 l_invalid_chars_list VARCHAR2(3000);
10513 l_valid_chars_list VARCHAR2(3000);
10514
10515 l_module_name CONSTANT VARCHAR2(200) := G_PKG_NAME ||
10516 '.performCharacterValidation';
10517
10518 /*
10519 * The p_is_online_val input parameter has been added to the args list
10520 * only to make the method signature compatible with a validation set.
10521 *
10522 * All character validations are expected to be done as deferred
10523 * validations, hence p_is_online is ignored (always assumed to be 'N').
10524 */
10525
10526 /*
10527 * Cursor to pick up the character set applicable to a particular
10528 * validation set and validation assignment entity.
10529 *
10530 * Note: This cursor is expected to only pick up one row
10531 */
10532 CURSOR c_charlist (p_val_set_id IBY_VALIDATION_SETS_VL.
10533 validation_set_code%TYPE,
10534 p_charlist_type IBY_VALIDATION_PARAMS_VL.
10535 validation_parameter_code%TYPE)
10536 IS
10537 SELECT
10538 val.val_param_varchar2_value
10539 FROM
10540 IBY_VALIDATION_VALUES val,
10541 IBY_VALIDATION_PARAMS_VL names,
10542 IBY_VALIDATION_SETS_VL valsets,
10543 IBY_VAL_ASSIGNMENTS asgns
10544 WHERE
10545 valsets.validation_set_code = p_val_set_id
10546 AND
10547 val.validation_set_code = valsets.validation_set_code
10548 AND
10549 names.validation_parameter_code = p_charlist_type
10550 AND
10551 val.validation_parameter_code = names.validation_parameter_code
10552 AND
10553 asgns.validation_assignment_id = p_validation_assign_id
10554 AND
10555 val.validation_assignment_id = asgns.validation_assignment_id;
10556
10557 BEGIN
10558
10559 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10560 print_debuginfo(l_module_name, 'ENTER');
10561
10562 print_debuginfo(l_module_name, 'Provided document id: '
10563 || p_document_id
10564 );
10565
10566 END IF;
10567 /*
10568 * Get the fields from the document, payer, payee, payer bank
10569 * and payee bank for character validation.
10570 *
10571 * Since, in the build program, we don't know which of these
10572 * fields will be sent to the bank, we take the safer approach
10573 * and validate all of them.
10574 */
10575 IBY_VALIDATIONSETS_PUB.initCharValData(p_document_id, l_charval_rec);
10576
10577 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10578 print_debuginfo(l_module_name, 'Checking document '
10579 || l_charval_rec.document_id || ' for invalid characters');
10580
10581 END IF;
10582 /*
10583 * Get list of valid characters associated with this validation set.
10584 */
10585 OPEN c_charlist(p_validation_set_code, 'VALID_CHARS_LIST');
10586 FETCH c_charlist INTO l_valid_chars_list;
10587 CLOSE c_charlist;
10588
10589 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10590 print_debuginfo(l_module_name, 'List of valid chars from parameters '
10591 || 'table: '
10592 || l_valid_chars_list);
10593
10594 END IF;
10595 /*
10596 * Get list of invalid characters associated with this validation set.
10597 */
10598 OPEN c_charlist(p_validation_set_code, 'INVALID_CHARS_LIST');
10599 FETCH c_charlist INTO l_invalid_chars_list;
10600 CLOSE c_charlist;
10601
10602 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10603 print_debuginfo(l_module_name, 'List of invalid chars from parameters '
10604 || 'table: '
10605 || l_invalid_chars_list);
10606
10607 END IF;
10608 /*
10609 * If list of valid chars and list of invalid chars are both
10610 * null, then we cannot perform character validation.
10611 *
10612 * We'll consider this as incomplete setup (not an error).
10613 * Write a warning to the log file the and exit.
10614 */
10615 IF (l_valid_chars_list IS NULL AND l_invalid_chars_list IS NULL) THEN
10616 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10617 print_debuginfo(l_module_name, 'Neither list of invalid chars '
10618 || ' nor list of valid chars were provided as validation '
10619 || ' parameter for validation set '
10620 || p_validation_set_code
10621 || '. No character validation is possible. Exiting ..');
10622 END IF;
10623 x_result := l_valid;
10624 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10625 print_debuginfo(l_module_name, 'EXIT');
10626 END IF;
10627 RETURN;
10628 END IF;
10629
10630 /*
10631 * The user may have provided both list of valid chars and
10632 * list of invalid chars. The list of valid chars takes
10633 * precedence in such a case, and the list of invalid chars
10634 * is ignored. Log this to warn user.
10635 */
10636 IF (l_valid_chars_list IS NOT NULL AND
10637 l_invalid_chars_list IS NOT NULL) THEN
10638 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10639 print_debuginfo(l_module_name, 'Both list of invalid chars '
10640 || ' and list of valid chars were provided as validation '
10641 || ' parameter for validation set '
10642 || p_validation_set_code
10643 || '. Only list of valid characters will be used.');
10644 END IF;
10645 END IF;
10646
10647 l_docErrorRec.validation_set_code := p_validation_set_code;
10648 l_docErrorRec.transaction_id := p_document_id;
10649 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
10650
10651 l_docErrorRec.calling_app_id := l_charval_rec.ca_id;
10652 l_docErrorRec.pay_proc_trxn_type_code :=
10653 l_charval_rec.pay_proc_trxn_type_cd;
10654 l_docErrorRec.calling_app_doc_unique_ref1 :=
10655 l_charval_rec.calling_app_doc_id1;
10656
10657 /*
10658 * Go through all the fields in the document record checking
10659 * if the fields have invalid characters.
10660 */
10661 iby_build_utils_pkg.checkForInvalidChars(
10662 'Document identification',
10663 l_charval_rec.document_id
10664 || l_charval_rec.ca_id
10665 || l_charval_rec.calling_app_doc_id1
10666 || l_charval_rec.ca_doc_ref_num,
10667 true,
10668 l_valid_chars_list, l_invalid_chars_list,
10669 l_docErrorRec, l_docErrorTab);
10670
10671 iby_build_utils_pkg.checkForInvalidChars(
10672 'PO number',
10673 l_charval_rec.po_number, false,
10674 l_valid_chars_list, l_invalid_chars_list,
10675 l_docErrorRec, l_docErrorTab);
10676
10677 iby_build_utils_pkg.checkForInvalidChars(
10678 'Unique remittance identifier',
10679 l_charval_rec.uri, false,
10680 l_valid_chars_list, l_invalid_chars_list,
10681 l_docErrorRec, l_docErrorTab);
10682
10683 iby_build_utils_pkg.checkForInvalidChars(
10684 'Unique remittance identifier checkdigit',
10685 l_charval_rec.uri_checkdigit, false,
10686 l_valid_chars_list, l_invalid_chars_list,
10687 l_docErrorRec, l_docErrorTab);
10688
10689 iby_build_utils_pkg.checkForInvalidChars(
10690 'Document description',
10691 l_charval_rec.doc_desc, false,
10692 l_valid_chars_list, l_invalid_chars_list,
10693 l_docErrorRec, l_docErrorTab);
10694
10695 iby_build_utils_pkg.checkForInvalidChars(
10696 'Bank assigned ref code',
10697 l_charval_rec.bank_ref, false,
10698 l_valid_chars_list, l_invalid_chars_list,
10699 l_docErrorRec, l_docErrorTab);
10700
10701 /*
10702 * Commented out because the bank account
10703 * debit code no longer exists in the latest
10704 * data model.
10705 */
10706 /*
10707 iby_build_utils_pkg.checkForInvalidChars(
10708 'Bank account debit code',
10709 l_charval_rec.bank_acct_debit_code, false,
10710 l_valid_chars_list, l_invalid_chars_list,
10711 l_docErrorRec, l_docErrorTab);
10712 */
10713
10714 iby_build_utils_pkg.checkForInvalidChars(
10715 'Payment reason comments',
10716 l_charval_rec.pmt_reason_comments, false,
10717 l_valid_chars_list, l_invalid_chars_list,
10718 l_docErrorRec, l_docErrorTab);
10719
10720 iby_build_utils_pkg.checkForInvalidChars(
10721 'Delivery channel code',
10722 l_charval_rec.delv_chnl_code, false,
10723 l_valid_chars_list, l_invalid_chars_list,
10724 l_docErrorRec, l_docErrorTab);
10725
10726 iby_build_utils_pkg.checkForInvalidChars(
10727 'Payment reason',
10728 l_charval_rec.pmt_reason, false,
10729 l_valid_chars_list, l_invalid_chars_list,
10730 l_docErrorRec, l_docErrorTab);
10731
10732 iby_build_utils_pkg.checkForInvalidChars(
10733 'Remittance message',
10734 l_charval_rec.remit_msg1
10735 || l_charval_rec.remit_msg2
10736 || l_charval_rec.remit_msg3,
10737 true,
10738 l_valid_chars_list, l_invalid_chars_list,
10739 l_docErrorRec, l_docErrorTab);
10740
10741 iby_build_utils_pkg.checkForInvalidChars(
10742 'Document lines',
10743 l_charval_rec.ca_doc_line_cd
10744 || l_charval_rec.line_type
10745 || l_charval_rec.line_name
10746 || l_charval_rec.line_desc
10747 || l_charval_rec.line_uom
10748 || l_charval_rec.line_po_num,
10749 true,
10750 l_valid_chars_list, l_invalid_chars_list,
10751 l_docErrorRec, l_docErrorTab);
10752
10753 iby_build_utils_pkg.checkForInvalidChars(
10754 'Payer identification',
10755 l_charval_rec.payer_number
10756 || l_charval_rec.payer_name
10757 || l_charval_rec.payer_legal_name,
10758 true,
10759 l_valid_chars_list, l_invalid_chars_list,
10760 l_docErrorRec, l_docErrorTab);
10761
10762 iby_build_utils_pkg.checkForInvalidChars(
10763 'Payer tax id',
10764 l_charval_rec.payer_tax_id, false,
10765 l_valid_chars_list, l_invalid_chars_list,
10766 l_docErrorRec, l_docErrorTab);
10767
10768 iby_build_utils_pkg.checkForInvalidChars(
10769 'Payer address',
10770 l_charval_rec.payer_add1
10771 || l_charval_rec.payer_add2
10772 || l_charval_rec.payer_add3
10773 || l_charval_rec.payer_city
10774 || l_charval_rec.payer_county
10775 || l_charval_rec.payer_state
10776 || l_charval_rec.payer_country
10777 || l_charval_rec.payer_postcode,
10778 true,
10779 l_valid_chars_list, l_invalid_chars_list,
10780 l_docErrorRec, l_docErrorTab);
10781
10782 iby_build_utils_pkg.checkForInvalidChars(
10783 'Payer bank/branch details',
10784 l_charval_rec.payer_bank_name
10785 || l_charval_rec.payer_bank_number
10786 || l_charval_rec.payer_bank_branch_num
10787 || l_charval_rec.payer_bank_branch_name
10788 || l_charval_rec.payer_bank_acct_holder_name
10789 || l_charval_rec.payer_bank_acct_num
10790 || l_charval_rec.payer_bank_acct_name
10791 || l_charval_rec.payer_bank_acct_iban_num
10792 || l_charval_rec.payer_bank_swift_code
10793 || l_charval_rec.payer_bank_acct_checkdigits,
10794 true,
10795 l_valid_chars_list, l_invalid_chars_list,
10796 l_docErrorRec, l_docErrorTab);
10797
10798 iby_build_utils_pkg.checkForInvalidChars(
10799 'Payer bank address',
10800 l_charval_rec.payer_bank_add1
10801 || l_charval_rec.payer_bank_add2
10802 || l_charval_rec.payer_bank_add3
10803 || l_charval_rec.payer_bank_city
10804 || l_charval_rec.payer_bank_county
10805 || l_charval_rec.payer_bank_state
10806 || l_charval_rec.payer_bank_country
10807 || l_charval_rec.payer_bank_postcode,
10808 true,
10809 l_valid_chars_list, l_invalid_chars_list,
10810 l_docErrorRec, l_docErrorTab);
10811
10812 iby_build_utils_pkg.checkForInvalidChars(
10813 'Payee identification',
10814 l_charval_rec.payee_number
10815 || l_charval_rec.payee_name,
10816 true,
10817 l_valid_chars_list, l_invalid_chars_list,
10818 l_docErrorRec, l_docErrorTab);
10819
10820 iby_build_utils_pkg.checkForInvalidChars(
10821 'Payee tax id',
10822 l_charval_rec.payee_tax_id, false,
10823 l_valid_chars_list, l_invalid_chars_list,
10824 l_docErrorRec, l_docErrorTab);
10825
10826 iby_build_utils_pkg.checkForInvalidChars(
10827 'Payee address',
10828 l_charval_rec.payee_add1
10829 || l_charval_rec.payee_add2
10830 || l_charval_rec.payee_add3
10831 || l_charval_rec.payee_city
10832 || l_charval_rec.payee_county
10833 || l_charval_rec.payee_state
10834 || l_charval_rec.payee_country
10835 || l_charval_rec.payee_postcode,
10836 true,
10837 l_valid_chars_list, l_invalid_chars_list,
10838 l_docErrorRec, l_docErrorTab);
10839
10840 iby_build_utils_pkg.checkForInvalidChars(
10841 'Payee bank/branch details',
10842 l_charval_rec.payee_bank_name
10843 || l_charval_rec.payee_bank_number
10844 || l_charval_rec.payee_bank_branch_num
10845 || l_charval_rec.payee_bank_branch_name
10846 || l_charval_rec.payee_bank_acct_holder_name
10847 || l_charval_rec.payee_bank_acct_num
10848 || l_charval_rec.payee_bank_acct_name
10849 || l_charval_rec.payee_bank_acct_iban_num
10850 || l_charval_rec.payee_bank_swift_code
10851 || l_charval_rec.payee_bank_acct_checkdigits,
10852 true,
10853 l_valid_chars_list, l_invalid_chars_list,
10854 l_docErrorRec, l_docErrorTab);
10855
10856 iby_build_utils_pkg.checkForInvalidChars(
10857 'Payee bank address',
10858 l_charval_rec.payee_bank_add1
10859 || l_charval_rec.payee_bank_add2
10860 || l_charval_rec.payee_bank_add3
10861 || l_charval_rec.payee_bank_city
10862 || l_charval_rec.payee_bank_county
10863 || l_charval_rec.payee_bank_state
10864 || l_charval_rec.payee_bank_country
10865 || l_charval_rec.payee_bank_postcode,
10866 true,
10867 l_valid_chars_list, l_invalid_chars_list,
10868 l_docErrorRec, l_docErrorTab);
10869
10870 /*
10871 * Insert errors into IBY_TRANSACTION_ERRORS table.
10872 */
10873 IF (l_docErrorTab.COUNT > 0) THEN
10874
10875 l_valid := 1;
10876 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(
10877 p_is_online_val, l_docErrorTab);
10878
10879 END IF;
10880
10881 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
10882 print_debuginfo(l_module_name, 'EXIT');
10883
10884 END IF;
10885 -- Return the validation result
10886 x_result := l_valid;
10887
10888 END performCharacterValidation;
10889
10890 /*--------------------------------------------------------------------
10891 | NAME:
10892 | validate_uri_using_modulus10
10893 |
10894 | PURPOSE:
10895 | Bug 5569624 : This procedure validates the unique
10896 | remittance identifier.
10897 | The code is picked up from /jedev/11.5/je/resource/JE.pld
10898 |
10899 | PARAMETERS:
10900 | IN
10901 | s - Unique remittance identifier
10902 |
10903 | OUT
10904 |
10905 |
10906 | RETURNS:
10907 |
10908 | NOTES:
10909 | Bug 5569624: Danish unique remittance identifier validation
10910 *---------------------------------------------------------------------*/
10911
10912 PROCEDURE validate_uri_using_modulus10(s IN VARCHAR2,
10913 x_valResult OUT NOCOPY BOOLEAN,
10914 x_docErrorRec IN OUT NOCOPY IBY_TRANSACTION_ERRORS%ROWTYPE)
10915 IS
10916
10917 weight number := 0;
10918 check_digit number := 0;
10919 c number;
10920
10921 l number ;
10922 l_error_msg VARCHAR2(2000);
10923
10924 BEGIN
10925
10926 l := length(s);
10927
10928 IF l > 0 THEN
10929
10930 weight := mod(l + 1, 2) + 1;
10931
10932 FOR i IN 1 .. l LOOP
10933 c := substr(s, i, 1);
10934
10935 IF c BETWEEN '0' AND '9' THEN /* Check only digits. */
10936
10937 check_digit := check_digit + mod(weight * to_number(c), 10) +
10938 trunc((weight * to_number(c)) / 10);
10939 IF i < l THEN
10940 weight := mod(weight, 2) + 1;
10941 END IF;
10942 END IF;
10943 END LOOP;
10944
10945 IF mod(check_digit, 10) <> 0 THEN
10946 IBY_VALIDATIONSETS_PUB.retrieveErrorMSG ('UNIQUE_REMIT_ID_CODE',
10947 'IBY_VALID_OBJ_INVALID', l_error_msg);
10948 x_docErrorRec.error_message := l_error_msg;
10949 x_docErrorRec.error_code := 'IBY_VALID_OBJ_INVALID';
10950 x_valResult := FALSE;
10951 ELSE
10952 x_valResult := TRUE;
10953 END IF;
10954
10955 ELSE
10956 x_valResult := TRUE;
10957 END IF;
10958
10959 END validate_uri_using_modulus10;
10960
10961
10962 /*--------------------------------------------------------------------
10963 | NAME:
10964 | VALIDATE_BANK_CHARGE_BEARER
10965 |
10966 | PURPOSE:
10967 | Checking that Bank Charge Bearer is equal to 'L' (corresponding value in
10968 | FND_LOOKUPS is 'SLEV') at document level
10969 |
10970 | PARAMETERS:
10971 | IN
10972 |
10973 |
10974 | OUT
10975 |
10976 |
10977 | RETURNS:
10978 |
10979 | NOTES:
10980 |
10981 *---------------------------------------------------------------------*/
10982
10983 PROCEDURE VALIDATE_BANK_CHARGE_BEARER(
10984 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
10985 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
10986 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
10987 p_is_online_val IN VARCHAR2,
10988 x_result OUT NOCOPY NUMBER)
10989 IS
10990
10991 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
10992 l_valResult BOOLEAN;
10993 l_valid NUMBER := 0;
10994 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
10995 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
10996
10997 BEGIN
10998 -- Initializing the document record
10999 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
11000
11001 l_docErrorRec.validation_set_code := p_validation_set_code;
11002 l_docErrorRec.transaction_id := p_document_id;
11003 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
11004 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
11005 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
11006 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
11007
11008 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11009 'BANK_CHARGE_BEARER',
11010 l_document_rec.bank_charge_bearer,
11011 'STRIS',
11012 'L',
11013 null,
11014 l_valResult,
11015 l_docErrorRec);
11016
11017 IF (l_valResult = FALSE) THEN
11018 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11019 l_valid := 1;
11020 END IF;
11021
11022 -- Inserting errors into IBY_TRANSACTION_ERRORS
11023 IF (l_valid = 1) THEN
11024 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11025 END IF;
11026
11027 -- Return the Validation Result
11028 x_result := l_valid;
11029
11030 END VALIDATE_BANK_CHARGE_BEARER;
11031
11032
11033 /*--------------------------------------------------------------------
11034 | NAME:
11035 | VALIDATE_PAYEE_BIC
11036 |
11037 | PURPOSE:
11038 | Checking that Payee BIC is not null at document level
11039 |
11040 | PARAMETERS:
11041 | IN
11042 |
11043 |
11044 | OUT
11045 |
11046 |
11047 | RETURNS:
11048 |
11049 | NOTES:
11050 |
11051 *---------------------------------------------------------------------*/
11052 PROCEDURE VALIDATE_PAYEE_BIC(
11053 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11054 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
11055 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
11056 p_is_online_val IN VARCHAR2,
11057 x_result OUT NOCOPY NUMBER)
11058
11059 IS
11060
11061 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
11062 l_valResult BOOLEAN;
11063 l_valid NUMBER := 0;
11064 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
11065 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
11066
11067 BEGIN
11068
11069 -- Initializing the document record
11070 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
11071
11072 l_docErrorRec.validation_set_code := p_validation_set_code;
11073 l_docErrorRec.transaction_id := p_document_id;
11074 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
11075 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
11076 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
11077 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
11078
11079 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11080 'EXT_EFT_SWIFT_CODE',
11081 l_document_rec.ext_eft_swift_code,
11082 'NOTNULL',
11083 null,
11084 null,
11085 l_valResult,
11086 l_docErrorRec);
11087
11088 IF (l_valResult = FALSE) THEN
11089 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11090 l_valid := 1;
11091 END IF;
11092
11093 -- Inserting errors into IBY_TRANSACTION_ERRORS
11094 IF (l_valid = 1) THEN
11095 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11096 END IF;
11097
11098 -- Return the Validation Result
11099 x_result := l_valid;
11100
11101 END VALIDATE_PAYEE_BIC;
11102
11103
11104
11105 /*--------------------------------------------------------------------
11106 | NAME:
11107 | VALIDATE_PAYEE_IBAN
11108 |
11109 | PURPOSE:
11110 | Checking that Payee IBAN is not null at document level
11111 |
11112 | PARAMETERS:
11113 | IN
11114 |
11115 |
11116 | OUT
11117 |
11118 |
11119 | RETURNS:
11120 |
11121 | NOTES:
11122 |
11123 *---------------------------------------------------------------------*/
11124 PROCEDURE VALIDATE_PAYEE_IBAN(
11125 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11126 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
11127 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
11128 p_is_online_val IN VARCHAR2,
11129 x_result OUT NOCOPY NUMBER)
11130
11131 IS
11132
11133 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
11134 l_valResult BOOLEAN;
11135 l_valid NUMBER := 0;
11136 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
11137 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
11138
11139 BEGIN
11140 -- Initializing the document record
11141 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
11142
11143 l_docErrorRec.validation_set_code := p_validation_set_code;
11144 l_docErrorRec.transaction_id := p_document_id;
11145 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
11146 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
11147 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
11148 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
11149
11150 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11151 'EXT_BANK_ACC_IBAN',
11152 l_document_rec.ext_bank_acc_iban,
11153 'NOTNULL',
11154 null,
11155 null,
11156 l_valResult,
11157 l_docErrorRec);
11158
11159 IF (l_valResult = FALSE) THEN
11160 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11161 l_valid := 1;
11162 END IF;
11163
11164 -- Inserting errors into IBY_TRANSACTION_ERRORS
11165 IF (l_valid = 1) THEN
11166 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11167 END IF;
11168
11169 -- Return the Validation Result
11170 x_result := l_valid;
11171
11172 END VALIDATE_PAYEE_IBAN;
11173
11174
11175 /*--------------------------------------------------------------------
11176 | NAME:
11177 | VALIDATE_PAYER_IBAN
11178 |
11179 | PURPOSE:
11180 | Checking that Payer BIC is not null at Payment level
11181 |
11182 | PARAMETERS:
11183 | IN
11184 |
11185 |
11186 | OUT
11187 |
11188 |
11189 | RETURNS:
11190 |
11191 | NOTES:
11192 |
11193 *---------------------------------------------------------------------*/
11194 PROCEDURE VALIDATE_PAYER_IBAN(
11195 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11196 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
11197 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
11198 p_is_online_val IN VARCHAR2,
11199 x_result OUT NOCOPY NUMBER)
11200 IS
11201
11202 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
11203 l_valResult BOOLEAN;
11204 l_valid NUMBER := 0;
11205 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
11206 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
11207
11208 BEGIN
11209 -- Initializing the payment record
11210 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
11211
11212 l_docErrorRec.validation_set_code := p_validation_set_code;
11213 l_docErrorRec.transaction_id := p_payment_id;
11214 l_docErrorRec.transaction_type := 'PAYMENT';
11215 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
11216
11217 -- Validate transaction reference
11218 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11219 'INT_BANK_ACC_IBAN',
11220 l_payment_rec.int_bank_account_iban,
11221 'NOTNULL',
11222 null,
11223 null,
11224 l_valResult,
11225 l_docErrorRec);
11226
11227 IF (l_valResult = FALSE) THEN
11228 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11229 l_valid := 1;
11230 END IF;
11231
11232 -- Inserting errors into IBY_TRANSACTION_ERRORS
11233 IF (l_valid = 1) THEN
11234 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11235 END IF;
11236
11237 -- Return the Validation Result
11238 x_result := l_valid;
11239
11240 END VALIDATE_PAYER_IBAN;
11241
11242
11243 /*--------------------------------------------------------------------
11244 | NAME:
11245 | VALIDATE_PAYER_ADDRESS
11246 |
11247 | PURPOSE:
11248 | Checking that Payer Address is not null at Payment level
11249 |
11250 | PARAMETERS:
11251 | IN
11252 |
11253 |
11254 | OUT
11255 |
11256 |
11257 | RETURNS:
11258 |
11259 | NOTES:
11260 |
11261 *---------------------------------------------------------------------*/
11262 PROCEDURE VALIDATE_PAYER_ADDRESS(
11263 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11264 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
11265 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
11266 p_is_online_val IN VARCHAR2,
11267 x_result OUT NOCOPY NUMBER)
11268 IS
11269
11270 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
11271 l_valResult BOOLEAN;
11272 l_valid NUMBER := 0;
11273 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
11274 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
11275
11276 BEGIN
11277 -- Initializing the payment record
11278 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
11279
11280 l_docErrorRec.validation_set_code := p_validation_set_code;
11281 l_docErrorRec.transaction_id := p_payment_id;
11282 l_docErrorRec.transaction_type := 'PAYMENT';
11283 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
11284
11285 -- Validate transaction reference
11286 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11287 'PARTY_ADDRESS_LINE1',
11288 l_payment_rec.party_address_line1,
11289 'NOTNULL',
11290 null,
11291 null,
11292 l_valResult,
11293 l_docErrorRec);
11294
11295 IF (l_valResult = FALSE) THEN
11296 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11297 l_valid := 1;
11298 END IF;
11299
11300 /* Commenting City Validation w.r.t SEPA Credit Transfer 3.3 Bug 9437357*/
11301 /*IBY_VALIDATIONSETS_PUB.evaluateCondition(
11302 'PARTY_ADDRESS_CITY',
11303 l_payment_rec.party_address_city,
11304 'NOTNULL',
11305 null,
11306 null,
11307 l_valResult,
11308 l_docErrorRec);
11309
11310 IF (l_valResult = FALSE) THEN
11311 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11312 l_valid := 1;
11313 END IF;*/
11314
11315 /*IBY_VALIDATIONSETS_PUB.evaluateCondition(
11316 'PARTY_ADDRESS_POSTAL_CODE',
11317 l_payment_rec.party_address_postal_code,
11318 'NOTNULL',
11319 null,
11320 null,
11321 l_valResult,
11322 l_docErrorRec);
11323
11324 IF (l_valResult = FALSE) THEN
11325 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11326 l_valid := 1;
11327 END IF;*/
11328
11329 /*IBY_VALIDATIONSETS_PUB.evaluateCondition(
11330 'PMT_PAYER_LE_COUNTRY',
11331 l_payment_rec.pmt_payer_le_country,
11332 'NOTNULL',
11333 null,
11334 null,
11335 l_valResult,
11336 l_docErrorRec);
11337
11338 IF (l_valResult = FALSE) THEN
11339 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11340 l_valid := 1;
11341 END IF;*/
11342
11343 -- Inserting errors into IBY_TRANSACTION_ERRORS
11344 IF (l_valid = 1) THEN
11345 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11346 END IF;
11347
11348 -- Return the Validation Result
11349 x_result := l_valid;
11350
11351 END VALIDATE_PAYER_ADDRESS;
11352
11353 /*--------------------------------------------------------------------
11354 | NAME:
11355 | xxno_chk_mod_10_11
11356 |
11357 | PURPOSE:
11358 | Bug 5571714: This procedure validates the KID code. This
11359 | code is picked up from /jedev/xxno/11.5/admin/sql/XXNOEC04.sql
11360 |
11361 | PARAMETERS:
11362 | IN
11363 | p_kid_nr - Unique remittance identifier
11364 |
11365 | OUT
11366 |
11367 |
11368 | RETURNS:
11369 |
11370 | NOTES:
11371 |
11372 *---------------------------------------------------------------------*/
11373 PROCEDURE xxno_chk_mod_10_11 (
11374 p_kid_nr IN varchar2,
11375 x_valResult OUT NOCOPY BOOLEAN,
11376 x_docErrorRec IN OUT NOCOPY IBY_TRANSACTION_ERRORS%ROWTYPE)
11377 IS
11378 v_invoice_id varchar2(50);
11379 v_kid_nr varchar2(50);
11380 e_kid_feil exception;
11381 v_kid varchar2(25);
11382 v_kid_lengde number(3);
11383 v_sum_11 number := 0;
11384 v_rest_11 number := 0;
11385 v_status_11 number := 0;
11386 v_sum_10 number := 0;
11387 v_rest_10 number := 0;
11388 v_status_10 number := 0;
11389 v_Weight number := 2;
11390 v_Prod number := 0;
11391 v_ProdDigit1 number := 0;
11392 v_ProdDigit2 number := 0;
11393 l_error_msg VARCHAR2(2000);
11394
11395 BEGIN
11396
11397 v_kid_lengde := 25;
11398 v_kid_nr := p_kid_nr;
11399 /* Controls the length of v_kid_nr */
11400 IF length(v_kid_nr) > v_kid_lengde THEN
11401 v_status_11:=1;
11402 v_status_10:=1;
11403 raise e_kid_feil;
11404 END IF;
11405 SELECT lpad(v_kid_nr,v_kid_lengde,0)
11406 INTO v_kid
11407 FROM dual;
11408 -- uni_lpad_p(v_kid_nr, v_kid_lengde, v_kid);
11409 /* Modulus 10 control */
11410 /* Calculates product and digitsum for each digit,
11411 from right towards left */
11412 FOR i IN REVERSE 1..24 LOOP
11413 v_Prod := TO_NUMBER(SUBSTR(v_kid,i,1)) * v_Weight;
11414 v_ProdDigit1 := TO_NUMBER(SUBSTR(TO_CHAR(v_Prod),1,1));
11415 if LENGTH(TO_CHAR(v_Prod)) = 2 then
11416 v_ProdDigit2 := TO_NUMBER(SUBSTR(TO_CHAR(v_Prod),2,1));
11417 else
11418 v_ProdDigit2 := 0;
11419 end if;
11420 v_sum_10 := v_sum_10 + v_ProdDigit1 + v_ProdDigit2;
11421 /* Alternates weighting between 1 and 2 */
11422 IF v_Weight = 2 THEN
11423 v_Weight := 1;
11424 ELSE
11425 v_Weight := 2;
11426 END IF;
11427 END LOOP;
11428 /* calculate mod 10 of v_sum_10 */
11429 WHILE v_sum_10 > 10 loop
11430 v_sum_10 := v_sum_10 - 10;
11431 END LOOP;
11432 v_rest_10 := 10 - v_sum_10;
11433 /* is residual unlike controldigit, the kid_nr is invalid */
11434 if ((substr(v_kid,25,1)) <> '-') then
11435 if (to_number(substr(v_kid,25,1)) <> v_rest_10) then
11436 v_status_10 := 1;
11437 end if;
11438 elsif ((substr(v_kid,25,1)) = '-') then
11439 v_status_10 := 1;
11440 end if;
11441 /* Modulus 11 control */
11442 /* Calculate productsum for kidnumber */
11443 v_sum_11 := (2 * to_number(substr(v_kid,24,1))
11444 + (3 * to_number(substr(v_kid,23,1)))
11445 + (4 * to_number(substr(v_kid,22,1)))
11446 + (5 * to_number(substr(v_kid,21,1)))
11447 + (6 * to_number(substr(v_kid,20,1)))
11448 + (7 * to_number(substr(v_kid,19,1)))
11449 + (2 * to_number(substr(v_kid,18,1)))
11450 + (3 * to_number(substr(v_kid,17,1)))
11451 + (4 * to_number(substr(v_kid,16,1)))
11452 + (5 * to_number(substr(v_kid,15,1)))
11453 + (6 * to_number(substr(v_kid,14,1)))
11454 + (7 * to_number(substr(v_kid,13,1)))
11455 + (2 * to_number(substr(v_kid,12,1)))
11456 + (3 * to_number(substr(v_kid,11,1)))
11457 + (4 * to_number(substr(v_kid,10,1)))
11458 + (5 * to_number(substr(v_kid,9,1)))
11459 + (6 * to_number(substr(v_kid,8,1)))
11460 + (7 * to_number(substr(v_kid,7,1)))
11461 + (2 * to_number(substr(v_kid,6,1)))
11462 + (3 * to_number(substr(v_kid,5,1)))
11463 + (4 * to_number(substr(v_kid,4,1)))
11464 + (5 * to_number(substr(v_kid,3,1)))
11465 + (6 * to_number(substr(v_kid,2,1)))
11466 + (7 * to_number(substr(v_kid,1,1))));
11467 /* calculate mod 11 of v_sum_11 */
11468 while v_sum_11 > 11 loop
11469 v_sum_11 := v_sum_11 - 11;
11470 end loop;
11471 /* is residual like 1, must the kid ends with '-' */
11472 if (((v_sum_11 = 1)
11473 and (substr(v_kid,25,1) <> '-'))
11474 or ((v_sum_11 <> 1)
11475 and (substr(v_kid,25,1) = '-'))) then
11476 v_status_11 := 1;
11477 elsif ((substr(v_kid,25,1)) <> '-') then
11478 v_rest_11 := 11 - v_sum_11;
11479 /* is residual unlike control digit, the kid_nr is invalid */
11480 if (to_number(substr(v_kid,25,1)) <> v_rest_11) then
11481 v_status_11 := 1;
11482 end if;
11483 end if;
11484 if (v_status_11 = 1 and v_status_10 = 1) then
11485 raise e_kid_feil;
11486 end if;
11487 x_valResult := TRUE;
11488 exception
11489 when e_kid_feil then
11490 IBY_VALIDATIONSETS_PUB.retrieveErrorMSG ('UNIQUE_REMIT_ID_CODE',
11491 'IBY_VALID_OBJ_INVALID', l_error_msg);
11492 x_docErrorRec.error_message := l_error_msg;
11493 x_docErrorRec.error_code := 'IBY_VALID_OBJ_INVALID';
11494 x_valResult := FALSE;
11495 when others then
11496 IBY_VALIDATIONSETS_PUB.retrieveErrorMSG ('UNIQUE_REMIT_ID_CODE',
11497 'IBY_VALID_OBJ_INVALID', l_error_msg);
11498 x_docErrorRec.error_message := l_error_msg;
11499 x_docErrorRec.error_code := 'IBY_VALID_OBJ_INVALID';
11500 x_valResult := FALSE;
11501 END xxno_chk_mod_10_11;
11502
11503
11504 /*--------------------------------------------------------------------
11505 | NAME:
11506 | VALIDATE_INT_BANK_ACC_CURR_IN
11507 |
11508 | PURPOSE:
11509 | Validate whether Internal Bank Account currency exists in the
11510 | parameter defined while assigning validation.
11511 | PAYMENT LEVEL
11512 | PARAMETERS:
11513 | IN
11514 |
11515 |
11516 | OUT
11517 |
11518 |
11519 | RETURNS:
11520 |
11521 | NOTES:
11522 |
11523 *---------------------------------------------------------------------*/
11524 PROCEDURE VALIDATE_INT_BANK_ACC_CURR_IN (
11525 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11526 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
11527 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
11528 p_is_online_val IN VARCHAR2,
11529 x_result OUT NOCOPY NUMBER)
11530 IS
11531
11532 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
11533 l_valResult BOOLEAN;
11534 l_valid NUMBER := 0;
11535 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
11536 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
11537 l_int_bank_acct_curr varchar2(50);
11538
11539 BEGIN
11540 -- Initializing the payment record
11541 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
11542
11543 l_docErrorRec.validation_set_code := p_validation_set_code;
11544 l_docErrorRec.transaction_id := p_payment_id;
11545 l_docErrorRec.transaction_type := 'PAYMENT';
11546 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
11547
11548 IBY_VALIDATIONSETS_PUB.getParamValue(
11549 p_validation_assign_id,
11550 p_validation_set_code,
11551 'INT_BANK_ACCOUNT_CURR',
11552 l_int_bank_acct_curr);
11553
11554 -- Validate transaction reference
11555 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11556 'INT_BANK_ACCT_CURR',
11557 l_payment_rec.payer_bank_acc_cur_code,
11558 'STRIS',
11559 l_int_bank_acct_curr,
11560 null,
11561 l_valResult,
11562 l_docErrorRec);
11563
11564 IF (l_valResult = FALSE) THEN
11565 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11566 l_valid := 1;
11567 END IF;
11568
11569 -- Inserting errors into IBY_TRANSACTION_ERRORS
11570 IF (l_valid = 1) THEN
11571 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11572 END IF;
11573
11574 -- Return the Validation Result
11575 x_result := l_valid;
11576
11577 END VALIDATE_INT_BANK_ACC_CURR_IN;
11578
11579
11580 /*--------------------------------------------------------------------
11581 | NAME:
11582 | VALIDATE_DEL_CHN_FORMAT_VALUE
11583 |
11584 | PURPOSE:
11585 | Validate whether delivery channel format value exists in the
11586 | parameter defined while assigning validation.
11587 | DOCUMENT LEVEL
11588 |
11589 | PARAMETERS:
11590 | IN
11591 |
11592 |
11593 | OUT
11594 |
11595 |
11596 | RETURNS:
11597 |
11598 | NOTES:
11599 |
11600 *---------------------------------------------------------------------*/
11601 PROCEDURE VALIDATE_DEL_CHN_FORMAT_VALUE (
11602 p_validation_assign_id IN
11603 IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11604 p_validation_set_code IN
11605 IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
11606 p_document_id IN
11607 IBY_DOCS_PAYABLE_ALL.document_payable_id%TYPE,
11608 p_is_online_val IN VARCHAR2,
11609 x_result OUT NOCOPY NUMBER
11610 )IS
11611 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
11612 l_valResult BOOLEAN;
11613 l_valid NUMBER := 0;
11614 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
11615 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
11616 l_del_chn_fmt_val varchar2(100);
11617
11618 BEGIN
11619
11620 -- Initializing the document record
11621 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
11622
11623 l_docErrorRec.validation_set_code := p_validation_set_code;
11624 l_docErrorRec.transaction_id := p_document_id;
11625 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
11626 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
11627 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
11628 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
11629
11630 IBY_VALIDATIONSETS_PUB.getParamValue(
11631 p_validation_assign_id,
11632 p_validation_set_code,
11633 'DELIVERY_CHANNEL_FORMAT_VALUE',
11634 l_del_chn_fmt_val);
11635 -- Validate transaction code
11636 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11637 'DOC_DEL_CHN_FMT_VAL',
11638 l_document_rec.delivery_chn_format_val,
11639 'STRIS',
11640 l_del_chn_fmt_val,
11641 null,
11642 l_valResult,
11643 l_docErrorRec);
11644
11645 IF (l_valResult = FALSE) THEN
11646 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11647 -- Inserting errors into IBY_TRANSACTION_ERRORS
11648 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11649 l_valid := 1;
11650 END IF;
11651
11652 -- Return the Validation Result
11653 x_result := l_valid;
11654
11655 END VALIDATE_DEL_CHN_FORMAT_VALUE;
11656
11657 /*--------------------------------------------------------------------
11658 | NAME:
11659 | VALIDATE_MAX_PAYMENT_AMOUNT
11660 |
11661 | PURPOSE:
11662 | Validates the payment amount against the maximum limit defined
11663 | with parameter while assigning validation.
11664 | PAYMENT LEVEL
11665 |
11666 | PARAMETERS:
11667 | IN
11668 |
11669 |
11670 | OUT
11671 |
11672 |
11673 | RETURNS:
11674 |
11675 | NOTES:
11676 |
11677 *---------------------------------------------------------------------*/
11678 PROCEDURE VALIDATE_MAX_PAYMENT_AMOUNT (
11679 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11680 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
11681 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
11682 p_is_online_val IN VARCHAR2,
11683 x_result OUT NOCOPY NUMBER)
11684 IS
11685
11686 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
11687 l_valResult BOOLEAN;
11688 l_valid NUMBER := 0;
11689 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
11690 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
11691 l_payment_amount varchar2(50);
11692
11693 BEGIN
11694 -- Initializing the payment record
11695 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
11696
11697 l_docErrorRec.validation_set_code := p_validation_set_code;
11698 l_docErrorRec.transaction_id := p_payment_id;
11699 l_docErrorRec.transaction_type := 'PAYMENT';
11700 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
11701
11702 IBY_VALIDATIONSETS_PUB.getParamValue(
11703 p_validation_assign_id,
11704 p_validation_set_code,
11705 'MAX_PAYMENT_AMOUNT',
11706 l_payment_amount);
11707
11708 -- Validate transaction reference
11709 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11710 'PMT_AMOUNT',
11711 l_payment_rec.pmt_amount,
11712 'LESSEQUAL',
11713 null,
11714 l_payment_amount,
11715 l_valResult,
11716 l_docErrorRec);
11717
11718 IF (l_valResult = FALSE) THEN
11719 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11720 l_valid := 1;
11721 END IF;
11722
11723 -- Inserting errors into IBY_TRANSACTION_ERRORS
11724 IF (l_valid = 1) THEN
11725 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11726 END IF;
11727
11728 -- Return the Validation Result
11729 x_result := l_valid;
11730
11731 END VALIDATE_MAX_PAYMENT_AMOUNT;
11732
11733 /*--------------------------------------------------------------------
11734 | NAME:
11735 | VALIDATE_DOC_PMT_CURR
11736 |
11737 | PURPOSE:
11738 | Validate whether document payment currency exists in the
11739 | parameter defined while assigning validation.
11740 | DOCUMENT LEVEL
11741 |
11742 | PARAMETERS:
11743 | IN
11744 |
11745 |
11746 | OUT
11747 |
11748 |
11749 | RETURNS:
11750 |
11751 | NOTES:
11752 |
11753 *---------------------------------------------------------------------*/
11754 PROCEDURE VALIDATE_DOC_PMT_CURR (
11755 p_validation_assign_id IN
11756 IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11757 p_validation_set_code IN
11758 IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
11759 p_document_id IN
11760 IBY_DOCS_PAYABLE_ALL.document_payable_id%TYPE,
11761 p_is_online_val IN VARCHAR2,
11762 x_result OUT NOCOPY NUMBER
11763 )IS
11764
11765 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
11766 l_valResult BOOLEAN;
11767 l_valid NUMBER := 0;
11768 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
11769 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
11770 l_doc_pmt_curr varchar2(100);
11771
11772 BEGIN
11773
11774 -- Initializing the document record
11775 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
11776
11777 l_docErrorRec.validation_set_code := p_validation_set_code;
11778 l_docErrorRec.transaction_id := p_document_id;
11779 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
11780 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
11781 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
11782 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
11783
11784 IBY_VALIDATIONSETS_PUB.getParamValue(
11785 p_validation_assign_id,
11786 p_validation_set_code,
11787 'DOCUMENT_PAYMENT_CURR',
11788 l_doc_pmt_curr);
11789 -- Validate transaction code
11790 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11791 'DOCUMENT_PAY_CURRENCY',
11792 l_document_rec.document_pay_currency,
11793 'STRIS',
11794 l_doc_pmt_curr,
11795 null,
11796 l_valResult,
11797 l_docErrorRec);
11798
11799 IF (l_valResult = FALSE) THEN
11800 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11801 -- Inserting errors into IBY_TRANSACTION_ERRORS
11802 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11803 l_valid := 1;
11804 END IF;
11805
11806 -- Return the Validation Result
11807 x_result := l_valid;
11808
11809
11810 END VALIDATE_DOC_PMT_CURR;
11811
11812
11813 /*--------------------------------------------------------------------
11814 | NAME:
11815 | VALIDATE_PAYEE_BRC_COUNTRY_IN
11816 |
11817 | PURPOSE:
11818 | Validate whether payee branch country exists in the list of
11819 | values given with the parameter while assigning validation.
11820 | DOCUMENT LEVEL
11821 |
11822 | PARAMETERS:
11823 | IN
11824 |
11825 |
11826 | OUT
11827 |
11828 |
11829 | RETURNS:
11830 |
11831 | NOTES:
11832 |
11833 *---------------------------------------------------------------------*/
11834 PROCEDURE VALIDATE_PAYEE_BRC_COUNTRY_IN (
11835 p_validation_assign_id IN
11836 IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11837 p_validation_set_code IN
11838 IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
11839 p_document_id IN
11840 IBY_DOCS_PAYABLE_ALL.document_payable_id%TYPE,
11841 p_is_online_val IN VARCHAR2,
11842 x_result OUT NOCOPY NUMBER
11843 )IS
11844
11845 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
11846 l_valResult BOOLEAN;
11847 l_valid NUMBER := 0;
11848 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
11849 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
11850 l_payee_brc_country_list varchar2(500);
11851
11852 BEGIN
11853
11854 -- Initializing the document record
11855 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
11856
11857 l_docErrorRec.validation_set_code := p_validation_set_code;
11858 l_docErrorRec.transaction_id := p_document_id;
11859 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
11860 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
11861 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
11862 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
11863
11864 IBY_VALIDATIONSETS_PUB.getParamValue(
11865 p_validation_assign_id,
11866 p_validation_set_code,
11867 'DOCUMENT_PAYEE_BRANCH_COUNTRY',
11868 l_payee_brc_country_list);
11869 -- Validate transaction code
11870 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11871 'EXT_BANK_BRANCH_COUNTRY',
11872 l_document_rec.ext_bank_branch_country,
11873 'INSET',
11874 l_payee_brc_country_list,
11875 null,
11876 l_valResult,
11877 l_docErrorRec);
11878
11879 IF (l_valResult = FALSE) THEN
11880 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11881 -- Inserting errors into IBY_TRANSACTION_ERRORS
11882 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11883 l_valid := 1;
11884 END IF;
11885
11886 -- Return the Validation Result
11887 x_result := l_valid;
11888
11889 END VALIDATE_PAYEE_BRC_COUNTRY_IN;
11890
11891 /*--------------------------------------------------------------------
11892 | NAME:
11893 | VALIDATE_DEL_CHN_NOT_IN
11894 |
11895 | PURPOSE:
11896 | Validates whether delivery channel format value doesnt exists in
11897 | the list of values with the parameter while assigning validation.
11898 | DOCUMENT LEVEL
11899 |
11900 | PARAMETERS:
11901 | IN
11902 |
11903 |
11904 | OUT
11905 |
11906 |
11907 | RETURNS:
11908 |
11909 | NOTES:
11910 |
11911 *---------------------------------------------------------------------*/
11912 PROCEDURE VALIDATE_DEL_CHN_NOT_IN (
11913 p_validation_assign_id IN
11914 IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11915 p_validation_set_code IN
11916 IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
11917 p_document_id IN
11918 IBY_DOCS_PAYABLE_ALL.document_payable_id%TYPE,
11919 p_is_online_val IN VARCHAR2,
11920 x_result OUT NOCOPY NUMBER
11921 ) IS
11922
11923 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
11924 l_valResult BOOLEAN;
11925 l_valid NUMBER := 0;
11926 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
11927 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
11928 l_del_chn_fmt_val_list varchar2(500);
11929
11930 BEGIN
11931
11932 -- Initializing the document record
11933 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
11934
11935 l_docErrorRec.validation_set_code := p_validation_set_code;
11936 l_docErrorRec.transaction_id := p_document_id;
11937 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
11938 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
11939 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
11940 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
11941
11942 IBY_VALIDATIONSETS_PUB.getParamValue(
11943 p_validation_assign_id,
11944 p_validation_set_code,
11945 'DELIVERY_CHANNEL_FORMAT_VALUE',
11946 l_del_chn_fmt_val_list);
11947 -- Validate transaction code
11948 IBY_VALIDATIONSETS_PUB.evaluateCondition(
11949 'DOC_DEL_CHN_FMT_VAL',
11950 l_document_rec.delivery_chn_format_val,
11951 'NOTINSET',
11952 l_del_chn_fmt_val_list,
11953 null,
11954 l_valResult,
11955 l_docErrorRec);
11956
11957 IF (l_valResult = FALSE) THEN
11958 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
11959 -- Inserting errors into IBY_TRANSACTION_ERRORS
11960 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
11961 l_valid := 1;
11962 END IF;
11963
11964 -- Return the Validation Result
11965 x_result := l_valid;
11966
11967 END VALIDATE_DEL_CHN_NOT_IN;
11968
11969
11970 /*--------------------------------------------------------------------
11971 | NAME:
11972 | VALIDATE_FIN_URI
11973 |
11974 | PURPOSE:
11975 | Validates the combination of URI and URI check digit for Finland
11976 |
11977 | PARAMETERS:
11978 | IN
11979 |
11980 |
11981 | OUT
11982 |
11983 |
11984 | RETURNS:
11985 |
11986 | NOTES:
11987 |
11988 *---------------------------------------------------------------------*/
11989 PROCEDURE VALIDATE_FIN_URI (
11990 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
11991 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%TYPE,
11992 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
11993 p_is_online_val IN VARCHAR2,
11994 x_result OUT NOCOPY NUMBER) IS
11995
11996 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
11997 l_valResult BOOLEAN;
11998 l_valid NUMBER := 0;
11999 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
12000 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
12001 l_transaction_error_id IBY_TRANSACTION_ERRORS.transaction_error_id%TYPE;
12002 l_message fnd_new_messages.message_text%TYPE;
12003 l_uri_flag BOOLEAN := false;
12004 l_ck_flag BOOLEAN := false;
12005 l_uri l_document_rec.unique_remit_id_code%type;
12006
12007 BEGIN
12008
12009 -- Initializing the document record
12010 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
12011
12012 l_docErrorRec.validation_set_code := p_validation_set_code;
12013 l_docErrorRec.transaction_id := p_document_id;
12014 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
12015 l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
12016 l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
12017 l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
12018 l_uri := l_document_rec.unique_remit_id_code;
12019 IF (SUBSTR(l_uri,0,2) = 'RF') THEN
12020 BEGIN
12021 l_uri := SUBSTR(l_uri,5)||SUBSTR(l_uri,0,4); --Bug 15922451
12022 l_uri := REPLACE(l_uri,'A','10');
12023 l_uri := REPLACE(l_uri,'B','11');
12024 l_uri := REPLACE(l_uri,'C','12');
12025 l_uri := REPLACE(l_uri,'D','13');
12026 l_uri := REPLACE(l_uri,'E','14');
12027 l_uri := REPLACE(l_uri,'F','15');
12028 l_uri := REPLACE(l_uri,'G','16');
12029 l_uri := REPLACE(l_uri,'H','17');
12030 l_uri := REPLACE(l_uri,'I','18');
12031 l_uri := REPLACE(l_uri,'J','19');
12032 l_uri := REPLACE(l_uri,'K','20');
12033 l_uri := REPLACE(l_uri,'L','21');
12034 l_uri := REPLACE(l_uri,'M','22');
12035 l_uri := REPLACE(l_uri,'N','23');
12036 l_uri := REPLACE(l_uri,'O','24');
12037 l_uri := REPLACE(l_uri,'P','25');
12038 l_uri := REPLACE(l_uri,'Q','26');
12039 l_uri := REPLACE(l_uri,'R','27');
12040 l_uri := REPLACE(l_uri,'S','28');
12041 l_uri := REPLACE(l_uri,'T','29');
12042 l_uri := REPLACE(l_uri,'U','30');
12043 l_uri := REPLACE(l_uri,'V','31');
12044 l_uri := REPLACE(l_uri,'W','32');
12045 l_uri := REPLACE(l_uri,'X','33');
12046 l_uri := REPLACE(l_uri,'Y','34');
12047 l_uri := REPLACE(l_uri,'Z','35');
12048 IF (mod(to_number(l_uri),97) <> 1) THEN
12049 l_docErrorRec.error_message :='';
12050
12051 FND_MESSAGE.SET_NAME('IBY', 'IBY_FIN_URI_CD_VAL_FAIL');
12052 l_message := fnd_message.get;
12053
12054
12055 l_docErrorRec.error_message := l_message;
12056 l_docErrorRec.error_code := 'IBY_VALID_OBJ_INVALID';
12057
12058
12059 SELECT
12060 IBY_TRANSACTION_ERRORS_S.NEXTVAL
12061 INTO
12062 l_transaction_error_id
12063 FROM
12064 DUAL
12065 ;
12066
12067 l_docErrorRec.transaction_error_id := l_transaction_error_id;
12068
12069 INSERT INTO IBY_TRXN_ERROR_TOKENS
12070 (TRANSACTION_ERROR_ID, TOKEN_NAME, TOKEN_VALUE, LOOKUP_TYPE_SOURCE,
12071 CREATED_BY, CREATION_DATE, LAST_UPDATED_BY, LAST_UPDATE_DATE,
12072 LAST_UPDATE_LOGIN, OBJECT_VERSION_NUMBER)
12073 VALUES
12074 (l_transaction_error_id, 'ERR_OBJECT', 'URI_CHECK_DIGIT', 'IBY_VALIDATION_FIELDS',
12075 fnd_global.user_id, sysdate, fnd_global.user_id, sysdate,
12076 fnd_global.user_id, 1);
12077
12078
12079 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
12080 -- Inserting errors into IBY_TRANSACTION_ERRORS
12081 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
12082 l_valid :=1;
12083 END IF;
12084
12085 EXCEPTION WHEN OTHERS THEN
12086 l_docErrorRec.error_message :='';
12087
12088 FND_MESSAGE.SET_NAME('IBY', 'IBY_FIN_URI_CD_VAL_FAIL');
12089 l_message := fnd_message.get;
12090
12091
12092 l_docErrorRec.error_message := l_message;
12093 l_docErrorRec.error_code := 'IBY_VALID_OBJ_INVALID';
12094
12095
12096 SELECT
12097 IBY_TRANSACTION_ERRORS_S.NEXTVAL
12098 INTO
12099 l_transaction_error_id
12100 FROM
12101 DUAL
12102 ;
12103
12104 l_docErrorRec.transaction_error_id := l_transaction_error_id;
12105
12106 INSERT INTO IBY_TRXN_ERROR_TOKENS
12107 (TRANSACTION_ERROR_ID, TOKEN_NAME, TOKEN_VALUE, LOOKUP_TYPE_SOURCE,
12108 CREATED_BY, CREATION_DATE, LAST_UPDATED_BY, LAST_UPDATE_DATE,
12109 LAST_UPDATE_LOGIN, OBJECT_VERSION_NUMBER)
12110 VALUES
12111 (l_transaction_error_id, 'ERR_OBJECT', 'URI_CHECK_DIGIT', 'IBY_VALIDATION_FIELDS',
12112 fnd_global.user_id, sysdate, fnd_global.user_id, sysdate,
12113 fnd_global.user_id, 1);
12114
12115
12116 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
12117 -- Inserting errors into IBY_TRANSACTION_ERRORS
12118 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
12119 l_valid :=1;
12120 END;
12121
12122 ELSE
12123 -- URI should have only digits
12124
12125 IBY_VALIDATIONSETS_PUB.evaluateCondition(
12126 'UNIQUE_REMIT_ID_CODE',
12127 trim(l_document_rec.unique_remit_id_code),
12128 'DIGITSONLY',
12129 null,
12130 null,
12131 l_valResult,
12132 l_docErrorRec);
12133
12134 IF (l_valResult = FALSE) THEN
12135 l_uri_flag := TRUE;
12136 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
12137 -- Inserting errors into IBY_TRANSACTION_ERRORS
12138 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
12139 l_valid := 1;
12140 END IF;
12141
12142 -- URI check digit should have only digits
12143
12144 IBY_VALIDATIONSETS_PUB.evaluateCondition(
12145 'URI_CHECK_DIGIT',
12146 trim(l_document_rec.URI_CHECK_DIGIT),
12147 'DIGITSONLY',
12148 null,
12149 null,
12150 l_valResult,
12151 l_docErrorRec);
12152
12153 IF (l_valResult = FALSE) THEN
12154 l_ck_flag := TRUE;
12155 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
12156 -- Inserting errors into IBY_TRANSACTION_ERRORS
12157 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
12158 l_valid := 1;
12159 END IF;
12160
12161 -- Length of URI should be 20 or less
12162
12163 IBY_VALIDATIONSETS_PUB.evaluateCondition(
12164 'UNIQUE_REMIT_ID_CODE',
12165 trim(l_document_rec.unique_remit_id_code),
12166 'MAXLENGTH',
12167 null,
12168 20,
12169 l_valResult,
12170 l_docErrorRec);
12171
12172 IF (l_valResult = FALSE) THEN
12173 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
12174 -- Inserting errors into IBY_TRANSACTION_ERRORS
12175 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
12176 l_valid := 1;
12177 END IF;
12178
12179 --Combination of URI and check digit should be valid
12180 IF(l_document_rec.unique_remit_id_code is not null
12181 and l_document_rec.URI_CHECK_DIGIT is not null
12182 AND l_ck_flag=FALSE
12183 AND l_uri_flag= FALSE)
12184 then
12185 IF(FIN_URI_CHECK_DIGIT_VAL(lpad(trim(l_document_rec.unique_remit_id_code),20,'0'), lpad(trim(l_document_rec.URI_CHECK_DIGIT),2,'0')) = false)
12186 THEN
12187 l_docErrorRec.error_message :='';
12188
12189 FND_MESSAGE.SET_NAME('IBY', 'IBY_FIN_URI_CD_VAL_FAIL');
12190 l_message := fnd_message.get;
12191
12192
12193 l_docErrorRec.error_message := l_message;
12194 l_docErrorRec.error_code := 'IBY_VALID_OBJ_INVALID';
12195
12196
12197 SELECT
12198 IBY_TRANSACTION_ERRORS_S.NEXTVAL
12199 INTO
12200 l_transaction_error_id
12201 FROM
12202 DUAL
12203 ;
12204
12205 l_docErrorRec.transaction_error_id := l_transaction_error_id;
12206
12207 INSERT INTO IBY_TRXN_ERROR_TOKENS
12208 (TRANSACTION_ERROR_ID, TOKEN_NAME, TOKEN_VALUE, LOOKUP_TYPE_SOURCE,
12209 CREATED_BY, CREATION_DATE, LAST_UPDATED_BY, LAST_UPDATE_DATE,
12210 LAST_UPDATE_LOGIN, OBJECT_VERSION_NUMBER)
12211 VALUES
12212 (l_transaction_error_id, 'ERR_OBJECT', 'URI_CHECK_DIGIT', 'IBY_VALIDATION_FIELDS',
12213 fnd_global.user_id, sysdate, fnd_global.user_id, sysdate,
12214 fnd_global.user_id, 1);
12215
12216
12217 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
12218 -- Inserting errors into IBY_TRANSACTION_ERRORS
12219 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
12220 l_valid :=1;
12221 END IF;
12222 end if;
12223 END IF;
12224
12225 -- Return the Validation Result
12226 x_result := l_valid;
12227
12228 END VALIDATE_FIN_URI;
12229
12230 FUNCTION FIN_URI_CHECK_DIGIT_VAL( uri IBY_DOCS_PAYABLE_ALL.unique_remittance_identifier%TYPE,
12231 uri_check_digit IBY_DOCS_PAYABLE_ALL.URI_CHECK_DIGIT%TYPE)
12232 RETURN BOOLEAN is
12233 l_flag BOOLEAN := false;
12234 l_ck IBY_DOCS_PAYABLE_ALL.URI_CHECK_DIGIT%TYPE;
12235 BEGIN
12236 IF uri_check_digit = '00' THEN
12237 l_ck := '10';
12238 ELSE
12239 l_ck := uri_check_digit;
12240 END IF;
12241
12242 if(
12243 to_number(l_ck)=
12244 10-mod((
12245 to_number(substr(uri,19,1))*7+
12246 to_number(substr(uri,18,1))*3+
12247 to_number(substr(uri,17,1))*1+
12248 to_number(substr(uri,16,1))*7+
12249 to_number(substr(uri,15,1))*3+
12250 to_number(substr(uri,14,1))*1+
12251 to_number(substr(uri,13,1))*7+
12252 to_number(substr(uri,12,1))*3+
12253 to_number(substr(uri,11,1))*1+
12254 to_number(substr(uri,10,1))*7+
12255 to_number(substr(uri,9,1))*3+
12256 to_number(substr(uri,8,1))*1+
12257 to_number(substr(uri,7,1))*7+
12258 to_number(substr(uri,6,1))*3+
12259 to_number(substr(uri,5,1))*1+
12260 to_number(substr(uri,4,1))*7+
12261 to_number(substr(uri,3,1))*3+
12262 to_number(substr(uri,2,1))*1+
12263 to_number(substr(uri,1,1))*7),10) and
12264 to_number(substr(uri,20,1))=to_number(uri_check_digit)) then
12265 l_flag:= true;
12266 end if;
12267 return l_flag;
12268 END FIN_URI_CHECK_DIGIT_VAL;
12269
12270
12271 /*--------------------------------------------------------------------
12272 | NAME:
12273 | PAYMENT_COMPLETION_VALIDATION
12274 |
12275 | PURPOSE:
12276 | AP IBY Payment Completion Validations
12277 |
12278 | PARAMETERS:
12279 | IN
12280 |
12281 |
12282 | OUT
12283 |
12284 |
12285 | RETURNS:
12286 |
12287 | NOTES:
12288 |
12289 *---------------------------------------------------------------------*/
12290 PROCEDURE PAYMENT_COMPLETION_VALIDATION(
12291 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
12292 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
12293 p_instruction_id IN IBY_PAY_INSTRUCTIONS_ALL.payment_instruction_id%type,
12294 p_is_online_val IN VARCHAR2,
12295 x_result OUT NOCOPY NUMBER)
12296 IS
12297 l_instruction_rec IBY_VALIDATIONSETS_PUB.instructionRecType;
12298
12299 l_valResult BOOLEAN;
12300 l_valid NUMBER := 0;
12301 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
12302 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
12303
12304 l_completion_id NUMBER;
12305 l_module_name CONSTANT VARCHAR2(200) := 'IBY_VALIDATIONSETS_CALLS_PUB.payment_completion_validation';
12306
12307 BEGIN
12308
12309 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12310 print_debuginfo(l_module_name, 'Enter');
12311 END IF;
12312
12313 -- Initializing the payment record
12314 IBY_VALIDATIONSETS_PUB.initInstructionData(p_instruction_id,l_instruction_rec);
12315 l_docErrorRec.validation_set_code := p_validation_set_code;
12316 l_docErrorRec.transaction_id := p_instruction_id;
12317 l_docErrorRec.transaction_type := 'PAYMENT_INSTRUCTION';
12318 l_docErrorRec.calling_app_doc_unique_ref1 := p_instruction_id;
12319 l_docErrorRec.override_allowed_on_error_flag := 'N';
12320
12321 -- Sequence value will be used for AP IBY completion validation simulation
12322 SELECT IBY_COMPLETED_PMTS_GROUP_S.NEXTVAL
12323 INTO l_completion_id
12324 FROM DUAL;
12325
12326 -- Mark all documents and payments which will be used by AP to apply validations
12327 UPDATE IBY_PAYMENTS_ALL pmt
12328 SET pmt.completed_pmts_group_id = l_completion_id
12329 WHERE pmt.payment_status IN ('INSTRUCTION_CREATED')
12330 AND pmt.payment_instruction_id = p_instruction_id
12331 AND pmt.payment_id IN
12332 (SELECT doc.payment_id
12333 FROM IBY_DOCS_PAYABLE_ALL doc
12334 WHERE doc.payment_id = pmt.payment_id
12335 AND doc.calling_app_id = 200
12336 );
12337
12338 /*UPDATE IBY_DOCS_PAYABLE_ALL
12339 SET completed_pmts_group_id = l_completion_id
12340 WHERE payment_id IN
12341 (SELECT payment_id
12342 FROM IBY_PAYMENTS_ALL
12343 WHERE payment_status IN ('INSTRUCTION_CREATED')
12344 AND payment_instruction_id = p_instruction_id)
12345 AND document_status <> 'REMOVED';*/
12346
12347
12348 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12349 print_debuginfo(l_module_name, 'Marked documents and payments with completion id '||l_completion_id);
12350 END IF;
12351
12352 -- Invoke AP's validation logic, passing them the instruction_id as well as the completion_id
12353 AP_PMT_VALIDATIONS_PKG.performValidations( p_instruction_id, l_completion_id, l_valResult, l_docErrorRec);
12354
12355 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12356 print_debuginfo(l_module_name, 'Core validation logic executed');
12357 END IF;
12358
12359 -- Revert stamping of completed payments group ID for all documents and payments
12360 UPDATE IBY_PAYMENTS_ALL pmt
12361 SET pmt.completed_pmts_group_id = NULL
12362 WHERE pmt.payment_status IN ('INSTRUCTION_CREATED')
12363 AND pmt.payment_instruction_id = p_instruction_id
12364 AND pmt.payment_id IN
12365 (SELECT doc.payment_id
12366 FROM IBY_DOCS_PAYABLE_ALL doc
12367 WHERE doc.payment_id = pmt.payment_id
12368 AND doc.calling_app_id = 200
12369 );
12370
12371 /*UPDATE IBY_DOCS_PAYABLE_ALL
12372 SET completed_pmts_group_id = NULL
12373 WHERE payment_id IN
12374 (SELECT payment_id
12375 FROM IBY_PAYMENTS_ALL
12376 WHERE payment_status IN ('INSTRUCTION_CREATED')
12377 AND payment_instruction_id = p_instruction_id);*/
12378
12379 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12380 print_debuginfo(l_module_name, 'Reverted completion id stamping on documents and payments');
12381 END IF;
12382
12383 IF (l_valResult = FALSE) THEN
12384 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
12385 l_valid := 1;
12386 END IF;
12387
12388 -- Inserting errors into IBY_TRANSACTION_ERRORS
12389 -- The first parameter p_is_online_val takes hardcoded value 'N'.
12390 IF (l_valid = 1) THEN
12391 IBY_VALIDATIONSETS_PUB.insert_transaction_errors('N',l_docErrorTab);
12392 END IF;
12393
12394 -- Return the Validation Result
12395 x_result := l_valid;
12396
12397 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12398 print_debuginfo(l_module_name, 'Exit');
12399 END IF;
12400
12401 END PAYMENT_COMPLETION_VALIDATION;
12402
12403
12404
12405 /*--------------------------------------------------------------------
12406 | NAME:
12407 | print_debuginfo
12408 |
12409 | PURPOSE:
12410 | This procedure prints the debug message to the concurrent manager
12411 | log file.
12412 |
12413 | PARAMETERS:
12414 | IN
12415 | p_debug_text - The debug message to be printed
12416 |
12417 | OUT
12418 |
12419 |
12420 | RETURNS:
12421 |
12422 | NOTES:
12423 |
12424 *---------------------------------------------------------------------*/
12425 PROCEDURE print_debuginfo(p_module IN VARCHAR2,
12426 p_debug_text IN VARCHAR2)
12427 IS
12428
12429 BEGIN
12430 --
12431 -- Writing debug text to the concurrent manager log file.
12432 --
12433 iby_build_utils_pkg.print_debuginfo(p_module, p_debug_text);
12434
12435 END print_debuginfo;
12436
12437 /* SEPA Credit Transfer Enhancement*/
12438 PROCEDURE VALIDATE_INV_LEGAL_ENTITY_ID(
12439 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
12440 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
12441 p_document_id IN IBY_DOCS_PAYABLE_ALL.document_payable_id%type,
12442 p_is_online_val IN VARCHAR2,
12443 x_result OUT NOCOPY NUMBER)
12444 IS
12445
12446 l_document_rec IBY_VALIDATIONSETS_PUB.documentRecType;
12447 l_valResult BOOLEAN;
12448 l_valid NUMBER := 0;
12449 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
12450 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
12451
12452 BEGIN
12453
12454 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12455 print_debuginfo('VALIDATE_INV_LEGAL_ENTITY_ID', 'ENTER');
12456 END IF;
12457 -- Initializing the document record
12458 IBY_VALIDATIONSETS_PUB.initDocumentData(p_document_id,l_document_rec,p_is_online_val);
12459
12460 l_docErrorRec.validation_set_code := p_validation_set_code;
12461 l_docErrorRec.transaction_id := p_document_id;
12462 l_docErrorRec.transaction_type := 'DOCUMENT_PAYABLE';
12463 --l_docErrorRec.calling_app_id := l_document_rec.calling_app_id;
12464 --l_docErrorRec.pay_proc_trxn_type_code := l_document_rec.pay_proc_trxn_type_cd;
12465 --l_docErrorRec.calling_app_doc_unique_ref1 := l_document_rec.calling_app_doc_id1;
12466
12467 -- Validate Payer Tax Registration Number at Invoice Level
12468 IBY_VALIDATIONSETS_PUB.evaluateCondition(
12469 'INVOICE_LE_IDENTIFICATION',
12470 l_document_rec.payer_tax_registration_number,
12471 'NOTNULL',
12472 null,
12473 null,
12474 l_valResult,
12475 l_docErrorRec);
12476
12477 IF (l_valResult = FALSE) THEN
12478 -- If we reached here means Legal Entity Registration Does not exists for which invoice is created
12479 -- Validate Invoice Legal Entity Registration Number
12480 IBY_VALIDATIONSETS_PUB.evaluateCondition(
12481 'INVOICE_LE_IDENTIFICATION',
12482 l_document_rec.payer_registration_number,
12483 'NOTNULL',
12484 null,
12485 null,
12486 l_valResult,
12487 l_docErrorRec);
12488
12489 IF (l_valResult = FALSE) THEN
12490 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
12491 l_valid := 1;
12492 END IF;
12493 END IF;
12494 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12495 print_debuginfo('VALIDATE_INV_LEGAL_ENTITY_ID', 'EXIT');
12496 END IF;
12497 END VALIDATE_INV_LEGAL_ENTITY_ID;
12498
12499 PROCEDURE VALIDATE_PAYER_LEGAL_ENTITY_ID(
12500 p_validation_assign_id IN IBY_VAL_ASSIGNMENTS.validation_assignment_id%TYPE,
12501 p_validation_set_code IN IBY_VALIDATION_SETS_VL.validation_set_code%type,
12502 p_payment_id IN IBY_PAYMENTS_ALL.payment_id%type,
12503 p_is_online_val IN VARCHAR2,
12504 x_result OUT NOCOPY NUMBER)
12505 IS
12506
12507 l_payment_rec IBY_VALIDATIONSETS_PUB.paymentRecType;
12508 l_valResult BOOLEAN;
12509 l_valid NUMBER := 0;
12510 l_docErrorTab IBY_VALIDATIONSETS_PUB.docErrorTabType;
12511 l_docErrorRec IBY_TRANSACTION_ERRORS%ROWTYPE;
12512
12513 BEGIN
12514
12515 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12516 print_debuginfo('VALIDATE_PAYER_LEGAL_ENTITY_ID', 'ENTER');
12517 END IF;
12518 -- Initializing the payment record
12519 IBY_VALIDATIONSETS_PUB.initPaymentData(p_payment_id,l_payment_rec);
12520 l_docErrorRec.validation_set_code := p_validation_set_code;
12521 l_docErrorRec.transaction_id := p_payment_id;
12522 l_docErrorRec.transaction_type := 'PAYMENT';
12523 l_docErrorRec.calling_app_doc_unique_ref1 := p_payment_id;
12524
12525 -- Validate Payer Legal Entity Tax Registration Number
12526 IBY_VALIDATIONSETS_PUB.evaluateCondition(
12527 'PAYER_LE_IDENTIFICATION',
12528 l_payment_rec.PAYER_TAX_REGISTRATION_NUM,
12529 'NOTNULL',
12530 null,
12531 null,
12532 l_valResult,
12533 l_docErrorRec);
12534
12535 IF (l_valResult = FALSE) THEN
12536 -- Validate Payer Legal Entity Registration Number
12537 IBY_VALIDATIONSETS_PUB.evaluateCondition(
12538 'PAYER_LE_IDENTIFICATION',
12539 l_payment_rec.PAYER_LE_REGISTRATION_NUM,
12540 'NOTNULL',
12541 null,
12542 null,
12543 l_valResult,
12544 l_docErrorRec);
12545 IF (l_valResult = FALSE) THEN
12546 IBY_VALIDATIONSETS_PUB.insertIntoErrorTable(l_docErrorRec, l_docErrorTab);
12547 l_valid := 1;
12548 END IF;
12549 END IF;
12550
12551 -- Inserting errors into IBY_TRANSACTION_ERRORS
12552 IF (l_valid = 1) THEN
12553 IBY_VALIDATIONSETS_PUB.insert_transaction_errors(p_is_online_val,l_docErrorTab);
12554 END IF;
12555
12556 -- Return the Validation Result
12557 x_result := l_valid;
12558 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
12559 print_debuginfo('VALIDATE_PAYER_LEGAL_ENTITY_ID', 'EXIT');
12560 END IF;
12561 END VALIDATE_PAYER_LEGAL_ENTITY_ID;
12562
12563 END IBY_VALIDATIONSETS_CALLS_PUB;