14: x_return_status OUT NOCOPY VARCHAR2,
15: p_chr_id IN NUMBER
16: ) IS
17:
18: l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
19: l_dummy VARCHAR2(1) := '?';
20: l_count NUMBER := 0;
21: l_row_notfound BOOLEAN;
22: l_token VARCHAR2(2000);
213: --Bug# 5032252
214: l_rev_share_per okl_k_lines.PERCENT_STAKE%TYPE;
215: BEGIN
216: -- initialize return status
217: x_return_status := OKL_API.G_RET_STS_SUCCESS;
218:
219: OPEN l_hdr_csr(p_chr_id);
220: FETCH l_hdr_csr into l_hdr;
221: IF l_hdr_csr%NOTFOUND THEN
230: END IF;
231: CLOSE l_contract_name;
232:
233: If( l_cn.cnt > 1) Then
234: OKL_API.set_message(
235: p_app_name => G_APP_NAME,
236: p_msg_name => 'OKL_QA_AGMT_NOTUNQ');
237: -- notify caller of an error
238: x_return_status := OKL_API.G_RET_STS_ERROR;
234: OKL_API.set_message(
235: p_app_name => G_APP_NAME,
236: p_msg_name => 'OKL_QA_AGMT_NOTUNQ');
237: -- notify caller of an error
238: x_return_status := OKL_API.G_RET_STS_ERROR;
239: End If;
240:
241:
242: OPEN l_lne_csr('INVESTMENT', p_chr_id);
241:
242: OPEN l_lne_csr('INVESTMENT', p_chr_id);
243: FETCH l_lne_csr into l_lne;
244: If( l_lne_csr%NOTFOUND ) Then
245: OKL_API.set_message(
246: p_app_name => G_APP_NAME,
247: p_msg_name => 'OKL_QA_NO_SHARE_LINES');
248: -- notify caller of an error
249: x_return_status := OKL_API.G_RET_STS_ERROR;
245: OKL_API.set_message(
246: p_app_name => G_APP_NAME,
247: p_msg_name => 'OKL_QA_NO_SHARE_LINES');
248: -- notify caller of an error
249: x_return_status := OKL_API.G_RET_STS_ERROR;
250: RAISE G_EXCEPTION_HALT_VALIDATION;
251: END IF;
252: CLOSE l_lne_csr;
253:
253:
254: OPEN l_lne_csr('REVENUE_SHARE', p_chr_id);
255: FETCH l_lne_csr into l_lne;
256: If( l_lne_csr%NOTFOUND ) Then
257: OKL_API.set_message(
258: p_app_name => G_APP_NAME,
259: p_msg_name => 'OKL_QA_NO_REVENUE_LINES');
260: -- notify caller of an error
261: x_return_status := OKL_API.G_RET_STS_ERROR;
257: OKL_API.set_message(
258: p_app_name => G_APP_NAME,
259: p_msg_name => 'OKL_QA_NO_REVENUE_LINES');
260: -- notify caller of an error
261: x_return_status := OKL_API.G_RET_STS_ERROR;
262: RAISE G_EXCEPTION_HALT_VALIDATION;
263: END IF;
264: CLOSE l_lne_csr;
265:
267: FETCH payment_csr INTO payment_rec;
268: CLOSE payment_csr;
269: IF(payment_rec.streamtypename IS NOT NULL)
270: THEN
271: OKL_API.set_message(
272: p_app_name => G_APP_NAME,
273: p_msg_name => 'OKL_QA_INCOME_NO_PAYMENT',
274: p_token1 => 'INVESTORNMAE',
275: p_token1_value => payment_rec.partyname,
274: p_token1 => 'INVESTORNMAE',
275: p_token1_value => payment_rec.partyname,
276: p_token2 => 'FEENAME',
277: p_token2_value => payment_rec.streamtypename);
278: x_return_status := OKL_API.G_RET_STS_ERROR;
279: END IF;
280:
281: FOR l_lne IN l_lne_csr('INVESTMENT', p_chr_id)
282: LOOP
294: CLOSE invstr_csr;
295:
296: If ( n = 0) Then
297:
298: OKL_API.set_message(
299: p_app_name => G_APP_NAME,
300: p_msg_name => 'OKL_QA_ASST_NO_RVNUELNS',
301: p_token1 => 'INVESTOR',
302: p_token1_value => l_invstr_rec.name);
299: p_app_name => G_APP_NAME,
300: p_msg_name => 'OKL_QA_ASST_NO_RVNUELNS',
301: p_token1 => 'INVESTOR',
302: p_token1_value => l_invstr_rec.name);
303: x_return_status := OKL_API.G_RET_STS_ERROR;
304:
305: End If;
306:
307: --for the investor, checking for existence of revenue shares for streams of subclass
309: l_stream_type_subclass := 'LATE_CHARGE';
310: OPEN l_okl_inv_sty_subclass_csr(l_lne.id , l_stream_type_subclass);
311: FETCH l_okl_inv_sty_subclass_csr INTO l_exists;
312: IF( l_okl_inv_sty_subclass_csr%NOTFOUND) Then
313: OKL_API.set_message(
314: p_app_name => G_APP_NAME,
315: p_msg_name => 'OKL_QA_INV_STRM_MISMATCH',
316: p_token1 => 'INVESTOR',
317: p_token1_value => l_invstr_rec.name,
316: p_token1 => 'INVESTOR',
317: p_token1_value => l_invstr_rec.name,
318: p_token3 => 'SUB_CLASS',
319: p_token3_value => l_stream_type_subclass);
320: x_return_status := OKL_API.G_RET_STS_ERROR;
321: END IF;
322: CLOSE l_okl_inv_sty_subclass_csr;
323:
324: l_stream_type_subclass := 'LATE_INTEREST';
324: l_stream_type_subclass := 'LATE_INTEREST';
325: OPEN l_okl_inv_sty_subclass_csr(l_lne.id , l_stream_type_subclass);
326: FETCH l_okl_inv_sty_subclass_csr INTO l_exists;
327: IF( l_okl_inv_sty_subclass_csr%NOTFOUND) Then
328: OKL_API.set_message(
329: p_app_name => G_APP_NAME,
330: p_msg_name => 'OKL_QA_INV_STRM_MISMATCH',
331: p_token1 => 'INVESTOR',
332: p_token1_value => l_invstr_rec.name,
331: p_token1 => 'INVESTOR',
332: p_token1_value => l_invstr_rec.name,
333: p_token3 => 'SUB_CLASS',
334: p_token3_value => l_stream_type_subclass);
335: x_return_status := OKL_API.G_RET_STS_ERROR;
336: END IF;
337: CLOSE l_okl_inv_sty_subclass_csr;
338:
339: --for the investor, checking for existence of streams of subclass RENT
344: IF (l_okl_poc_sty_subclass_csr%FOUND) Then
345: OPEN l_okl_inv_sty_subclass_csr(l_lne.id , l_stream_type_subclass);
346: FETCH l_okl_inv_sty_subclass_csr INTO l_exists;
347: IF( l_okl_inv_sty_subclass_csr%NOTFOUND) Then
348: OKL_API.set_message(
349: p_app_name => G_APP_NAME,
350: p_msg_name => 'OKL_QA_INV_STRM_MISMATCH',
351: p_token1 => 'INVESTOR',
352: p_token1_value => l_invstr_rec.name,
351: p_token1 => 'INVESTOR',
352: p_token1_value => l_invstr_rec.name,
353: p_token3 => 'SUB_CLASS',
354: p_token3_value => l_stream_type_subclass);
355: x_return_status := OKL_API.G_RET_STS_ERROR;
356: END IF;
357: CLOSE l_okl_inv_sty_subclass_csr;
358:
359: --Bug# 5032252 --start
359: --Bug# 5032252 --start
360: OPEN l_rev_share_per_csr(l_lne.id , l_stream_type_subclass);
361: FETCH l_rev_share_per_csr INTO l_rev_share_per;
362: IF (l_rev_share_per = 0) THEN
363: OKL_API.set_message(
364: p_app_name => G_APP_NAME,
365: p_msg_name => 'OKL_QA_INV_REV_SHARE_ZERO',
366: p_token1 => 'SUB_CLASS',
367: p_token1_value => l_stream_type_subclass);
364: p_app_name => G_APP_NAME,
365: p_msg_name => 'OKL_QA_INV_REV_SHARE_ZERO',
366: p_token1 => 'SUB_CLASS',
367: p_token1_value => l_stream_type_subclass);
368: x_return_status := OKL_API.G_RET_STS_ERROR;
369: END IF;
370: CLOSE l_rev_share_per_csr;
371: --Bug# 5032252 --end
372:
378: IF (l_okl_poc_sty_subclass_csr%FOUND) Then
379: OPEN l_okl_inv_sty_subclass_csr(l_lne.id , l_stream_type_subclass);
380: FETCH l_okl_inv_sty_subclass_csr INTO l_exists;
381: IF( l_okl_inv_sty_subclass_csr%NOTFOUND) Then
382: OKL_API.set_message(
383: p_app_name => G_APP_NAME,
384: p_msg_name => 'OKL_QA_INV_STRM_MISMATCH',
385: p_token1 => 'INVESTOR',
386: p_token1_value => l_invstr_rec.name,
385: p_token1 => 'INVESTOR',
386: p_token1_value => l_invstr_rec.name,
387: p_token3 => 'SUB_CLASS',
388: p_token3_value => l_stream_type_subclass);
389: x_return_status := OKL_API.G_RET_STS_ERROR;
390: END IF;
391: CLOSE l_okl_inv_sty_subclass_csr;
392:
393: --Bug# 5032252 --start
393: --Bug# 5032252 --start
394: OPEN l_rev_share_per_csr(l_lne.id , l_stream_type_subclass);
395: FETCH l_rev_share_per_csr INTO l_rev_share_per;
396: IF (l_rev_share_per = 0) THEN
397: OKL_API.set_message(
398: p_app_name => G_APP_NAME,
399: p_msg_name => 'OKL_QA_INV_REV_SHARE_ZERO',
400: p_token1 => 'SUB_CLASS',
401: p_token1_value => l_stream_type_subclass);
398: p_app_name => G_APP_NAME,
399: p_msg_name => 'OKL_QA_INV_REV_SHARE_ZERO',
400: p_token1 => 'SUB_CLASS',
401: p_token1_value => l_stream_type_subclass);
402: x_return_status := OKL_API.G_RET_STS_ERROR;
403: END IF;
404: CLOSE l_rev_share_per_csr;
405: --Bug# 5032252 --end
406:
416: IF (l_okl_poc_sty_subclass_csr%FOUND) Then
417: OPEN l_okl_inv_sty_subclass_csr(l_lne.id , l_stream_type_subclass);
418: FETCH l_okl_inv_sty_subclass_csr INTO l_exists;
419: IF( l_okl_inv_sty_subclass_csr%NOTFOUND) Then
420: OKL_API.set_message(
421: p_app_name => G_APP_NAME,
422: p_msg_name => 'OKL_QA_INV_STRM_MISMATCH',
423: p_token1 => 'INVESTOR',
424: p_token1_value => l_invstr_rec.name,
423: p_token1 => 'INVESTOR',
424: p_token1_value => l_invstr_rec.name,
425: p_token3 => 'SUB_CLASS',
426: p_token3_value => l_stream_type_subclass);
427: x_return_status := OKL_API.G_RET_STS_ERROR;
428: END IF;
429: CLOSE l_okl_inv_sty_subclass_csr;
430: OPEN l_rev_share_per_csr(l_lne.id , l_stream_type_subclass);
431: FETCH l_rev_share_per_csr INTO l_rev_share_per;
429: CLOSE l_okl_inv_sty_subclass_csr;
430: OPEN l_rev_share_per_csr(l_lne.id , l_stream_type_subclass);
431: FETCH l_rev_share_per_csr INTO l_rev_share_per;
432: IF (l_rev_share_per = 0) THEN
433: OKL_API.set_message(
434: p_app_name => G_APP_NAME,
435: p_msg_name => 'OKL_QA_INV_REV_SHARE_ZERO',
436: p_token1 => 'SUB_CLASS',
437: p_token1_value => l_stream_type_subclass);
434: p_app_name => G_APP_NAME,
435: p_msg_name => 'OKL_QA_INV_REV_SHARE_ZERO',
436: p_token1 => 'SUB_CLASS',
437: p_token1_value => l_stream_type_subclass);
438: x_return_status := OKL_API.G_RET_STS_ERROR;
439: END IF;
440: CLOSE l_rev_share_per_csr;
441: END IF;
442: CLOSE l_okl_poc_sty_subclass_csr;
453: OPEN l_okl_poc_sty_subclass_csr(p_chr_id,l_stream_type_subclass);
454: FETCH l_okl_poc_sty_subclass_csr INTO l_exists;
455: IF (l_okl_poc_sty_subclass_csr%NOTFOUND)
456: THEN
457: OKL_API.set_message(
458: p_app_name => G_APP_NAME,
459: p_msg_name => 'OKL_QA_REV_SHARE_INVALID',
460: p_token1 => 'SUB_CLASS',
461: p_token1_value => l_stream_type_subclass);
474: OPEN l_okl_poc_sty_subclass_csr(p_chr_id, l_stream_type_subclass);
475: FETCH l_okl_poc_sty_subclass_csr INTO l_exists;
476: IF (l_okl_poc_sty_subclass_csr%NOTFOUND)
477: THEN
478: OKL_API.set_message(
479: p_app_name => G_APP_NAME,
480: p_msg_name => 'OKL_QA_REV_SHARE_INVALID',
481: p_token1 => 'SUB_CLASS',
482: p_token1_value => l_stream_type_subclass);
492: OPEN l_okl_poc_sty_subclass_csr(p_chr_id,l_stream_type_subclass);
493: FETCH l_okl_poc_sty_subclass_csr INTO l_exists;
494: IF (l_okl_poc_sty_subclass_csr%NOTFOUND)
495: THEN
496: OKL_API.set_message(
497: p_app_name => G_APP_NAME,
498: p_msg_name => 'OKL_QA_REV_SHARE_INVALID',
499: p_token1 => 'SUB_CLASS',
500: p_token1_value => l_stream_type_subclass);
516: * FETCH l_fnd_meaning_csr INTO l_fnd_meaning_rec;
517: * CLOSE l_fnd_meaning_csr;
518: *
519: * -- set message and continue in loop
520: * OKL_API.set_message(
521: * p_app_name => G_APP_NAME,
522: * p_msg_name => 'OKL_QA_INV_STRM_MISMATCH',
523: * p_token1 => 'INVESTOR',
524: * p_token1_value => l_invstr_rec.name,
525: * p_token2 => 'STRM_TYPE',
526: * p_token2_value => strm_name_rec.name,
527: * p_token3 => 'SUB_CLASS',
528: * p_token3_value => l_fnd_meaning_rec.meaning);
529: * x_return_status := OKL_API.G_RET_STS_ERROR;
530: *
531: *END LOOP;
532: *
533: *FOR inv_dbrmnt_rec IN inv_dbrmnt_csr(p_cle_id => l_lne.id)
537: * FETCH l_fnd_meaning_csr INTO l_fnd_meaning_rec;
538: * CLOSE l_fnd_meaning_csr;
539: *
540: * -- set message and continue in loop
541: * OKL_API.set_message(
542: * p_app_name => G_APP_NAME,
543: * p_msg_name => 'OKL_QA_INV_STRM_MISMATCH',
544: * p_token1 => 'INVESTOR',
545: * p_token1_value => l_invstr_rec.name,
546: * p_token2 => 'STRM_TYPE',
547: * p_token2_value => inv_dbrmnt_rec.name,
548: * p_token3 => 'SUB_CLASS',
549: * p_token3_value => l_fnd_meaning_rec.meaning);
550: * x_return_status := OKL_API.G_RET_STS_ERROR;
551: *END LOOP;
552: *
553: *ind := 0;
554: *
574: * p_lookup_code => strm_name_rec.stream_type_subclass);
575: * FETCH l_fnd_meaning_csr INTO l_fnd_meaning_rec;
576: * CLOSE l_fnd_meaning_csr;
577: *
578: * OKL_API.set_message(
579: * p_app_name => G_APP_NAME,
580: * p_msg_name => 'OKL_QA_INV_DIFF_STAKE',
581: * p_token1 => 'INVESTOR',
582: * p_token1_value => l_invstr_rec.name,
581: * p_token1 => 'INVESTOR',
582: * p_token1_value => l_invstr_rec.name,
583: * p_token2 => 'SUB_CLASS',
584: * p_token2_value => l_fnd_meaning_rec.meaning);
585: * x_return_status := OKL_API.G_RET_STS_ERROR;
586: * End If;
587: * End If;
588: *
589: *END LOOP;
597: CLOSE l_princ_csr;
598:
599: If( l_princ_rec.princi <= 0 ) Then
600:
601: OKL_API.set_message(
602: p_app_name => G_APP_NAME,
603: p_msg_name => 'OKL_QA_PRINC_VALUE');
604: -- notify caller of an error
605: x_return_status := OKL_API.G_RET_STS_ERROR;
601: OKL_API.set_message(
602: p_app_name => G_APP_NAME,
603: p_msg_name => 'OKL_QA_PRINC_VALUE');
604: -- notify caller of an error
605: x_return_status := OKL_API.G_RET_STS_ERROR;
606: END IF;
607: */
608:
609: OKL_POOL_PVT.get_tot_receivable_amt(
615: x_value => l_stream_value,
616: p_khr_id => p_chr_id );
617:
618: If( l_stream_value IS NULL OR l_stream_value = 0 ) Then
619: OKL_API.set_message(
620: p_app_name => G_APP_NAME,
621: p_msg_name => 'OKL_QA_STREAM_VALUE');
622: -- notify caller of an error
623: x_return_status := OKL_API.G_RET_STS_ERROR;
619: OKL_API.set_message(
620: p_app_name => G_APP_NAME,
621: p_msg_name => 'OKL_QA_STREAM_VALUE');
622: -- notify caller of an error
623: x_return_status := OKL_API.G_RET_STS_ERROR;
624: END IF;
625:
626:
627: IF x_return_status = OKL_API.G_RET_STS_SUCCESS THEN
623: x_return_status := OKL_API.G_RET_STS_ERROR;
624: END IF;
625:
626:
627: IF x_return_status = OKL_API.G_RET_STS_SUCCESS THEN
628: OKL_API.set_message(
629: p_app_name => G_APP_NAME,
630: p_msg_name => G_QA_SUCCESS);
631: END IF;
624: END IF;
625:
626:
627: IF x_return_status = OKL_API.G_RET_STS_SUCCESS THEN
628: OKL_API.set_message(
629: p_app_name => G_APP_NAME,
630: p_msg_name => G_QA_SUCCESS);
631: END IF;
632:
656: CLOSE l_okl_poc_sty_subclass_csr;
657: END IF;
658: WHEN OTHERS THEN
659: -- store SQL error message on message stack
660: OKL_API.SET_MESSAGE(
661: p_app_name => G_APP_NAME,
662: p_msg_name => G_UNEXPECTED_ERROR,
663: p_token1 => G_SQLCODE_TOKEN,
664: p_token1_value => SQLCODE,
664: p_token1_value => SQLCODE,
665: p_token2 => G_SQLERRM_TOKEN,
666: p_token2_value => SQLERRM);
667: -- notify caller of an error as UNEXPETED error
668: x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
669: -- verify that cursor was closed
670: IF l_lne_csr%ISOPEN THEN
671: CLOSE l_lne_csr;
672: END IF;
703: x_return_status OUT NOCOPY VARCHAR2,
704: p_chr_id IN NUMBER
705: ) IS
706:
707: l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
708: l_dummy VARCHAR2(1) := '?';
709: l_count NUMBER := 0;
710: l_row_notfound BOOLEAN;
711: l_token VARCHAR2(2000);
723:
724: BEGIN
725:
726: -- initialize return status
727: x_return_status := OKL_API.G_RET_STS_SUCCESS;
728:
729: OPEN l_hdr_csr(p_chr_id);
730: FETCH l_hdr_csr into l_hdr;
731: IF l_hdr_csr%NOTFOUND THEN
740: OPEN t_and_c_csr('OKLLASECLASEIR');
741: FETCH t_and_c_csr into l_t_and_c_rec;
742: CLOSE t_and_c_csr;
743:
744: OKL_API.set_message(
745: p_app_name => G_APP_NAME,
746: p_msg_name => 'OKL_QA_NOAGMT_RULES',
747: p_token1 => 'RULE_GROUP_NAME',
748: p_token1_value => l_t_and_c_rec.meaning);
746: p_msg_name => 'OKL_QA_NOAGMT_RULES',
747: p_token1 => 'RULE_GROUP_NAME',
748: p_token1_value => l_t_and_c_rec.meaning);
749: -- notify caller of an error
750: x_return_status := OKL_API.G_RET_STS_ERROR;
751: Else
752: If (l_hdrrl_rec.rule_information1 = 'YIELD'
753: AND (l_hdr.after_tax_yield = 0 OR l_hdr.after_tax_yield is null)) Then
754: OKL_API.set_message(
750: x_return_status := OKL_API.G_RET_STS_ERROR;
751: Else
752: If (l_hdrrl_rec.rule_information1 = 'YIELD'
753: AND (l_hdr.after_tax_yield = 0 OR l_hdr.after_tax_yield is null)) Then
754: OKL_API.set_message(
755: p_app_name => G_APP_NAME,
756: p_msg_name => 'OKL_QA_YLD_DBRSMT');
757: x_return_status := OKL_API.G_RET_STS_ERROR;
758: End If;
753: AND (l_hdr.after_tax_yield = 0 OR l_hdr.after_tax_yield is null)) Then
754: OKL_API.set_message(
755: p_app_name => G_APP_NAME,
756: p_msg_name => 'OKL_QA_YLD_DBRSMT');
757: x_return_status := OKL_API.G_RET_STS_ERROR;
758: End If;
759:
760: End If;
761: CLOSE l_hdrrl_csr;
762:
763: OPEN l_hdrrl_csr('LASEBB', 'LASEFM', TO_NUMBER(p_chr_id)); -- Agreement rules
764: FETCH l_hdrrl_csr into l_hdrrl_rec;
765: If( l_hdrrl_csr%NOTFOUND OR l_hdrrl_rec.rule_information1 IS NULL) Then
766: OKL_API.set_message(
767: p_app_name => G_APP_NAME,
768: p_msg_name => 'OKL_QA_BUYBACK_FORMULA');
769: x_return_status := OKL_API.G_RET_STS_ERROR;
770: End If;
765: If( l_hdrrl_csr%NOTFOUND OR l_hdrrl_rec.rule_information1 IS NULL) Then
766: OKL_API.set_message(
767: p_app_name => G_APP_NAME,
768: p_msg_name => 'OKL_QA_BUYBACK_FORMULA');
769: x_return_status := OKL_API.G_RET_STS_ERROR;
770: End If;
771: CLOSE l_hdrrl_csr;
772:
773: FOR l_lne IN l_lne_csr('INVESTMENT', p_chr_id)
784: OPEN invstr_csr(p_chr_id, l_lne.id);
785: FETCH invstr_csr into l_invstr_rec;
786: CLOSE invstr_csr;
787:
788: OKL_API.set_message(
789: p_app_name => G_APP_NAME,
790: p_msg_name => 'OKL_QA_NOSHR_RULES',
791: p_token1 => 'RULE_GROUP_NAME',
792: p_token1_value => l_t_and_c_rec.meaning,
791: p_token1 => 'RULE_GROUP_NAME',
792: p_token1_value => l_t_and_c_rec.meaning,
793: p_token2 => 'INVESTOR',
794: p_token2_value => l_invstr_rec.name);
795: x_return_status := OKL_API.G_RET_STS_ERROR;
796: End If;
797: CLOSE l_lnerl_csr;
798:
799: END LOOP;
797: CLOSE l_lnerl_csr;
798:
799: END LOOP;
800:
801: IF x_return_status = OKL_API.G_RET_STS_SUCCESS THEN
802: OKL_API.set_message(
803: p_app_name => G_APP_NAME,
804: p_msg_name => G_QA_SUCCESS);
805: END IF;
798:
799: END LOOP;
800:
801: IF x_return_status = OKL_API.G_RET_STS_SUCCESS THEN
802: OKL_API.set_message(
803: p_app_name => G_APP_NAME,
804: p_msg_name => G_QA_SUCCESS);
805: END IF;
806:
809: -- no processing necessary; validation can continue with next column
810: NULL;
811: WHEN OTHERS THEN
812: -- store SQL error message on message stack
813: OKL_API.SET_MESSAGE(
814: p_app_name => G_APP_NAME,
815: p_msg_name => G_UNEXPECTED_ERROR,
816: p_token1 => G_SQLCODE_TOKEN,
817: p_token1_value => SQLCODE,
817: p_token1_value => SQLCODE,
818: p_token2 => G_SQLERRM_TOKEN,
819: p_token2_value => SQLERRM);
820: -- notify caller of an error as UNEXPETED error
821: x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
822: -- verify that cursor was closed
823: IF l_lnerl_csr%ISOPEN THEN
824: CLOSE l_lnerl_csr;
825: END IF;
884:
885: l_previous_type okl_k_headers.securitization_type%TYPE;
886: l_previous_khr_id NUMBER;
887:
888: l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
889: l_token VARCHAR2(2000);
890:
891: BEGIN
892:
890:
891: BEGIN
892:
893: -- initialize return status
894: x_return_status := OKL_API.G_RET_STS_SUCCESS;
895:
896: OPEN get_chr_id (p_chr_id);
897: LOOP
898: FETCH get_chr_id INTO l_khr_id;
901: FOR ia_type_rec IN ia_type_csr (l_khr_id) LOOP
902:
903: IF (NVL(l_previous_khr_id,ia_type_rec.khr_id) = ia_type_rec.khr_id AND
904: NVL(l_previous_type,ia_type_rec.securitization_type) <> ia_type_rec.securitization_type) THEN
905: OKL_API.set_message(
906: p_app_name => G_APP_NAME,
907: p_msg_name => 'OKL_IA_STRM_IA_TYPES',
908: p_token1 => 'CONTRACT_NUMBER',
909: p_token1_value => ia_type_rec.contract_number);
907: p_msg_name => 'OKL_IA_STRM_IA_TYPES',
908: p_token1 => 'CONTRACT_NUMBER',
909: p_token1_value => ia_type_rec.contract_number);
910: -- notify caller of an error
911: x_return_status := OKL_API.G_RET_STS_ERROR;
912: END IF;
913: l_previous_khr_id := ia_type_rec.khr_id;
914: l_previous_type := ia_type_rec.securitization_type;
915:
917: END LOOP;
918:
919: CLOSE get_chr_id;
920:
921: IF x_return_status = OKL_API.G_RET_STS_SUCCESS THEN
922: OKL_API.set_message(
923: p_app_name => G_APP_NAME,
924: p_msg_name => G_QA_SUCCESS);
925: END IF;
918:
919: CLOSE get_chr_id;
920:
921: IF x_return_status = OKL_API.G_RET_STS_SUCCESS THEN
922: OKL_API.set_message(
923: p_app_name => G_APP_NAME,
924: p_msg_name => G_QA_SUCCESS);
925: END IF;
926:
929: -- no processing necessary; validation can continue with next column
930: NULL;
931: WHEN OTHERS THEN
932: -- store SQL error message on message stack
933: OKL_API.SET_MESSAGE(
934: p_app_name => G_APP_NAME,
935: p_msg_name => G_UNEXPECTED_ERROR,
936: p_token1 => G_SQLCODE_TOKEN,
937: p_token1_value => SQLCODE,
937: p_token1_value => SQLCODE,
938: p_token2 => G_SQLERRM_TOKEN,
939: p_token2_value => SQLERRM);
940: -- notify caller of an error as UNEXPETED error
941: x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
942: -- verify that cursor was closed
943: IF get_chr_id%ISOPEN THEN
944: CLOSE get_chr_id;
945: END IF;