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;
397: x_msg_data => x_msg_data,
398: p_fee_types_rec => l_fee_types_rec,
399: x_fee_types_rec => x_fee_types_rec);
400:
401: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
402: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
403: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
404: raise OKL_API.G_EXCEPTION_ERROR;
405: End If;
398: p_fee_types_rec => l_fee_types_rec,
399: x_fee_types_rec => x_fee_types_rec);
400:
401: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
402: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
403: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
404: raise OKL_API.G_EXCEPTION_ERROR;
405: End If;
406:
399: x_fee_types_rec => x_fee_types_rec);
400:
401: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
402: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
403: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
404: raise OKL_API.G_EXCEPTION_ERROR;
405: End If;
406:
407: x_fee_rec := p_fee_rec;
400:
401: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
402: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
403: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
404: raise OKL_API.G_EXCEPTION_ERROR;
405: End If;
406:
407: x_fee_rec := p_fee_rec;
408: x_fee_rec.cleb_fee_id := x_fee_types_rec.line_id;
414: -- Expense, Financed and Miscellaneoud fees
415: l_check_exception := false;
416: IF (p_fee_rec.fee_type IN ('EXPENSE', 'MISCELLANEOUS', 'FINANCED')) THEN
417:
418: IF (p_fee_rec.rul_lafexp_rule_information1 IS NULL OR p_fee_rec.rul_lafexp_rule_information1 = OKL_API.G_MISS_CHAR) THEN
419: OKL_API.set_message(p_app_name => G_APP_NAME,
420: p_msg_name => G_REQUIRED_VALUE,
421: p_token1 => G_COL_NAME_TOKEN,
422: p_token1_value => 'Number Of Periods');
415: l_check_exception := false;
416: IF (p_fee_rec.fee_type IN ('EXPENSE', 'MISCELLANEOUS', 'FINANCED')) THEN
417:
418: IF (p_fee_rec.rul_lafexp_rule_information1 IS NULL OR p_fee_rec.rul_lafexp_rule_information1 = OKL_API.G_MISS_CHAR) THEN
419: OKL_API.set_message(p_app_name => G_APP_NAME,
420: p_msg_name => G_REQUIRED_VALUE,
421: p_token1 => G_COL_NAME_TOKEN,
422: p_token1_value => 'Number Of Periods');
423: l_check_exception := true;
421: p_token1 => G_COL_NAME_TOKEN,
422: p_token1_value => 'Number Of Periods');
423: l_check_exception := true;
424: END IF;
425: IF (p_fee_rec.rul_lafexp_rule_information2 IS NULL OR p_fee_rec.rul_lafexp_rule_information2 = OKL_API.G_MISS_CHAR) THEN
426: OKL_API.set_message(p_app_name => G_APP_NAME,
427: p_msg_name => G_REQUIRED_VALUE,
428: p_token1 => G_COL_NAME_TOKEN,
429: p_token1_value => 'Amount Per Period');
422: p_token1_value => 'Number Of Periods');
423: l_check_exception := true;
424: END IF;
425: IF (p_fee_rec.rul_lafexp_rule_information2 IS NULL OR p_fee_rec.rul_lafexp_rule_information2 = OKL_API.G_MISS_CHAR) THEN
426: OKL_API.set_message(p_app_name => G_APP_NAME,
427: p_msg_name => G_REQUIRED_VALUE,
428: p_token1 => G_COL_NAME_TOKEN,
429: p_token1_value => 'Amount Per Period');
430: l_check_exception := true;
429: p_token1_value => 'Amount Per Period');
430: l_check_exception := true;
431: END IF;
432:
433: IF (p_fee_rec.rul_lafreq_object1_id1 IS NULL OR p_fee_rec.rul_lafreq_object1_id1 = OKL_API.G_MISS_CHAR) THEN
434: OKL_API.set_message(p_app_name => G_APP_NAME,
435: p_msg_name => G_REQUIRED_VALUE,
436: p_token1 => G_COL_NAME_TOKEN,
437: p_token1_value => 'Frequency');
430: l_check_exception := true;
431: END IF;
432:
433: IF (p_fee_rec.rul_lafreq_object1_id1 IS NULL OR p_fee_rec.rul_lafreq_object1_id1 = OKL_API.G_MISS_CHAR) THEN
434: OKL_API.set_message(p_app_name => G_APP_NAME,
435: p_msg_name => G_REQUIRED_VALUE,
436: p_token1 => G_COL_NAME_TOKEN,
437: p_token1_value => 'Frequency');
438: l_check_exception := true;
440:
441: END IF;
442:
443: IF (l_check_exception) THEN
444: RAISE OKL_API.G_EXCEPTION_ERROR;
445: END IF;
446:
447:
448: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
444: RAISE OKL_API.G_EXCEPTION_ERROR;
445: END IF;
446:
447:
448: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
449: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
450: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
451: THEN
452:
445: END IF;
446:
447:
448: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
449: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
450: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
451: THEN
452:
453: i := 1;
446:
447:
448: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
449: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
450: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
451: THEN
452:
453: i := 1;
454:
453: i := 1;
454:
455: l_rgr_tbl(i).rgd_code := 'LAFEXP';
456: l_rgr_tbl(i).dnz_chr_id := x_fee_rec.dnz_chr_id;
457: l_rgr_tbl(i).sfwt_flag := OKL_API.G_FALSE;
458: l_rgr_tbl(i).std_template_yn := 'N';
459: l_rgr_tbl(i).warn_yn := 'N';
460: l_rgr_tbl(i).template_yn := 'N';
461: l_rgr_tbl(i).rule_information_category := 'LAFREQ';
466: i := i + 1;
467:
468: l_rgr_tbl(i).rgd_code := 'LAFEXP';
469: l_rgr_tbl(i).dnz_chr_id := x_fee_rec.dnz_chr_id;
470: l_rgr_tbl(i).sfwt_flag := OKL_API.G_FALSE;
471: l_rgr_tbl(i).std_template_yn := 'N';
472: l_rgr_tbl(i).warn_yn := 'N';
473: l_rgr_tbl(i).template_yn := 'N';
474: l_rgr_tbl(i).rule_information_category := 'LAFEXP';
486: p_cpl_id => NULL,
487: p_rrd_id => NULL,
488: p_rgr_tbl => l_rgr_tbl);
489:
490: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
491: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
492: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
493: raise OKL_API.G_EXCEPTION_ERROR;
494: End If;
487: p_rrd_id => NULL,
488: p_rgr_tbl => l_rgr_tbl);
489:
490: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
491: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
492: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
493: raise OKL_API.G_EXCEPTION_ERROR;
494: End If;
495:
488: p_rgr_tbl => l_rgr_tbl);
489:
490: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
491: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
492: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
493: raise OKL_API.G_EXCEPTION_ERROR;
494: End If;
495:
496: OKL_CONTRACT_TOP_LINE_PVT.validate_fee_expense_rule(
489:
490: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
491: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
492: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
493: raise OKL_API.G_EXCEPTION_ERROR;
494: End If;
495:
496: OKL_CONTRACT_TOP_LINE_PVT.validate_fee_expense_rule(
497: p_api_version => p_api_version,
504: p_no_of_period => x_fee_rec.rul_lafexp_rule_information1,
505: p_frequency => x_fee_rec.frequency_name,
506: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
507:
508: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
509: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
510: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
511: raise OKL_API.G_EXCEPTION_ERROR;
512: End If;
505: p_frequency => x_fee_rec.frequency_name,
506: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
507:
508: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
509: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
510: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
511: raise OKL_API.G_EXCEPTION_ERROR;
512: End If;
513:
506: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
507:
508: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
509: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
510: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
511: raise OKL_API.G_EXCEPTION_ERROR;
512: End If;
513:
514: END IF;
507:
508: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
509: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
510: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
511: raise OKL_API.G_EXCEPTION_ERROR;
512: End If;
513:
514: END IF;
515:
512: End If;
513:
514: END IF;
515:
516: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
517:
518: EXCEPTION
519:
520: when OKL_API.G_EXCEPTION_ERROR then
516: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
517:
518: EXCEPTION
519:
520: when OKL_API.G_EXCEPTION_ERROR then
521: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
522: p_api_name => l_api_name,
523: p_pkg_name => g_pkg_name,
524: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
517:
518: EXCEPTION
519:
520: when OKL_API.G_EXCEPTION_ERROR then
521: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
522: p_api_name => l_api_name,
523: p_pkg_name => g_pkg_name,
524: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
525: x_msg_count => x_msg_count,
520: when OKL_API.G_EXCEPTION_ERROR then
521: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
522: p_api_name => l_api_name,
523: p_pkg_name => g_pkg_name,
524: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
525: x_msg_count => x_msg_count,
526: x_msg_data => x_msg_data,
527: p_api_type => g_api_type);
528:
525: x_msg_count => x_msg_count,
526: x_msg_data => x_msg_data,
527: p_api_type => g_api_type);
528:
529: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
530: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
531: p_api_name => l_api_name,
532: p_pkg_name => g_pkg_name,
533: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
526: x_msg_data => x_msg_data,
527: p_api_type => g_api_type);
528:
529: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
530: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
531: p_api_name => l_api_name,
532: p_pkg_name => g_pkg_name,
533: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
534: x_msg_count => x_msg_count,
529: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
530: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
531: p_api_name => l_api_name,
532: p_pkg_name => g_pkg_name,
533: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
534: x_msg_count => x_msg_count,
535: x_msg_data => x_msg_data,
536: p_api_type => g_api_type);
537:
535: x_msg_data => x_msg_data,
536: p_api_type => g_api_type);
537:
538: when OTHERS then
539: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
540: p_api_name => l_api_name,
541: p_pkg_name => g_pkg_name,
542: p_exc_name => 'OTHERS',
543: x_msg_count => x_msg_count,
547: END create_fee;
548:
549: PROCEDURE update_fee (
550: p_api_version IN NUMBER,
551: p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
552: x_return_status OUT NOCOPY VARCHAR2,
553: x_msg_count OUT NOCOPY NUMBER,
554: x_msg_data OUT NOCOPY VARCHAR2,
555: p_fee_rec IN fee_rec_type,
565: i NUMBER;
566: l_rgr_tbl OKL_RGRP_RULES_PROCESS_PVT.rgr_tbl_type;
567: -- Bug# 7611623
568: l_check_exception BOOLEAN := false;
569: G_REQUIRED_VALUE CONSTANT VARCHAR2(200) := OKL_API.G_REQUIRED_VALUE;
570:
571: BEGIN
572:
573: -- call START_ACTIVITY to create savepoint, check compatibility
571: BEGIN
572:
573: -- call START_ACTIVITY to create savepoint, check compatibility
574: -- and initialize message list
575: x_return_status := OKL_API.START_ACTIVITY(
576: p_api_name => l_api_name,
577: p_pkg_name => g_pkg_name,
578: p_init_msg_list => p_init_msg_list,
579: l_api_version => l_api_version,
581: p_api_type => g_api_type,
582: x_return_status => x_return_status);
583:
584: -- check if activity started successfully
585: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
586: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
587: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
588: raise OKL_API.G_EXCEPTION_ERROR;
589: End If;
582: x_return_status => x_return_status);
583:
584: -- check if activity started successfully
585: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
586: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
587: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
588: raise OKL_API.G_EXCEPTION_ERROR;
589: End If;
590:
583:
584: -- check if activity started successfully
585: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
586: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
587: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
588: raise OKL_API.G_EXCEPTION_ERROR;
589: End If;
590:
591: l_fee_types_rec.line_id := p_fee_rec.cleb_fee_id;
584: -- check if activity started successfully
585: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
586: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
587: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
588: raise OKL_API.G_EXCEPTION_ERROR;
589: End If;
590:
591: l_fee_types_rec.line_id := p_fee_rec.cleb_fee_id;
592: l_fee_types_rec.dnz_chr_id := p_fee_rec.dnz_chr_id;
636: x_msg_data => x_msg_data,
637: p_fee_types_rec => l_fee_types_rec,
638: x_fee_types_rec => x_fee_types_rec);
639:
640: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
641: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
642: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
643: raise OKL_API.G_EXCEPTION_ERROR;
644: End If;
637: p_fee_types_rec => l_fee_types_rec,
638: x_fee_types_rec => x_fee_types_rec);
639:
640: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
641: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
642: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
643: raise OKL_API.G_EXCEPTION_ERROR;
644: End If;
645:
638: x_fee_types_rec => x_fee_types_rec);
639:
640: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
641: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
642: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
643: raise OKL_API.G_EXCEPTION_ERROR;
644: End If;
645:
646: x_fee_rec := p_fee_rec;
639:
640: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
641: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
642: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
643: raise OKL_API.G_EXCEPTION_ERROR;
644: End If;
645:
646: x_fee_rec := p_fee_rec;
647: x_fee_rec.cleb_fee_id := x_fee_types_rec.line_id;
653: -- Expense, Financed and Miscellaneoud fees
654: l_check_exception := false;
655: IF (p_fee_rec.fee_type IN ('EXPENSE', 'MISCELLANEOUS', 'FINANCED')) THEN
656:
657: IF (p_fee_rec.rul_lafexp_rule_information1 IS NULL OR p_fee_rec.rul_lafexp_rule_information1 = 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 => 'Number Of Periods');
654: l_check_exception := false;
655: IF (p_fee_rec.fee_type IN ('EXPENSE', 'MISCELLANEOUS', 'FINANCED')) THEN
656:
657: IF (p_fee_rec.rul_lafexp_rule_information1 IS NULL OR p_fee_rec.rul_lafexp_rule_information1 = 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 => 'Number Of Periods');
662: l_check_exception := true;
660: p_token1 => G_COL_NAME_TOKEN,
661: p_token1_value => 'Number Of Periods');
662: l_check_exception := true;
663: END IF;
664: IF (p_fee_rec.rul_lafexp_rule_information2 IS NULL OR p_fee_rec.rul_lafexp_rule_information2 = OKL_API.G_MISS_CHAR) THEN
665: OKL_API.set_message(p_app_name => G_APP_NAME,
666: p_msg_name => G_REQUIRED_VALUE,
667: p_token1 => G_COL_NAME_TOKEN,
668: p_token1_value => 'Amount Per Period');
661: p_token1_value => 'Number Of Periods');
662: l_check_exception := true;
663: END IF;
664: IF (p_fee_rec.rul_lafexp_rule_information2 IS NULL OR p_fee_rec.rul_lafexp_rule_information2 = OKL_API.G_MISS_CHAR) THEN
665: OKL_API.set_message(p_app_name => G_APP_NAME,
666: p_msg_name => G_REQUIRED_VALUE,
667: p_token1 => G_COL_NAME_TOKEN,
668: p_token1_value => 'Amount Per Period');
669: l_check_exception := true;
668: p_token1_value => 'Amount Per Period');
669: l_check_exception := true;
670: END IF;
671:
672: IF (p_fee_rec.rul_lafreq_object1_id1 IS NULL OR p_fee_rec.rul_lafreq_object1_id1 = OKL_API.G_MISS_CHAR) THEN
673: OKL_API.set_message(p_app_name => G_APP_NAME,
674: p_msg_name => G_REQUIRED_VALUE,
675: p_token1 => G_COL_NAME_TOKEN,
676: p_token1_value => 'Frequency');
669: l_check_exception := true;
670: END IF;
671:
672: IF (p_fee_rec.rul_lafreq_object1_id1 IS NULL OR p_fee_rec.rul_lafreq_object1_id1 = OKL_API.G_MISS_CHAR) THEN
673: OKL_API.set_message(p_app_name => G_APP_NAME,
674: p_msg_name => G_REQUIRED_VALUE,
675: p_token1 => G_COL_NAME_TOKEN,
676: p_token1_value => 'Frequency');
677: l_check_exception := true;
679:
680: END IF;
681:
682: IF (l_check_exception) THEN
683: RAISE OKL_API.G_EXCEPTION_ERROR;
684: END IF;
685:
686:
687: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
683: RAISE OKL_API.G_EXCEPTION_ERROR;
684: END IF;
685:
686:
687: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
688: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
689: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
690: THEN
691:
684: END IF;
685:
686:
687: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
688: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
689: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
690: THEN
691:
692: i := 1;
685:
686:
687: IF (x_fee_rec.rul_lafreq_object1_id1 IS NOT NULL AND x_fee_rec.rul_lafreq_object1_id1 <> OKL_API.G_MISS_CHAR)
688: OR (x_fee_rec.rul_lafexp_rule_information1 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information1 <> OKL_API.G_MISS_CHAR)
689: OR (x_fee_rec.rul_lafexp_rule_information2 IS NOT NULL AND x_fee_rec.rul_lafexp_rule_information2 <> OKL_API.G_MISS_CHAR)
690: THEN
691:
692: i := 1;
693:
692: i := 1;
693:
694: l_rgr_tbl(i).rgd_code := 'LAFEXP';
695: l_rgr_tbl(i).dnz_chr_id := x_fee_rec.dnz_chr_id;
696: l_rgr_tbl(i).sfwt_flag := OKL_API.G_FALSE;
697: l_rgr_tbl(i).std_template_yn := 'N';
698: l_rgr_tbl(i).warn_yn := 'N';
699: l_rgr_tbl(i).template_yn := 'N';
700: l_rgr_tbl(i).rule_information_category := 'LAFREQ';
705: i := i + 1;
706:
707: l_rgr_tbl(i).rgd_code := 'LAFEXP';
708: l_rgr_tbl(i).dnz_chr_id := x_fee_rec.dnz_chr_id;
709: l_rgr_tbl(i).sfwt_flag := OKL_API.G_FALSE;
710: l_rgr_tbl(i).std_template_yn := 'N';
711: l_rgr_tbl(i).warn_yn := 'N';
712: l_rgr_tbl(i).template_yn := 'N';
713: l_rgr_tbl(i).rule_information_category := 'LAFEXP';
725: p_cpl_id => NULL,
726: p_rrd_id => NULL,
727: p_rgr_tbl => l_rgr_tbl);
728:
729: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
730: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
731: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
732: raise OKL_API.G_EXCEPTION_ERROR;
733: End If;
726: p_rrd_id => NULL,
727: p_rgr_tbl => l_rgr_tbl);
728:
729: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
730: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
731: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
732: raise OKL_API.G_EXCEPTION_ERROR;
733: End If;
734:
727: p_rgr_tbl => l_rgr_tbl);
728:
729: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
730: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
731: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
732: raise OKL_API.G_EXCEPTION_ERROR;
733: End If;
734:
735: OKL_CONTRACT_TOP_LINE_PVT.validate_fee_expense_rule(
728:
729: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
730: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
731: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
732: raise OKL_API.G_EXCEPTION_ERROR;
733: End If;
734:
735: OKL_CONTRACT_TOP_LINE_PVT.validate_fee_expense_rule(
736: p_api_version => p_api_version,
743: p_no_of_period => x_fee_rec.rul_lafexp_rule_information1,
744: p_frequency => x_fee_rec.frequency_name,
745: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
746:
747: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
748: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
749: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
750: raise OKL_API.G_EXCEPTION_ERROR;
751: End If;
744: p_frequency => x_fee_rec.frequency_name,
745: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
746:
747: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
748: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
749: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
750: raise OKL_API.G_EXCEPTION_ERROR;
751: End If;
752:
745: p_amount_per_period => x_fee_rec.rul_lafexp_rule_information2);
746:
747: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
748: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
749: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
750: raise OKL_API.G_EXCEPTION_ERROR;
751: End If;
752:
753: END IF;
746:
747: If (x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) then
748: raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
749: Elsif (x_return_status = OKL_API.G_RET_STS_ERROR) then
750: raise OKL_API.G_EXCEPTION_ERROR;
751: End If;
752:
753: END IF;
754:
751: End If;
752:
753: END IF;
754:
755: OKL_API.END_ACTIVITY(x_msg_count => x_msg_count, x_msg_data => x_msg_data);
756:
757:
758: EXCEPTION
759:
756:
757:
758: EXCEPTION
759:
760: when OKL_API.G_EXCEPTION_ERROR then
761: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
762: p_api_name => l_api_name,
763: p_pkg_name => g_pkg_name,
764: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
757:
758: EXCEPTION
759:
760: when OKL_API.G_EXCEPTION_ERROR then
761: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
762: p_api_name => l_api_name,
763: p_pkg_name => g_pkg_name,
764: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
765: x_msg_count => x_msg_count,
760: when OKL_API.G_EXCEPTION_ERROR then
761: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
762: p_api_name => l_api_name,
763: p_pkg_name => g_pkg_name,
764: p_exc_name => 'OKL_API.G_RET_STS_ERROR',
765: x_msg_count => x_msg_count,
766: x_msg_data => x_msg_data,
767: p_api_type => g_api_type);
768:
765: x_msg_count => x_msg_count,
766: x_msg_data => x_msg_data,
767: p_api_type => g_api_type);
768:
769: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
770: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
771: p_api_name => l_api_name,
772: p_pkg_name => g_pkg_name,
773: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
766: x_msg_data => x_msg_data,
767: p_api_type => g_api_type);
768:
769: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
770: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
771: p_api_name => l_api_name,
772: p_pkg_name => g_pkg_name,
773: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
774: x_msg_count => x_msg_count,
769: when OKL_API.G_EXCEPTION_UNEXPECTED_ERROR then
770: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
771: p_api_name => l_api_name,
772: p_pkg_name => g_pkg_name,
773: p_exc_name => 'OKL_API.G_RET_STS_UNEXP_ERROR',
774: x_msg_count => x_msg_count,
775: x_msg_data => x_msg_data,
776: p_api_type => g_api_type);
777:
775: x_msg_data => x_msg_data,
776: p_api_type => g_api_type);
777:
778: when OTHERS then
779: x_return_status := OKL_API.HANDLE_EXCEPTIONS(
780: p_api_name => l_api_name,
781: p_pkg_name => g_pkg_name,
782: p_exc_name => 'OTHERS',
783: x_msg_count => x_msg_count,