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