27: TYPE asset_tbl_type IS TABLE OF asset_rec_type INDEX BY BINARY_INTEGER;
28:
29: PROCEDURE delete_fee_service(
30: p_api_version IN NUMBER,
31: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
32: x_return_status OUT NOCOPY VARCHAR2,
33: x_msg_count OUT NOCOPY NUMBER,
34: x_msg_data OUT NOCOPY VARCHAR2,
35: p_id IN NUMBER) IS
38: END delete_fee_service;
39:
40: PROCEDURE delete_usage(
41: p_api_version IN NUMBER,
42: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
43: x_return_status OUT NOCOPY VARCHAR2,
44: x_msg_count OUT NOCOPY NUMBER,
45: x_msg_data OUT NOCOPY VARCHAR2,
46: p_id IN NUMBER) IS
49: END delete_usage;
50:
51: PROCEDURE delete_insurance(
52: p_api_version IN NUMBER,
53: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
54: x_return_status OUT NOCOPY VARCHAR2,
55: x_msg_count OUT NOCOPY NUMBER,
56: x_msg_data OUT NOCOPY VARCHAR2,
57: p_id IN NUMBER) IS
60: END delete_insurance;
61:
62: PROCEDURE allocate_amount_charges (
63: p_api_version IN NUMBER,
64: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
65: x_return_status OUT NOCOPY VARCHAR2,
66: x_msg_count OUT NOCOPY NUMBER,
67: x_msg_data OUT NOCOPY VARCHAR2,
68: p_chr_id IN NUMBER,
135: BEGIN
136:
137: -- call START_ACTIVITY to create savepoint, check compatibility
138: -- and initialize message list
139: x_return_status := OKL_API.START_ACTIVITY(
140: p_api_name => l_api_name,
141: p_pkg_name => g_pkg_name,
142: p_init_msg_list => p_init_msg_list,
143: l_api_version => l_api_version,
145: p_api_type => g_api_type,
146: x_return_status => x_return_status);
147:
148: -- check if activity started successfully
149: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
150: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
151: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
152: raise OKL_API.G_EXCEPTION_ERROR;
153: End If;
146: x_return_status => x_return_status);
147:
148: -- check if activity started successfully
149: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
150: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
151: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
152: raise OKL_API.G_EXCEPTION_ERROR;
153: End If;
154:
147:
148: -- check if activity started successfully
149: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
150: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
151: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
152: raise OKL_API.G_EXCEPTION_ERROR;
153: End If;
154:
155: l_chr_id := p_chr_id;
148: -- check if activity started successfully
149: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
150: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
151: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
152: raise OKL_API.G_EXCEPTION_ERROR;
153: End If;
154:
155: l_chr_id := p_chr_id;
156: l_cle_id := p_cle_id;
196:
197: l_amount := l_amount - NVL(l_term_lines_cov_asset_amt,0);
198:
199: IF l_amount < 0 THEN
200: OKL_API.SET_MESSAGE(p_app_name => g_app_name
201: ,p_msg_name => 'OKL_LA_NEGATIVE_COV_AST_AMT'
202: ,p_token1 => 'AMOUNT'
203: ,p_token1_value => TO_CHAR(NVL(l_term_lines_cov_asset_amt,0)));
204: RAISE OKL_API.G_EXCEPTION_ERROR;
200: OKL_API.SET_MESSAGE(p_app_name => g_app_name
201: ,p_msg_name => 'OKL_LA_NEGATIVE_COV_AST_AMT'
202: ,p_token1 => 'AMOUNT'
203: ,p_token1_value => TO_CHAR(NVL(l_term_lines_cov_asset_amt,0)));
204: RAISE OKL_API.G_EXCEPTION_ERROR;
205: END IF;
206: END IF;
207:
208: IF (l_asset_tbl.COUNT > 0) THEN
275: END IF;
276:
277: x_cov_asset_tbl := l_cov_asset_tbl;
278:
279: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
280:
281: EXCEPTION
282:
283: when OKL_API.G_EXCEPTION_ERROR then
279: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
280:
281: EXCEPTION
282:
283: when OKL_API.G_EXCEPTION_ERROR then
284: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
285: p_api_name => l_api_name,
286: p_pkg_name => g_pkg_name,
287: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
280:
281: EXCEPTION
282:
283: when OKL_API.G_EXCEPTION_ERROR then
284: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
285: p_api_name => l_api_name,
286: p_pkg_name => g_pkg_name,
287: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
288: x_msg_count => x_msg_count,
283: when OKL_API.G_EXCEPTION_ERROR then
284: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
285: p_api_name => l_api_name,
286: p_pkg_name => g_pkg_name,
287: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
288: x_msg_count => x_msg_count,
289: x_msg_data => x_msg_data,
290: p_api_type => g_api_type);
291:
288: x_msg_count => x_msg_count,
289: x_msg_data => x_msg_data,
290: p_api_type => g_api_type);
291:
292: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
293: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
294: p_api_name => l_api_name,
295: p_pkg_name => g_pkg_name,
296: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
289: x_msg_data => x_msg_data,
290: p_api_type => g_api_type);
291:
292: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
293: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
294: p_api_name => l_api_name,
295: p_pkg_name => g_pkg_name,
296: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
297: x_msg_count => x_msg_count,
292: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
293: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
294: p_api_name => l_api_name,
295: p_pkg_name => g_pkg_name,
296: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
297: x_msg_count => x_msg_count,
298: x_msg_data => x_msg_data,
299: p_api_type => g_api_type);
300:
298: x_msg_data => x_msg_data,
299: p_api_type => g_api_type);
300:
301: when OTHERS then
302: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
303: p_api_name => l_api_name,
304: p_pkg_name => g_pkg_name,
305: p_exc_name => 'OTHERS',
306: x_msg_count => x_msg_count,
310: END allocate_amount_charges;
311:
312: PROCEDURE create_fee (
313: p_api_version IN NUMBER,
314: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
315: x_return_status OUT NOCOPY VARCHAR2,
316: x_msg_count OUT NOCOPY NUMBER,
317: x_msg_data OUT NOCOPY VARCHAR2,
318: p_fee_rec IN fee_rec_type,
328: i NUMBER;
329: l_rgr_tbl OKL_RGRP_RULES_PROCESS_PVT.rgr_tbl_type;
330: -- Bug# 7611623
331: l_check_exception BOOLEAN := false;
332: G_REQUIRED_VALUE CONSTANT VARCHAR2(200) := OKL_API.G_REQUIRED_VALUE;
333:
334: BEGIN
335:
336: -- call START_ACTIVITY to create savepoint, check compatibility
334: BEGIN
335:
336: -- call START_ACTIVITY to create savepoint, check compatibility
337: -- and initialize message list
338: x_return_status := OKL_API.START_ACTIVITY(
339: p_api_name => l_api_name,
340: p_pkg_name => g_pkg_name,
341: p_init_msg_list => p_init_msg_list,
342: l_api_version => l_api_version,
344: p_api_type => g_api_type,
345: x_return_status => x_return_status);
346:
347: -- check if activity started successfully
348: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
349: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
350: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
351: raise OKL_API.G_EXCEPTION_ERROR;
352: End If;
345: x_return_status => x_return_status);
346:
347: -- check if activity started successfully
348: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
349: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
350: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
351: raise OKL_API.G_EXCEPTION_ERROR;
352: End If;
353:
346:
347: -- check if activity started successfully
348: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
349: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
350: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
351: raise OKL_API.G_EXCEPTION_ERROR;
352: End If;
353:
354: l_fee_types_rec.dnz_chr_id := p_fee_rec.dnz_chr_id;
347: -- check if activity started successfully
348: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
349: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
350: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
351: raise OKL_API.G_EXCEPTION_ERROR;
352: End If;
353:
354: l_fee_types_rec.dnz_chr_id := p_fee_rec.dnz_chr_id;
355: l_fee_types_rec.fee_type := p_fee_rec.fee_type;
393: x_msg_data => x_msg_data,
394: p_fee_types_rec => l_fee_types_rec,
395: x_fee_types_rec => x_fee_types_rec);
396:
397: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
398: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
399: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
400: raise OKL_API.G_EXCEPTION_ERROR;
401: End If;
394: p_fee_types_rec => l_fee_types_rec,
395: x_fee_types_rec => x_fee_types_rec);
396:
397: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
398: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
399: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
400: raise OKL_API.G_EXCEPTION_ERROR;
401: End If;
402:
395: x_fee_types_rec => x_fee_types_rec);
396:
397: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
398: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
399: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
400: raise OKL_API.G_EXCEPTION_ERROR;
401: End If;
402:
403: x_fee_rec := p_fee_rec;
396:
397: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
398: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
399: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
400: raise OKL_API.G_EXCEPTION_ERROR;
401: End If;
402:
403: x_fee_rec := p_fee_rec;
404: x_fee_rec.cleb_fee_id := x_fee_types_rec.line_id;
410: -- Expense, Financed and Miscellaneoud fees
411: l_check_exception := false;
412: IF (p_fee_rec.fee_type IN ('EXPENSE', 'MISCELLANEOUS', 'FINANCED')) THEN
413:
414: IF (p_fee_rec.rul_lafexp_rule_information1 IS NULL OR p_fee_rec.rul_lafexp_rule_information1 = OKL_API.G_MISS_CHAR) THEN
415: OKL_API.set_message(p_app_name => G_APP_NAME,
416: p_msg_name => G_REQUIRED_VALUE,
417: p_token1 => G_COL_NAME_TOKEN,
418: p_token1_value => 'Number Of Periods');
411: l_check_exception := false;
412: IF (p_fee_rec.fee_type IN ('EXPENSE', 'MISCELLANEOUS', 'FINANCED')) THEN
413:
414: IF (p_fee_rec.rul_lafexp_rule_information1 IS NULL OR p_fee_rec.rul_lafexp_rule_information1 = OKL_API.G_MISS_CHAR) THEN
415: OKL_API.set_message(p_app_name => G_APP_NAME,
416: p_msg_name => G_REQUIRED_VALUE,
417: p_token1 => G_COL_NAME_TOKEN,
418: p_token1_value => 'Number Of Periods');
419: l_check_exception := true;
417: p_token1 => G_COL_NAME_TOKEN,
418: p_token1_value => 'Number Of Periods');
419: l_check_exception := true;
420: END IF;
421: IF (p_fee_rec.rul_lafexp_rule_information2 IS NULL OR p_fee_rec.rul_lafexp_rule_information2 = OKL_API.G_MISS_CHAR) THEN
422: OKL_API.set_message(p_app_name => G_APP_NAME,
423: p_msg_name => G_REQUIRED_VALUE,
424: p_token1 => G_COL_NAME_TOKEN,
425: p_token1_value => 'Amount Per Period');
418: p_token1_value => 'Number Of Periods');
419: l_check_exception := true;
420: END IF;
421: IF (p_fee_rec.rul_lafexp_rule_information2 IS NULL OR p_fee_rec.rul_lafexp_rule_information2 = OKL_API.G_MISS_CHAR) THEN
422: OKL_API.set_message(p_app_name => G_APP_NAME,
423: p_msg_name => G_REQUIRED_VALUE,
424: p_token1 => G_COL_NAME_TOKEN,
425: p_token1_value => 'Amount Per Period');
426: l_check_exception := true;
425: p_token1_value => 'Amount Per Period');
426: l_check_exception := true;
427: END IF;
428:
429: IF (p_fee_rec.rul_lafreq_object1_id1 IS NULL OR p_fee_rec.rul_lafreq_object1_id1 = OKL_API.G_MISS_CHAR) THEN
430: OKL_API.set_message(p_app_name => G_APP_NAME,
431: p_msg_name => G_REQUIRED_VALUE,
432: p_token1 => G_COL_NAME_TOKEN,
433: p_token1_value => 'Frequency');
426: l_check_exception := true;
427: END IF;
428:
429: IF (p_fee_rec.rul_lafreq_object1_id1 IS NULL OR p_fee_rec.rul_lafreq_object1_id1 = OKL_API.G_MISS_CHAR) THEN
430: OKL_API.set_message(p_app_name => G_APP_NAME,
431: p_msg_name => G_REQUIRED_VALUE,
432: p_token1 => G_COL_NAME_TOKEN,
433: p_token1_value => 'Frequency');
434: l_check_exception := true;
436:
437: END IF;
438:
439: IF (l_check_exception) THEN
440: RAISE OKL_API.G_EXCEPTION_ERROR;
441: END IF;
442:
443:
444: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
440: RAISE OKL_API.G_EXCEPTION_ERROR;
441: END IF;
442:
443:
444: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
445: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
446: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
447: THEN
448:
441: END IF;
442:
443:
444: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
445: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
446: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
447: THEN
448:
449: i := 1;
442:
443:
444: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
445: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
446: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
447: THEN
448:
449: i := 1;
450:
449: i := 1;
450:
451: l_rgr_tbl(i).rgd_code := 'LAFEXP';
452: l_rgr_tbl(i).dnz_chr_id := x_fee_rec.dnz_chr_id;
453: l_rgr_tbl(i).sfwt_flag := OKL_API.G_FALSE;
454: l_rgr_tbl(i).std_template_yn := 'N';
455: l_rgr_tbl(i).warn_yn := 'N';
456: l_rgr_tbl(i).template_yn := 'N';
457: l_rgr_tbl(i).rule_information_category := 'LAFREQ';
462: i := i + 1;
463:
464: l_rgr_tbl(i).rgd_code := 'LAFEXP';
465: l_rgr_tbl(i).dnz_chr_id := x_fee_rec.dnz_chr_id;
466: l_rgr_tbl(i).sfwt_flag := OKL_API.G_FALSE;
467: l_rgr_tbl(i).std_template_yn := 'N';
468: l_rgr_tbl(i).warn_yn := 'N';
469: l_rgr_tbl(i).template_yn := 'N';
470: l_rgr_tbl(i).rule_information_category := 'LAFEXP';
482: p_cpl_id => NULL,
483: p_rrd_id => NULL,
484: p_rgr_tbl => l_rgr_tbl);
485:
486: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
487: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
488: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
489: raise OKL_API.G_EXCEPTION_ERROR;
490: End If;
483: p_rrd_id => NULL,
484: p_rgr_tbl => l_rgr_tbl);
485:
486: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
487: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
488: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
489: raise OKL_API.G_EXCEPTION_ERROR;
490: End If;
491:
484: p_rgr_tbl => l_rgr_tbl);
485:
486: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
487: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
488: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
489: raise OKL_API.G_EXCEPTION_ERROR;
490: End If;
491:
492: OKL_CONTRACT_TOP_LINE_PVT.validate_fee_expense_rule(
485:
486: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
487: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
488: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
489: raise OKL_API.G_EXCEPTION_ERROR;
490: End If;
491:
492: OKL_CONTRACT_TOP_LINE_PVT.validate_fee_expense_rule(
493: p_api_version => p_api_version,
500: p_no_of_period => x_fee_rec.rul_lafexp_rule_information1,
501: p_frequency => x_fee_rec.frequency_name,
502: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
503:
504: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
505: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
506: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
507: raise OKL_API.G_EXCEPTION_ERROR;
508: End If;
501: p_frequency => x_fee_rec.frequency_name,
502: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
503:
504: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
505: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
506: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
507: raise OKL_API.G_EXCEPTION_ERROR;
508: End If;
509:
502: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
503:
504: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
505: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
506: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
507: raise OKL_API.G_EXCEPTION_ERROR;
508: End If;
509:
510: END IF;
503:
504: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
505: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
506: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
507: raise OKL_API.G_EXCEPTION_ERROR;
508: End If;
509:
510: END IF;
511:
508: End If;
509:
510: END IF;
511:
512: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
513:
514: EXCEPTION
515:
516: when OKL_API.G_EXCEPTION_ERROR then
512: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
513:
514: EXCEPTION
515:
516: when OKL_API.G_EXCEPTION_ERROR then
517: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
518: p_api_name => l_api_name,
519: p_pkg_name => g_pkg_name,
520: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
513:
514: EXCEPTION
515:
516: when OKL_API.G_EXCEPTION_ERROR then
517: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
518: p_api_name => l_api_name,
519: p_pkg_name => g_pkg_name,
520: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
521: x_msg_count => x_msg_count,
516: when OKL_API.G_EXCEPTION_ERROR then
517: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
518: p_api_name => l_api_name,
519: p_pkg_name => g_pkg_name,
520: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
521: x_msg_count => x_msg_count,
522: x_msg_data => x_msg_data,
523: p_api_type => g_api_type);
524:
521: x_msg_count => x_msg_count,
522: x_msg_data => x_msg_data,
523: p_api_type => g_api_type);
524:
525: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
526: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
527: p_api_name => l_api_name,
528: p_pkg_name => g_pkg_name,
529: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
522: x_msg_data => x_msg_data,
523: p_api_type => g_api_type);
524:
525: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
526: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
527: p_api_name => l_api_name,
528: p_pkg_name => g_pkg_name,
529: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
530: x_msg_count => x_msg_count,
525: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
526: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
527: p_api_name => l_api_name,
528: p_pkg_name => g_pkg_name,
529: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
530: x_msg_count => x_msg_count,
531: x_msg_data => x_msg_data,
532: p_api_type => g_api_type);
533:
531: x_msg_data => x_msg_data,
532: p_api_type => g_api_type);
533:
534: when OTHERS then
535: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
536: p_api_name => l_api_name,
537: p_pkg_name => g_pkg_name,
538: p_exc_name => 'OTHERS',
539: x_msg_count => x_msg_count,
543: END create_fee;
544:
545: PROCEDURE update_fee (
546: p_api_version IN NUMBER,
547: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
548: x_return_status OUT NOCOPY VARCHAR2,
549: x_msg_count OUT NOCOPY NUMBER,
550: x_msg_data OUT NOCOPY VARCHAR2,
551: p_fee_rec IN fee_rec_type,
561: i NUMBER;
562: l_rgr_tbl OKL_RGRP_RULES_PROCESS_PVT.rgr_tbl_type;
563: -- Bug# 7611623
564: l_check_exception BOOLEAN := false;
565: G_REQUIRED_VALUE CONSTANT VARCHAR2(200) := OKL_API.G_REQUIRED_VALUE;
566:
567: BEGIN
568:
569: -- call START_ACTIVITY to create savepoint, check compatibility
567: BEGIN
568:
569: -- call START_ACTIVITY to create savepoint, check compatibility
570: -- and initialize message list
571: x_return_status := OKL_API.START_ACTIVITY(
572: p_api_name => l_api_name,
573: p_pkg_name => g_pkg_name,
574: p_init_msg_list => p_init_msg_list,
575: l_api_version => l_api_version,
577: p_api_type => g_api_type,
578: x_return_status => x_return_status);
579:
580: -- check if activity started successfully
581: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
582: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
583: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
584: raise OKL_API.G_EXCEPTION_ERROR;
585: End If;
578: x_return_status => x_return_status);
579:
580: -- check if activity started successfully
581: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
582: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
583: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
584: raise OKL_API.G_EXCEPTION_ERROR;
585: End If;
586:
579:
580: -- check if activity started successfully
581: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
582: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
583: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
584: raise OKL_API.G_EXCEPTION_ERROR;
585: End If;
586:
587: l_fee_types_rec.line_id := p_fee_rec.cleb_fee_id;
580: -- check if activity started successfully
581: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
582: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
583: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
584: raise OKL_API.G_EXCEPTION_ERROR;
585: End If;
586:
587: l_fee_types_rec.line_id := p_fee_rec.cleb_fee_id;
588: l_fee_types_rec.dnz_chr_id := p_fee_rec.dnz_chr_id;
629: x_msg_data => x_msg_data,
630: p_fee_types_rec => l_fee_types_rec,
631: x_fee_types_rec => x_fee_types_rec);
632:
633: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
634: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
635: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
636: raise OKL_API.G_EXCEPTION_ERROR;
637: End If;
630: p_fee_types_rec => l_fee_types_rec,
631: x_fee_types_rec => x_fee_types_rec);
632:
633: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
634: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
635: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
636: raise OKL_API.G_EXCEPTION_ERROR;
637: End If;
638:
631: x_fee_types_rec => x_fee_types_rec);
632:
633: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
634: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
635: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
636: raise OKL_API.G_EXCEPTION_ERROR;
637: End If;
638:
639: x_fee_rec := p_fee_rec;
632:
633: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
634: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
635: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
636: raise OKL_API.G_EXCEPTION_ERROR;
637: End If;
638:
639: x_fee_rec := p_fee_rec;
640: x_fee_rec.cleb_fee_id := x_fee_types_rec.line_id;
646: -- Expense, Financed and Miscellaneoud fees
647: l_check_exception := false;
648: IF (p_fee_rec.fee_type IN ('EXPENSE', 'MISCELLANEOUS', 'FINANCED')) THEN
649:
650: IF (p_fee_rec.rul_lafexp_rule_information1 IS NULL OR p_fee_rec.rul_lafexp_rule_information1 = OKL_API.G_MISS_CHAR) THEN
651: OKL_API.set_message(p_app_name => G_APP_NAME,
652: p_msg_name => G_REQUIRED_VALUE,
653: p_token1 => G_COL_NAME_TOKEN,
654: p_token1_value => 'Number Of Periods');
647: l_check_exception := false;
648: IF (p_fee_rec.fee_type IN ('EXPENSE', 'MISCELLANEOUS', 'FINANCED')) THEN
649:
650: IF (p_fee_rec.rul_lafexp_rule_information1 IS NULL OR p_fee_rec.rul_lafexp_rule_information1 = OKL_API.G_MISS_CHAR) THEN
651: OKL_API.set_message(p_app_name => G_APP_NAME,
652: p_msg_name => G_REQUIRED_VALUE,
653: p_token1 => G_COL_NAME_TOKEN,
654: p_token1_value => 'Number Of Periods');
655: l_check_exception := true;
653: p_token1 => G_COL_NAME_TOKEN,
654: p_token1_value => 'Number Of Periods');
655: l_check_exception := true;
656: END IF;
657: IF (p_fee_rec.rul_lafexp_rule_information2 IS NULL OR p_fee_rec.rul_lafexp_rule_information2 = OKL_API.G_MISS_CHAR) THEN
658: OKL_API.set_message(p_app_name => G_APP_NAME,
659: p_msg_name => G_REQUIRED_VALUE,
660: p_token1 => G_COL_NAME_TOKEN,
661: p_token1_value => 'Amount Per Period');
654: p_token1_value => 'Number Of Periods');
655: l_check_exception := true;
656: END IF;
657: IF (p_fee_rec.rul_lafexp_rule_information2 IS NULL OR p_fee_rec.rul_lafexp_rule_information2 = OKL_API.G_MISS_CHAR) THEN
658: OKL_API.set_message(p_app_name => G_APP_NAME,
659: p_msg_name => G_REQUIRED_VALUE,
660: p_token1 => G_COL_NAME_TOKEN,
661: p_token1_value => 'Amount Per Period');
662: l_check_exception := true;
661: p_token1_value => 'Amount Per Period');
662: l_check_exception := true;
663: END IF;
664:
665: IF (p_fee_rec.rul_lafreq_object1_id1 IS NULL OR p_fee_rec.rul_lafreq_object1_id1 = OKL_API.G_MISS_CHAR) THEN
666: OKL_API.set_message(p_app_name => G_APP_NAME,
667: p_msg_name => G_REQUIRED_VALUE,
668: p_token1 => G_COL_NAME_TOKEN,
669: p_token1_value => 'Frequency');
662: l_check_exception := true;
663: END IF;
664:
665: IF (p_fee_rec.rul_lafreq_object1_id1 IS NULL OR p_fee_rec.rul_lafreq_object1_id1 = OKL_API.G_MISS_CHAR) THEN
666: OKL_API.set_message(p_app_name => G_APP_NAME,
667: p_msg_name => G_REQUIRED_VALUE,
668: p_token1 => G_COL_NAME_TOKEN,
669: p_token1_value => 'Frequency');
670: l_check_exception := true;
672:
673: END IF;
674:
675: IF (l_check_exception) THEN
676: RAISE OKL_API.G_EXCEPTION_ERROR;
677: END IF;
678:
679:
680: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
676: RAISE OKL_API.G_EXCEPTION_ERROR;
677: END IF;
678:
679:
680: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
681: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
682: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
683: THEN
684:
677: END IF;
678:
679:
680: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
681: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
682: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
683: THEN
684:
685: i := 1;
678:
679:
680: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
681: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
682: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
683: THEN
684:
685: i := 1;
686:
685: i := 1;
686:
687: l_rgr_tbl(i).rgd_code := 'LAFEXP';
688: l_rgr_tbl(i).dnz_chr_id := x_fee_rec.dnz_chr_id;
689: l_rgr_tbl(i).sfwt_flag := OKL_API.G_FALSE;
690: l_rgr_tbl(i).std_template_yn := 'N';
691: l_rgr_tbl(i).warn_yn := 'N';
692: l_rgr_tbl(i).template_yn := 'N';
693: l_rgr_tbl(i).rule_information_category := 'LAFREQ';
698: i := i + 1;
699:
700: l_rgr_tbl(i).rgd_code := 'LAFEXP';
701: l_rgr_tbl(i).dnz_chr_id := x_fee_rec.dnz_chr_id;
702: l_rgr_tbl(i).sfwt_flag := OKL_API.G_FALSE;
703: l_rgr_tbl(i).std_template_yn := 'N';
704: l_rgr_tbl(i).warn_yn := 'N';
705: l_rgr_tbl(i).template_yn := 'N';
706: l_rgr_tbl(i).rule_information_category := 'LAFEXP';
718: p_cpl_id => NULL,
719: p_rrd_id => NULL,
720: p_rgr_tbl => l_rgr_tbl);
721:
722: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
723: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
724: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
725: raise OKL_API.G_EXCEPTION_ERROR;
726: End If;
719: p_rrd_id => NULL,
720: p_rgr_tbl => l_rgr_tbl);
721:
722: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
723: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
724: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
725: raise OKL_API.G_EXCEPTION_ERROR;
726: End If;
727:
720: p_rgr_tbl => l_rgr_tbl);
721:
722: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
723: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
724: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
725: raise OKL_API.G_EXCEPTION_ERROR;
726: End If;
727:
728: OKL_CONTRACT_TOP_LINE_PVT.validate_fee_expense_rule(
721:
722: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
723: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
724: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
725: raise OKL_API.G_EXCEPTION_ERROR;
726: End If;
727:
728: OKL_CONTRACT_TOP_LINE_PVT.validate_fee_expense_rule(
729: p_api_version => p_api_version,
736: p_no_of_period => x_fee_rec.rul_lafexp_rule_information1,
737: p_frequency => x_fee_rec.frequency_name,
738: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
739:
740: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
741: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
742: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
743: raise OKL_API.G_EXCEPTION_ERROR;
744: End If;
737: p_frequency => x_fee_rec.frequency_name,
738: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
739:
740: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
741: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
742: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
743: raise OKL_API.G_EXCEPTION_ERROR;
744: End If;
745:
738: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
739:
740: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
741: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
742: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
743: raise OKL_API.G_EXCEPTION_ERROR;
744: End If;
745:
746: END IF;
739:
740: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
741: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
742: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
743: raise OKL_API.G_EXCEPTION_ERROR;
744: End If;
745:
746: END IF;
747:
744: End If;
745:
746: END IF;
747:
748: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
749:
750:
751: EXCEPTION
752:
749:
750:
751: EXCEPTION
752:
753: when OKL_API.G_EXCEPTION_ERROR then
754: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
755: p_api_name => l_api_name,
756: p_pkg_name => g_pkg_name,
757: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
750:
751: EXCEPTION
752:
753: when OKL_API.G_EXCEPTION_ERROR then
754: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
755: p_api_name => l_api_name,
756: p_pkg_name => g_pkg_name,
757: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
758: x_msg_count => x_msg_count,
753: when OKL_API.G_EXCEPTION_ERROR then
754: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
755: p_api_name => l_api_name,
756: p_pkg_name => g_pkg_name,
757: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
758: x_msg_count => x_msg_count,
759: x_msg_data => x_msg_data,
760: p_api_type => g_api_type);
761:
758: x_msg_count => x_msg_count,
759: x_msg_data => x_msg_data,
760: p_api_type => g_api_type);
761:
762: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
763: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
764: p_api_name => l_api_name,
765: p_pkg_name => g_pkg_name,
766: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
759: x_msg_data => x_msg_data,
760: p_api_type => g_api_type);
761:
762: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
763: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
764: p_api_name => l_api_name,
765: p_pkg_name => g_pkg_name,
766: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
767: x_msg_count => x_msg_count,
762: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
763: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
764: p_api_name => l_api_name,
765: p_pkg_name => g_pkg_name,
766: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
767: x_msg_count => x_msg_count,
768: x_msg_data => x_msg_data,
769: p_api_type => g_api_type);
770:
768: x_msg_data => x_msg_data,
769: p_api_type => g_api_type);
770:
771: when OTHERS then
772: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
773: p_api_name => l_api_name,
774: p_pkg_name => g_pkg_name,
775: p_exc_name => 'OTHERS',
776: x_msg_count => x_msg_count,