20: is
21:
22: begin
23:
24: IF log_level >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
25: FND_LOG.STRING(log_level, module, message);
26: END IF;
27:
28: end;
21:
22: begin
23:
24: IF log_level >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
25: FND_LOG.STRING(log_level, module, message);
26: END IF;
27:
28: end;
29:
62:
63:
64: BEGIN
65:
66: IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
67: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Begin UPDATE_LINE_ADJUSTMENT_NUMBER for loan_line_id: '|| p_loan_line_id);
68: END IF;
69:
70: -- Initialize message list IF p_init_msg_list is set to TRUE.
63:
64: BEGIN
65:
66: IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
67: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Begin UPDATE_LINE_ADJUSTMENT_NUMBER for loan_line_id: '|| p_loan_line_id);
68: END IF;
69:
70: -- Initialize message list IF p_init_msg_list is set to TRUE.
71: IF FND_API.to_Boolean(p_init_msg_list) THEN
109: p_loan_id => p_loan_id
110: );
111:
112:
113: IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
114: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'End UPDATE_LINE_ADJUSTMENT_NUMBER for loan_line_id: '|| p_loan_line_id);
115: END IF;
116:
117: EXCEPTION
110: );
111:
112:
113: IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
114: FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'End UPDATE_LINE_ADJUSTMENT_NUMBER for loan_line_id: '|| p_loan_line_id);
115: END IF;
116:
117: EXCEPTION
118: WHEN FND_API.G_EXC_ERROR THEN
116:
117: EXCEPTION
118: WHEN FND_API.G_EXC_ERROR THEN
119: x_return_status := FND_API.G_RET_STS_ERROR;
120: IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
121: FND_LOG.STRING(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
122: END IF;
123:
124: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
117: EXCEPTION
118: WHEN FND_API.G_EXC_ERROR THEN
119: x_return_status := FND_API.G_RET_STS_ERROR;
120: IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
121: FND_LOG.STRING(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
122: END IF;
123:
124: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
125: x_return_status := FND_API.G_RET_STS_ERROR;
122: END IF;
123:
124: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
125: x_return_status := FND_API.G_RET_STS_ERROR;
126: IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
127: FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, sqlerrm);
128: END IF;
129:
130: WHEN OTHERS THEN
123:
124: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
125: x_return_status := FND_API.G_RET_STS_ERROR;
126: IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
127: FND_LOG.STRING(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, sqlerrm);
128: END IF;
129:
130: WHEN OTHERS THEN
131: x_return_status := FND_API.G_RET_STS_ERROR;
128: END IF;
129:
130: WHEN OTHERS THEN
131: x_return_status := FND_API.G_RET_STS_ERROR;
132: IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
133: FND_LOG.STRING(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
134: END IF;
135:
136: END UPDATE_LINE_ADJUSTMENT_NUMBER;
129:
130: WHEN OTHERS THEN
131: x_return_status := FND_API.G_RET_STS_ERROR;
132: IF ( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
133: FND_LOG.STRING(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
134: END IF;
135:
136: END UPDATE_LINE_ADJUSTMENT_NUMBER;
137:
345: BEGIN
346:
347: l_last_api_called := '';
348: l_bulk_process := 'N';
349: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - BEGIN');
350: -- Standard Start of API savepoint
351: SAVEPOINT loan_lines_derivation;
352:
353:
352:
353:
354: if (p_loan_id is null) then
355:
356: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, l_api_name || ': ' || ' - missing loan_id');
357:
358: --throw exception
359: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_LOAN_ID');
360: FND_MSG_PUB.Add;
357:
358: --throw exception
359: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_LOAN_ID');
360: FND_MSG_PUB.Add;
361: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, l_api_name || ': ' || FND_MSG_PUB.Get(p_encoded => 'F'));
362: RAISE FND_API.G_EXC_ERROR;
363: end if;
364:
365: --Initialize the local variables
381:
382: --if loan lines already exist, then the user should delete them explicitly before inheriting new receivables
383: if (l_loan_line_exists = 'Y') then
384:
385: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, l_api_name || ': ' || ' - loan lines already exist for this loan_id');
386:
387: --throw exception
388: FND_MESSAGE.SET_NAME('LNS', 'LNS_LOAN_LINES_EXIST');
389: FND_MSG_PUB.Add;
386:
387: --throw exception
388: FND_MESSAGE.SET_NAME('LNS', 'LNS_LOAN_LINES_EXIST');
389: FND_MSG_PUB.Add;
390: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, l_api_name || ': ' || FND_MSG_PUB.Get(p_encoded => 'F'));
391: RAISE FND_API.G_EXC_ERROR;
392:
393: end if;
394:
400: end if;
401:
402: if (l_party_id is null OR l_currency_code is null OR l_org_id is null OR l_loan_product_id is null) then
403:
404: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, l_api_name || ': ' || ' - invalid parameters');
405:
406: --throw exception
407: FND_MESSAGE.SET_NAME('LNS', 'LNS_SOME_REQ_FIELDS_EMPTY');
408: FND_MSG_PUB.Add;
405:
406: --throw exception
407: FND_MESSAGE.SET_NAME('LNS', 'LNS_SOME_REQ_FIELDS_EMPTY');
408: FND_MSG_PUB.Add;
409: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, l_api_name || ': ' || FND_MSG_PUB.Get(p_encoded => 'F'));
410: RAISE FND_API.G_EXC_ERROR;
411:
412: end if;
413:
418: close c_loan_product;
419:
420: if (l_loan_product_name is null) then
421:
422: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, l_api_name || ': ' || ' - invalid loan_product_id');
423:
424: --throw exception
425: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
426: FND_MESSAGE.SET_TOKEN('PARAMETER', 'p_loan_product_id');
425: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_VALUE');
426: FND_MESSAGE.SET_TOKEN('PARAMETER', 'p_loan_product_id');
427: FND_MESSAGE.SET_TOKEN('VALUE', l_loan_product_id);
428: FND_MSG_PUB.Add;
429: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, l_api_name || ': ' || FND_MSG_PUB.Get(p_encoded => 'F'));
430: RAISE FND_API.G_EXC_ERROR;
431:
432: end if;
433:
430: RAISE FND_API.G_EXC_ERROR;
431:
432: end if;
433:
434: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - passed IN parameters:');
435: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_id = ' || l_loan_id);
436: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_primary_borrower_id = ' || l_party_id);
437: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_currency_code = ' || l_currency_code);
438: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_org_id = ' || l_org_id);
431:
432: end if;
433:
434: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - passed IN parameters:');
435: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_id = ' || l_loan_id);
436: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_primary_borrower_id = ' || l_party_id);
437: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_currency_code = ' || l_currency_code);
438: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_org_id = ' || l_org_id);
439: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_product_id = ' || l_loan_product_id);
432: end if;
433:
434: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - passed IN parameters:');
435: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_id = ' || l_loan_id);
436: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_primary_borrower_id = ' || l_party_id);
437: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_currency_code = ' || l_currency_code);
438: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_org_id = ' || l_org_id);
439: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_product_id = ' || l_loan_product_id);
440:
433:
434: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - passed IN parameters:');
435: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_id = ' || l_loan_id);
436: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_primary_borrower_id = ' || l_party_id);
437: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_currency_code = ' || l_currency_code);
438: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_org_id = ' || l_org_id);
439: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_product_id = ' || l_loan_product_id);
440:
441: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Maximum Budgeted Amount for this loan:' || l_max_amount);
434: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - passed IN parameters:');
435: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_id = ' || l_loan_id);
436: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_primary_borrower_id = ' || l_party_id);
437: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_currency_code = ' || l_currency_code);
438: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_org_id = ' || l_org_id);
439: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_product_id = ' || l_loan_product_id);
440:
441: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Maximum Budgeted Amount for this loan:' || l_max_amount);
442:
435: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_id = ' || l_loan_id);
436: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_primary_borrower_id = ' || l_party_id);
437: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_currency_code = ' || l_currency_code);
438: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_org_id = ' || l_org_id);
439: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_product_id = ' || l_loan_product_id);
440:
441: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Maximum Budgeted Amount for this loan:' || l_max_amount);
442:
443: OPEN c_get_rule_object('LNS_ERS_LOAN_PRODUCT', 206, l_loan_product_id, l_org_id);
437: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_currency_code = ' || l_currency_code);
438: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_org_id = ' || l_org_id);
439: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'p_loan_product_id = ' || l_loan_product_id);
440:
441: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Maximum Budgeted Amount for this loan:' || l_max_amount);
442:
443: OPEN c_get_rule_object('LNS_ERS_LOAN_PRODUCT', 206, l_loan_product_id, l_org_id);
444: FETCH c_get_rule_object INTO l_rule_exists,l_sort_attribute;
445: CLOSE c_get_rule_object;
443: OPEN c_get_rule_object('LNS_ERS_LOAN_PRODUCT', 206, l_loan_product_id, l_org_id);
444: FETCH c_get_rule_object INTO l_rule_exists,l_sort_attribute;
445: CLOSE c_get_rule_object;
446:
447: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - l_rule_exists: ' || l_rule_exists);
448:
449: IF (l_rule_exists = 'Y') THEN
450:
451: --Begin code to apply rules
449: IF (l_rule_exists = 'Y') THEN
450:
451: --Begin code to apply rules
452:
453: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Before calling api FUN_RULE_PUB.SET_INSTANCE_CONTEXT');
454: l_last_api_called := 'FUN_RULE_PUB.SET_INSTANCE_CONTEXT';
455: FUN_RULE_PUB.SET_INSTANCE_CONTEXT(P_RULE_OBJECT_NAME => 'LNS_ERS_LOAN_PRODUCT',
456: P_APPLICATION_SHORT_NAME => 'LNS',
457: P_INSTANCE_LABEL => to_char(l_loan_product_id),
461: LNS_LOAN_PARTY_ID := l_party_id;
462: LNS_LOAN_CURRENCY_CODE := l_currency_code;
463: LNS_LOAN_ORG_ID := l_org_id;
464:
465: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Before calling api FUN_RULE_PUB.apply_rule_bulk');
466: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - where clause for apply_rule_bulk: ');
467: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'PARTY_ID = ' || l_party_id || ' AND INVOICE_CURRENCY_CODE = ' || l_currency_code || ' AND ORG_ID = ' || l_org_id);
468:
469: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID);
462: LNS_LOAN_CURRENCY_CODE := l_currency_code;
463: LNS_LOAN_ORG_ID := l_org_id;
464:
465: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Before calling api FUN_RULE_PUB.apply_rule_bulk');
466: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - where clause for apply_rule_bulk: ');
467: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'PARTY_ID = ' || l_party_id || ' AND INVOICE_CURRENCY_CODE = ' || l_currency_code || ' AND ORG_ID = ' || l_org_id);
468:
469: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID);
470: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_CURRENCY_CODE = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_CURRENCY_CODE);
463: LNS_LOAN_ORG_ID := l_org_id;
464:
465: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Before calling api FUN_RULE_PUB.apply_rule_bulk');
466: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - where clause for apply_rule_bulk: ');
467: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'PARTY_ID = ' || l_party_id || ' AND INVOICE_CURRENCY_CODE = ' || l_currency_code || ' AND ORG_ID = ' || l_org_id);
468:
469: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID);
470: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_CURRENCY_CODE = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_CURRENCY_CODE);
471: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_ORG_ID = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_ORG_ID);
465: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Before calling api FUN_RULE_PUB.apply_rule_bulk');
466: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - where clause for apply_rule_bulk: ');
467: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'PARTY_ID = ' || l_party_id || ' AND INVOICE_CURRENCY_CODE = ' || l_currency_code || ' AND ORG_ID = ' || l_org_id);
468:
469: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID);
470: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_CURRENCY_CODE = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_CURRENCY_CODE);
471: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_ORG_ID = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_ORG_ID);
472: l_last_api_called := 'FUN_RULE_PUB.apply_rule_bulk';
473: FUN_RULE_PUB.apply_rule_bulk(p_application_short_name => 'LNS',
466: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - where clause for apply_rule_bulk: ');
467: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'PARTY_ID = ' || l_party_id || ' AND INVOICE_CURRENCY_CODE = ' || l_currency_code || ' AND ORG_ID = ' || l_org_id);
468:
469: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID);
470: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_CURRENCY_CODE = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_CURRENCY_CODE);
471: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_ORG_ID = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_ORG_ID);
472: l_last_api_called := 'FUN_RULE_PUB.apply_rule_bulk';
473: FUN_RULE_PUB.apply_rule_bulk(p_application_short_name => 'LNS',
474: p_rule_object_name => 'LNS_ERS_LOAN_PRODUCT',
467: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'PARTY_ID = ' || l_party_id || ' AND INVOICE_CURRENCY_CODE = ' || l_currency_code || ' AND ORG_ID = ' || l_org_id);
468:
469: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_PARTY_ID);
470: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_CURRENCY_CODE = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_CURRENCY_CODE);
471: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || 'LNS_LOAN_LINE_PUB.LNS_LOAN_ORG_ID = ' || LNS_LOAN_LINE_PUB.LNS_LOAN_ORG_ID);
472: l_last_api_called := 'FUN_RULE_PUB.apply_rule_bulk';
473: FUN_RULE_PUB.apply_rule_bulk(p_application_short_name => 'LNS',
474: p_rule_object_name => 'LNS_ERS_LOAN_PRODUCT',
475: p_param_view_name => 'LNS_OPEN_RECEIVABLES_V',
476: p_additional_where_clause => 'PARTY_ID = LNS_LOAN_LINE_PUB.GET_LOAN_PARTY_ID AND INVOICE_CURRENCY_CODE = LNS_LOAN_LINE_PUB.GET_LOAN_CURRENCY_CODE AND ORG_ID = LNS_LOAN_LINE_PUB.GET_LOAN_ORG_ID',
477: p_primary_key_column_name => 'PAYMENT_SCHEDULE_ID'
478: );
479:
480: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - After calling api FUN_RULE_PUB.apply_rule_bulk');
481:
482: END IF; -- IF (l_rule_exists = 'Y') THEN
483:
484: IF (l_max_amount IS NOT NULL) THEN
487: --Based on rules, fetch matching invoices in the specified sort order until the max requested amount is reached
488: --There could be an invoice with only a partial amount added from it if the last invoice that is picked has its balance amount
489: --more than the remaining balance on the specified maximum requested amount
490: l_last_api_called := 'Fetch in loop using cursor c_rule_result_invoices_sorted';
491: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - l_last_api_called: ' || l_last_api_called);
492: for c_result_inv_rec in c_rule_result_invoices_sorted(l_sort_attribute) loop
493: --calculate the invoice conversion amount since this could be less than the remaining balance on the invoice
494: --based on the amount remaining in the max requested amount limit for this loan
495: l_inv_conv_amount := least(c_result_inv_rec.AMOUNT_DUE_REMAINING,l_max_amount - l_loan_amount);
494: --based on the amount remaining in the max requested amount limit for this loan
495: l_inv_conv_amount := least(c_result_inv_rec.AMOUNT_DUE_REMAINING,l_max_amount - l_loan_amount);
496: if (l_inv_conv_amount > 0) then
497: l_record_count := l_record_count + 1;
498: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Begin processing Row#' || l_record_count);
499: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
500: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
501: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
502: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
495: l_inv_conv_amount := least(c_result_inv_rec.AMOUNT_DUE_REMAINING,l_max_amount - l_loan_amount);
496: if (l_inv_conv_amount > 0) then
497: l_record_count := l_record_count + 1;
498: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Begin processing Row#' || l_record_count);
499: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
500: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
501: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
502: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
503: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
496: if (l_inv_conv_amount > 0) then
497: l_record_count := l_record_count + 1;
498: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Begin processing Row#' || l_record_count);
499: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
500: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
501: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
502: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
503: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
504: l_pmt_sch_id_tbl(l_record_count) := c_result_inv_rec.payment_schedule_id;
497: l_record_count := l_record_count + 1;
498: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Begin processing Row#' || l_record_count);
499: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
500: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
501: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
502: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
503: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
504: l_pmt_sch_id_tbl(l_record_count) := c_result_inv_rec.payment_schedule_id;
505: l_installment_number_tbl(l_record_count) := c_result_inv_rec.TERMS_SEQUENCE_NUMBER;
498: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Begin processing Row#' || l_record_count);
499: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
500: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
501: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
502: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
503: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
504: l_pmt_sch_id_tbl(l_record_count) := c_result_inv_rec.payment_schedule_id;
505: l_installment_number_tbl(l_record_count) := c_result_inv_rec.TERMS_SEQUENCE_NUMBER;
506: l_reference_id_tbl(l_record_count) := c_result_inv_rec.customer_trx_id;
499: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
500: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
501: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
502: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
503: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
504: l_pmt_sch_id_tbl(l_record_count) := c_result_inv_rec.payment_schedule_id;
505: l_installment_number_tbl(l_record_count) := c_result_inv_rec.TERMS_SEQUENCE_NUMBER;
506: l_reference_id_tbl(l_record_count) := c_result_inv_rec.customer_trx_id;
507: l_reference_number_tbl(l_record_count) := c_result_inv_rec.trx_number;
507: l_reference_number_tbl(l_record_count) := c_result_inv_rec.trx_number;
508: l_reference_amount_tbl(l_record_count) := c_result_inv_rec.AMOUNT_DUE_REMAINING;
509: l_requested_amount_tbl(l_record_count) := l_inv_conv_amount;
510: l_loan_amount := l_loan_amount + l_inv_conv_amount;
511: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - End processing Row#' || l_record_count);
512: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
513: end if;
514: exit when (l_loan_amount >= l_max_amount);
515: end loop;
508: l_reference_amount_tbl(l_record_count) := c_result_inv_rec.AMOUNT_DUE_REMAINING;
509: l_requested_amount_tbl(l_record_count) := l_inv_conv_amount;
510: l_loan_amount := l_loan_amount + l_inv_conv_amount;
511: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - End processing Row#' || l_record_count);
512: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
513: end if;
514: exit when (l_loan_amount >= l_max_amount);
515: end loop;
516: else -- else part for if (l_rule_exists = 'Y') then
517: --Since rules do not exist, fetch all open invoices in no particular order until the max requested amount is reached
518: --There could be an invoice with only a partial amount added from it if the last invoice that is picked has its balance amount
519: --more than the remaining balance on the specified maximum requested amount
520: l_last_api_called := 'Fetch in loop using cursor c_all_open_invoices_nosort';
521: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - l_last_api_called: ' || l_last_api_called);
522: for c_result_inv_rec in c_all_open_invoices_nosort(l_party_id, l_org_id, l_currency_code) loop
523: --calculate the invoice conversion amount since this could be less than the remaining balance on the invoice
524: --based on the amount remaining in the max requested amount limit for this loan
525: l_inv_conv_amount := least(c_result_inv_rec.AMOUNT_DUE_REMAINING,l_max_amount - l_loan_amount);
524: --based on the amount remaining in the max requested amount limit for this loan
525: l_inv_conv_amount := least(c_result_inv_rec.AMOUNT_DUE_REMAINING,l_max_amount - l_loan_amount);
526: if (l_inv_conv_amount > 0) then
527: l_record_count := l_record_count + 1;
528: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Begin processing Row#' || l_record_count);
529: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
530: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
531: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
532: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
525: l_inv_conv_amount := least(c_result_inv_rec.AMOUNT_DUE_REMAINING,l_max_amount - l_loan_amount);
526: if (l_inv_conv_amount > 0) then
527: l_record_count := l_record_count + 1;
528: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Begin processing Row#' || l_record_count);
529: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
530: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
531: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
532: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
533: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
526: if (l_inv_conv_amount > 0) then
527: l_record_count := l_record_count + 1;
528: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Begin processing Row#' || l_record_count);
529: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
530: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
531: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
532: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
533: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
534: l_pmt_sch_id_tbl(l_record_count) := c_result_inv_rec.payment_schedule_id;
527: l_record_count := l_record_count + 1;
528: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Begin processing Row#' || l_record_count);
529: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
530: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
531: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
532: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
533: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
534: l_pmt_sch_id_tbl(l_record_count) := c_result_inv_rec.payment_schedule_id;
535: l_installment_number_tbl(l_record_count) := c_result_inv_rec.TERMS_SEQUENCE_NUMBER;
528: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Begin processing Row#' || l_record_count);
529: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
530: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
531: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
532: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
533: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
534: l_pmt_sch_id_tbl(l_record_count) := c_result_inv_rec.payment_schedule_id;
535: l_installment_number_tbl(l_record_count) := c_result_inv_rec.TERMS_SEQUENCE_NUMBER;
536: l_reference_id_tbl(l_record_count) := c_result_inv_rec.customer_trx_id;
529: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Payment_schedule_id is: ' || c_result_inv_rec.payment_schedule_id);
530: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Trx_Number: ' || c_result_inv_rec.trx_number);
531: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'Amount_Due_Remaining: ' || c_result_inv_rec.AMOUNT_DUE_REMAINING);
532: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'The receivable conversion amount(loan line requested amount) is ' || l_inv_conv_amount);
533: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
534: l_pmt_sch_id_tbl(l_record_count) := c_result_inv_rec.payment_schedule_id;
535: l_installment_number_tbl(l_record_count) := c_result_inv_rec.TERMS_SEQUENCE_NUMBER;
536: l_reference_id_tbl(l_record_count) := c_result_inv_rec.customer_trx_id;
537: l_reference_number_tbl(l_record_count) := c_result_inv_rec.trx_number;
537: l_reference_number_tbl(l_record_count) := c_result_inv_rec.trx_number;
538: l_reference_amount_tbl(l_record_count) := c_result_inv_rec.AMOUNT_DUE_REMAINING;
539: l_requested_amount_tbl(l_record_count) := l_inv_conv_amount;
540: l_loan_amount := l_loan_amount + l_inv_conv_amount;
541: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - End processing Row#' || l_record_count);
542: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
543: end if;
544: exit when (l_loan_amount >= l_max_amount);
545: end loop;
538: l_reference_amount_tbl(l_record_count) := c_result_inv_rec.AMOUNT_DUE_REMAINING;
539: l_requested_amount_tbl(l_record_count) := l_inv_conv_amount;
540: l_loan_amount := l_loan_amount + l_inv_conv_amount;
541: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - End processing Row#' || l_record_count);
542: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - Total Loan Amount:' || l_loan_amount);
543: end if;
544: exit when (l_loan_amount >= l_max_amount);
545: end loop;
546: end if; -- if (l_rule_exists = 'Y') then
547:
548: ELSE --if (l_max_amount is not null) then
549:
550: l_bulk_process := 'Y';
551: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - l_bulk_process: ' || l_bulk_process);
552: if (l_rule_exists = 'Y') then
553: -- bulk fetch rule results without sort
554: l_last_api_called := 'Bulk Collect using cursor c_rule_result_invoices_nosort';
555: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - BEGIN: ' || l_last_api_called);
551: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - l_bulk_process: ' || l_bulk_process);
552: if (l_rule_exists = 'Y') then
553: -- bulk fetch rule results without sort
554: l_last_api_called := 'Bulk Collect using cursor c_rule_result_invoices_nosort';
555: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - BEGIN: ' || l_last_api_called);
556: open c_rule_result_invoices_nosort;
557: fetch c_rule_result_invoices_nosort bulk collect into l_pmt_sch_id_tbl,l_reference_id_tbl,l_reference_number_tbl,l_reference_amount_tbl,l_requested_amount_tbl,l_installment_number_tbl;
558: close c_rule_result_invoices_nosort;
559: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - END: ' || l_last_api_called);
555: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - BEGIN: ' || l_last_api_called);
556: open c_rule_result_invoices_nosort;
557: fetch c_rule_result_invoices_nosort bulk collect into l_pmt_sch_id_tbl,l_reference_id_tbl,l_reference_number_tbl,l_reference_amount_tbl,l_requested_amount_tbl,l_installment_number_tbl;
558: close c_rule_result_invoices_nosort;
559: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - END: ' || l_last_api_called);
560: else
561: --bulk fetch all open invoices without sort
562: l_last_api_called := 'Bulk Collect using cursor c_all_open_invoices_nosort';
563: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - BEGIN: ' || l_last_api_called);
559: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - END: ' || l_last_api_called);
560: else
561: --bulk fetch all open invoices without sort
562: l_last_api_called := 'Bulk Collect using cursor c_all_open_invoices_nosort';
563: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - BEGIN: ' || l_last_api_called);
564: open c_all_open_invoices_nosort(l_party_id, l_org_id, l_currency_code);
565: fetch c_all_open_invoices_nosort bulk collect into l_pmt_sch_id_tbl,l_reference_id_tbl,l_reference_number_tbl,l_reference_amount_tbl,l_requested_amount_tbl,l_installment_number_tbl;
566: close c_all_open_invoices_nosort;
567: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - END: ' || l_last_api_called);
563: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - BEGIN: ' || l_last_api_called);
564: open c_all_open_invoices_nosort(l_party_id, l_org_id, l_currency_code);
565: fetch c_all_open_invoices_nosort bulk collect into l_pmt_sch_id_tbl,l_reference_id_tbl,l_reference_number_tbl,l_reference_amount_tbl,l_requested_amount_tbl,l_installment_number_tbl;
566: close c_all_open_invoices_nosort;
567: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - END: ' || l_last_api_called);
568: end if; -- if (l_rule_exists = 'Y') then
569:
570: END IF; -- IF (l_max_amount IS NOT NULL) THEN
571:
573: --No open receivable found for derivation.
574: --throw exception
575: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_REC_FOUND');
576: FND_MSG_PUB.Add;
577: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, l_api_name || ': ' || FND_MSG_PUB.Get(p_encoded => 'F'));
578: RAISE FND_API.G_EXC_ERROR;
579: END IF;
580:
581: l_last_api_called := 'Bulk insert into lns_loan_lines';
578: RAISE FND_API.G_EXC_ERROR;
579: END IF;
580:
581: l_last_api_called := 'Bulk insert into lns_loan_lines';
582: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - BEGIN: ' || l_last_api_called);
583:
584: forall i in l_pmt_sch_id_tbl.first..l_pmt_sch_id_tbl.last
585: insert into lns_loan_lines(
586: LOAN_LINE_ID
624: ,l_pmt_sch_id_tbl(i)
625: ,l_installment_number_tbl(i)
626: );
627:
628: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - END: ' || l_last_api_called);
629:
630: IF (l_bulk_process = 'Y') THEN
631: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - Record fetch was performed as a bulk operation since maximum loan amount is NOT specified in loan product');
632: /* --open cursor to get number of records and total requested amount from lns_loan_lines
627:
628: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ': ' || ' - END: ' || l_last_api_called);
629:
630: IF (l_bulk_process = 'Y') THEN
631: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - Record fetch was performed as a bulk operation since maximum loan amount is NOT specified in loan product');
632: /* --open cursor to get number of records and total requested amount from lns_loan_lines
633: OPEN c_get_bulk_total(l_loan_id);
634: FETCH c_get_bulk_total INTO l_loan_amount, l_record_count;
635: CLOSE c_get_bulk_total;
645: l_record_count := l_record_count + 1;
646: l_loan_amount := l_loan_amount + l_requested_amount_tbl(j);
647: end loop;
648: END IF;
649: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - Inserted '|| l_record_count || ' rows into lns_loan_lines successfully!');
650: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - The total loan amount processed is ' || l_loan_amount);
651:
652: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - END');
653:
646: l_loan_amount := l_loan_amount + l_requested_amount_tbl(j);
647: end loop;
648: END IF;
649: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - Inserted '|| l_record_count || ' rows into lns_loan_lines successfully!');
650: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - The total loan amount processed is ' || l_loan_amount);
651:
652: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - END');
653:
654: return l_loan_amount;
648: END IF;
649: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - Inserted '|| l_record_count || ' rows into lns_loan_lines successfully!');
650: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - The total loan amount processed is ' || l_loan_amount);
651:
652: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - END');
653:
654: return l_loan_amount;
655:
656: EXCEPTION
654: return l_loan_amount;
655:
656: EXCEPTION
657: WHEN FND_API.G_EXC_ERROR THEN
658: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - before rollback');
659: ROLLBACK TO loan_lines_derivation;
660: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - after rollback');
661: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
662: return 0;
656: EXCEPTION
657: WHEN FND_API.G_EXC_ERROR THEN
658: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - before rollback');
659: ROLLBACK TO loan_lines_derivation;
660: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - after rollback');
661: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
662: return 0;
663: WHEN OTHERS THEN
664: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - before rollback');
657: WHEN FND_API.G_EXC_ERROR THEN
658: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - before rollback');
659: ROLLBACK TO loan_lines_derivation;
660: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - after rollback');
661: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
662: return 0;
663: WHEN OTHERS THEN
664: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - before rollback');
665: ROLLBACK TO loan_lines_derivation;
660: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - after rollback');
661: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
662: return 0;
663: WHEN OTHERS THEN
664: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - before rollback');
665: ROLLBACK TO loan_lines_derivation;
666: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - after rollback');
667: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
668: FND_MESSAGE.SET_NAME('LNS', 'LNS_API_OTHERS_EXCEP');
662: return 0;
663: WHEN OTHERS THEN
664: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - before rollback');
665: ROLLBACK TO loan_lines_derivation;
666: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - after rollback');
667: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
668: FND_MESSAGE.SET_NAME('LNS', 'LNS_API_OTHERS_EXCEP');
669: FND_MESSAGE.SET_TOKEN('ERROR' ,'Failed API call: ' || l_last_api_called || ' SQLERRM: ' || SQLERRM);
670: FND_MSG_PUB.ADD;
663: WHEN OTHERS THEN
664: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - before rollback');
665: ROLLBACK TO loan_lines_derivation;
666: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - after rollback');
667: logMessage(FND_LOG.LEVEL_ERROR, G_PKG_NAME, sqlerrm);
668: FND_MESSAGE.SET_NAME('LNS', 'LNS_API_OTHERS_EXCEP');
669: FND_MESSAGE.SET_TOKEN('ERROR' ,'Failed API call: ' || l_last_api_called || ' SQLERRM: ' || SQLERRM);
670: FND_MSG_PUB.ADD;
671: return 0;