80: Procedure LogMessage(p_msg_level IN NUMBER, p_msg in varchar2)
81: IS
82: BEGIN
83: if (p_msg_level >= G_MSG_LEVEL) then
84: FND_LOG.STRING(p_msg_level, G_PKG_NAME, p_msg);
85: end if;
86:
87: if FND_GLOBAL.Conc_Request_Id is not null then
88: fnd_file.put_line(FND_FILE.LOG, p_msg);
89: end if;
90:
91: EXCEPTION
92: WHEN OTHERS THEN
93: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: ' || sqlerrm);
94: END;
95:
96:
97:
133: l_api_name CONSTANT VARCHAR2(30) := 'INIT';
134: l_org_status varchar2(1);
135: BEGIN
136:
137: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
138: --fnd_global.apps_initialize(FND_GLOBAL.USER_ID, FND_GLOBAL.RESP_ID, FND_GLOBAL.RESP_APPL_ID, FND_GLOBAL.SECURITY_GROUP_ID);
139:
140: /* getting msg logging info */
141: G_LOG_ENABLED := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'), 'N');
138: --fnd_global.apps_initialize(FND_GLOBAL.USER_ID, FND_GLOBAL.RESP_ID, FND_GLOBAL.RESP_APPL_ID, FND_GLOBAL.SECURITY_GROUP_ID);
139:
140: /* getting msg logging info */
141: G_LOG_ENABLED := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'), 'N');
142: G_MSG_LEVEL := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
143: /*
144: if (G_LOG_ENABLED = 'N') then
145: G_MSG_LEVEL := FND_LOG.LEVEL_UNEXPECTED;
146: else
141: G_LOG_ENABLED := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'), 'N');
142: G_MSG_LEVEL := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
143: /*
144: if (G_LOG_ENABLED = 'N') then
145: G_MSG_LEVEL := FND_LOG.LEVEL_UNEXPECTED;
146: else
147: G_MSG_LEVEL := NVL(to_number(FND_PROFILE.VALUE('AFLOG_LEVEL')), FND_LOG.LEVEL_UNEXPECTED);
148: end if;
149: */
143: /*
144: if (G_LOG_ENABLED = 'N') then
145: G_MSG_LEVEL := FND_LOG.LEVEL_UNEXPECTED;
146: else
147: G_MSG_LEVEL := NVL(to_number(FND_PROFILE.VALUE('AFLOG_LEVEL')), FND_LOG.LEVEL_UNEXPECTED);
148: end if;
149: */
150:
151: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_LOG_ENABLED: ' || G_LOG_ENABLED);
147: G_MSG_LEVEL := NVL(to_number(FND_PROFILE.VALUE('AFLOG_LEVEL')), FND_LOG.LEVEL_UNEXPECTED);
148: end if;
149: */
150:
151: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_LOG_ENABLED: ' || G_LOG_ENABLED);
152: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_MSG_LEVEL: ' || G_MSG_LEVEL);
153:
154: /* getting org_id */
155: -- g_org_id := to_number(fnd_profile.value('ORG_ID'));
148: end if;
149: */
150:
151: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_LOG_ENABLED: ' || G_LOG_ENABLED);
152: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_MSG_LEVEL: ' || G_MSG_LEVEL);
153:
154: /* getting org_id */
155: -- g_org_id := to_number(fnd_profile.value('ORG_ID'));
156: g_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();
153:
154: /* getting org_id */
155: -- g_org_id := to_number(fnd_profile.value('ORG_ID'));
156: g_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();
157: LogMessage(FND_LOG.LEVEL_STATEMENT, 'g_org_id: ' || g_org_id);
158: l_org_status := MO_GLOBAL.check_valid_org(g_org_id);
159: LogMessage(FND_LOG.LEVEL_STATEMENT, 'MO_GLOBAL.check_valid_org(' || g_org_id || '): ' || l_org_status);
160:
161: /* checking for number of system options record for giving org_id */
155: -- g_org_id := to_number(fnd_profile.value('ORG_ID'));
156: g_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();
157: LogMessage(FND_LOG.LEVEL_STATEMENT, 'g_org_id: ' || g_org_id);
158: l_org_status := MO_GLOBAL.check_valid_org(g_org_id);
159: LogMessage(FND_LOG.LEVEL_STATEMENT, 'MO_GLOBAL.check_valid_org(' || g_org_id || '): ' || l_org_status);
160:
161: /* checking for number of system options record for giving org_id */
162: select count(1) into g_sys_opt_num from LNS_SYSTEM_OPTIONS where ORG_ID = g_org_id;
163:
162: select count(1) into g_sys_opt_num from LNS_SYSTEM_OPTIONS where ORG_ID = g_org_id;
163:
164: if g_sys_opt_num = 0 then
165:
166: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No system options found for the org ' || g_org_id);
167: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_SYSTEM_OPTIONS');
168: FND_MESSAGE.SET_TOKEN('ORG', g_org_id);
169: FND_MSG_PUB.Add;
170: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
166: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No system options found for the org ' || g_org_id);
167: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_SYSTEM_OPTIONS');
168: FND_MESSAGE.SET_TOKEN('ORG', g_org_id);
169: FND_MSG_PUB.Add;
170: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
171: RAISE FND_API.G_EXC_ERROR;
172:
173: elsif g_sys_opt_num > 1 then
174:
171: RAISE FND_API.G_EXC_ERROR;
172:
173: elsif g_sys_opt_num > 1 then
174:
175: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Found more then 1 system options records for the org ' || g_org_id);
176: FND_MESSAGE.SET_NAME('LNS', 'LNS_MANY_SYSTEM_OPTIONS');
177: FND_MESSAGE.SET_TOKEN('ORG', g_org_id);
178: FND_MSG_PUB.Add;
179: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
175: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Found more then 1 system options records for the org ' || g_org_id);
176: FND_MESSAGE.SET_NAME('LNS', 'LNS_MANY_SYSTEM_OPTIONS');
177: FND_MESSAGE.SET_TOKEN('ORG', g_org_id);
178: FND_MSG_PUB.Add;
179: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
180: RAISE FND_API.G_EXC_ERROR;
181:
182: end if;
183:
204: g_forgiveness_rec_trx_id
205: FROM LNS_SYSTEM_OPTIONS
206: WHERE ORG_ID = g_org_id;
207:
208: LogMessage(FND_LOG.LEVEL_STATEMENT, 'System options:');
209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'batch_source_id: ' || g_batch_source_id);
210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'days_to_bill_before_dd: ' || g_days_to_bill_before_dd);
211: LogMessage(FND_LOG.LEVEL_STATEMENT, 'trx_type_id: ' || g_trx_type_id);
212: LogMessage(FND_LOG.LEVEL_STATEMENT, 'day_togl_after_dd: ' || g_day_togl_after_dd);
205: FROM LNS_SYSTEM_OPTIONS
206: WHERE ORG_ID = g_org_id;
207:
208: LogMessage(FND_LOG.LEVEL_STATEMENT, 'System options:');
209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'batch_source_id: ' || g_batch_source_id);
210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'days_to_bill_before_dd: ' || g_days_to_bill_before_dd);
211: LogMessage(FND_LOG.LEVEL_STATEMENT, 'trx_type_id: ' || g_trx_type_id);
212: LogMessage(FND_LOG.LEVEL_STATEMENT, 'day_togl_after_dd: ' || g_day_togl_after_dd);
213: LogMessage(FND_LOG.LEVEL_STATEMENT, 'multiple_lines: ' || g_multiple_lines);
206: WHERE ORG_ID = g_org_id;
207:
208: LogMessage(FND_LOG.LEVEL_STATEMENT, 'System options:');
209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'batch_source_id: ' || g_batch_source_id);
210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'days_to_bill_before_dd: ' || g_days_to_bill_before_dd);
211: LogMessage(FND_LOG.LEVEL_STATEMENT, 'trx_type_id: ' || g_trx_type_id);
212: LogMessage(FND_LOG.LEVEL_STATEMENT, 'day_togl_after_dd: ' || g_day_togl_after_dd);
213: LogMessage(FND_LOG.LEVEL_STATEMENT, 'multiple_lines: ' || g_multiple_lines);
214: LogMessage(FND_LOG.LEVEL_STATEMENT, 'int_trx_type_id: ' || g_int_trx_type_id);
207:
208: LogMessage(FND_LOG.LEVEL_STATEMENT, 'System options:');
209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'batch_source_id: ' || g_batch_source_id);
210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'days_to_bill_before_dd: ' || g_days_to_bill_before_dd);
211: LogMessage(FND_LOG.LEVEL_STATEMENT, 'trx_type_id: ' || g_trx_type_id);
212: LogMessage(FND_LOG.LEVEL_STATEMENT, 'day_togl_after_dd: ' || g_day_togl_after_dd);
213: LogMessage(FND_LOG.LEVEL_STATEMENT, 'multiple_lines: ' || g_multiple_lines);
214: LogMessage(FND_LOG.LEVEL_STATEMENT, 'int_trx_type_id: ' || g_int_trx_type_id);
215: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_type_id: ' || g_fee_trx_type_id);
208: LogMessage(FND_LOG.LEVEL_STATEMENT, 'System options:');
209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'batch_source_id: ' || g_batch_source_id);
210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'days_to_bill_before_dd: ' || g_days_to_bill_before_dd);
211: LogMessage(FND_LOG.LEVEL_STATEMENT, 'trx_type_id: ' || g_trx_type_id);
212: LogMessage(FND_LOG.LEVEL_STATEMENT, 'day_togl_after_dd: ' || g_day_togl_after_dd);
213: LogMessage(FND_LOG.LEVEL_STATEMENT, 'multiple_lines: ' || g_multiple_lines);
214: LogMessage(FND_LOG.LEVEL_STATEMENT, 'int_trx_type_id: ' || g_int_trx_type_id);
215: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_type_id: ' || g_fee_trx_type_id);
216: LogMessage(FND_LOG.LEVEL_STATEMENT, 'receivables_trx_id: ' || g_receivables_trx_id);
209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'batch_source_id: ' || g_batch_source_id);
210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'days_to_bill_before_dd: ' || g_days_to_bill_before_dd);
211: LogMessage(FND_LOG.LEVEL_STATEMENT, 'trx_type_id: ' || g_trx_type_id);
212: LogMessage(FND_LOG.LEVEL_STATEMENT, 'day_togl_after_dd: ' || g_day_togl_after_dd);
213: LogMessage(FND_LOG.LEVEL_STATEMENT, 'multiple_lines: ' || g_multiple_lines);
214: LogMessage(FND_LOG.LEVEL_STATEMENT, 'int_trx_type_id: ' || g_int_trx_type_id);
215: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_type_id: ' || g_fee_trx_type_id);
216: LogMessage(FND_LOG.LEVEL_STATEMENT, 'receivables_trx_id: ' || g_receivables_trx_id);
217: LogMessage(FND_LOG.LEVEL_STATEMENT, 'USSGL_TRANSACTION_CODE: ' || g_USSGL_TRANSACTION_CODE);
210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'days_to_bill_before_dd: ' || g_days_to_bill_before_dd);
211: LogMessage(FND_LOG.LEVEL_STATEMENT, 'trx_type_id: ' || g_trx_type_id);
212: LogMessage(FND_LOG.LEVEL_STATEMENT, 'day_togl_after_dd: ' || g_day_togl_after_dd);
213: LogMessage(FND_LOG.LEVEL_STATEMENT, 'multiple_lines: ' || g_multiple_lines);
214: LogMessage(FND_LOG.LEVEL_STATEMENT, 'int_trx_type_id: ' || g_int_trx_type_id);
215: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_type_id: ' || g_fee_trx_type_id);
216: LogMessage(FND_LOG.LEVEL_STATEMENT, 'receivables_trx_id: ' || g_receivables_trx_id);
217: LogMessage(FND_LOG.LEVEL_STATEMENT, 'USSGL_TRANSACTION_CODE: ' || g_USSGL_TRANSACTION_CODE);
218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'g_forgiveness_rec_trx_id: ' || g_forgiveness_rec_trx_id);
211: LogMessage(FND_LOG.LEVEL_STATEMENT, 'trx_type_id: ' || g_trx_type_id);
212: LogMessage(FND_LOG.LEVEL_STATEMENT, 'day_togl_after_dd: ' || g_day_togl_after_dd);
213: LogMessage(FND_LOG.LEVEL_STATEMENT, 'multiple_lines: ' || g_multiple_lines);
214: LogMessage(FND_LOG.LEVEL_STATEMENT, 'int_trx_type_id: ' || g_int_trx_type_id);
215: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_type_id: ' || g_fee_trx_type_id);
216: LogMessage(FND_LOG.LEVEL_STATEMENT, 'receivables_trx_id: ' || g_receivables_trx_id);
217: LogMessage(FND_LOG.LEVEL_STATEMENT, 'USSGL_TRANSACTION_CODE: ' || g_USSGL_TRANSACTION_CODE);
218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'g_forgiveness_rec_trx_id: ' || g_forgiveness_rec_trx_id);
219:
212: LogMessage(FND_LOG.LEVEL_STATEMENT, 'day_togl_after_dd: ' || g_day_togl_after_dd);
213: LogMessage(FND_LOG.LEVEL_STATEMENT, 'multiple_lines: ' || g_multiple_lines);
214: LogMessage(FND_LOG.LEVEL_STATEMENT, 'int_trx_type_id: ' || g_int_trx_type_id);
215: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_type_id: ' || g_fee_trx_type_id);
216: LogMessage(FND_LOG.LEVEL_STATEMENT, 'receivables_trx_id: ' || g_receivables_trx_id);
217: LogMessage(FND_LOG.LEVEL_STATEMENT, 'USSGL_TRANSACTION_CODE: ' || g_USSGL_TRANSACTION_CODE);
218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'g_forgiveness_rec_trx_id: ' || g_forgiveness_rec_trx_id);
219:
220: if g_batch_source_id is null then
213: LogMessage(FND_LOG.LEVEL_STATEMENT, 'multiple_lines: ' || g_multiple_lines);
214: LogMessage(FND_LOG.LEVEL_STATEMENT, 'int_trx_type_id: ' || g_int_trx_type_id);
215: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_type_id: ' || g_fee_trx_type_id);
216: LogMessage(FND_LOG.LEVEL_STATEMENT, 'receivables_trx_id: ' || g_receivables_trx_id);
217: LogMessage(FND_LOG.LEVEL_STATEMENT, 'USSGL_TRANSACTION_CODE: ' || g_USSGL_TRANSACTION_CODE);
218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'g_forgiveness_rec_trx_id: ' || g_forgiveness_rec_trx_id);
219:
220: if g_batch_source_id is null then
221:
214: LogMessage(FND_LOG.LEVEL_STATEMENT, 'int_trx_type_id: ' || g_int_trx_type_id);
215: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_type_id: ' || g_fee_trx_type_id);
216: LogMessage(FND_LOG.LEVEL_STATEMENT, 'receivables_trx_id: ' || g_receivables_trx_id);
217: LogMessage(FND_LOG.LEVEL_STATEMENT, 'USSGL_TRANSACTION_CODE: ' || g_USSGL_TRANSACTION_CODE);
218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'g_forgiveness_rec_trx_id: ' || g_forgiveness_rec_trx_id);
219:
220: if g_batch_source_id is null then
221:
222: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Batch Source is not set in the system option.');
218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'g_forgiveness_rec_trx_id: ' || g_forgiveness_rec_trx_id);
219:
220: if g_batch_source_id is null then
221:
222: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Batch Source is not set in the system option.');
223: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_BATCH_IN_SYS_OPT');
224: FND_MSG_PUB.Add;
225: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
226: RAISE FND_API.G_EXC_ERROR;
221:
222: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Batch Source is not set in the system option.');
223: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_BATCH_IN_SYS_OPT');
224: FND_MSG_PUB.Add;
225: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
226: RAISE FND_API.G_EXC_ERROR;
227:
228: end if;
229:
228: end if;
229:
230: if g_trx_type_id is null then
231:
232: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Default Transaction Type is not set in the system option.');
233: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_TYPE_IN_SYS_OPT');
234: FND_MSG_PUB.Add;
235: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
236: RAISE FND_API.G_EXC_ERROR;
231:
232: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Default Transaction Type is not set in the system option.');
233: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_TYPE_IN_SYS_OPT');
234: FND_MSG_PUB.Add;
235: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
236: RAISE FND_API.G_EXC_ERROR;
237:
238: end if;
239:
238: end if;
239:
240: if g_multiple_lines is null then
241:
242: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Combination Invoice is not set in the system option.');
243: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_INV_COMB_IN_SYS_OPT');
244: FND_MSG_PUB.Add;
245: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
246: RAISE FND_API.G_EXC_ERROR;
241:
242: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Combination Invoice is not set in the system option.');
243: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_INV_COMB_IN_SYS_OPT');
244: FND_MSG_PUB.Add;
245: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
246: RAISE FND_API.G_EXC_ERROR;
247:
248: end if;
249:
246: RAISE FND_API.G_EXC_ERROR;
247:
248: end if;
249:
250: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
251:
252: END;
253:
254:
354: and REAMORTIZATION_AMOUNT is null
355: and nvl(PHASE, 'TERM') = nvl(P_PHASE, 'TERM')), 0);
356: BEGIN
357:
358: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
359:
360: open loan_ver_cur(P_LOAN_ID);
361: fetch loan_ver_cur into
362: l_version_number,
374: open amortization_cur(P_LOAN_ID, l_current_phase);
375: fetch amortization_cur into l_amortization_id;
376: close amortization_cur;
377:
378: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Old LAST_PAYMENT_NUMBER: ' || l_old_last_payment_number);
379: LogMessage(FND_LOG.LEVEL_STATEMENT, 'New LAST_PAYMENT_NUMBER: ' || l_last_payment_number);
380: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Old LAST_AMORTIZATION_ID: ' || l_old_amortization_id);
381: LogMessage(FND_LOG.LEVEL_STATEMENT, 'New LAST_AMORTIZATION_ID: ' || l_amortization_id);
382:
375: fetch amortization_cur into l_amortization_id;
376: close amortization_cur;
377:
378: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Old LAST_PAYMENT_NUMBER: ' || l_old_last_payment_number);
379: LogMessage(FND_LOG.LEVEL_STATEMENT, 'New LAST_PAYMENT_NUMBER: ' || l_last_payment_number);
380: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Old LAST_AMORTIZATION_ID: ' || l_old_amortization_id);
381: LogMessage(FND_LOG.LEVEL_STATEMENT, 'New LAST_AMORTIZATION_ID: ' || l_amortization_id);
382:
383: /* updating loan header table */
376: close amortization_cur;
377:
378: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Old LAST_PAYMENT_NUMBER: ' || l_old_last_payment_number);
379: LogMessage(FND_LOG.LEVEL_STATEMENT, 'New LAST_PAYMENT_NUMBER: ' || l_last_payment_number);
380: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Old LAST_AMORTIZATION_ID: ' || l_old_amortization_id);
381: LogMessage(FND_LOG.LEVEL_STATEMENT, 'New LAST_AMORTIZATION_ID: ' || l_amortization_id);
382:
383: /* updating loan header table */
384: l_loan_header_rec.loan_id := l_loan_id;
377:
378: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Old LAST_PAYMENT_NUMBER: ' || l_old_last_payment_number);
379: LogMessage(FND_LOG.LEVEL_STATEMENT, 'New LAST_PAYMENT_NUMBER: ' || l_last_payment_number);
380: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Old LAST_AMORTIZATION_ID: ' || l_old_amortization_id);
381: LogMessage(FND_LOG.LEVEL_STATEMENT, 'New LAST_AMORTIZATION_ID: ' || l_amortization_id);
382:
383: /* updating loan header table */
384: l_loan_header_rec.loan_id := l_loan_id;
385:
394: else
395: l_loan_header_rec.LAST_AMORTIZATION_ID := l_amortization_id;
396: end if;
397:
398: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating loan header...');
399:
400: LNS_LOAN_HEADER_PUB.UPDATE_LOAN(P_OBJECT_VERSION_NUMBER => l_version_number,
401: P_LOAN_HEADER_REC => l_loan_header_rec,
402: P_INIT_MSG_LIST => FND_API.G_FALSE,
403: X_RETURN_STATUS => l_return_status,
404: X_MSG_COUNT => l_msg_count,
405: X_MSG_DATA => l_msg_data);
406:
407: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
408:
409: IF l_return_status = 'S' THEN
410: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
411: ELSE
406:
407: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
408:
409: IF l_return_status = 'S' THEN
410: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
411: ELSE
412: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
413: FND_MSG_PUB.Add;
414: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
410: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
411: ELSE
412: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
413: FND_MSG_PUB.Add;
414: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
415: RAISE FND_API.G_EXC_ERROR;
416: END IF;
417:
418: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
414: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
415: RAISE FND_API.G_EXC_ERROR;
416: END IF;
417:
418: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
419:
420: END;
421:
422:
517: reversed_code = 'N';
518:
519: BEGIN
520:
521: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
522: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing paid off loans...');
523: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input parameters:');
524: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ID: ' || P_LOAN_ID);
525: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Payoff date: ' || P_PAYOFF_DATE);
518:
519: BEGIN
520:
521: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
522: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing paid off loans...');
523: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input parameters:');
524: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ID: ' || P_LOAN_ID);
525: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Payoff date: ' || P_PAYOFF_DATE);
526: -- Standard Start of API savepoint
519: BEGIN
520:
521: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
522: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing paid off loans...');
523: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input parameters:');
524: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ID: ' || P_LOAN_ID);
525: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Payoff date: ' || P_PAYOFF_DATE);
526: -- Standard Start of API savepoint
527: SAVEPOINT PROCESS_PAID_LOANS;
520:
521: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
522: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing paid off loans...');
523: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input parameters:');
524: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ID: ' || P_LOAN_ID);
525: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Payoff date: ' || P_PAYOFF_DATE);
526: -- Standard Start of API savepoint
527: SAVEPOINT PROCESS_PAID_LOANS;
528:
521: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
522: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing paid off loans...');
523: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input parameters:');
524: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ID: ' || P_LOAN_ID);
525: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Payoff date: ' || P_PAYOFF_DATE);
526: -- Standard Start of API savepoint
527: SAVEPOINT PROCESS_PAID_LOANS;
528:
529: -- Initialize message list IF p_init_msg_list is set to TRUE.
552: l_loan_number;
553: exit when paidoff_loans_cur%NOTFOUND;
554:
555: l_Count := l_Count + 1;
556: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Processing loan ' || l_loan_number || ' id ' || l_loan_id);
557:
558: BEGIN
559:
560: open validate_loan_cur(l_loan_id);
576: IF l_return_status <> 'S' THEN
577: RAISE FND_API.G_EXC_ERROR;
578: END IF;
579:
580: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating lns_fee_assignments...');
581: update lns_fee_assignments
582: set end_date_active = P_PAYOFF_DATE
583: where loan_id = l_loan_id
584: and (end_date_active is null OR end_date_active > P_PAYOFF_DATE);
581: update lns_fee_assignments
582: set end_date_active = P_PAYOFF_DATE
583: where loan_id = l_loan_id
584: and (end_date_active is null OR end_date_active > P_PAYOFF_DATE);
585: LogMessage(FND_LOG.LEVEL_STATEMENT, 'lns_fee_assignments is updated');
586:
587: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating lns_fee_schedules...');
588: update lns_fee_schedules
589: set billed_flag = 'Y'
583: where loan_id = l_loan_id
584: and (end_date_active is null OR end_date_active > P_PAYOFF_DATE);
585: LogMessage(FND_LOG.LEVEL_STATEMENT, 'lns_fee_assignments is updated');
586:
587: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating lns_fee_schedules...');
588: update lns_fee_schedules
589: set billed_flag = 'Y'
590: where loan_id = l_loan_id
591: and active_flag = 'Y'
590: where loan_id = l_loan_id
591: and active_flag = 'Y'
592: and billed_flag = 'N'
593: and object_version_number = object_version_number + 1;
594: LogMessage(FND_LOG.LEVEL_STATEMENT, 'lns_fee_schedules is updated');
595:
596: /* updating loan header table */
597: l_loan_header_rec.loan_id := l_loan_id;
598: l_loan_header_rec.LOAN_STATUS := 'PAIDOFF';
597: l_loan_header_rec.loan_id := l_loan_id;
598: l_loan_header_rec.LOAN_STATUS := 'PAIDOFF';
599: l_loan_header_rec.SECONDARY_STATUS := FND_API.G_MISS_CHAR;
600:
601: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating loan header info w following values:');
602: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_STATUS: ' || l_loan_header_rec.LOAN_STATUS);
603: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Secondary status: ' || l_loan_header_rec.SECONDARY_STATUS);
604:
605: LNS_LOAN_HEADER_PUB.UPDATE_LOAN(P_OBJECT_VERSION_NUMBER => l_version_number,
598: l_loan_header_rec.LOAN_STATUS := 'PAIDOFF';
599: l_loan_header_rec.SECONDARY_STATUS := FND_API.G_MISS_CHAR;
600:
601: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating loan header info w following values:');
602: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_STATUS: ' || l_loan_header_rec.LOAN_STATUS);
603: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Secondary status: ' || l_loan_header_rec.SECONDARY_STATUS);
604:
605: LNS_LOAN_HEADER_PUB.UPDATE_LOAN(P_OBJECT_VERSION_NUMBER => l_version_number,
606: P_LOAN_HEADER_REC => l_loan_header_rec,
599: l_loan_header_rec.SECONDARY_STATUS := FND_API.G_MISS_CHAR;
600:
601: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating loan header info w following values:');
602: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_STATUS: ' || l_loan_header_rec.LOAN_STATUS);
603: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Secondary status: ' || l_loan_header_rec.SECONDARY_STATUS);
604:
605: LNS_LOAN_HEADER_PUB.UPDATE_LOAN(P_OBJECT_VERSION_NUMBER => l_version_number,
606: P_LOAN_HEADER_REC => l_loan_header_rec,
607: P_INIT_MSG_LIST => FND_API.G_FALSE,
608: X_RETURN_STATUS => l_return_status,
609: X_MSG_COUNT => l_msg_count,
610: X_MSG_DATA => l_msg_data);
611:
612: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
613:
614: IF l_return_status = 'S' THEN
615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
616: ELSE
611:
612: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
613:
614: IF l_return_status = 'S' THEN
615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
616: ELSE
617: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
618: FND_MSG_PUB.Add;
619: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
616: ELSE
617: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
618: FND_MSG_PUB.Add;
619: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
620: RAISE FND_API.G_EXC_ERROR;
621: END IF;
622:
623: if P_COMMIT = FND_API.G_TRUE then
621: END IF;
622:
623: if P_COMMIT = FND_API.G_TRUE then
624: COMMIT WORK;
625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
626: end if;
627:
628: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully paid off loan ' || l_loan_number || ' id ' || l_loan_id);
629:
624: COMMIT WORK;
625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
626: end if;
627:
628: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully paid off loan ' || l_loan_number || ' id ' || l_loan_id);
629:
630: else
631:
632: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Cannot pay off loan ' || l_loan_number || '. Outstanding interest and fees amount = ' || l_remaining_amount);
628: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully paid off loan ' || l_loan_number || ' id ' || l_loan_id);
629:
630: else
631:
632: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Cannot pay off loan ' || l_loan_number || '. Outstanding interest and fees amount = ' || l_remaining_amount);
633:
634: end if;
635:
636: EXCEPTION
634: end if;
635:
636: EXCEPTION
637: WHEN OTHERS THEN
638: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Failed to process loan ' || l_loan_number);
639: END;
640:
641: END LOOP;
642:
641: END LOOP;
642:
643: close paidoff_loans_cur;
644:
645: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
646: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || l_Count || ' loan(s)');
647: l_end := sysdate;
648: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Process Paid Loans Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
649:
642:
643: close paidoff_loans_cur;
644:
645: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
646: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || l_Count || ' loan(s)');
647: l_end := sysdate;
648: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Process Paid Loans Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
649:
650: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
644:
645: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
646: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || l_Count || ' loan(s)');
647: l_end := sysdate;
648: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Process Paid Loans Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
649:
650: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
651:
652: EXCEPTION
646: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || l_Count || ' loan(s)');
647: l_end := sysdate;
648: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Process Paid Loans Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
649:
650: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
651:
652: EXCEPTION
653:
654: WHEN FND_API.G_EXC_ERROR THEN
653:
654: WHEN FND_API.G_EXC_ERROR THEN
655: ROLLBACK TO PROCESS_PAID_LOANS;
656: x_return_status := FND_API.G_RET_STS_ERROR;
657: logMessage(FND_LOG.LEVEL_ERROR, sqlerrm);
658:
659: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
660: ROLLBACK TO PROCESS_PAID_LOANS;
661: x_return_status := FND_API.G_RET_STS_ERROR;
658:
659: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
660: ROLLBACK TO PROCESS_PAID_LOANS;
661: x_return_status := FND_API.G_RET_STS_ERROR;
662: logMessage(FND_LOG.LEVEL_ERROR, sqlerrm);
663:
664: WHEN OTHERS THEN
665: ROLLBACK TO PROCESS_PAID_LOANS;
666: x_return_status := FND_API.G_RET_STS_ERROR;
663:
664: WHEN OTHERS THEN
665: ROLLBACK TO PROCESS_PAID_LOANS;
666: x_return_status := FND_API.G_RET_STS_ERROR;
667: logMessage(FND_LOG.LEVEL_ERROR, sqlerrm);
668:
669: END;
670:
671:
746: reversed_code = 'N') > 0);
747:
748: BEGIN
749:
750: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
751: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reactivating paid off loans...');
752:
753: /* init variables */
754: l_Count := 0;
747:
748: BEGIN
749:
750: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
751: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reactivating paid off loans...');
752:
753: /* init variables */
754: l_Count := 0;
755:
764: l_loan_number;
765: exit when paidoff_loans_cur%NOTFOUND;
766:
767: l_Count := l_Count + 1;
768: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ' || l_loan_number || ' id ' || l_loan_id);
769:
770: BEGIN
771: /* updating loan header table */
772: l_loan_header_rec.loan_id := l_loan_id;
771: /* updating loan header table */
772: l_loan_header_rec.loan_id := l_loan_id;
773: l_loan_header_rec.LOAN_STATUS := 'ACTIVE';
774:
775: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating loan header info w following values:');
776: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_STATUS: ' || l_loan_header_rec.LOAN_STATUS);
777:
778: LNS_LOAN_HEADER_PUB.UPDATE_LOAN(P_OBJECT_VERSION_NUMBER => l_version_number,
779: P_LOAN_HEADER_REC => l_loan_header_rec,
772: l_loan_header_rec.loan_id := l_loan_id;
773: l_loan_header_rec.LOAN_STATUS := 'ACTIVE';
774:
775: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating loan header info w following values:');
776: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_STATUS: ' || l_loan_header_rec.LOAN_STATUS);
777:
778: LNS_LOAN_HEADER_PUB.UPDATE_LOAN(P_OBJECT_VERSION_NUMBER => l_version_number,
779: P_LOAN_HEADER_REC => l_loan_header_rec,
780: P_INIT_MSG_LIST => FND_API.G_FALSE,
781: X_RETURN_STATUS => l_return_status,
782: X_MSG_COUNT => l_msg_count,
783: X_MSG_DATA => l_msg_data);
784:
785: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
786:
787: IF l_return_status = 'S' THEN
788: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully updated LNS_LOAN_HEADERS_ALL');
789: ELSE
784:
785: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
786:
787: IF l_return_status = 'S' THEN
788: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully updated LNS_LOAN_HEADERS_ALL');
789: ELSE
790: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
791: FND_MSG_PUB.Add;
792: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
788: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully updated LNS_LOAN_HEADERS_ALL');
789: ELSE
790: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
791: FND_MSG_PUB.Add;
792: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
793: RAISE FND_API.G_EXC_ERROR;
794: END IF;
795:
796: if P_COMMIT = FND_API.G_TRUE then
794: END IF;
795:
796: if P_COMMIT = FND_API.G_TRUE then
797: COMMIT WORK;
798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
799: end if;
800:
801: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully reactivated loan ' || l_loan_number || ' id ' || l_loan_id);
802:
797: COMMIT WORK;
798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
799: end if;
800:
801: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully reactivated loan ' || l_loan_number || ' id ' || l_loan_id);
802:
803: EXCEPTION
804: WHEN OTHERS THEN
805: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Failed to process loan ' || l_loan_number);
801: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully reactivated loan ' || l_loan_number || ' id ' || l_loan_id);
802:
803: EXCEPTION
804: WHEN OTHERS THEN
805: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Failed to process loan ' || l_loan_number);
806: END;
807:
808: END LOOP;
809:
808: END LOOP;
809:
810: close paidoff_loans_cur;
811:
812: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
813: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || l_Count || ' loan(s)');
814: l_end := sysdate;
815: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reactivate Loans Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
816:
809:
810: close paidoff_loans_cur;
811:
812: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
813: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || l_Count || ' loan(s)');
814: l_end := sysdate;
815: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reactivate Loans Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
816:
817: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
811:
812: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
813: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || l_Count || ' loan(s)');
814: l_end := sysdate;
815: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reactivate Loans Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
816:
817: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
818:
819: EXCEPTION
813: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || l_Count || ' loan(s)');
814: l_end := sysdate;
815: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reactivate Loans Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
816:
817: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
818:
819: EXCEPTION
820: WHEN OTHERS THEN
821: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Failed to reactivate paid off loans');
817: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
818:
819: EXCEPTION
820: WHEN OTHERS THEN
821: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Failed to reactivate paid off loans');
822:
823: END;
824:
825:
917:
918:
919: BEGIN
920:
921: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
922:
923: l_description := null;
924:
925: open rec_fund_desc_cur(g_org_id, P_CC_ID);
931: end if;
932:
933: return l_description;
934:
935: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
936:
937: EXCEPTION
938: WHEN OTHERS THEN
939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Failed to get receivable fund description');
935: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
936:
937: EXCEPTION
938: WHEN OTHERS THEN
939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Failed to get receivable fund description');
940: return l_description;
941:
942: END;
943:
1180: and site_use_code = 'BILL_TO'
1181: and status = 'A';
1182:
1183: BEGIN
1184: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
1185: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Preparing to call AR invoice api...');
1186:
1187: /* init variables */
1188: l_generate_trx_number := 'Y';
1181: and status = 'A';
1182:
1183: BEGIN
1184: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
1185: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Preparing to call AR invoice api...');
1186:
1187: /* init variables */
1188: l_generate_trx_number := 'Y';
1189: l_COPY_DOC_NUMBER_FLAG := 'N';
1198: open gen_trx_num_cur(l_batch_source_rec.batch_source_id);
1199: fetch gen_trx_num_cur into l_COPY_DOC_NUMBER_FLAG, l_AUTO_TRX_NUMBERING_FLAG;
1200: close gen_trx_num_cur;
1201:
1202: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_COPY_DOC_NUMBER_FLAG: ' || l_COPY_DOC_NUMBER_FLAG);
1203: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_AUTO_TRX_NUMBERING_FLAG: ' || l_AUTO_TRX_NUMBERING_FLAG);
1204:
1205: if l_COPY_DOC_NUMBER_FLAG = 'Y' or l_AUTO_TRX_NUMBERING_FLAG = 'Y' then
1206: l_generate_trx_number := 'N';
1199: fetch gen_trx_num_cur into l_COPY_DOC_NUMBER_FLAG, l_AUTO_TRX_NUMBERING_FLAG;
1200: close gen_trx_num_cur;
1201:
1202: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_COPY_DOC_NUMBER_FLAG: ' || l_COPY_DOC_NUMBER_FLAG);
1203: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_AUTO_TRX_NUMBERING_FLAG: ' || l_AUTO_TRX_NUMBERING_FLAG);
1204:
1205: if l_COPY_DOC_NUMBER_FLAG = 'Y' or l_AUTO_TRX_NUMBERING_FLAG = 'Y' then
1206: l_generate_trx_number := 'N';
1207: end if;
1205: if l_COPY_DOC_NUMBER_FLAG = 'Y' or l_AUTO_TRX_NUMBERING_FLAG = 'Y' then
1206: l_generate_trx_number := 'N';
1207: end if;
1208:
1209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_generate_trx_number: ' || l_generate_trx_number);
1210:
1211: /* query trx_type_id */
1212: open trx_type_cur(P_LOAN_REC.LOAN_ID);
1213: fetch trx_type_cur into l_prin_trx_type;
1212: open trx_type_cur(P_LOAN_REC.LOAN_ID);
1213: fetch trx_type_cur into l_prin_trx_type;
1214: close trx_type_cur;
1215:
1216: LogMessage(FND_LOG.LEVEL_STATEMENT, 'prin_trx_type: ' || l_prin_trx_type);
1217:
1218: /* query for site_use_id */
1219: open site_use_id_cur(P_LOAN_REC.BILL_TO_ADDRESS_ID);
1220: fetch site_use_id_cur into l_site_use_id;
1223: /* check exchange rate: if its User - pass exchange rate; otherwise - pass null */
1224: if P_LOAN_REC.EXCHANGE_RATE_TYPE is null or
1225: (P_LOAN_REC.EXCHANGE_RATE_TYPE is not null and P_LOAN_REC.EXCHANGE_RATE_TYPE <> 'User') then
1226:
1227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Setting exchange rate = null');
1228: P_LOAN_REC.EXCHANGE_RATE := null;
1229:
1230: end if;
1231:
1254: LENGTH(P_LOAN_REC.PAYMENT_APPLICATION_ORDER)-l_start_pos+1);
1255: l_exit_loop := 'Y';
1256: end if;
1257:
1258: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_next_line: ' || l_next_line);
1259:
1260: FOR l_Count4 IN 1..P_LINES_TBL.COUNT LOOP
1261:
1262: if P_LINES_TBL(l_Count4).LINE_TYPE = l_next_line and
1286: else
1287: l_trx_lines_tbl(l_Count1).description := l_line_desc;
1288: end if;
1289:
1290: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Line ' || l_Count1 || ' - ' || l_trx_lines_tbl(l_Count1).description);
1291:
1292: if g_multiple_lines = 'Y' then
1293:
1294: if l_Count3 = 1 then
1432: /* set trx_type_id */
1433:
1434: if g_int_trx_type_id is null then
1435:
1436: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Interest transaction type is not set.');
1437: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_INT_TRX_TYPE_IN_SYS_OPT');
1438: FND_MSG_PUB.Add;
1439: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
1440: RAISE FND_API.G_EXC_ERROR;
1435:
1436: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Interest transaction type is not set.');
1437: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_INT_TRX_TYPE_IN_SYS_OPT');
1438: FND_MSG_PUB.Add;
1439: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
1440: RAISE FND_API.G_EXC_ERROR;
1441:
1442: end if;
1443:
1499:
1500: /* set trx_type_id */
1501: if g_fee_trx_type_id is null then
1502:
1503: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Fee transaction type is not set.');
1504: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_FEE_TRX_TYPE_IN_SYS_OPT');
1505: FND_MSG_PUB.Add;
1506: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
1507: RAISE FND_API.G_EXC_ERROR;
1502:
1503: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Fee transaction type is not set.');
1504: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_FEE_TRX_TYPE_IN_SYS_OPT');
1505: FND_MSG_PUB.Add;
1506: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
1507: RAISE FND_API.G_EXC_ERROR;
1508:
1509: end if;
1510:
1874: end if;
1875:
1876: end if;
1877:
1878: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Will create invoice/line for ' || l_trx_lines_tbl(l_Count1).description || ' with amount ' || l_trx_lines_tbl(l_Count1).unit_selling_price);
1879:
1880: end if;
1881:
1882: END LOOP;
1891:
1892: end loop;
1893:
1894: if l_trx_header_tbl.COUNT = 0 then
1895: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No data to create invoices.');
1896: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_DATA_CR_INV');
1897: FND_MSG_PUB.Add;
1898: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
1899: RAISE FND_API.G_EXC_ERROR;
1894: if l_trx_header_tbl.COUNT = 0 then
1895: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No data to create invoices.');
1896: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_DATA_CR_INV');
1897: FND_MSG_PUB.Add;
1898: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
1899: RAISE FND_API.G_EXC_ERROR;
1900: end if;
1901:
1902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Creating AR invoices with following values:');
1898: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
1899: RAISE FND_API.G_EXC_ERROR;
1900: end if;
1901:
1902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Creating AR invoices with following values:');
1903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_batch_source_rec.batch_source_id: ' || l_batch_source_rec.batch_source_id);
1904:
1905: FOR l_Count3 IN 1..l_trx_header_tbl.COUNT LOOP
1906:
1899: RAISE FND_API.G_EXC_ERROR;
1900: end if;
1901:
1902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Creating AR invoices with following values:');
1903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_batch_source_rec.batch_source_id: ' || l_batch_source_rec.batch_source_id);
1904:
1905: FOR l_Count3 IN 1..l_trx_header_tbl.COUNT LOOP
1906:
1907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice header ' || l_Count3);
1903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_batch_source_rec.batch_source_id: ' || l_batch_source_rec.batch_source_id);
1904:
1905: FOR l_Count3 IN 1..l_trx_header_tbl.COUNT LOOP
1906:
1907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice header ' || l_Count3);
1908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_header_tbl(l_Count3).trx_header_id);
1909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_number: ' || l_trx_header_tbl(l_Count3).trx_number);
1910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_date: ' || l_trx_header_tbl(l_Count3).trx_date);
1911: --LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').billing_date: ' || l_trx_header_tbl(l_Count3).billing_date);
1904:
1905: FOR l_Count3 IN 1..l_trx_header_tbl.COUNT LOOP
1906:
1907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice header ' || l_Count3);
1908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_header_tbl(l_Count3).trx_header_id);
1909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_number: ' || l_trx_header_tbl(l_Count3).trx_number);
1910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_date: ' || l_trx_header_tbl(l_Count3).trx_date);
1911: --LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').billing_date: ' || l_trx_header_tbl(l_Count3).billing_date);
1912: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').gl_date: ' || l_trx_header_tbl(l_Count3).gl_date);
1905: FOR l_Count3 IN 1..l_trx_header_tbl.COUNT LOOP
1906:
1907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice header ' || l_Count3);
1908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_header_tbl(l_Count3).trx_header_id);
1909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_number: ' || l_trx_header_tbl(l_Count3).trx_number);
1910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_date: ' || l_trx_header_tbl(l_Count3).trx_date);
1911: --LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').billing_date: ' || l_trx_header_tbl(l_Count3).billing_date);
1912: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').gl_date: ' || l_trx_header_tbl(l_Count3).gl_date);
1913: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_currency: ' || l_trx_header_tbl(l_Count3).trx_currency);
1906:
1907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice header ' || l_Count3);
1908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_header_tbl(l_Count3).trx_header_id);
1909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_number: ' || l_trx_header_tbl(l_Count3).trx_number);
1910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_date: ' || l_trx_header_tbl(l_Count3).trx_date);
1911: --LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').billing_date: ' || l_trx_header_tbl(l_Count3).billing_date);
1912: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').gl_date: ' || l_trx_header_tbl(l_Count3).gl_date);
1913: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_currency: ' || l_trx_header_tbl(l_Count3).trx_currency);
1914: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate_type: ' || l_trx_header_tbl(l_Count3).exchange_rate_type);
1907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice header ' || l_Count3);
1908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_header_tbl(l_Count3).trx_header_id);
1909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_number: ' || l_trx_header_tbl(l_Count3).trx_number);
1910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_date: ' || l_trx_header_tbl(l_Count3).trx_date);
1911: --LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').billing_date: ' || l_trx_header_tbl(l_Count3).billing_date);
1912: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').gl_date: ' || l_trx_header_tbl(l_Count3).gl_date);
1913: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_currency: ' || l_trx_header_tbl(l_Count3).trx_currency);
1914: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate_type: ' || l_trx_header_tbl(l_Count3).exchange_rate_type);
1915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_date: ' || l_trx_header_tbl(l_Count3).exchange_date);
1908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_header_tbl(l_Count3).trx_header_id);
1909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_number: ' || l_trx_header_tbl(l_Count3).trx_number);
1910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_date: ' || l_trx_header_tbl(l_Count3).trx_date);
1911: --LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').billing_date: ' || l_trx_header_tbl(l_Count3).billing_date);
1912: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').gl_date: ' || l_trx_header_tbl(l_Count3).gl_date);
1913: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_currency: ' || l_trx_header_tbl(l_Count3).trx_currency);
1914: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate_type: ' || l_trx_header_tbl(l_Count3).exchange_rate_type);
1915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_date: ' || l_trx_header_tbl(l_Count3).exchange_date);
1916: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate: ' || l_trx_header_tbl(l_Count3).exchange_rate);
1909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_number: ' || l_trx_header_tbl(l_Count3).trx_number);
1910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_date: ' || l_trx_header_tbl(l_Count3).trx_date);
1911: --LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').billing_date: ' || l_trx_header_tbl(l_Count3).billing_date);
1912: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').gl_date: ' || l_trx_header_tbl(l_Count3).gl_date);
1913: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_currency: ' || l_trx_header_tbl(l_Count3).trx_currency);
1914: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate_type: ' || l_trx_header_tbl(l_Count3).exchange_rate_type);
1915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_date: ' || l_trx_header_tbl(l_Count3).exchange_date);
1916: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate: ' || l_trx_header_tbl(l_Count3).exchange_rate);
1917: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').cust_trx_type_id: ' || l_trx_header_tbl(l_Count3).cust_trx_type_id);
1910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_date: ' || l_trx_header_tbl(l_Count3).trx_date);
1911: --LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').billing_date: ' || l_trx_header_tbl(l_Count3).billing_date);
1912: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').gl_date: ' || l_trx_header_tbl(l_Count3).gl_date);
1913: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_currency: ' || l_trx_header_tbl(l_Count3).trx_currency);
1914: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate_type: ' || l_trx_header_tbl(l_Count3).exchange_rate_type);
1915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_date: ' || l_trx_header_tbl(l_Count3).exchange_date);
1916: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate: ' || l_trx_header_tbl(l_Count3).exchange_rate);
1917: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').cust_trx_type_id: ' || l_trx_header_tbl(l_Count3).cust_trx_type_id);
1918: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_customer_id: ' || l_trx_header_tbl(l_Count3).bill_to_customer_id);
1911: --LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').billing_date: ' || l_trx_header_tbl(l_Count3).billing_date);
1912: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').gl_date: ' || l_trx_header_tbl(l_Count3).gl_date);
1913: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_currency: ' || l_trx_header_tbl(l_Count3).trx_currency);
1914: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate_type: ' || l_trx_header_tbl(l_Count3).exchange_rate_type);
1915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_date: ' || l_trx_header_tbl(l_Count3).exchange_date);
1916: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate: ' || l_trx_header_tbl(l_Count3).exchange_rate);
1917: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').cust_trx_type_id: ' || l_trx_header_tbl(l_Count3).cust_trx_type_id);
1918: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_customer_id: ' || l_trx_header_tbl(l_Count3).bill_to_customer_id);
1919: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_address_id: ' || l_trx_header_tbl(l_Count3).bill_to_address_id);
1912: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').gl_date: ' || l_trx_header_tbl(l_Count3).gl_date);
1913: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_currency: ' || l_trx_header_tbl(l_Count3).trx_currency);
1914: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate_type: ' || l_trx_header_tbl(l_Count3).exchange_rate_type);
1915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_date: ' || l_trx_header_tbl(l_Count3).exchange_date);
1916: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate: ' || l_trx_header_tbl(l_Count3).exchange_rate);
1917: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').cust_trx_type_id: ' || l_trx_header_tbl(l_Count3).cust_trx_type_id);
1918: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_customer_id: ' || l_trx_header_tbl(l_Count3).bill_to_customer_id);
1919: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_address_id: ' || l_trx_header_tbl(l_Count3).bill_to_address_id);
1920: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_site_use_id: ' || l_trx_header_tbl(l_Count3).bill_to_site_use_id);
1913: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').trx_currency: ' || l_trx_header_tbl(l_Count3).trx_currency);
1914: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate_type: ' || l_trx_header_tbl(l_Count3).exchange_rate_type);
1915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_date: ' || l_trx_header_tbl(l_Count3).exchange_date);
1916: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate: ' || l_trx_header_tbl(l_Count3).exchange_rate);
1917: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').cust_trx_type_id: ' || l_trx_header_tbl(l_Count3).cust_trx_type_id);
1918: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_customer_id: ' || l_trx_header_tbl(l_Count3).bill_to_customer_id);
1919: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_address_id: ' || l_trx_header_tbl(l_Count3).bill_to_address_id);
1920: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_site_use_id: ' || l_trx_header_tbl(l_Count3).bill_to_site_use_id);
1921: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').term_id: ' || l_trx_header_tbl(l_Count3).term_id);
1914: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate_type: ' || l_trx_header_tbl(l_Count3).exchange_rate_type);
1915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_date: ' || l_trx_header_tbl(l_Count3).exchange_date);
1916: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate: ' || l_trx_header_tbl(l_Count3).exchange_rate);
1917: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').cust_trx_type_id: ' || l_trx_header_tbl(l_Count3).cust_trx_type_id);
1918: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_customer_id: ' || l_trx_header_tbl(l_Count3).bill_to_customer_id);
1919: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_address_id: ' || l_trx_header_tbl(l_Count3).bill_to_address_id);
1920: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_site_use_id: ' || l_trx_header_tbl(l_Count3).bill_to_site_use_id);
1921: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').term_id: ' || l_trx_header_tbl(l_Count3).term_id);
1922: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').finance_charges: ' || l_trx_header_tbl(l_Count3).finance_charges);
1915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_date: ' || l_trx_header_tbl(l_Count3).exchange_date);
1916: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate: ' || l_trx_header_tbl(l_Count3).exchange_rate);
1917: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').cust_trx_type_id: ' || l_trx_header_tbl(l_Count3).cust_trx_type_id);
1918: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_customer_id: ' || l_trx_header_tbl(l_Count3).bill_to_customer_id);
1919: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_address_id: ' || l_trx_header_tbl(l_Count3).bill_to_address_id);
1920: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_site_use_id: ' || l_trx_header_tbl(l_Count3).bill_to_site_use_id);
1921: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').term_id: ' || l_trx_header_tbl(l_Count3).term_id);
1922: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').finance_charges: ' || l_trx_header_tbl(l_Count3).finance_charges);
1923: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').status_trx: ' || l_trx_header_tbl(l_Count3).status_trx);
1916: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').exchange_rate: ' || l_trx_header_tbl(l_Count3).exchange_rate);
1917: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').cust_trx_type_id: ' || l_trx_header_tbl(l_Count3).cust_trx_type_id);
1918: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_customer_id: ' || l_trx_header_tbl(l_Count3).bill_to_customer_id);
1919: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_address_id: ' || l_trx_header_tbl(l_Count3).bill_to_address_id);
1920: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_site_use_id: ' || l_trx_header_tbl(l_Count3).bill_to_site_use_id);
1921: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').term_id: ' || l_trx_header_tbl(l_Count3).term_id);
1922: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').finance_charges: ' || l_trx_header_tbl(l_Count3).finance_charges);
1923: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').status_trx: ' || l_trx_header_tbl(l_Count3).status_trx);
1924: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').printing_option: ' || l_trx_header_tbl(l_Count3).printing_option);
1917: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').cust_trx_type_id: ' || l_trx_header_tbl(l_Count3).cust_trx_type_id);
1918: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_customer_id: ' || l_trx_header_tbl(l_Count3).bill_to_customer_id);
1919: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_address_id: ' || l_trx_header_tbl(l_Count3).bill_to_address_id);
1920: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_site_use_id: ' || l_trx_header_tbl(l_Count3).bill_to_site_use_id);
1921: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').term_id: ' || l_trx_header_tbl(l_Count3).term_id);
1922: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').finance_charges: ' || l_trx_header_tbl(l_Count3).finance_charges);
1923: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').status_trx: ' || l_trx_header_tbl(l_Count3).status_trx);
1924: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').printing_option: ' || l_trx_header_tbl(l_Count3).printing_option);
1925: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').interface_header_attribute1: ' || l_trx_header_tbl(l_Count3).interface_header_attribute1);
1918: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_customer_id: ' || l_trx_header_tbl(l_Count3).bill_to_customer_id);
1919: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_address_id: ' || l_trx_header_tbl(l_Count3).bill_to_address_id);
1920: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_site_use_id: ' || l_trx_header_tbl(l_Count3).bill_to_site_use_id);
1921: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').term_id: ' || l_trx_header_tbl(l_Count3).term_id);
1922: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').finance_charges: ' || l_trx_header_tbl(l_Count3).finance_charges);
1923: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').status_trx: ' || l_trx_header_tbl(l_Count3).status_trx);
1924: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').printing_option: ' || l_trx_header_tbl(l_Count3).printing_option);
1925: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').interface_header_attribute1: ' || l_trx_header_tbl(l_Count3).interface_header_attribute1);
1926: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_header_tbl(l_Count3).default_ussgl_transaction_code);
1919: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_address_id: ' || l_trx_header_tbl(l_Count3).bill_to_address_id);
1920: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_site_use_id: ' || l_trx_header_tbl(l_Count3).bill_to_site_use_id);
1921: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').term_id: ' || l_trx_header_tbl(l_Count3).term_id);
1922: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').finance_charges: ' || l_trx_header_tbl(l_Count3).finance_charges);
1923: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').status_trx: ' || l_trx_header_tbl(l_Count3).status_trx);
1924: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').printing_option: ' || l_trx_header_tbl(l_Count3).printing_option);
1925: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').interface_header_attribute1: ' || l_trx_header_tbl(l_Count3).interface_header_attribute1);
1926: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_header_tbl(l_Count3).default_ussgl_transaction_code);
1927: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').org_id: ' || l_trx_header_tbl(l_Count3).org_id);
1920: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').bill_to_site_use_id: ' || l_trx_header_tbl(l_Count3).bill_to_site_use_id);
1921: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').term_id: ' || l_trx_header_tbl(l_Count3).term_id);
1922: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').finance_charges: ' || l_trx_header_tbl(l_Count3).finance_charges);
1923: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').status_trx: ' || l_trx_header_tbl(l_Count3).status_trx);
1924: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').printing_option: ' || l_trx_header_tbl(l_Count3).printing_option);
1925: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').interface_header_attribute1: ' || l_trx_header_tbl(l_Count3).interface_header_attribute1);
1926: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_header_tbl(l_Count3).default_ussgl_transaction_code);
1927: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').org_id: ' || l_trx_header_tbl(l_Count3).org_id);
1928: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').legal_entity_id: ' || l_trx_header_tbl(l_Count3).legal_entity_id);
1921: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').term_id: ' || l_trx_header_tbl(l_Count3).term_id);
1922: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').finance_charges: ' || l_trx_header_tbl(l_Count3).finance_charges);
1923: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').status_trx: ' || l_trx_header_tbl(l_Count3).status_trx);
1924: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').printing_option: ' || l_trx_header_tbl(l_Count3).printing_option);
1925: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').interface_header_attribute1: ' || l_trx_header_tbl(l_Count3).interface_header_attribute1);
1926: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_header_tbl(l_Count3).default_ussgl_transaction_code);
1927: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').org_id: ' || l_trx_header_tbl(l_Count3).org_id);
1928: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').legal_entity_id: ' || l_trx_header_tbl(l_Count3).legal_entity_id);
1929:
1922: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').finance_charges: ' || l_trx_header_tbl(l_Count3).finance_charges);
1923: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').status_trx: ' || l_trx_header_tbl(l_Count3).status_trx);
1924: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').printing_option: ' || l_trx_header_tbl(l_Count3).printing_option);
1925: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').interface_header_attribute1: ' || l_trx_header_tbl(l_Count3).interface_header_attribute1);
1926: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_header_tbl(l_Count3).default_ussgl_transaction_code);
1927: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').org_id: ' || l_trx_header_tbl(l_Count3).org_id);
1928: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').legal_entity_id: ' || l_trx_header_tbl(l_Count3).legal_entity_id);
1929:
1930: END LOOP;
1923: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').status_trx: ' || l_trx_header_tbl(l_Count3).status_trx);
1924: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').printing_option: ' || l_trx_header_tbl(l_Count3).printing_option);
1925: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').interface_header_attribute1: ' || l_trx_header_tbl(l_Count3).interface_header_attribute1);
1926: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_header_tbl(l_Count3).default_ussgl_transaction_code);
1927: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').org_id: ' || l_trx_header_tbl(l_Count3).org_id);
1928: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').legal_entity_id: ' || l_trx_header_tbl(l_Count3).legal_entity_id);
1929:
1930: END LOOP;
1931:
1924: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').printing_option: ' || l_trx_header_tbl(l_Count3).printing_option);
1925: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').interface_header_attribute1: ' || l_trx_header_tbl(l_Count3).interface_header_attribute1);
1926: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_header_tbl(l_Count3).default_ussgl_transaction_code);
1927: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').org_id: ' || l_trx_header_tbl(l_Count3).org_id);
1928: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_header_tbl(' || l_Count3 || ').legal_entity_id: ' || l_trx_header_tbl(l_Count3).legal_entity_id);
1929:
1930: END LOOP;
1931:
1932: FOR l_Count3 IN 1..l_trx_lines_tbl.COUNT LOOP
1930: END LOOP;
1931:
1932: FOR l_Count3 IN 1..l_trx_lines_tbl.COUNT LOOP
1933:
1934: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice line ' || l_Count3);
1935: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_lines_tbl(l_Count3).trx_line_id);
1936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_lines_tbl(l_Count3).trx_header_id);
1937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_number: ' || l_trx_lines_tbl(l_Count3).line_number);
1938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').description: ' || l_trx_lines_tbl(l_Count3).description);
1931:
1932: FOR l_Count3 IN 1..l_trx_lines_tbl.COUNT LOOP
1933:
1934: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice line ' || l_Count3);
1935: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_lines_tbl(l_Count3).trx_line_id);
1936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_lines_tbl(l_Count3).trx_header_id);
1937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_number: ' || l_trx_lines_tbl(l_Count3).line_number);
1938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').description: ' || l_trx_lines_tbl(l_Count3).description);
1939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').quantity_invoiced: ' || l_trx_lines_tbl(l_Count3).quantity_invoiced);
1932: FOR l_Count3 IN 1..l_trx_lines_tbl.COUNT LOOP
1933:
1934: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice line ' || l_Count3);
1935: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_lines_tbl(l_Count3).trx_line_id);
1936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_lines_tbl(l_Count3).trx_header_id);
1937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_number: ' || l_trx_lines_tbl(l_Count3).line_number);
1938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').description: ' || l_trx_lines_tbl(l_Count3).description);
1939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').quantity_invoiced: ' || l_trx_lines_tbl(l_Count3).quantity_invoiced);
1940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').unit_selling_price: ' || l_trx_lines_tbl(l_Count3).unit_selling_price);
1933:
1934: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice line ' || l_Count3);
1935: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_lines_tbl(l_Count3).trx_line_id);
1936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_lines_tbl(l_Count3).trx_header_id);
1937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_number: ' || l_trx_lines_tbl(l_Count3).line_number);
1938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').description: ' || l_trx_lines_tbl(l_Count3).description);
1939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').quantity_invoiced: ' || l_trx_lines_tbl(l_Count3).quantity_invoiced);
1940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').unit_selling_price: ' || l_trx_lines_tbl(l_Count3).unit_selling_price);
1941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_type: ' || l_trx_lines_tbl(l_Count3).line_type);
1934: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoice line ' || l_Count3);
1935: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_lines_tbl(l_Count3).trx_line_id);
1936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_lines_tbl(l_Count3).trx_header_id);
1937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_number: ' || l_trx_lines_tbl(l_Count3).line_number);
1938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').description: ' || l_trx_lines_tbl(l_Count3).description);
1939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').quantity_invoiced: ' || l_trx_lines_tbl(l_Count3).quantity_invoiced);
1940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').unit_selling_price: ' || l_trx_lines_tbl(l_Count3).unit_selling_price);
1941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_type: ' || l_trx_lines_tbl(l_Count3).line_type);
1942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').interface_line_context: ' || l_trx_lines_tbl(l_Count3).interface_line_context);
1935: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_lines_tbl(l_Count3).trx_line_id);
1936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_lines_tbl(l_Count3).trx_header_id);
1937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_number: ' || l_trx_lines_tbl(l_Count3).line_number);
1938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').description: ' || l_trx_lines_tbl(l_Count3).description);
1939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').quantity_invoiced: ' || l_trx_lines_tbl(l_Count3).quantity_invoiced);
1940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').unit_selling_price: ' || l_trx_lines_tbl(l_Count3).unit_selling_price);
1941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_type: ' || l_trx_lines_tbl(l_Count3).line_type);
1942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').interface_line_context: ' || l_trx_lines_tbl(l_Count3).interface_line_context);
1943: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE1: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE1);
1936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_lines_tbl(l_Count3).trx_header_id);
1937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_number: ' || l_trx_lines_tbl(l_Count3).line_number);
1938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').description: ' || l_trx_lines_tbl(l_Count3).description);
1939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').quantity_invoiced: ' || l_trx_lines_tbl(l_Count3).quantity_invoiced);
1940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').unit_selling_price: ' || l_trx_lines_tbl(l_Count3).unit_selling_price);
1941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_type: ' || l_trx_lines_tbl(l_Count3).line_type);
1942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').interface_line_context: ' || l_trx_lines_tbl(l_Count3).interface_line_context);
1943: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE1: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE1);
1944: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE2: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE2);
1937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_number: ' || l_trx_lines_tbl(l_Count3).line_number);
1938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').description: ' || l_trx_lines_tbl(l_Count3).description);
1939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').quantity_invoiced: ' || l_trx_lines_tbl(l_Count3).quantity_invoiced);
1940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').unit_selling_price: ' || l_trx_lines_tbl(l_Count3).unit_selling_price);
1941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_type: ' || l_trx_lines_tbl(l_Count3).line_type);
1942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').interface_line_context: ' || l_trx_lines_tbl(l_Count3).interface_line_context);
1943: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE1: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE1);
1944: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE2: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE2);
1945: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE3: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE3);
1938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').description: ' || l_trx_lines_tbl(l_Count3).description);
1939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').quantity_invoiced: ' || l_trx_lines_tbl(l_Count3).quantity_invoiced);
1940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').unit_selling_price: ' || l_trx_lines_tbl(l_Count3).unit_selling_price);
1941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_type: ' || l_trx_lines_tbl(l_Count3).line_type);
1942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').interface_line_context: ' || l_trx_lines_tbl(l_Count3).interface_line_context);
1943: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE1: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE1);
1944: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE2: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE2);
1945: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE3: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE3);
1946: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE4: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE4);
1939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').quantity_invoiced: ' || l_trx_lines_tbl(l_Count3).quantity_invoiced);
1940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').unit_selling_price: ' || l_trx_lines_tbl(l_Count3).unit_selling_price);
1941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_type: ' || l_trx_lines_tbl(l_Count3).line_type);
1942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').interface_line_context: ' || l_trx_lines_tbl(l_Count3).interface_line_context);
1943: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE1: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE1);
1944: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE2: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE2);
1945: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE3: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE3);
1946: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE4: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE4);
1947: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE5: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE5);
1940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').unit_selling_price: ' || l_trx_lines_tbl(l_Count3).unit_selling_price);
1941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_type: ' || l_trx_lines_tbl(l_Count3).line_type);
1942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').interface_line_context: ' || l_trx_lines_tbl(l_Count3).interface_line_context);
1943: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE1: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE1);
1944: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE2: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE2);
1945: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE3: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE3);
1946: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE4: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE4);
1947: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE5: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE5);
1948: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE6: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE6);
1941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').line_type: ' || l_trx_lines_tbl(l_Count3).line_type);
1942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').interface_line_context: ' || l_trx_lines_tbl(l_Count3).interface_line_context);
1943: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE1: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE1);
1944: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE2: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE2);
1945: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE3: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE3);
1946: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE4: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE4);
1947: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE5: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE5);
1948: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE6: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE6);
1949: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE7: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE7);
1942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').interface_line_context: ' || l_trx_lines_tbl(l_Count3).interface_line_context);
1943: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE1: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE1);
1944: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE2: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE2);
1945: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE3: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE3);
1946: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE4: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE4);
1947: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE5: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE5);
1948: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE6: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE6);
1949: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE7: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE7);
1950: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_lines_tbl(l_Count3).default_ussgl_transaction_code);
1943: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE1: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE1);
1944: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE2: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE2);
1945: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE3: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE3);
1946: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE4: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE4);
1947: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE5: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE5);
1948: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE6: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE6);
1949: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE7: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE7);
1950: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_lines_tbl(l_Count3).default_ussgl_transaction_code);
1951:
1944: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE2: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE2);
1945: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE3: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE3);
1946: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE4: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE4);
1947: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE5: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE5);
1948: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE6: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE6);
1949: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE7: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE7);
1950: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_lines_tbl(l_Count3).default_ussgl_transaction_code);
1951:
1952: END LOOP;
1945: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE3: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE3);
1946: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE4: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE4);
1947: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE5: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE5);
1948: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE6: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE6);
1949: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE7: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE7);
1950: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_lines_tbl(l_Count3).default_ussgl_transaction_code);
1951:
1952: END LOOP;
1953:
1946: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE4: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE4);
1947: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE5: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE5);
1948: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE6: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE6);
1949: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').INTERFACE_LINE_ATTRIBUTE7: ' || l_trx_lines_tbl(l_Count3).INTERFACE_LINE_ATTRIBUTE7);
1950: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_lines_tbl(' || l_Count3 || ').default_ussgl_transaction_code: ' || l_trx_lines_tbl(l_Count3).default_ussgl_transaction_code);
1951:
1952: END LOOP;
1953:
1954: FOR l_Count3 IN 1..l_trx_dist_tbl.COUNT LOOP
1952: END LOOP;
1953:
1954: FOR l_Count3 IN 1..l_trx_dist_tbl.COUNT LOOP
1955:
1956: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Distribution ' || l_Count3);
1957: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_dist_id: ' || l_trx_dist_tbl(l_Count3).trx_dist_id);
1958: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_dist_tbl(l_Count3).trx_header_id);
1959: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_dist_tbl(l_Count3).trx_line_id);
1960: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').ACCOUNT_CLASS: ' || l_trx_dist_tbl(l_Count3).ACCOUNT_CLASS);
1953:
1954: FOR l_Count3 IN 1..l_trx_dist_tbl.COUNT LOOP
1955:
1956: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Distribution ' || l_Count3);
1957: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_dist_id: ' || l_trx_dist_tbl(l_Count3).trx_dist_id);
1958: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_dist_tbl(l_Count3).trx_header_id);
1959: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_dist_tbl(l_Count3).trx_line_id);
1960: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').ACCOUNT_CLASS: ' || l_trx_dist_tbl(l_Count3).ACCOUNT_CLASS);
1961: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').percent: ' || l_trx_dist_tbl(l_Count3).percent);
1954: FOR l_Count3 IN 1..l_trx_dist_tbl.COUNT LOOP
1955:
1956: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Distribution ' || l_Count3);
1957: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_dist_id: ' || l_trx_dist_tbl(l_Count3).trx_dist_id);
1958: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_dist_tbl(l_Count3).trx_header_id);
1959: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_dist_tbl(l_Count3).trx_line_id);
1960: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').ACCOUNT_CLASS: ' || l_trx_dist_tbl(l_Count3).ACCOUNT_CLASS);
1961: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').percent: ' || l_trx_dist_tbl(l_Count3).percent);
1962: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').CODE_COMBINATION_ID: ' || l_trx_dist_tbl(l_Count3).CODE_COMBINATION_ID);
1955:
1956: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Distribution ' || l_Count3);
1957: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_dist_id: ' || l_trx_dist_tbl(l_Count3).trx_dist_id);
1958: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_dist_tbl(l_Count3).trx_header_id);
1959: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_dist_tbl(l_Count3).trx_line_id);
1960: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').ACCOUNT_CLASS: ' || l_trx_dist_tbl(l_Count3).ACCOUNT_CLASS);
1961: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').percent: ' || l_trx_dist_tbl(l_Count3).percent);
1962: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').CODE_COMBINATION_ID: ' || l_trx_dist_tbl(l_Count3).CODE_COMBINATION_ID);
1963:
1956: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Distribution ' || l_Count3);
1957: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_dist_id: ' || l_trx_dist_tbl(l_Count3).trx_dist_id);
1958: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_dist_tbl(l_Count3).trx_header_id);
1959: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_dist_tbl(l_Count3).trx_line_id);
1960: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').ACCOUNT_CLASS: ' || l_trx_dist_tbl(l_Count3).ACCOUNT_CLASS);
1961: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').percent: ' || l_trx_dist_tbl(l_Count3).percent);
1962: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').CODE_COMBINATION_ID: ' || l_trx_dist_tbl(l_Count3).CODE_COMBINATION_ID);
1963:
1964: END LOOP;
1957: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_dist_id: ' || l_trx_dist_tbl(l_Count3).trx_dist_id);
1958: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_dist_tbl(l_Count3).trx_header_id);
1959: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_dist_tbl(l_Count3).trx_line_id);
1960: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').ACCOUNT_CLASS: ' || l_trx_dist_tbl(l_Count3).ACCOUNT_CLASS);
1961: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').percent: ' || l_trx_dist_tbl(l_Count3).percent);
1962: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').CODE_COMBINATION_ID: ' || l_trx_dist_tbl(l_Count3).CODE_COMBINATION_ID);
1963:
1964: END LOOP;
1965:
1958: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_header_id: ' || l_trx_dist_tbl(l_Count3).trx_header_id);
1959: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').trx_line_id: ' || l_trx_dist_tbl(l_Count3).trx_line_id);
1960: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').ACCOUNT_CLASS: ' || l_trx_dist_tbl(l_Count3).ACCOUNT_CLASS);
1961: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').percent: ' || l_trx_dist_tbl(l_Count3).percent);
1962: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_dist_tbl(' || l_Count3 || ').CODE_COMBINATION_ID: ' || l_trx_dist_tbl(l_Count3).CODE_COMBINATION_ID);
1963:
1964: END LOOP;
1965:
1966: -- fnd_global.apps_initialize(FND_GLOBAL.USER_ID, FND_GLOBAL.RESP_ID, FND_GLOBAL.RESP_APPL_ID, FND_GLOBAL.SECURITY_GROUP_ID);
1967:
1968: l_batch_id := null;
1969: ar_invoice_api_pub.g_api_outputs.batch_id := null;
1970:
1971: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Org info just before call to invoice api');
1972: l_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();
1973: LogMessage(FND_LOG.LEVEL_STATEMENT, 'MO_GLOBAL.GET_CURRENT_ORG_ID(): ' || l_org_id);
1974: l_org_status := MO_GLOBAL.check_valid_org(g_org_id);
1975: LogMessage(FND_LOG.LEVEL_STATEMENT, 'MO_GLOBAL.check_valid_org(' || g_org_id || '): ' || l_org_status);
1969: ar_invoice_api_pub.g_api_outputs.batch_id := null;
1970:
1971: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Org info just before call to invoice api');
1972: l_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();
1973: LogMessage(FND_LOG.LEVEL_STATEMENT, 'MO_GLOBAL.GET_CURRENT_ORG_ID(): ' || l_org_id);
1974: l_org_status := MO_GLOBAL.check_valid_org(g_org_id);
1975: LogMessage(FND_LOG.LEVEL_STATEMENT, 'MO_GLOBAL.check_valid_org(' || g_org_id || '): ' || l_org_status);
1976:
1977: BEGIN
1971: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Org info just before call to invoice api');
1972: l_org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();
1973: LogMessage(FND_LOG.LEVEL_STATEMENT, 'MO_GLOBAL.GET_CURRENT_ORG_ID(): ' || l_org_id);
1974: l_org_status := MO_GLOBAL.check_valid_org(g_org_id);
1975: LogMessage(FND_LOG.LEVEL_STATEMENT, 'MO_GLOBAL.check_valid_org(' || g_org_id || '): ' || l_org_status);
1976:
1977: BEGIN
1978:
1979: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Calling AR_INVOICE_API_PUB.CREATE_INVOICE...');
1975: LogMessage(FND_LOG.LEVEL_STATEMENT, 'MO_GLOBAL.check_valid_org(' || g_org_id || '): ' || l_org_status);
1976:
1977: BEGIN
1978:
1979: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Calling AR_INVOICE_API_PUB.CREATE_INVOICE...');
1980: l_start := sysdate;
1981: AR_INVOICE_API_PUB.CREATE_INVOICE(
1982: p_api_version => 1.0,
1983: p_init_msg_list => FND_API.G_TRUE,
1994: EXCEPTION
1995: WHEN OTHERS THEN
1996:
1997: l_end := sysdate;
1998: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Invoice API timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
1999: LogMessage(FND_LOG.LEVEL_ERROR, 'Invoice API throws exception!');
2000:
2001: /* query AR errors */
2002: l_ar_error_counter := 0;
1995: WHEN OTHERS THEN
1996:
1997: l_end := sysdate;
1998: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Invoice API timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
1999: LogMessage(FND_LOG.LEVEL_ERROR, 'Invoice API throws exception!');
2000:
2001: /* query AR errors */
2002: l_ar_error_counter := 0;
2003: open ar_invoice_err_cur;
2016: if l_ar_error_counter = 1 then
2017: FND_MESSAGE.SET_NAME('LNS', 'LNS_CR_INV_FAIL');
2018: FND_MESSAGE.SET_TOKEN('MSG', l_msg_data);
2019: FND_MSG_PUB.Add;
2020: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2021: end if;
2022:
2023: FND_MESSAGE.SET_NAME('LNS', 'LNS_CR_INV_ERROR');
2024: FND_MESSAGE.SET_TOKEN('ERR', l_error_message);
2025: FND_MESSAGE.SET_TOKEN('VALUE', l_invalid_value);
2026: FND_MESSAGE.SET_TOKEN('HEADER', l_trx_header_id);
2027: FND_MESSAGE.SET_TOKEN('LINE', l_trx_line_id);
2028: FND_MSG_PUB.Add;
2029: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2030:
2031: END LOOP;
2032:
2033: close ar_invoice_err_cur;
2032:
2033: close ar_invoice_err_cur;
2034:
2035: if l_ar_error_counter = 0 then
2036: LogMessage(FND_LOG.LEVEL_ERROR, 'No AR errors found.');
2037: end if;
2038:
2039: RAISE FND_API.G_EXC_ERROR;
2040: END;
2039: RAISE FND_API.G_EXC_ERROR;
2040: END;
2041:
2042: l_end := sysdate;
2043: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Invoice API timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
2044:
2045: l_batch_id := ar_invoice_api_pub.g_api_outputs.batch_id;
2046:
2047: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
2043: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Invoice API timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
2044:
2045: l_batch_id := ar_invoice_api_pub.g_api_outputs.batch_id;
2046:
2047: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
2048: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
2049: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_batch_id: ' || l_batch_id);
2050:
2051: l_ar_error_counter := 0;
2044:
2045: l_batch_id := ar_invoice_api_pub.g_api_outputs.batch_id;
2046:
2047: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
2048: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
2049: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_batch_id: ' || l_batch_id);
2050:
2051: l_ar_error_counter := 0;
2052: IF l_return_status = fnd_api.g_ret_sts_error OR l_return_status = fnd_api.g_ret_sts_unexp_error OR l_batch_id is null THEN
2045: l_batch_id := ar_invoice_api_pub.g_api_outputs.batch_id;
2046:
2047: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
2048: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
2049: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_batch_id: ' || l_batch_id);
2050:
2051: l_ar_error_counter := 0;
2052: IF l_return_status = fnd_api.g_ret_sts_error OR l_return_status = fnd_api.g_ret_sts_unexp_error OR l_batch_id is null THEN
2053:
2054: l_ar_error_counter := 1;
2055: FND_MESSAGE.SET_NAME('LNS', 'LNS_CR_INV_FAIL');
2056: FND_MESSAGE.SET_TOKEN('MSG', l_msg_data);
2057: FND_MSG_PUB.Add;
2058: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
2059:
2060: END IF;
2061:
2062: /* query AR errors */
2077: FND_MESSAGE.SET_TOKEN('VALUE', l_invalid_value);
2078: FND_MESSAGE.SET_TOKEN('HEADER', l_trx_header_id);
2079: FND_MESSAGE.SET_TOKEN('LINE', l_trx_line_id);
2080: FND_MSG_PUB.Add;
2081: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
2082:
2083: END LOOP;
2084:
2085: close ar_invoice_err_cur;
2086:
2087: if l_ar_error_counter > 0 then
2088: RAISE FND_API.G_EXC_ERROR;
2089: else
2090: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoices successfully created!') ;
2091: end if;
2092:
2093: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Fetching inserted ar invoice details...');
2094:
2089: else
2090: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Invoices successfully created!') ;
2091: end if;
2092:
2093: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Fetching inserted ar invoice details...');
2094:
2095: /* query for cust_trx_id(s) and payment_schedule_id(s) */
2096: open ar_invoices_cur(l_batch_id);
2097:
2110: l_payment_order;
2111: exit when ar_invoices_cur%NOTFOUND;
2112:
2113: l_Count2 := l_Count2+1;
2114: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Trx ' || l_Count2 ||'; trx_number: ' || l_trx_number);
2115: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || l_customer_trx_id);
2116: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || l_customer_trx_line_id);
2117: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || l_payment_schedule_id);
2118: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_due_date);
2111: exit when ar_invoices_cur%NOTFOUND;
2112:
2113: l_Count2 := l_Count2+1;
2114: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Trx ' || l_Count2 ||'; trx_number: ' || l_trx_number);
2115: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || l_customer_trx_id);
2116: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || l_customer_trx_line_id);
2117: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || l_payment_schedule_id);
2118: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_due_date);
2119: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2112:
2113: l_Count2 := l_Count2+1;
2114: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Trx ' || l_Count2 ||'; trx_number: ' || l_trx_number);
2115: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || l_customer_trx_id);
2116: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || l_customer_trx_line_id);
2117: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || l_payment_schedule_id);
2118: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_due_date);
2119: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2120: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2113: l_Count2 := l_Count2+1;
2114: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Trx ' || l_Count2 ||'; trx_number: ' || l_trx_number);
2115: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || l_customer_trx_id);
2116: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || l_customer_trx_line_id);
2117: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || l_payment_schedule_id);
2118: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_due_date);
2119: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2120: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2121: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_ORDER: ' || l_payment_order);
2114: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Trx ' || l_Count2 ||'; trx_number: ' || l_trx_number);
2115: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || l_customer_trx_id);
2116: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || l_customer_trx_line_id);
2117: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || l_payment_schedule_id);
2118: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_due_date);
2119: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2120: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2121: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_ORDER: ' || l_payment_order);
2122:
2115: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || l_customer_trx_id);
2116: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || l_customer_trx_line_id);
2117: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || l_payment_schedule_id);
2118: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_due_date);
2119: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2120: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2121: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_ORDER: ' || l_payment_order);
2122:
2123: if l_payment_schedule_id is null then
2116: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || l_customer_trx_line_id);
2117: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || l_payment_schedule_id);
2118: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_due_date);
2119: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2120: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2121: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_ORDER: ' || l_payment_order);
2122:
2123: if l_payment_schedule_id is null then
2124: LogMessage(FND_LOG.LEVEL_ERROR, 'WARNING: Invoice ' || l_trx_number || '(id ' || l_customer_trx_id || ') ' || l_line_type || ' is incomplete!');
2117: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || l_payment_schedule_id);
2118: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_due_date);
2119: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2120: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2121: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_ORDER: ' || l_payment_order);
2122:
2123: if l_payment_schedule_id is null then
2124: LogMessage(FND_LOG.LEVEL_ERROR, 'WARNING: Invoice ' || l_trx_number || '(id ' || l_customer_trx_id || ') ' || l_line_type || ' is incomplete!');
2125: end if;
2120: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2121: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_ORDER: ' || l_payment_order);
2122:
2123: if l_payment_schedule_id is null then
2124: LogMessage(FND_LOG.LEVEL_ERROR, 'WARNING: Invoice ' || l_trx_number || '(id ' || l_customer_trx_id || ') ' || l_line_type || ' is incomplete!');
2125: end if;
2126:
2127: if l_line_type = 'PRIN' then
2128: l_principal_trx_id := l_customer_trx_id;
2141: l_new_lines_tbl(l_Count3).PAYMENT_SCHEDULE_ID := l_payment_schedule_id;
2142: l_new_lines_tbl(l_Count3).CUSTOMER_TRX_LINE_ID := l_customer_trx_line_id;
2143:
2144: /* inserting new record into LNS_AMORTIZATION_LINES */
2145: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_LINES w following values:');
2146: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_SCHEDULE_ID: ' || P_LOAN_REC.NEXT_AMORTIZATION_ID);
2147: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
2148: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2149: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2142: l_new_lines_tbl(l_Count3).CUSTOMER_TRX_LINE_ID := l_customer_trx_line_id;
2143:
2144: /* inserting new record into LNS_AMORTIZATION_LINES */
2145: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_LINES w following values:');
2146: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_SCHEDULE_ID: ' || P_LOAN_REC.NEXT_AMORTIZATION_ID);
2147: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
2148: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2149: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2150: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_ID: ' || l_customer_trx_id);
2143:
2144: /* inserting new record into LNS_AMORTIZATION_LINES */
2145: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_LINES w following values:');
2146: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_SCHEDULE_ID: ' || P_LOAN_REC.NEXT_AMORTIZATION_ID);
2147: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
2148: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2149: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2150: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_ID: ' || l_customer_trx_id);
2151: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_LINE_ID: ' || l_customer_trx_line_id);
2144: /* inserting new record into LNS_AMORTIZATION_LINES */
2145: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_LINES w following values:');
2146: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_SCHEDULE_ID: ' || P_LOAN_REC.NEXT_AMORTIZATION_ID);
2147: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
2148: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2149: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2150: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_ID: ' || l_customer_trx_id);
2151: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_LINE_ID: ' || l_customer_trx_line_id);
2152: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_ID: ' || l_new_lines_tbl(l_Count3).LINE_REF_ID);
2145: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_LINES w following values:');
2146: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_SCHEDULE_ID: ' || P_LOAN_REC.NEXT_AMORTIZATION_ID);
2147: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
2148: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2149: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2150: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_ID: ' || l_customer_trx_id);
2151: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_LINE_ID: ' || l_customer_trx_line_id);
2152: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_ID: ' || l_new_lines_tbl(l_Count3).LINE_REF_ID);
2153: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_new_lines_tbl(l_Count3).FEE_SCHEDULE_ID);
2146: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_SCHEDULE_ID: ' || P_LOAN_REC.NEXT_AMORTIZATION_ID);
2147: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
2148: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2149: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2150: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_ID: ' || l_customer_trx_id);
2151: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_LINE_ID: ' || l_customer_trx_line_id);
2152: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_ID: ' || l_new_lines_tbl(l_Count3).LINE_REF_ID);
2153: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_new_lines_tbl(l_Count3).FEE_SCHEDULE_ID);
2154:
2147: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
2148: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2149: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2150: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_ID: ' || l_customer_trx_id);
2151: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_LINE_ID: ' || l_customer_trx_line_id);
2152: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_ID: ' || l_new_lines_tbl(l_Count3).LINE_REF_ID);
2153: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_new_lines_tbl(l_Count3).FEE_SCHEDULE_ID);
2154:
2155: l_amortization_line_id := null;
2148: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_line_type);
2149: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2150: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_ID: ' || l_customer_trx_id);
2151: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_LINE_ID: ' || l_customer_trx_line_id);
2152: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_ID: ' || l_new_lines_tbl(l_Count3).LINE_REF_ID);
2153: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_new_lines_tbl(l_Count3).FEE_SCHEDULE_ID);
2154:
2155: l_amortization_line_id := null;
2156: LNS_AMORTIZATION_LINES_PKG.Insert_Row(
2149: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMOUNT: ' || l_amount);
2150: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_ID: ' || l_customer_trx_id);
2151: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_TRX_LINE_ID: ' || l_customer_trx_line_id);
2152: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_ID: ' || l_new_lines_tbl(l_Count3).LINE_REF_ID);
2153: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_new_lines_tbl(l_Count3).FEE_SCHEDULE_ID);
2154:
2155: l_amortization_line_id := null;
2156: LNS_AMORTIZATION_LINES_PKG.Insert_Row(
2157: X_AMORTIZATION_LINE_ID => l_amortization_line_id
2164: ,P_FEE_ID => l_new_lines_tbl(l_Count3).LINE_REF_ID
2165: ,P_OBJECT_VERSION_NUMBER => 1
2166: ,P_FEE_SCHEDULE_ID => l_new_lines_tbl(l_Count3).FEE_SCHEDULE_ID);
2167:
2168: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_LINE_ID: ' || l_amortization_line_id);
2169: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully inserted record into LNS_AMORTIZATION_LINES');
2170:
2171: exit;
2172:
2165: ,P_OBJECT_VERSION_NUMBER => 1
2166: ,P_FEE_SCHEDULE_ID => l_new_lines_tbl(l_Count3).FEE_SCHEDULE_ID);
2167:
2168: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_LINE_ID: ' || l_amortization_line_id);
2169: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully inserted record into LNS_AMORTIZATION_LINES');
2170:
2171: exit;
2172:
2173: end if;
2178:
2179: close ar_invoices_cur;
2180:
2181: if l_Count2 = 0 then
2182: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No AR invoices fetched');
2183: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_INV_FETCHED');
2184: FND_MSG_PUB.Add;
2185: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2186: RAISE FND_API.G_EXC_ERROR;
2181: if l_Count2 = 0 then
2182: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No AR invoices fetched');
2183: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_INV_FETCHED');
2184: FND_MSG_PUB.Add;
2185: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2186: RAISE FND_API.G_EXC_ERROR;
2187: end if;
2188:
2189: /* Update interest and fee trxs with principal_trx_id as RELATED_CUSTOMER_TRX_ID */
2193:
2194: update RA_CUSTOMER_TRX_ALL set RELATED_CUSTOMER_TRX_ID = l_principal_trx_id where CUSTOMER_TRX_ID = l_interest_trx_id;
2195:
2196: if (sql%notfound) then
2197: -- LogMessage(FND_LOG.LEVEL_ERROR, 'ERROR: Update RA_CUSTOMER_TRX_ALL with RELATED_CUSTOMER_TRX_ID failed');
2198: FND_MESSAGE.SET_NAME('LNS', 'LNS_RELATE_INV_FAIL');
2199: FND_MSG_PUB.Add;
2200: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2201: RAISE FND_API.G_EXC_ERROR;
2196: if (sql%notfound) then
2197: -- LogMessage(FND_LOG.LEVEL_ERROR, 'ERROR: Update RA_CUSTOMER_TRX_ALL with RELATED_CUSTOMER_TRX_ID failed');
2198: FND_MESSAGE.SET_NAME('LNS', 'LNS_RELATE_INV_FAIL');
2199: FND_MSG_PUB.Add;
2200: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2201: RAISE FND_API.G_EXC_ERROR;
2202: end if;
2203:
2204: end if;
2207:
2208: update RA_CUSTOMER_TRX_ALL set RELATED_CUSTOMER_TRX_ID = l_principal_trx_id where CUSTOMER_TRX_ID = l_fee_trx_id;
2209:
2210: if (sql%notfound) then
2211: -- LogMessage(FND_LOG.LEVEL_ERROR, 'ERROR: Update RA_CUSTOMER_TRX_ALL with RELATED_CUSTOMER_TRX_ID failed');
2212: FND_MESSAGE.SET_NAME('LNS', 'LNS_RELATE_INV_FAIL');
2213: FND_MSG_PUB.Add;
2214: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2215: RAISE FND_API.G_EXC_ERROR;
2210: if (sql%notfound) then
2211: -- LogMessage(FND_LOG.LEVEL_ERROR, 'ERROR: Update RA_CUSTOMER_TRX_ALL with RELATED_CUSTOMER_TRX_ID failed');
2212: FND_MESSAGE.SET_NAME('LNS', 'LNS_RELATE_INV_FAIL');
2213: FND_MSG_PUB.Add;
2214: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2215: RAISE FND_API.G_EXC_ERROR;
2216: end if;
2217:
2218: end if;
2220: end if;
2221:
2222: /* Update amortization table with new principal, interest and fee ids */
2223:
2224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating LNS_AMORTIZATION_SCHEDS with new trx ids:');
2225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'principal_trx_id: ' || l_principal_trx_id);
2226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'interest_trx_id: ' || l_interest_trx_id);
2227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_id: ' || l_fee_trx_id);
2228:
2221:
2222: /* Update amortization table with new principal, interest and fee ids */
2223:
2224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating LNS_AMORTIZATION_SCHEDS with new trx ids:');
2225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'principal_trx_id: ' || l_principal_trx_id);
2226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'interest_trx_id: ' || l_interest_trx_id);
2227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_id: ' || l_fee_trx_id);
2228:
2229: LNS_AMORTIZATION_SCHEDS_PKG.Update_Row(
2222: /* Update amortization table with new principal, interest and fee ids */
2223:
2224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating LNS_AMORTIZATION_SCHEDS with new trx ids:');
2225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'principal_trx_id: ' || l_principal_trx_id);
2226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'interest_trx_id: ' || l_interest_trx_id);
2227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_id: ' || l_fee_trx_id);
2228:
2229: LNS_AMORTIZATION_SCHEDS_PKG.Update_Row(
2230: P_AMORTIZATION_SCHEDULE_ID => P_LOAN_REC.NEXT_AMORTIZATION_ID
2223:
2224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating LNS_AMORTIZATION_SCHEDS with new trx ids:');
2225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'principal_trx_id: ' || l_principal_trx_id);
2226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'interest_trx_id: ' || l_interest_trx_id);
2227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'fee_trx_id: ' || l_fee_trx_id);
2228:
2229: LNS_AMORTIZATION_SCHEDS_PKG.Update_Row(
2230: P_AMORTIZATION_SCHEDULE_ID => P_LOAN_REC.NEXT_AMORTIZATION_ID
2231: ,P_PRINCIPAL_TRX_ID => l_principal_trx_id
2231: ,P_PRINCIPAL_TRX_ID => l_principal_trx_id
2232: ,P_INTEREST_TRX_ID => l_interest_trx_id
2233: ,P_FEE_TRX_ID => l_fee_trx_id);
2234:
2235: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Update successfull!');
2236:
2237: P_LINES_TBL := l_new_lines_tbl;
2238: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
2239: END;
2234:
2235: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Update successfull!');
2236:
2237: P_LINES_TBL := l_new_lines_tbl;
2238: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
2239: END;
2240:
2241:
2242:
2308: from RA_BATCH_SOURCES
2309: where batch_source_id = P_BATCH_SOURCE_ID;
2310:
2311: BEGIN
2312: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
2313:
2314: l_Count1 := 0;
2315: FOR l_Count IN 1..P_REVERSE_TBL.count LOOP
2316:
2313:
2314: l_Count1 := 0;
2315: FOR l_Count IN 1..P_REVERSE_TBL.count LOOP
2316:
2317: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Trx Line #' || l_Count);
2318: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_NUMBER: ' || P_REVERSE_TBL(l_Count).TRX_NUMBER);
2319: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_ID);
2320: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || P_REVERSE_TBL(l_Count).PAYMENT_SCHEDULE_ID);
2321: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_LINE_ID);
2314: l_Count1 := 0;
2315: FOR l_Count IN 1..P_REVERSE_TBL.count LOOP
2316:
2317: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Trx Line #' || l_Count);
2318: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_NUMBER: ' || P_REVERSE_TBL(l_Count).TRX_NUMBER);
2319: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_ID);
2320: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || P_REVERSE_TBL(l_Count).PAYMENT_SCHEDULE_ID);
2321: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_LINE_ID);
2322: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || P_REVERSE_TBL(l_Count).LINE_TYPE);
2315: FOR l_Count IN 1..P_REVERSE_TBL.count LOOP
2316:
2317: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Trx Line #' || l_Count);
2318: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_NUMBER: ' || P_REVERSE_TBL(l_Count).TRX_NUMBER);
2319: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_ID);
2320: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || P_REVERSE_TBL(l_Count).PAYMENT_SCHEDULE_ID);
2321: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_LINE_ID);
2322: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || P_REVERSE_TBL(l_Count).LINE_TYPE);
2323: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_AMOUNT: ' || P_REVERSE_TBL(l_Count).TRX_AMOUNT);
2316:
2317: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Trx Line #' || l_Count);
2318: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_NUMBER: ' || P_REVERSE_TBL(l_Count).TRX_NUMBER);
2319: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_ID);
2320: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || P_REVERSE_TBL(l_Count).PAYMENT_SCHEDULE_ID);
2321: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_LINE_ID);
2322: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || P_REVERSE_TBL(l_Count).LINE_TYPE);
2323: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_AMOUNT: ' || P_REVERSE_TBL(l_Count).TRX_AMOUNT);
2324: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLIED_AMOUNT: ' || P_REVERSE_TBL(l_Count).APPLIED_AMOUNT);
2317: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Trx Line #' || l_Count);
2318: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_NUMBER: ' || P_REVERSE_TBL(l_Count).TRX_NUMBER);
2319: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_ID);
2320: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || P_REVERSE_TBL(l_Count).PAYMENT_SCHEDULE_ID);
2321: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_LINE_ID);
2322: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || P_REVERSE_TBL(l_Count).LINE_TYPE);
2323: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_AMOUNT: ' || P_REVERSE_TBL(l_Count).TRX_AMOUNT);
2324: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLIED_AMOUNT: ' || P_REVERSE_TBL(l_Count).APPLIED_AMOUNT);
2325: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || P_REVERSE_TBL(l_Count).ORG_ID);
2318: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_NUMBER: ' || P_REVERSE_TBL(l_Count).TRX_NUMBER);
2319: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_ID);
2320: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || P_REVERSE_TBL(l_Count).PAYMENT_SCHEDULE_ID);
2321: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_LINE_ID);
2322: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || P_REVERSE_TBL(l_Count).LINE_TYPE);
2323: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_AMOUNT: ' || P_REVERSE_TBL(l_Count).TRX_AMOUNT);
2324: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLIED_AMOUNT: ' || P_REVERSE_TBL(l_Count).APPLIED_AMOUNT);
2325: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || P_REVERSE_TBL(l_Count).ORG_ID);
2326:
2319: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_ID);
2320: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || P_REVERSE_TBL(l_Count).PAYMENT_SCHEDULE_ID);
2321: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_LINE_ID);
2322: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || P_REVERSE_TBL(l_Count).LINE_TYPE);
2323: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_AMOUNT: ' || P_REVERSE_TBL(l_Count).TRX_AMOUNT);
2324: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLIED_AMOUNT: ' || P_REVERSE_TBL(l_Count).APPLIED_AMOUNT);
2325: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || P_REVERSE_TBL(l_Count).ORG_ID);
2326:
2327: if P_REVERSE_TBL(l_Count).APPLIED_AMOUNT <> 0 then
2320: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_SCHEDULE_ID: ' || P_REVERSE_TBL(l_Count).PAYMENT_SCHEDULE_ID);
2321: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_LINE_ID);
2322: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || P_REVERSE_TBL(l_Count).LINE_TYPE);
2323: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_AMOUNT: ' || P_REVERSE_TBL(l_Count).TRX_AMOUNT);
2324: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLIED_AMOUNT: ' || P_REVERSE_TBL(l_Count).APPLIED_AMOUNT);
2325: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || P_REVERSE_TBL(l_Count).ORG_ID);
2326:
2327: if P_REVERSE_TBL(l_Count).APPLIED_AMOUNT <> 0 then
2328:
2321: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOMER_TRX_LINE_ID: ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_LINE_ID);
2322: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || P_REVERSE_TBL(l_Count).LINE_TYPE);
2323: LogMessage(FND_LOG.LEVEL_STATEMENT, 'TRX_AMOUNT: ' || P_REVERSE_TBL(l_Count).TRX_AMOUNT);
2324: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLIED_AMOUNT: ' || P_REVERSE_TBL(l_Count).APPLIED_AMOUNT);
2325: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || P_REVERSE_TBL(l_Count).ORG_ID);
2326:
2327: if P_REVERSE_TBL(l_Count).APPLIED_AMOUNT <> 0 then
2328:
2329: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Cannot reverse because there are some valid activities on trx.');
2325: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || P_REVERSE_TBL(l_Count).ORG_ID);
2326:
2327: if P_REVERSE_TBL(l_Count).APPLIED_AMOUNT <> 0 then
2328:
2329: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Cannot reverse because there are some valid activities on trx.');
2330: FND_MESSAGE.SET_NAME('LNS', 'LNS_CANT_REV_BILL');
2331: FND_MSG_PUB.Add;
2332: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2333: RAISE FND_API.G_EXC_ERROR;
2328:
2329: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Cannot reverse because there are some valid activities on trx.');
2330: FND_MESSAGE.SET_NAME('LNS', 'LNS_CANT_REV_BILL');
2331: FND_MSG_PUB.Add;
2332: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2333: RAISE FND_API.G_EXC_ERROR;
2334:
2335: end if;
2336:
2349: if l_trx_found = 'N' then
2350:
2351: l_Count1 := l_Count1 + 1;
2352: l_trx_tbl(l_Count1) := P_REVERSE_TBL(l_Count).CUSTOMER_TRX_ID;
2353: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Added trx ' || P_REVERSE_TBL(l_Count).CUSTOMER_TRX_ID || ' into unique trx table');
2354:
2355: end if;
2356:
2357: END LOOP;
2355: end if;
2356:
2357: END LOOP;
2358:
2359: LogMessage(FND_LOG.LEVEL_STATEMENT, '______________');
2360: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Total found ' || l_trx_tbl.count || ' unique trx(s)');
2361: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Total found ' || P_REVERSE_TBL.count || ' trx line(s)');
2362:
2363: if P_REVERSE_TBL.count = 0 or l_trx_tbl.count = 0 then
2356:
2357: END LOOP;
2358:
2359: LogMessage(FND_LOG.LEVEL_STATEMENT, '______________');
2360: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Total found ' || l_trx_tbl.count || ' unique trx(s)');
2361: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Total found ' || P_REVERSE_TBL.count || ' trx line(s)');
2362:
2363: if P_REVERSE_TBL.count = 0 or l_trx_tbl.count = 0 then
2364:
2357: END LOOP;
2358:
2359: LogMessage(FND_LOG.LEVEL_STATEMENT, '______________');
2360: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Total found ' || l_trx_tbl.count || ' unique trx(s)');
2361: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Total found ' || P_REVERSE_TBL.count || ' trx line(s)');
2362:
2363: if P_REVERSE_TBL.count = 0 or l_trx_tbl.count = 0 then
2364:
2365: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No AR transactions found to reverse.');
2361: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Total found ' || P_REVERSE_TBL.count || ' trx line(s)');
2362:
2363: if P_REVERSE_TBL.count = 0 or l_trx_tbl.count = 0 then
2364:
2365: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No AR transactions found to reverse.');
2366: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_REVERSE');
2367: FND_MSG_PUB.Add;
2368: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2369: RAISE FND_API.G_EXC_ERROR;
2364:
2365: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No AR transactions found to reverse.');
2366: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_REVERSE');
2367: FND_MSG_PUB.Add;
2368: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2369: RAISE FND_API.G_EXC_ERROR;
2370:
2371: end if;
2372:
2379:
2380: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_CM_BATCH');
2381: FND_MESSAGE.SET_TOKEN('BATCH', l_batch_source_name);
2382: FND_MSG_PUB.Add;
2383: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2384: RAISE FND_API.G_EXC_ERROR;
2385:
2386: end if;
2387:
2390: fetch cm_batch_source_cur into l_cm_batch_source_name;
2391: close cm_batch_source_cur;
2392:
2393: --l_batch_source_name := 'Credit Memo';
2394: LogMessage(FND_LOG.LEVEL_STATEMENT, 'batch_source_name: ' || l_batch_source_name);
2395: LogMessage(FND_LOG.LEVEL_STATEMENT, 'cm_batch_source_name: ' || l_cm_batch_source_name);
2396:
2397: /* looping thru table of unique trx(s) */
2398: FOR l_Count1 IN 1..l_trx_tbl.count LOOP
2391: close cm_batch_source_cur;
2392:
2393: --l_batch_source_name := 'Credit Memo';
2394: LogMessage(FND_LOG.LEVEL_STATEMENT, 'batch_source_name: ' || l_batch_source_name);
2395: LogMessage(FND_LOG.LEVEL_STATEMENT, 'cm_batch_source_name: ' || l_cm_batch_source_name);
2396:
2397: /* looping thru table of unique trx(s) */
2398: FOR l_Count1 IN 1..l_trx_tbl.count LOOP
2399:
2396:
2397: /* looping thru table of unique trx(s) */
2398: FOR l_Count1 IN 1..l_trx_tbl.count LOOP
2399:
2400: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Processing trx ' || l_trx_tbl(l_Count1));
2401:
2402: l_cm_line_tbl.delete;
2403: l_Count2 := 0;
2404: l_Count4 := 0;
2413: l_cm_line_tbl(l_Count2).extended_amount := -P_REVERSE_TBL(l_Count).TRX_AMOUNT;
2414: l_cm_line_tbl(l_Count2).quantity_credited := 1;
2415: l_cm_line_tbl(l_Count2).price := -P_REVERSE_TBL(l_Count).TRX_AMOUNT;
2416:
2417: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adding a line to cm_line_tbl:');
2418: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').customer_trx_line_id: ' || l_cm_line_tbl(l_Count2).customer_trx_line_id);
2419: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').extended_amount: ' || l_cm_line_tbl(l_Count2).extended_amount);
2420: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').quantity_credited: ' || l_cm_line_tbl(l_Count2).quantity_credited);
2421: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').price: ' || l_cm_line_tbl(l_Count2).price);
2414: l_cm_line_tbl(l_Count2).quantity_credited := 1;
2415: l_cm_line_tbl(l_Count2).price := -P_REVERSE_TBL(l_Count).TRX_AMOUNT;
2416:
2417: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adding a line to cm_line_tbl:');
2418: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').customer_trx_line_id: ' || l_cm_line_tbl(l_Count2).customer_trx_line_id);
2419: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').extended_amount: ' || l_cm_line_tbl(l_Count2).extended_amount);
2420: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').quantity_credited: ' || l_cm_line_tbl(l_Count2).quantity_credited);
2421: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').price: ' || l_cm_line_tbl(l_Count2).price);
2422:
2415: l_cm_line_tbl(l_Count2).price := -P_REVERSE_TBL(l_Count).TRX_AMOUNT;
2416:
2417: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adding a line to cm_line_tbl:');
2418: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').customer_trx_line_id: ' || l_cm_line_tbl(l_Count2).customer_trx_line_id);
2419: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').extended_amount: ' || l_cm_line_tbl(l_Count2).extended_amount);
2420: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').quantity_credited: ' || l_cm_line_tbl(l_Count2).quantity_credited);
2421: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').price: ' || l_cm_line_tbl(l_Count2).price);
2422:
2423: end if;
2416:
2417: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adding a line to cm_line_tbl:');
2418: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').customer_trx_line_id: ' || l_cm_line_tbl(l_Count2).customer_trx_line_id);
2419: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').extended_amount: ' || l_cm_line_tbl(l_Count2).extended_amount);
2420: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').quantity_credited: ' || l_cm_line_tbl(l_Count2).quantity_credited);
2421: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').price: ' || l_cm_line_tbl(l_Count2).price);
2422:
2423: end if;
2424:
2417: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adding a line to cm_line_tbl:');
2418: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').customer_trx_line_id: ' || l_cm_line_tbl(l_Count2).customer_trx_line_id);
2419: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').extended_amount: ' || l_cm_line_tbl(l_Count2).extended_amount);
2420: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').quantity_credited: ' || l_cm_line_tbl(l_Count2).quantity_credited);
2421: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_cm_line_tbl(' || l_Count2 || ').price: ' || l_cm_line_tbl(l_Count2).price);
2422:
2423: end if;
2424:
2425: END LOOP;
2423: end if;
2424:
2425: END LOOP;
2426:
2427: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling AR_CREDIT_MEMO_API_PUB.CREATE_REQUEST for trx ' || l_trx_tbl(l_Count1));
2428:
2429: AR_CREDIT_MEMO_API_PUB.CREATE_REQUEST(
2430: P_API_VERSION => 1.0,
2431: P_INIT_MSG_LIST => FND_API.G_TRUE,
2444: X_RETURN_STATUS => l_return_status,
2445: X_MSG_COUNT => l_msg_count,
2446: X_MSG_DATA => l_msg_data);
2447:
2448: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
2449: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
2450: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_request_id: ' || l_request_id);
2451:
2452: IF l_return_status = fnd_api.g_ret_sts_error OR l_return_status = fnd_api.g_ret_sts_unexp_error OR
2445: X_MSG_COUNT => l_msg_count,
2446: X_MSG_DATA => l_msg_data);
2447:
2448: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
2449: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
2450: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_request_id: ' || l_request_id);
2451:
2452: IF l_return_status = fnd_api.g_ret_sts_error OR l_return_status = fnd_api.g_ret_sts_unexp_error OR
2453: l_request_id is null OR l_request_id = -1
2446: X_MSG_DATA => l_msg_data);
2447:
2448: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
2449: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
2450: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_request_id: ' || l_request_id);
2451:
2452: IF l_return_status = fnd_api.g_ret_sts_error OR l_return_status = fnd_api.g_ret_sts_unexp_error OR
2453: l_request_id is null OR l_request_id = -1
2454:
2453: l_request_id is null OR l_request_id = -1
2454:
2455: THEN
2456:
2457: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: AR_CREDIT_MEMO_API_PUB.CREATE_REQUEST raised unexpected error: ' || substr(l_msg_data,1,225));
2458: FND_MESSAGE.SET_NAME('LNS', 'LNS_CR_CM_FAIL');
2459: FND_MESSAGE.SET_TOKEN('BATCH', l_cm_batch_source_name);
2460: FND_MSG_PUB.Add;
2461: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2457: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: AR_CREDIT_MEMO_API_PUB.CREATE_REQUEST raised unexpected error: ' || substr(l_msg_data,1,225));
2458: FND_MESSAGE.SET_NAME('LNS', 'LNS_CR_CM_FAIL');
2459: FND_MESSAGE.SET_TOKEN('BATCH', l_cm_batch_source_name);
2460: FND_MSG_PUB.Add;
2461: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2462: RAISE FND_API.G_EXC_ERROR;
2463:
2464: ELSE
2465:
2466: if l_msg_data is not null then
2467: g_cr_return_status := 'WARNING';
2468: end if;
2469:
2470: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CM successfully created!') ;
2471:
2472:
2473: END IF;
2474:
2473: END IF;
2474:
2475: END LOOP;
2476:
2477: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
2478: END;
2479:
2480:
2481:
2537: and class = 'PMT';
2538:
2539: BEGIN
2540:
2541: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
2542: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Applying cash receipt ' || P_CASH_RECEIPT_ID);
2543:
2544: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input data:');
2545: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_CASH_RECEIPT_ID: ' || P_CASH_RECEIPT_ID);
2538:
2539: BEGIN
2540:
2541: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
2542: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Applying cash receipt ' || P_CASH_RECEIPT_ID);
2543:
2544: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input data:');
2545: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_CASH_RECEIPT_ID: ' || P_CASH_RECEIPT_ID);
2546: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_ID: ' || P_TRX_ID);
2540:
2541: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
2542: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Applying cash receipt ' || P_CASH_RECEIPT_ID);
2543:
2544: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input data:');
2545: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_CASH_RECEIPT_ID: ' || P_CASH_RECEIPT_ID);
2546: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_ID: ' || P_TRX_ID);
2547: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_LINE_ID: ' || P_TRX_LINE_ID);
2548: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_APPLY_AMOUNT: ' || P_APPLY_AMOUNT);
2541: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
2542: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Applying cash receipt ' || P_CASH_RECEIPT_ID);
2543:
2544: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input data:');
2545: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_CASH_RECEIPT_ID: ' || P_CASH_RECEIPT_ID);
2546: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_ID: ' || P_TRX_ID);
2547: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_LINE_ID: ' || P_TRX_LINE_ID);
2548: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_APPLY_AMOUNT: ' || P_APPLY_AMOUNT);
2549:
2542: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Applying cash receipt ' || P_CASH_RECEIPT_ID);
2543:
2544: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input data:');
2545: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_CASH_RECEIPT_ID: ' || P_CASH_RECEIPT_ID);
2546: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_ID: ' || P_TRX_ID);
2547: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_LINE_ID: ' || P_TRX_LINE_ID);
2548: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_APPLY_AMOUNT: ' || P_APPLY_AMOUNT);
2549:
2550: /* verify input data */
2543:
2544: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input data:');
2545: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_CASH_RECEIPT_ID: ' || P_CASH_RECEIPT_ID);
2546: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_ID: ' || P_TRX_ID);
2547: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_LINE_ID: ' || P_TRX_LINE_ID);
2548: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_APPLY_AMOUNT: ' || P_APPLY_AMOUNT);
2549:
2550: /* verify input data */
2551:
2544: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input data:');
2545: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_CASH_RECEIPT_ID: ' || P_CASH_RECEIPT_ID);
2546: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_ID: ' || P_TRX_ID);
2547: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_TRX_LINE_ID: ' || P_TRX_LINE_ID);
2548: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_APPLY_AMOUNT: ' || P_APPLY_AMOUNT);
2549:
2550: /* verify input data */
2551:
2552: if P_CASH_RECEIPT_ID is null then
2549:
2550: /* verify input data */
2551:
2552: if P_CASH_RECEIPT_ID is null then
2553: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Cash Receipt ID is not set.');
2554: FND_MESSAGE.SET_NAME('LNS', 'LNS_CR_NOT_SET');
2555: FND_MSG_PUB.Add;
2556: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2557: RAISE FND_API.G_EXC_ERROR;
2552: if P_CASH_RECEIPT_ID is null then
2553: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Cash Receipt ID is not set.');
2554: FND_MESSAGE.SET_NAME('LNS', 'LNS_CR_NOT_SET');
2555: FND_MSG_PUB.Add;
2556: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2557: RAISE FND_API.G_EXC_ERROR;
2558: end if;
2559:
2560: if P_TRX_ID is null then
2557: RAISE FND_API.G_EXC_ERROR;
2558: end if;
2559:
2560: if P_TRX_ID is null then
2561: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Trx ID is not set.');
2562: FND_MESSAGE.SET_NAME('LNS', 'LNS_TRX_NOT_SET');
2563: FND_MSG_PUB.Add;
2564: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2565: RAISE FND_API.G_EXC_ERROR;
2560: if P_TRX_ID is null then
2561: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Trx ID is not set.');
2562: FND_MESSAGE.SET_NAME('LNS', 'LNS_TRX_NOT_SET');
2563: FND_MSG_PUB.Add;
2564: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2565: RAISE FND_API.G_EXC_ERROR;
2566: end if;
2567:
2568: if P_TRX_LINE_ID is null then
2565: RAISE FND_API.G_EXC_ERROR;
2566: end if;
2567:
2568: if P_TRX_LINE_ID is null then
2569: -- LogMessage(FND_LOG.LEVEL_ERROR, 'ERROR: Trx Line ID is not set.');
2570: FND_MESSAGE.SET_NAME('LNS', 'LNS_TRX_LINE_NOT_SET');
2571: FND_MSG_PUB.Add;
2572: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2573: RAISE FND_API.G_EXC_ERROR;
2568: if P_TRX_LINE_ID is null then
2569: -- LogMessage(FND_LOG.LEVEL_ERROR, 'ERROR: Trx Line ID is not set.');
2570: FND_MESSAGE.SET_NAME('LNS', 'LNS_TRX_LINE_NOT_SET');
2571: FND_MSG_PUB.Add;
2572: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2573: RAISE FND_API.G_EXC_ERROR;
2574: end if;
2575:
2576: if P_APPLY_AMOUNT is null or P_APPLY_AMOUNT <= 0 then
2573: RAISE FND_API.G_EXC_ERROR;
2574: end if;
2575:
2576: if P_APPLY_AMOUNT is null or P_APPLY_AMOUNT <= 0 then
2577: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Apply Amount is not set.');
2578: FND_MESSAGE.SET_NAME('LNS', 'LNS_AMOUNT_NOT_SET');
2579: FND_MSG_PUB.Add;
2580: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2581: RAISE FND_API.G_EXC_ERROR;
2576: if P_APPLY_AMOUNT is null or P_APPLY_AMOUNT <= 0 then
2577: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Apply Amount is not set.');
2578: FND_MESSAGE.SET_NAME('LNS', 'LNS_AMOUNT_NOT_SET');
2579: FND_MSG_PUB.Add;
2580: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2581: RAISE FND_API.G_EXC_ERROR;
2582: end if;
2583:
2584: /* verifying requested qpply amount */
2586: open receipt_cur(P_CASH_RECEIPT_ID);
2587: fetch receipt_cur into l_receipt_rem_amount;
2588:
2589: if receipt_cur%NOTFOUND then
2590: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No receipt found to apply.');
2591: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_CR_FOUND');
2592: FND_MSG_PUB.Add;
2593: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2594: RAISE FND_API.G_EXC_ERROR;
2589: if receipt_cur%NOTFOUND then
2590: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No receipt found to apply.');
2591: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_CR_FOUND');
2592: FND_MSG_PUB.Add;
2593: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2594: RAISE FND_API.G_EXC_ERROR;
2595: end if;
2596:
2597: close receipt_cur;
2596:
2597: close receipt_cur;
2598:
2599: if l_receipt_rem_amount < P_APPLY_AMOUNT then
2600: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: The receipt does not have enough funds to apply requested amount.');
2601: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_CR_FUNDS');
2602: FND_MSG_PUB.Add;
2603: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2604: RAISE FND_API.G_EXC_ERROR;
2599: if l_receipt_rem_amount < P_APPLY_AMOUNT then
2600: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: The receipt does not have enough funds to apply requested amount.');
2601: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_CR_FUNDS');
2602: FND_MSG_PUB.Add;
2603: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2604: RAISE FND_API.G_EXC_ERROR;
2605: end if;
2606:
2607: /* Applying cash receipt to invoice */
2617: p_customer_trx_id => P_TRX_ID,
2618: p_amount_applied => P_APPLY_AMOUNT,
2619: p_customer_trx_line_id => P_TRX_LINE_ID);
2620: */
2621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
2622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
2623:
2624: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2625:
2618: p_amount_applied => P_APPLY_AMOUNT,
2619: p_customer_trx_line_id => P_TRX_LINE_ID);
2620: */
2621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
2622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
2623:
2624: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2625:
2626: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: AR_RECEIPT_API_PUB.APPLY raised error: ' || substr(l_msg_data,1,225));
2622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
2623:
2624: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2625:
2626: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: AR_RECEIPT_API_PUB.APPLY raised error: ' || substr(l_msg_data,1,225));
2627: FND_MESSAGE.SET_NAME('LNS', 'LNS_APPL_CR_FAIL');
2628: FND_MSG_PUB.Add;
2629: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2630: RAISE FND_API.G_EXC_ERROR;
2625:
2626: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: AR_RECEIPT_API_PUB.APPLY raised error: ' || substr(l_msg_data,1,225));
2627: FND_MESSAGE.SET_NAME('LNS', 'LNS_APPL_CR_FAIL');
2628: FND_MSG_PUB.Add;
2629: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2630: RAISE FND_API.G_EXC_ERROR;
2631:
2632: ELSE
2633: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully applied cash receipt to trx ' || P_TRX_ID || ' line ' || P_TRX_LINE_ID);
2629: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
2630: RAISE FND_API.G_EXC_ERROR;
2631:
2632: ELSE
2633: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully applied cash receipt to trx ' || P_TRX_ID || ' line ' || P_TRX_LINE_ID);
2634: END IF;
2635:
2636: -- END OF BODY OF API
2637:
2634: END IF;
2635:
2636: -- END OF BODY OF API
2637:
2638: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
2639:
2640: EXCEPTION
2641: WHEN OTHERS THEN
2642: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Failed to apply cash receipt to trx ' || P_TRX_ID || ' line ' || P_TRX_LINE_ID);
2638: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
2639:
2640: EXCEPTION
2641: WHEN OTHERS THEN
2642: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Failed to apply cash receipt to trx ' || P_TRX_ID || ' line ' || P_TRX_LINE_ID);
2643:
2644: END;
2645:
2646:
2721:
2722:
2723: BEGIN
2724:
2725: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
2726: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adjusting invoice...');
2727:
2728: l_adj_rec.type := 'INVOICE'; --P_TYPE; --karamach Bug5092620
2729: l_adj_rec.payment_schedule_id := P_PAYMENT_SCHEDULE_ID;
2722:
2723: BEGIN
2724:
2725: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
2726: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adjusting invoice...');
2727:
2728: l_adj_rec.type := 'INVOICE'; --P_TYPE; --karamach Bug5092620
2729: l_adj_rec.payment_schedule_id := P_PAYMENT_SCHEDULE_ID;
2730: l_adj_rec.RECEIVABLES_TRX_ID := P_RECEIVABLES_TRX_ID;
2738: l_adj_rec.reason_code := P_REASON_CODE;
2739: l_adj_rec.comments := P_COMMENTS;
2740: l_adj_rec.org_id := P_ORG_ID;
2741:
2742: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Sending following data to adjustment api:');
2743: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.type: ' || l_adj_rec.type);
2744: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.payment_schedule_id: ' || l_adj_rec.payment_schedule_id);
2745: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.RECEIVABLES_TRX_ID: ' || l_adj_rec.RECEIVABLES_TRX_ID);
2746: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.apply_date: ' || l_adj_rec.apply_date);
2739: l_adj_rec.comments := P_COMMENTS;
2740: l_adj_rec.org_id := P_ORG_ID;
2741:
2742: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Sending following data to adjustment api:');
2743: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.type: ' || l_adj_rec.type);
2744: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.payment_schedule_id: ' || l_adj_rec.payment_schedule_id);
2745: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.RECEIVABLES_TRX_ID: ' || l_adj_rec.RECEIVABLES_TRX_ID);
2746: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.apply_date: ' || l_adj_rec.apply_date);
2747: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.gl_date: ' || l_adj_rec.gl_date);
2740: l_adj_rec.org_id := P_ORG_ID;
2741:
2742: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Sending following data to adjustment api:');
2743: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.type: ' || l_adj_rec.type);
2744: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.payment_schedule_id: ' || l_adj_rec.payment_schedule_id);
2745: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.RECEIVABLES_TRX_ID: ' || l_adj_rec.RECEIVABLES_TRX_ID);
2746: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.apply_date: ' || l_adj_rec.apply_date);
2747: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.gl_date: ' || l_adj_rec.gl_date);
2748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.created_from: ' || l_adj_rec.created_from);
2741:
2742: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Sending following data to adjustment api:');
2743: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.type: ' || l_adj_rec.type);
2744: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.payment_schedule_id: ' || l_adj_rec.payment_schedule_id);
2745: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.RECEIVABLES_TRX_ID: ' || l_adj_rec.RECEIVABLES_TRX_ID);
2746: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.apply_date: ' || l_adj_rec.apply_date);
2747: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.gl_date: ' || l_adj_rec.gl_date);
2748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.created_from: ' || l_adj_rec.created_from);
2749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.amount: ' || l_adj_rec.amount);
2742: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Sending following data to adjustment api:');
2743: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.type: ' || l_adj_rec.type);
2744: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.payment_schedule_id: ' || l_adj_rec.payment_schedule_id);
2745: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.RECEIVABLES_TRX_ID: ' || l_adj_rec.RECEIVABLES_TRX_ID);
2746: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.apply_date: ' || l_adj_rec.apply_date);
2747: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.gl_date: ' || l_adj_rec.gl_date);
2748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.created_from: ' || l_adj_rec.created_from);
2749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.amount: ' || l_adj_rec.amount);
2750: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.customer_trx_line_id: ' || l_adj_rec.customer_trx_line_id);
2743: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.type: ' || l_adj_rec.type);
2744: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.payment_schedule_id: ' || l_adj_rec.payment_schedule_id);
2745: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.RECEIVABLES_TRX_ID: ' || l_adj_rec.RECEIVABLES_TRX_ID);
2746: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.apply_date: ' || l_adj_rec.apply_date);
2747: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.gl_date: ' || l_adj_rec.gl_date);
2748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.created_from: ' || l_adj_rec.created_from);
2749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.amount: ' || l_adj_rec.amount);
2750: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.customer_trx_line_id: ' || l_adj_rec.customer_trx_line_id);
2751: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.code_combination_id: ' || l_adj_rec.code_combination_id);
2744: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.payment_schedule_id: ' || l_adj_rec.payment_schedule_id);
2745: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.RECEIVABLES_TRX_ID: ' || l_adj_rec.RECEIVABLES_TRX_ID);
2746: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.apply_date: ' || l_adj_rec.apply_date);
2747: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.gl_date: ' || l_adj_rec.gl_date);
2748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.created_from: ' || l_adj_rec.created_from);
2749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.amount: ' || l_adj_rec.amount);
2750: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.customer_trx_line_id: ' || l_adj_rec.customer_trx_line_id);
2751: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.code_combination_id: ' || l_adj_rec.code_combination_id);
2752: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.ussgl_transaction_code: ' || l_adj_rec.ussgl_transaction_code);
2745: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.RECEIVABLES_TRX_ID: ' || l_adj_rec.RECEIVABLES_TRX_ID);
2746: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.apply_date: ' || l_adj_rec.apply_date);
2747: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.gl_date: ' || l_adj_rec.gl_date);
2748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.created_from: ' || l_adj_rec.created_from);
2749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.amount: ' || l_adj_rec.amount);
2750: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.customer_trx_line_id: ' || l_adj_rec.customer_trx_line_id);
2751: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.code_combination_id: ' || l_adj_rec.code_combination_id);
2752: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.ussgl_transaction_code: ' || l_adj_rec.ussgl_transaction_code);
2753: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.reason_code: ' || l_adj_rec.reason_code);
2746: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.apply_date: ' || l_adj_rec.apply_date);
2747: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.gl_date: ' || l_adj_rec.gl_date);
2748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.created_from: ' || l_adj_rec.created_from);
2749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.amount: ' || l_adj_rec.amount);
2750: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.customer_trx_line_id: ' || l_adj_rec.customer_trx_line_id);
2751: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.code_combination_id: ' || l_adj_rec.code_combination_id);
2752: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.ussgl_transaction_code: ' || l_adj_rec.ussgl_transaction_code);
2753: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.reason_code: ' || l_adj_rec.reason_code);
2754: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.comments: ' || l_adj_rec.comments);
2747: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.gl_date: ' || l_adj_rec.gl_date);
2748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.created_from: ' || l_adj_rec.created_from);
2749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.amount: ' || l_adj_rec.amount);
2750: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.customer_trx_line_id: ' || l_adj_rec.customer_trx_line_id);
2751: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.code_combination_id: ' || l_adj_rec.code_combination_id);
2752: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.ussgl_transaction_code: ' || l_adj_rec.ussgl_transaction_code);
2753: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.reason_code: ' || l_adj_rec.reason_code);
2754: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.comments: ' || l_adj_rec.comments);
2755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.org_id: ' || l_adj_rec.org_id);
2748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.created_from: ' || l_adj_rec.created_from);
2749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.amount: ' || l_adj_rec.amount);
2750: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.customer_trx_line_id: ' || l_adj_rec.customer_trx_line_id);
2751: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.code_combination_id: ' || l_adj_rec.code_combination_id);
2752: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.ussgl_transaction_code: ' || l_adj_rec.ussgl_transaction_code);
2753: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.reason_code: ' || l_adj_rec.reason_code);
2754: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.comments: ' || l_adj_rec.comments);
2755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.org_id: ' || l_adj_rec.org_id);
2756:
2749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.amount: ' || l_adj_rec.amount);
2750: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.customer_trx_line_id: ' || l_adj_rec.customer_trx_line_id);
2751: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.code_combination_id: ' || l_adj_rec.code_combination_id);
2752: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.ussgl_transaction_code: ' || l_adj_rec.ussgl_transaction_code);
2753: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.reason_code: ' || l_adj_rec.reason_code);
2754: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.comments: ' || l_adj_rec.comments);
2755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.org_id: ' || l_adj_rec.org_id);
2756:
2757: /* Adjusting invoice */
2750: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.customer_trx_line_id: ' || l_adj_rec.customer_trx_line_id);
2751: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.code_combination_id: ' || l_adj_rec.code_combination_id);
2752: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.ussgl_transaction_code: ' || l_adj_rec.ussgl_transaction_code);
2753: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.reason_code: ' || l_adj_rec.reason_code);
2754: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.comments: ' || l_adj_rec.comments);
2755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.org_id: ' || l_adj_rec.org_id);
2756:
2757: /* Adjusting invoice */
2758:
2751: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.code_combination_id: ' || l_adj_rec.code_combination_id);
2752: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.ussgl_transaction_code: ' || l_adj_rec.ussgl_transaction_code);
2753: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.reason_code: ' || l_adj_rec.reason_code);
2754: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.comments: ' || l_adj_rec.comments);
2755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_adj_rec.org_id: ' || l_adj_rec.org_id);
2756:
2757: /* Adjusting invoice */
2758:
2759: AR_ADJUST_PUB.Create_Adjustment(
2774:
2775: X_ADJ_ID := l_adj_id;
2776: X_ADJ_NUMBER := l_adj_num;
2777:
2778: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
2779:
2780: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2781:
2782: while (l_indexNo <= l_msg_Count ) loop
2780: IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2781:
2782: while (l_indexNo <= l_msg_Count ) loop
2783: fnd_msg_pub.get(l_indexNo, 'F', l_msg, l_index);
2784: LogMessage(FND_LOG.LEVEL_ERROR, 'Error: ' || l_msg);
2785: l_indexNo := l_indexNo + 1;
2786: End Loop;
2787:
2788: RAISE FND_API.G_EXC_ERROR;
2788: RAISE FND_API.G_EXC_ERROR;
2789:
2790: END IF;
2791:
2792: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
2793:
2794: END;
2795:
2796:
2875: BEGIN
2876:
2877: l_index := 0;
2878: l_indexNo := 1;
2879: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
2880: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
2881:
2882: l_new_line := '
2883: ';
2876:
2877: l_index := 0;
2878: l_indexNo := 1;
2879: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
2880: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
2881:
2882: l_new_line := '
2883: ';
2884:
2885: /* query for loan number and borrower name */
2886: open loan_cur(P_LOAN_ID, P_PRIN_AMOUNT_DUE, P_INT_AMOUNT_DUE, P_FEE_AMOUNT_DUE);
2887: fetch loan_cur into l_borrower, l_loan, l_currency, l_f_prin_amount, l_f_int_amount, l_f_fee_amount, l_f_sum_amount;
2888: close loan_cur;
2889: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_borrower: ' || l_borrower);
2890: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan: ' || l_loan);
2891:
2892: /* build error */
2893: l_statement := '
2886: open loan_cur(P_LOAN_ID, P_PRIN_AMOUNT_DUE, P_INT_AMOUNT_DUE, P_FEE_AMOUNT_DUE);
2887: fetch loan_cur into l_borrower, l_loan, l_currency, l_f_prin_amount, l_f_int_amount, l_f_fee_amount, l_f_sum_amount;
2888: close loan_cur;
2889: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_borrower: ' || l_borrower);
2890: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan: ' || l_loan);
2891:
2892: /* build error */
2893: l_statement := '
2894: l_statement := l_statement || l_new_line || '
2916: End Loop;
2917: l_statement := l_statement || '';
2918:
2919: l_statement := l_statement || l_new_line || '';
2920: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_statement: ' || l_statement);
2921:
2922: /* init statement xml */
2923: DBMS_LOB.createtemporary(X_STATEMENT_XML, FALSE, DBMS_LOB.CALL);
2924: DBMS_LOB.open(X_STATEMENT_XML, DBMS_LOB.lob_readwrite);
2925:
2926: /* building clob */
2927: DBMS_LOB.write(X_STATEMENT_XML, length(l_statement), 1, l_statement);
2928:
2929: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
2930:
2931: EXCEPTION
2932: WHEN OTHERS THEN
2933: LogMessage(FND_LOG.LEVEL_ERROR, 'Failed to generate error statement for loan ' || l_loan);
2929: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
2930:
2931: EXCEPTION
2932: WHEN OTHERS THEN
2933: LogMessage(FND_LOG.LEVEL_ERROR, 'Failed to generate error statement for loan ' || l_loan);
2934: END;
2935:
2936:
2937:
3008: language(+) = userenv('LANG');
3009:
3010: BEGIN
3011:
3012: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
3013: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
3014:
3015: /* init report clob */
3016: dbms_lob.createtemporary(g_last_billing_report, FALSE, DBMS_LOB.CALL);
3009:
3010: BEGIN
3011:
3012: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
3013: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
3014:
3015: /* init report clob */
3016: dbms_lob.createtemporary(g_last_billing_report, FALSE, DBMS_LOB.CALL);
3017: dbms_lob.open(g_last_billing_report, dbms_lob.lob_readwrite);
3025: /* adding org name to parameter list */
3026: open org_cur(g_org_id);
3027: fetch org_cur into l_org_name;
3028: close org_cur;
3029: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_org_name: ' || l_org_name);
3030: l_parameters := l_parameters || l_new_line || '
3031:
3032: /* adding borrower to parameter list */
3033: if P_BORROWER_ID is not null then
3034: open borrower_cur(P_BORROWER_ID);
3035: fetch borrower_cur into l_borrower;
3036: close borrower_cur;
3037: end if;
3038: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_borrower: ' || l_borrower);
3039: l_parameters := l_parameters || l_new_line || '
3040:
3041: /* adding loan to parameter list */
3042: if P_LOAN_ID is not null then
3043: open loan_cur(P_LOAN_ID);
3044: fetch loan_cur into l_loan;
3045: close loan_cur;
3046: end if;
3047: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan: ' || l_loan);
3048: l_parameters := l_parameters || l_new_line || '
3049:
3050: /* adding from days to parameter list */
3051: if P_FROM_DAYS_TO_DD is not null then
3058: l_to_days := P_TO_DAYS_TO_DD || GET_BILLING_DATE(P_TO_DAYS_TO_DD);
3059: end if;
3060: l_parameters := l_parameters || l_new_line || '
3061: l_parameters := l_parameters || l_new_line || '' || l_new_line;
3062: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_parameters: ' || l_parameters);
3063:
3064:
3065: /* add header to billing report */
3066: DBMS_LOB.write(g_last_billing_report, length(l_header), 1, l_header);
3063:
3064:
3065: /* add header to billing report */
3066: DBMS_LOB.write(g_last_billing_report, length(l_header), 1, l_header);
3067: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Added header to report');
3068:
3069: /* add parameters to billing report */
3070: dbms_lob.writeAppend(g_last_billing_report, length(l_parameters), l_parameters);
3071: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Added parameters to report');
3067: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Added header to report');
3068:
3069: /* add parameters to billing report */
3070: dbms_lob.writeAppend(g_last_billing_report, length(l_parameters), l_parameters);
3071: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Added parameters to report');
3072:
3073: /* add all statements to billing report */
3074: if dbms_lob.getlength(P_STATEMENTS_XML) > 0 then
3075: DBMS_LOB.Append(g_last_billing_report, P_STATEMENTS_XML);
3072:
3073: /* add all statements to billing report */
3074: if dbms_lob.getlength(P_STATEMENTS_XML) > 0 then
3075: DBMS_LOB.Append(g_last_billing_report, P_STATEMENTS_XML);
3076: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Added statements to report');
3077: end if;
3078:
3079: /* add footer to billing report */
3080: dbms_lob.writeAppend(g_last_billing_report, length(l_footer), l_footer);
3077: end if;
3078:
3079: /* add footer to billing report */
3080: dbms_lob.writeAppend(g_last_billing_report, length(l_footer), l_footer);
3081: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Added footer to report');
3082:
3083: /* print report to output file */
3084: LNS_REP_UTILS.PRINT_CLOB(g_last_billing_report); -- fix for bug 6938098
3085: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Printed report into output file.');
3081: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Added footer to report');
3082:
3083: /* print report to output file */
3084: LNS_REP_UTILS.PRINT_CLOB(g_last_billing_report); -- fix for bug 6938098
3085: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Printed report into output file.');
3086:
3087: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
3088:
3089: EXCEPTION
3083: /* print report to output file */
3084: LNS_REP_UTILS.PRINT_CLOB(g_last_billing_report); -- fix for bug 6938098
3085: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Printed report into output file.');
3086:
3087: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
3088:
3089: EXCEPTION
3090: WHEN OTHERS THEN
3091: LogMessage(FND_LOG.LEVEL_ERROR, 'Failed to generate billing report');
3087: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
3088:
3089: EXCEPTION
3090: WHEN OTHERS THEN
3091: LogMessage(FND_LOG.LEVEL_ERROR, 'Failed to generate billing report');
3092: g_cr_return_status := 'WARNING';
3093: END;
3094:
3095:
3150: where loan.loan_id = pLoanId;
3151:
3152: BEGIN
3153:
3154: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
3155:
3156: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Getting Currency Format Mask for loan');
3157: OPEN c_get_currency_format_mask(p_loan_id);
3158: FETCH c_get_currency_format_mask INTO l_currency_format_mask;
3152: BEGIN
3153:
3154: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
3155:
3156: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Getting Currency Format Mask for loan');
3157: OPEN c_get_currency_format_mask(p_loan_id);
3158: FETCH c_get_currency_format_mask INTO l_currency_format_mask;
3159: CLOSE c_get_currency_format_mask;
3160:
3157: OPEN c_get_currency_format_mask(p_loan_id);
3158: FETCH c_get_currency_format_mask INTO l_currency_format_mask;
3159: CLOSE c_get_currency_format_mask;
3160:
3161: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Generating billing statement...');
3162:
3163:
3164: qry_string := 'SELECT loan.loan_id, ' ||
3165: 'payment_summary.next_payment_amortization_id, ' ||
3348: 'loan.loan_id = am.loan_id and ' ||
3349: 'am.AMORTIZATION_SCHEDULE_ID = payment_summary.next_payment_amortization_id and ' ||
3350: 'loan.loan_id = :LOAN_ID';
3351:
3352: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Before set new context');
3353: qryCtx := DBMS_XMLQuery.newContext(qry_string);
3354: -- qryCtx := DBMS_XMLGEN.newContext(qry_string);
3355: LogMessage(FND_LOG.LEVEL_STATEMENT, 'After set new context');
3356:
3351:
3352: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Before set new context');
3353: qryCtx := DBMS_XMLQuery.newContext(qry_string);
3354: -- qryCtx := DBMS_XMLGEN.newContext(qry_string);
3355: LogMessage(FND_LOG.LEVEL_STATEMENT, 'After set new context');
3356:
3357: -- set the rowset header to null
3358: DBMS_XMLQuery.setRowSetTag(qryCtx, 'LOANSET');
3359: -- DBMS_XMLGEN.setRowSetTag(qryCtx, 'LOANSET');
3388: DBMS_XMLQuery.setBindValue(qryCtx, 'CURRENCY_FORMAT21', l_currency_format_mask);
3389: DBMS_XMLQuery.setBindValue(qryCtx, 'CURRENCY_FORMAT22', l_currency_format_mask);
3390: DBMS_XMLQuery.setBindValue(qryCtx, 'CURRENCY_FORMAT23', l_currency_format_mask);
3391:
3392: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Bind value: LOAN_ID = ' || p_loan_id);
3393: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Bind value: CURRENCY_FORMAT = ' || l_currency_format_mask);
3394:
3395: -- now get the result
3396: result := DBMS_XMLQuery.getXml(qryCtx);
3389: DBMS_XMLQuery.setBindValue(qryCtx, 'CURRENCY_FORMAT22', l_currency_format_mask);
3390: DBMS_XMLQuery.setBindValue(qryCtx, 'CURRENCY_FORMAT23', l_currency_format_mask);
3391:
3392: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Bind value: LOAN_ID = ' || p_loan_id);
3393: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Bind value: CURRENCY_FORMAT = ' || l_currency_format_mask);
3394:
3395: -- now get the result
3396: result := DBMS_XMLQuery.getXml(qryCtx);
3397: -- result := DBMS_XMLGEN.getXml(qryCtx);
3394:
3395: -- now get the result
3396: result := DBMS_XMLQuery.getXml(qryCtx);
3397: -- result := DBMS_XMLGEN.getXml(qryCtx);
3398: -- LogMessage(FND_LOG.LEVEL_STATEMENT, 'Result xml: ' || result);
3399:
3400: if (result is not null) then
3401:
3402: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Generated billing statement');
3398: -- LogMessage(FND_LOG.LEVEL_STATEMENT, 'Result xml: ' || result);
3399:
3400: if (result is not null) then
3401:
3402: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Generated billing statement');
3403:
3404: /* Update amortization table */
3405: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating record in LNS_AMORTIZATION_SCHEDS...') ;
3406:
3401:
3402: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Generated billing statement');
3403:
3404: /* Update amortization table */
3405: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating record in LNS_AMORTIZATION_SCHEDS...') ;
3406:
3407: LNS_AMORTIZATION_SCHEDS_PKG.Update_Statement(
3408: P_AMORTIZATION_SCHEDULE_ID => p_amortization_schedule_id
3409: ,P_STATEMENT_XML => result);
3407: LNS_AMORTIZATION_SCHEDS_PKG.Update_Statement(
3408: P_AMORTIZATION_SCHEDULE_ID => p_amortization_schedule_id
3409: ,P_STATEMENT_XML => result);
3410:
3411: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Update successfull!');
3412:
3413: else
3414: RAISE FND_API.G_EXC_ERROR;
3415: end if;
3417: --close context
3418: DBMS_XMLQuery.closeContext(qryCtx);
3419: -- DBMS_XMLGEN.closeContext(qryCtx);
3420:
3421: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
3422:
3423: EXCEPTION
3424: WHEN OTHERS THEN
3425: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Failed to generate billing statement');
3421: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
3422:
3423: EXCEPTION
3424: WHEN OTHERS THEN
3425: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Failed to generate billing statement');
3426: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: ' || sqlerrm);
3427: RAISE FND_API.G_EXC_ERROR;
3428:
3429: END GENERATE_BILLING_STATEMENT_XML;
3422:
3423: EXCEPTION
3424: WHEN OTHERS THEN
3425: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Failed to generate billing statement');
3426: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: ' || sqlerrm);
3427: RAISE FND_API.G_EXC_ERROR;
3428:
3429: END GENERATE_BILLING_STATEMENT_XML;
3430:
3463: if P_PRIN_AMOUNT > l_valid_amount then
3464: -- FND_MESSAGE.SET_ENCODED('Principal bill amount cannot be greater than ' || l_valid_amount);
3465: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_PRIN_BILL_AMOUNT');
3466: FND_MSG_PUB.Add;
3467: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
3468: RAISE FND_API.G_EXC_ERROR;
3469: end if;
3470:
3471: END;
3584: and p_installment between rs.begin_installment_number and rs.end_installment_number;
3585:
3586: BEGIN
3587:
3588: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
3589:
3590: -- Standard start of API savepoint
3591: SAVEPOINT PROCESS_SINGLE_LOAN_PVT;
3592: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Established savepoint');
3588: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
3589:
3590: -- Standard start of API savepoint
3591: SAVEPOINT PROCESS_SINGLE_LOAN_PVT;
3592: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Established savepoint');
3593:
3594: -- Standard call to check for call compatibility
3595: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
3596: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3608:
3609: dbms_lob.createtemporary(X_STATEMENT_XML, FALSE, DBMS_LOB.CALL);
3610: dbms_lob.open(X_STATEMENT_XML, dbms_lob.lob_readwrite);
3611:
3612: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing loan ' || P_LOAN_REC.LOAN_NUMBER);
3613: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN ID: ' || P_LOAN_REC.LOAN_ID);
3614: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN DESCRIPTION: ' || P_LOAN_REC.LOAN_DESCRIPTION);
3615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || P_LOAN_REC.FUNDED_AMOUNT);
3616: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || P_LOAN_REC.FIRST_PAYMENT_DATE);
3609: dbms_lob.createtemporary(X_STATEMENT_XML, FALSE, DBMS_LOB.CALL);
3610: dbms_lob.open(X_STATEMENT_XML, dbms_lob.lob_readwrite);
3611:
3612: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing loan ' || P_LOAN_REC.LOAN_NUMBER);
3613: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN ID: ' || P_LOAN_REC.LOAN_ID);
3614: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN DESCRIPTION: ' || P_LOAN_REC.LOAN_DESCRIPTION);
3615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || P_LOAN_REC.FUNDED_AMOUNT);
3616: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || P_LOAN_REC.FIRST_PAYMENT_DATE);
3617: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3610: dbms_lob.open(X_STATEMENT_XML, dbms_lob.lob_readwrite);
3611:
3612: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing loan ' || P_LOAN_REC.LOAN_NUMBER);
3613: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN ID: ' || P_LOAN_REC.LOAN_ID);
3614: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN DESCRIPTION: ' || P_LOAN_REC.LOAN_DESCRIPTION);
3615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || P_LOAN_REC.FUNDED_AMOUNT);
3616: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || P_LOAN_REC.FIRST_PAYMENT_DATE);
3617: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3618: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || P_LOAN_REC.BILLED_FLAG);
3611:
3612: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing loan ' || P_LOAN_REC.LOAN_NUMBER);
3613: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN ID: ' || P_LOAN_REC.LOAN_ID);
3614: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN DESCRIPTION: ' || P_LOAN_REC.LOAN_DESCRIPTION);
3615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || P_LOAN_REC.FUNDED_AMOUNT);
3616: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || P_LOAN_REC.FIRST_PAYMENT_DATE);
3617: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3618: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || P_LOAN_REC.BILLED_FLAG);
3619: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || P_LOAN_REC.LOAN_CURRENCY);
3612: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing loan ' || P_LOAN_REC.LOAN_NUMBER);
3613: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN ID: ' || P_LOAN_REC.LOAN_ID);
3614: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN DESCRIPTION: ' || P_LOAN_REC.LOAN_DESCRIPTION);
3615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || P_LOAN_REC.FUNDED_AMOUNT);
3616: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || P_LOAN_REC.FIRST_PAYMENT_DATE);
3617: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3618: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || P_LOAN_REC.BILLED_FLAG);
3619: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || P_LOAN_REC.LOAN_CURRENCY);
3620: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || P_LOAN_REC.CUST_ACCOUNT_ID);
3613: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN ID: ' || P_LOAN_REC.LOAN_ID);
3614: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN DESCRIPTION: ' || P_LOAN_REC.LOAN_DESCRIPTION);
3615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || P_LOAN_REC.FUNDED_AMOUNT);
3616: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || P_LOAN_REC.FIRST_PAYMENT_DATE);
3617: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3618: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || P_LOAN_REC.BILLED_FLAG);
3619: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || P_LOAN_REC.LOAN_CURRENCY);
3620: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || P_LOAN_REC.CUST_ACCOUNT_ID);
3621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || P_LOAN_REC.BILL_TO_ADDRESS_ID);
3614: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'LOAN DESCRIPTION: ' || P_LOAN_REC.LOAN_DESCRIPTION);
3615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || P_LOAN_REC.FUNDED_AMOUNT);
3616: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || P_LOAN_REC.FIRST_PAYMENT_DATE);
3617: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3618: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || P_LOAN_REC.BILLED_FLAG);
3619: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || P_LOAN_REC.LOAN_CURRENCY);
3620: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || P_LOAN_REC.CUST_ACCOUNT_ID);
3621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || P_LOAN_REC.BILL_TO_ADDRESS_ID);
3622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_REC.CUSTOM_PAYMENTS_FLAG);
3615: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || P_LOAN_REC.FUNDED_AMOUNT);
3616: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || P_LOAN_REC.FIRST_PAYMENT_DATE);
3617: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3618: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || P_LOAN_REC.BILLED_FLAG);
3619: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || P_LOAN_REC.LOAN_CURRENCY);
3620: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || P_LOAN_REC.CUST_ACCOUNT_ID);
3621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || P_LOAN_REC.BILL_TO_ADDRESS_ID);
3622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_REC.CUSTOM_PAYMENTS_FLAG);
3623: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || P_LOAN_REC.LOAN_PAYMENT_FREQUENCY);
3616: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || P_LOAN_REC.FIRST_PAYMENT_DATE);
3617: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3618: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || P_LOAN_REC.BILLED_FLAG);
3619: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || P_LOAN_REC.LOAN_CURRENCY);
3620: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || P_LOAN_REC.CUST_ACCOUNT_ID);
3621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || P_LOAN_REC.BILL_TO_ADDRESS_ID);
3622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_REC.CUSTOM_PAYMENTS_FLAG);
3623: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || P_LOAN_REC.LOAN_PAYMENT_FREQUENCY);
3624: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || P_LOAN_REC.NUMBER_GRACE_DAYS);
3617: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3618: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || P_LOAN_REC.BILLED_FLAG);
3619: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || P_LOAN_REC.LOAN_CURRENCY);
3620: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || P_LOAN_REC.CUST_ACCOUNT_ID);
3621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || P_LOAN_REC.BILL_TO_ADDRESS_ID);
3622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_REC.CUSTOM_PAYMENTS_FLAG);
3623: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || P_LOAN_REC.LOAN_PAYMENT_FREQUENCY);
3624: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || P_LOAN_REC.NUMBER_GRACE_DAYS);
3625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || P_LOAN_REC.PAYMENT_APPLICATION_ORDER);
3618: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || P_LOAN_REC.BILLED_FLAG);
3619: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || P_LOAN_REC.LOAN_CURRENCY);
3620: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || P_LOAN_REC.CUST_ACCOUNT_ID);
3621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || P_LOAN_REC.BILL_TO_ADDRESS_ID);
3622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_REC.CUSTOM_PAYMENTS_FLAG);
3623: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || P_LOAN_REC.LOAN_PAYMENT_FREQUENCY);
3624: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || P_LOAN_REC.NUMBER_GRACE_DAYS);
3625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || P_LOAN_REC.PAYMENT_APPLICATION_ORDER);
3626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || P_LOAN_REC.EXCHANGE_RATE_TYPE);
3619: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || P_LOAN_REC.LOAN_CURRENCY);
3620: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || P_LOAN_REC.CUST_ACCOUNT_ID);
3621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || P_LOAN_REC.BILL_TO_ADDRESS_ID);
3622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_REC.CUSTOM_PAYMENTS_FLAG);
3623: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || P_LOAN_REC.LOAN_PAYMENT_FREQUENCY);
3624: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || P_LOAN_REC.NUMBER_GRACE_DAYS);
3625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || P_LOAN_REC.PAYMENT_APPLICATION_ORDER);
3626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || P_LOAN_REC.EXCHANGE_RATE_TYPE);
3627: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || P_LOAN_REC.EXCHANGE_DATE);
3620: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || P_LOAN_REC.CUST_ACCOUNT_ID);
3621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || P_LOAN_REC.BILL_TO_ADDRESS_ID);
3622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_REC.CUSTOM_PAYMENTS_FLAG);
3623: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || P_LOAN_REC.LOAN_PAYMENT_FREQUENCY);
3624: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || P_LOAN_REC.NUMBER_GRACE_DAYS);
3625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || P_LOAN_REC.PAYMENT_APPLICATION_ORDER);
3626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || P_LOAN_REC.EXCHANGE_RATE_TYPE);
3627: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || P_LOAN_REC.EXCHANGE_DATE);
3628: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || P_LOAN_REC.EXCHANGE_RATE);
3621: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || P_LOAN_REC.BILL_TO_ADDRESS_ID);
3622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_REC.CUSTOM_PAYMENTS_FLAG);
3623: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || P_LOAN_REC.LOAN_PAYMENT_FREQUENCY);
3624: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || P_LOAN_REC.NUMBER_GRACE_DAYS);
3625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || P_LOAN_REC.PAYMENT_APPLICATION_ORDER);
3626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || P_LOAN_REC.EXCHANGE_RATE_TYPE);
3627: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || P_LOAN_REC.EXCHANGE_DATE);
3628: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || P_LOAN_REC.EXCHANGE_RATE);
3629: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'ORG ID: ' || P_LOAN_REC.ORG_ID);
3622: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_REC.CUSTOM_PAYMENTS_FLAG);
3623: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || P_LOAN_REC.LOAN_PAYMENT_FREQUENCY);
3624: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || P_LOAN_REC.NUMBER_GRACE_DAYS);
3625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || P_LOAN_REC.PAYMENT_APPLICATION_ORDER);
3626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || P_LOAN_REC.EXCHANGE_RATE_TYPE);
3627: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || P_LOAN_REC.EXCHANGE_DATE);
3628: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || P_LOAN_REC.EXCHANGE_RATE);
3629: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'ORG ID: ' || P_LOAN_REC.ORG_ID);
3630: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'LE ID: ' || P_LOAN_REC.LEGAL_ENTITY_ID);
3623: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || P_LOAN_REC.LOAN_PAYMENT_FREQUENCY);
3624: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || P_LOAN_REC.NUMBER_GRACE_DAYS);
3625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || P_LOAN_REC.PAYMENT_APPLICATION_ORDER);
3626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || P_LOAN_REC.EXCHANGE_RATE_TYPE);
3627: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || P_LOAN_REC.EXCHANGE_DATE);
3628: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || P_LOAN_REC.EXCHANGE_RATE);
3629: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'ORG ID: ' || P_LOAN_REC.ORG_ID);
3630: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'LE ID: ' || P_LOAN_REC.LEGAL_ENTITY_ID);
3631: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'CURRENT_PHASE: ' || P_LOAN_REC.CURRENT_PHASE);
3624: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || P_LOAN_REC.NUMBER_GRACE_DAYS);
3625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || P_LOAN_REC.PAYMENT_APPLICATION_ORDER);
3626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || P_LOAN_REC.EXCHANGE_RATE_TYPE);
3627: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || P_LOAN_REC.EXCHANGE_DATE);
3628: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || P_LOAN_REC.EXCHANGE_RATE);
3629: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'ORG ID: ' || P_LOAN_REC.ORG_ID);
3630: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'LE ID: ' || P_LOAN_REC.LEGAL_ENTITY_ID);
3631: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'CURRENT_PHASE: ' || P_LOAN_REC.CURRENT_PHASE);
3632:
3625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || P_LOAN_REC.PAYMENT_APPLICATION_ORDER);
3626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || P_LOAN_REC.EXCHANGE_RATE_TYPE);
3627: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || P_LOAN_REC.EXCHANGE_DATE);
3628: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || P_LOAN_REC.EXCHANGE_RATE);
3629: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'ORG ID: ' || P_LOAN_REC.ORG_ID);
3630: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'LE ID: ' || P_LOAN_REC.LEGAL_ENTITY_ID);
3631: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'CURRENT_PHASE: ' || P_LOAN_REC.CURRENT_PHASE);
3632:
3633: /* Check for loan data */
3626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || P_LOAN_REC.EXCHANGE_RATE_TYPE);
3627: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || P_LOAN_REC.EXCHANGE_DATE);
3628: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || P_LOAN_REC.EXCHANGE_RATE);
3629: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'ORG ID: ' || P_LOAN_REC.ORG_ID);
3630: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'LE ID: ' || P_LOAN_REC.LEGAL_ENTITY_ID);
3631: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'CURRENT_PHASE: ' || P_LOAN_REC.CURRENT_PHASE);
3632:
3633: /* Check for loan data */
3634: if P_LOAN_REC.PAYMENT_APPLICATION_ORDER is null or
3627: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || P_LOAN_REC.EXCHANGE_DATE);
3628: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || P_LOAN_REC.EXCHANGE_RATE);
3629: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'ORG ID: ' || P_LOAN_REC.ORG_ID);
3630: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'LE ID: ' || P_LOAN_REC.LEGAL_ENTITY_ID);
3631: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'CURRENT_PHASE: ' || P_LOAN_REC.CURRENT_PHASE);
3632:
3633: /* Check for loan data */
3634: if P_LOAN_REC.PAYMENT_APPLICATION_ORDER is null or
3635: P_LOAN_REC.FIRST_PAYMENT_DATE is null or
3635: P_LOAN_REC.FIRST_PAYMENT_DATE is null or
3636: P_LOAN_REC.NEXT_PAYMENT_DUE_DATE is null or
3637: P_LOAN_REC.LOAN_PAYMENT_FREQUENCY is null then
3638:
3639: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan misses some important data. Cannot proceed with billing of this loan.');
3640: FND_MESSAGE.SET_NAME('LNS', 'LNS_LOAN_MISS_DATA');
3641: FND_MESSAGE.SET_TOKEN('LOAN', P_LOAN_REC.LOAN_NUMBER);
3642: FND_MSG_PUB.Add;
3643: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
3639: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan misses some important data. Cannot proceed with billing of this loan.');
3640: FND_MESSAGE.SET_NAME('LNS', 'LNS_LOAN_MISS_DATA');
3641: FND_MESSAGE.SET_TOKEN('LOAN', P_LOAN_REC.LOAN_NUMBER);
3642: FND_MSG_PUB.Add;
3643: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
3644: RAISE FND_API.G_EXC_ERROR;
3645:
3646: end if;
3647:
3685: l_offset := DBMS_LOB.INSTR(lob_loc => l_statement_xml,
3686: pattern => '>',
3687: offset => 1,
3688: nth => 1);
3689: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Have removed header from the statement');
3690:
3691: /* copy generated statement to output */
3692: dbms_lob.copy(dest_lob => X_STATEMENT_XML,
3693: src_lob => l_statement_xml,
3702: end if;
3703:
3704: /* setting next payment number */
3705: P_LOAN_REC.NEXT_PAYMENT_NUMBER := P_LOAN_REC.NEXT_PAYMENT_NUMBER + 1;
3706: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3707:
3708: /* new principal and interest amounts from getInstallment api */
3709:
3710: if P_LOAN_REC.CURRENT_PHASE = 'TERM' then
3708: /* new principal and interest amounts from getInstallment api */
3709:
3710: if P_LOAN_REC.CURRENT_PHASE = 'TERM' then
3711:
3712: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling lns_financials.getInstallment...');
3713: l_start := sysdate;
3714: lns_financials.getInstallment(
3715: p_api_version => 1.0,
3716: p_init_msg_list => FND_API.G_TRUE,
3723: X_MSG_COUNT => l_msg_count,
3724: X_MSG_DATA => l_msg_data);
3725:
3726: l_end := sysdate;
3727: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'getInstallment Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
3728:
3729: else
3730:
3731: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling lns_financials.getOpenInstallment...');
3727: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'getInstallment Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
3728:
3729: else
3730:
3731: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling lns_financials.getOpenInstallment...');
3732: l_start := sysdate;
3733: lns_financials.getOpenInstallment(
3734: p_init_msg_list => FND_API.G_TRUE,
3735: p_loan_Id => P_LOAN_REC.LOAN_ID,
3740: X_MSG_COUNT => l_msg_count,
3741: X_MSG_DATA => l_msg_data);
3742:
3743: l_end := sysdate;
3744: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'getOpenInstallment Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
3745:
3746: end if;
3747:
3748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
3744: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'getOpenInstallment Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
3745:
3746: end if;
3747:
3748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
3749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || l_msg_data);
3750:
3751: if l_return_status <> 'S' then
3752: RAISE FND_API.G_EXC_ERROR;
3745:
3746: end if;
3747:
3748: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
3749: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || l_msg_data);
3750:
3751: if l_return_status <> 'S' then
3752: RAISE FND_API.G_EXC_ERROR;
3753: end if;
3751: if l_return_status <> 'S' then
3752: RAISE FND_API.G_EXC_ERROR;
3753: end if;
3754:
3755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Data returned from lns_financials.getInstallment:');
3756: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
3757: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
3758: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
3759: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
3752: RAISE FND_API.G_EXC_ERROR;
3753: end if;
3754:
3755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Data returned from lns_financials.getInstallment:');
3756: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
3757: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
3758: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
3759: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
3760: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_amortization_rec.FEE_AMOUNT);
3753: end if;
3754:
3755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Data returned from lns_financials.getInstallment:');
3756: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
3757: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
3758: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
3759: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
3760: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_amortization_rec.FEE_AMOUNT);
3761:
3754:
3755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Data returned from lns_financials.getInstallment:');
3756: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
3757: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
3758: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
3759: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
3760: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_amortization_rec.FEE_AMOUNT);
3761:
3762: P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT := l_amortization_rec.PRINCIPAL_AMOUNT;
3755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Data returned from lns_financials.getInstallment:');
3756: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
3757: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
3758: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
3759: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
3760: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_amortization_rec.FEE_AMOUNT);
3761:
3762: P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT := l_amortization_rec.PRINCIPAL_AMOUNT;
3763: P_LOAN_REC.NEXT_INTEREST_AMOUNT := l_amortization_rec.INTEREST_AMOUNT;
3756: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
3757: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
3758: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
3759: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
3760: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_amortization_rec.FEE_AMOUNT);
3761:
3762: P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT := l_amortization_rec.PRINCIPAL_AMOUNT;
3763: P_LOAN_REC.NEXT_INTEREST_AMOUNT := l_amortization_rec.INTEREST_AMOUNT;
3764: P_LOAN_REC.NEXT_FEE_AMOUNT := l_amortization_rec.FEE_AMOUNT;
3770: (P_LOAN_REC.NEXT_INTEREST_AMOUNT is null or P_LOAN_REC.NEXT_INTEREST_AMOUNT = 0) and
3771: (P_LOAN_REC.NEXT_FEE_AMOUNT is null or P_LOAN_REC.NEXT_FEE_AMOUNT = 0)
3772: then
3773:
3774: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'All amounts returned from lns_financials.getInstallment = 0. Nothing to bill.');
3775: return;
3776:
3777: /*
3778: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_AMOUNT_INST');
3776:
3777: /*
3778: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_AMOUNT_INST');
3779: FND_MSG_PUB.Add;
3780: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
3781: RAISE FND_API.G_EXC_ERROR;
3782: */
3783: end if;
3784:
3782: */
3783: end if;
3784:
3785: /* begin raverma 12-5-2005 added support for floating loans */
3786: LogMessage(FND_LOG.LEVEL_STATEMENT, 'check if float postprocessing needed');
3787: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.CURRENT_PHASE' || P_LOAN_REC.CURRENT_PHASE);
3788: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.LOAN_ID' || P_LOAN_REC.LOAN_ID);
3789: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.NEXT_PAYMENT_NUMBER' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3790:
3783: end if;
3784:
3785: /* begin raverma 12-5-2005 added support for floating loans */
3786: LogMessage(FND_LOG.LEVEL_STATEMENT, 'check if float postprocessing needed');
3787: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.CURRENT_PHASE' || P_LOAN_REC.CURRENT_PHASE);
3788: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.LOAN_ID' || P_LOAN_REC.LOAN_ID);
3789: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.NEXT_PAYMENT_NUMBER' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3790:
3791: open cur_floating(P_LOAN_REC.LOAN_ID, P_LOAN_REC.CURRENT_PHASE, P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3784:
3785: /* begin raverma 12-5-2005 added support for floating loans */
3786: LogMessage(FND_LOG.LEVEL_STATEMENT, 'check if float postprocessing needed');
3787: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.CURRENT_PHASE' || P_LOAN_REC.CURRENT_PHASE);
3788: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.LOAN_ID' || P_LOAN_REC.LOAN_ID);
3789: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.NEXT_PAYMENT_NUMBER' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3790:
3791: open cur_floating(P_LOAN_REC.LOAN_ID, P_LOAN_REC.CURRENT_PHASE, P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3792: fetch cur_floating into l_floating_flag;
3785: /* begin raverma 12-5-2005 added support for floating loans */
3786: LogMessage(FND_LOG.LEVEL_STATEMENT, 'check if float postprocessing needed');
3787: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.CURRENT_PHASE' || P_LOAN_REC.CURRENT_PHASE);
3788: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.LOAN_ID' || P_LOAN_REC.LOAN_ID);
3789: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.NEXT_PAYMENT_NUMBER' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3790:
3791: open cur_floating(P_LOAN_REC.LOAN_ID, P_LOAN_REC.CURRENT_PHASE, P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3792: fetch cur_floating into l_floating_flag;
3793: close cur_floating;
3791: open cur_floating(P_LOAN_REC.LOAN_ID, P_LOAN_REC.CURRENT_PHASE, P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3792: fetch cur_floating into l_floating_flag;
3793: close cur_floating;
3794:
3795: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_floating_flag ' || l_floating_flag);
3796: LogMessage(FND_LOG.LEVEL_STATEMENT, 'interest amount ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.NEXT_PAYMENT_DUE_DATE ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.RATE_CHANGE_FREQ ' || l_amortization_rec.RATE_CHANGE_FREQ);
3799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_id ' || l_amortization_rec.rate_id);
3792: fetch cur_floating into l_floating_flag;
3793: close cur_floating;
3794:
3795: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_floating_flag ' || l_floating_flag);
3796: LogMessage(FND_LOG.LEVEL_STATEMENT, 'interest amount ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.NEXT_PAYMENT_DUE_DATE ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.RATE_CHANGE_FREQ ' || l_amortization_rec.RATE_CHANGE_FREQ);
3799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_id ' || l_amortization_rec.rate_id);
3800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_unadj ' || l_amortization_rec.rate_unadj);
3793: close cur_floating;
3794:
3795: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_floating_flag ' || l_floating_flag);
3796: LogMessage(FND_LOG.LEVEL_STATEMENT, 'interest amount ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.NEXT_PAYMENT_DUE_DATE ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.RATE_CHANGE_FREQ ' || l_amortization_rec.RATE_CHANGE_FREQ);
3799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_id ' || l_amortization_rec.rate_id);
3800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_unadj ' || l_amortization_rec.rate_unadj);
3801:
3794:
3795: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_floating_flag ' || l_floating_flag);
3796: LogMessage(FND_LOG.LEVEL_STATEMENT, 'interest amount ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.NEXT_PAYMENT_DUE_DATE ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.RATE_CHANGE_FREQ ' || l_amortization_rec.RATE_CHANGE_FREQ);
3799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_id ' || l_amortization_rec.rate_id);
3800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_unadj ' || l_amortization_rec.rate_unadj);
3801:
3802: if P_LOAN_REC.NEXT_INTEREST_AMOUNT > 0 and l_floating_flag = 'Y' then
3795: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_floating_flag ' || l_floating_flag);
3796: LogMessage(FND_LOG.LEVEL_STATEMENT, 'interest amount ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.NEXT_PAYMENT_DUE_DATE ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.RATE_CHANGE_FREQ ' || l_amortization_rec.RATE_CHANGE_FREQ);
3799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_id ' || l_amortization_rec.rate_id);
3800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_unadj ' || l_amortization_rec.rate_unadj);
3801:
3802: if P_LOAN_REC.NEXT_INTEREST_AMOUNT > 0 and l_floating_flag = 'Y' then
3803:
3796: LogMessage(FND_LOG.LEVEL_STATEMENT, 'interest amount ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'P_LOAN_REC.NEXT_PAYMENT_DUE_DATE ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.RATE_CHANGE_FREQ ' || l_amortization_rec.RATE_CHANGE_FREQ);
3799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_id ' || l_amortization_rec.rate_id);
3800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_unadj ' || l_amortization_rec.rate_unadj);
3801:
3802: if P_LOAN_REC.NEXT_INTEREST_AMOUNT > 0 and l_floating_flag = 'Y' then
3803:
3804: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BEFORE floating postProcessing');
3800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_amortization_rec.rate_unadj ' || l_amortization_rec.rate_unadj);
3801:
3802: if P_LOAN_REC.NEXT_INTEREST_AMOUNT > 0 and l_floating_flag = 'Y' then
3803:
3804: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BEFORE floating postProcessing');
3805: lns_financials.floatingRatePostProcessing(p_loan_id => P_LOAN_REC.LOAN_ID
3806: ,p_init_msg_list => FND_API.G_FALSE
3807: ,p_commit => FND_API.G_FALSE
3808: ,p_installment_number => P_LOAN_REC.NEXT_PAYMENT_NUMBER
3813: ,p_phase => P_LOAN_REC.CURRENT_PHASE
3814: ,X_RETURN_STATUS => l_return_status
3815: ,X_MSG_COUNT => l_msg_count
3816: ,X_MSG_DATA => l_msg_data);
3817: LogMessage(FND_LOG.LEVEL_STATEMENT, 'after floating postProcessing');
3818: LogMessage(FND_LOG.LEVEL_STATEMENT, 'copying new rate ID for insert into Amortization Schedueles' || l_amortization_rec.RATE_ID);
3819: P_LOAN_REC.RATE_ID := l_amortization_rec.RATE_ID;
3820:
3821: if l_return_status <> 'S' then
3814: ,X_RETURN_STATUS => l_return_status
3815: ,X_MSG_COUNT => l_msg_count
3816: ,X_MSG_DATA => l_msg_data);
3817: LogMessage(FND_LOG.LEVEL_STATEMENT, 'after floating postProcessing');
3818: LogMessage(FND_LOG.LEVEL_STATEMENT, 'copying new rate ID for insert into Amortization Schedueles' || l_amortization_rec.RATE_ID);
3819: P_LOAN_REC.RATE_ID := l_amortization_rec.RATE_ID;
3820:
3821: if l_return_status <> 'S' then
3822: RAISE FND_API.G_EXC_ERROR;
3819: P_LOAN_REC.RATE_ID := l_amortization_rec.RATE_ID;
3820:
3821: if l_return_status <> 'S' then
3822: RAISE FND_API.G_EXC_ERROR;
3823: LogMessage(FND_LOG.LEVEL_STATEMENT, 'error in floating postProcessing ' || Sqlerrm);
3824:
3825: end if;
3826:
3827: end if;
3825: end if;
3826:
3827: end if;
3828:
3829: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
3830: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
3831:
3832:
3833: /* adding principal and interest amounts into lines table */
3826:
3827: end if;
3828:
3829: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
3830: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
3831:
3832:
3833: /* adding principal and interest amounts into lines table */
3834: l_Count1 := 1;
3848: l_Count1 := l_Count1 + 1;
3849: l_lines_tbl(l_Count1).LINE_TYPE := 'INT';
3850: l_lines_tbl(l_Count1).LINE_AMOUNT := l_amortization_rec.NORMAL_INT_AMOUNT;
3851: l_lines_tbl(l_Count1).LINE_DESC := 'Normal Interest';
3852: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adding ' || l_lines_tbl(l_Count1).LINE_DESC || ' = ' || l_lines_tbl(l_Count1).LINE_AMOUNT);
3853: end if;
3854: if l_amortization_rec.ADD_PRIN_INT_AMOUNT > 0 then
3855: l_Count1 := l_Count1 + 1;
3856: l_lines_tbl(l_Count1).LINE_TYPE := 'INT';
3855: l_Count1 := l_Count1 + 1;
3856: l_lines_tbl(l_Count1).LINE_TYPE := 'INT';
3857: l_lines_tbl(l_Count1).LINE_AMOUNT := l_amortization_rec.ADD_PRIN_INT_AMOUNT;
3858: l_lines_tbl(l_Count1).LINE_DESC := 'Additional Interest on Unpaid Principal';
3859: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adding ' || l_lines_tbl(l_Count1).LINE_DESC || ' = ' || l_lines_tbl(l_Count1).LINE_AMOUNT);
3860: end if;
3861: if l_amortization_rec.ADD_INT_INT_AMOUNT > 0 then
3862: l_Count1 := l_Count1 + 1;
3863: l_lines_tbl(l_Count1).LINE_TYPE := 'INT';
3862: l_Count1 := l_Count1 + 1;
3863: l_lines_tbl(l_Count1).LINE_TYPE := 'INT';
3864: l_lines_tbl(l_Count1).LINE_AMOUNT := l_amortization_rec.ADD_INT_INT_AMOUNT;
3865: l_lines_tbl(l_Count1).LINE_DESC := 'Additional Interest on Unpaid Interest';
3866: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adding ' || l_lines_tbl(l_Count1).LINE_DESC || ' = ' || l_lines_tbl(l_Count1).LINE_AMOUNT);
3867: end if;
3868: if l_amortization_rec.PENAL_INT_AMOUNT > 0 then
3869: l_Count1 := l_Count1 + 1;
3870: l_lines_tbl(l_Count1).LINE_TYPE := 'INT';
3869: l_Count1 := l_Count1 + 1;
3870: l_lines_tbl(l_Count1).LINE_TYPE := 'INT';
3871: l_lines_tbl(l_Count1).LINE_AMOUNT := l_amortization_rec.PENAL_INT_AMOUNT;
3872: l_lines_tbl(l_Count1).LINE_DESC := 'Penal Interest';
3873: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Adding ' || l_lines_tbl(l_Count1).LINE_DESC || ' = ' || l_lines_tbl(l_Count1).LINE_AMOUNT);
3874: end if;
3875:
3876: else
3877:
3883:
3884: /* adding fee amounts into lines table */
3885: FOR l_Count IN 1..l_fee_tbl.count LOOP
3886:
3887: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Fee #' || l_Count || ' Name: ' || l_fee_tbl(l_Count).FEE_NAME || ' Amount: ' || l_fee_tbl(l_Count).FEE_AMOUNT);
3888:
3889: l_Count1 := l_Count1 + 1;
3890: l_lines_tbl(l_Count1).LINE_REF_ID := l_fee_tbl(l_Count).FEE_ID;
3891: l_lines_tbl(l_Count1).LINE_TYPE := 'FEE';
3897: if l_amortization_rec.INSTALLMENT_NUMBER <> l_fee_tbl(l_Count).FEE_INSTALLMENT then
3898:
3899: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_FEE_INSTAL');
3900: FND_MSG_PUB.Add;
3901: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
3902: RAISE FND_API.G_EXC_ERROR;
3903:
3904: end if;
3905:
3903:
3904: end if;
3905:
3906: /* updating LNS_FEE_SCHEDULES with billed_flag = Y */
3907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating LNS_FEE_SCHEDULES with billed_flag = Y ...');
3908: UPDATE LNS_FEE_SCHEDULES
3909: SET
3910: BILLED_FLAG = 'Y',
3911: last_update_date = LNS_UTILITY_PUB.LAST_UPDATE_DATE,
3912: last_updated_by = LNS_UTILITY_PUB.LAST_UPDATED_BY,
3913: last_update_login = LNS_UTILITY_PUB.LAST_UPDATE_LOGIN
3914: WHERE
3915: FEE_SCHEDULE_ID = l_fee_tbl(l_Count).fee_schedule_id;
3916: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_FEE_SCHEDULES');
3917:
3918: END LOOP;
3919:
3920: /* validate principal amount */
3928: if P_LOAN_REC.CURRENT_PHASE is not null and P_LOAN_REC.CURRENT_PHASE = 'OPEN' then
3929: l_prin_balance := P_LOAN_REC.FUNDED_AMOUNT;
3930: end if;
3931:
3932: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_SCHEDS w following values:');
3933: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
3934: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3935: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_LATE_DATE);
3929: l_prin_balance := P_LOAN_REC.FUNDED_AMOUNT;
3930: end if;
3931:
3932: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_SCHEDS w following values:');
3933: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
3934: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3935: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_LATE_DATE);
3937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT);
3930: end if;
3931:
3932: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_SCHEDS w following values:');
3933: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
3934: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3935: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_LATE_DATE);
3937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT);
3938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3931:
3932: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_SCHEDS w following values:');
3933: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
3934: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3935: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_LATE_DATE);
3937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT);
3938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || P_LOAN_REC.NEXT_FEE_AMOUNT);
3932: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_SCHEDS w following values:');
3933: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
3934: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3935: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_LATE_DATE);
3937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT);
3938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || P_LOAN_REC.NEXT_FEE_AMOUNT);
3940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'RATE_ID: ' || P_LOAN_REC.RATE_ID);
3933: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_LOAN_REC.LOAN_ID);
3934: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3935: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_LATE_DATE);
3937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT);
3938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || P_LOAN_REC.NEXT_FEE_AMOUNT);
3940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'RATE_ID: ' || P_LOAN_REC.RATE_ID);
3941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
3934: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || P_LOAN_REC.NEXT_PAYMENT_NUMBER);
3935: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_LATE_DATE);
3937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT);
3938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || P_LOAN_REC.NEXT_FEE_AMOUNT);
3940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'RATE_ID: ' || P_LOAN_REC.RATE_ID);
3941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
3942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PHASE: ' || P_LOAN_REC.CURRENT_PHASE);
3935: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_DUE_DATE);
3936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_LATE_DATE);
3937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT);
3938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || P_LOAN_REC.NEXT_FEE_AMOUNT);
3940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'RATE_ID: ' || P_LOAN_REC.RATE_ID);
3941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
3942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PHASE: ' || P_LOAN_REC.CURRENT_PHASE);
3943:
3936: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || P_LOAN_REC.NEXT_PAYMENT_LATE_DATE);
3937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT);
3938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || P_LOAN_REC.NEXT_FEE_AMOUNT);
3940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'RATE_ID: ' || P_LOAN_REC.RATE_ID);
3941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
3942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PHASE: ' || P_LOAN_REC.CURRENT_PHASE);
3943:
3944: LNS_AMORTIZATION_SCHEDS_PKG.Insert_Row(
3937: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || P_LOAN_REC.NEXT_PRINCIPAL_AMOUNT);
3938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || P_LOAN_REC.NEXT_FEE_AMOUNT);
3940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'RATE_ID: ' || P_LOAN_REC.RATE_ID);
3941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
3942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PHASE: ' || P_LOAN_REC.CURRENT_PHASE);
3943:
3944: LNS_AMORTIZATION_SCHEDS_PKG.Insert_Row(
3945: X_AMORTIZATION_SCHEDULE_ID => P_LOAN_REC.NEXT_AMORTIZATION_ID
3938: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || P_LOAN_REC.NEXT_INTEREST_AMOUNT);
3939: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || P_LOAN_REC.NEXT_FEE_AMOUNT);
3940: LogMessage(FND_LOG.LEVEL_STATEMENT, 'RATE_ID: ' || P_LOAN_REC.RATE_ID);
3941: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
3942: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PHASE: ' || P_LOAN_REC.CURRENT_PHASE);
3943:
3944: LNS_AMORTIZATION_SCHEDS_PKG.Insert_Row(
3945: X_AMORTIZATION_SCHEDULE_ID => P_LOAN_REC.NEXT_AMORTIZATION_ID
3946: ,P_LOAN_ID => P_LOAN_REC.LOAN_ID
3955: ,P_OBJECT_VERSION_NUMBER => 1
3956: ,P_PRINCIPAL_BALANCE => l_prin_balance
3957: ,P_PHASE => P_LOAN_REC.CURRENT_PHASE);
3958:
3959: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_SCHEDULE_ID: ' || P_LOAN_REC.NEXT_AMORTIZATION_ID);
3960: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully inserted record into LNS_AMORTIZATION_SCHEDS');
3961:
3962: /* creating AR invoices */
3963: CREATE_AR_INVOICES(P_LOAN_REC, l_lines_tbl);
3956: ,P_PRINCIPAL_BALANCE => l_prin_balance
3957: ,P_PHASE => P_LOAN_REC.CURRENT_PHASE);
3958:
3959: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_SCHEDULE_ID: ' || P_LOAN_REC.NEXT_AMORTIZATION_ID);
3960: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully inserted record into LNS_AMORTIZATION_SCHEDS');
3961:
3962: /* creating AR invoices */
3963: CREATE_AR_INVOICES(P_LOAN_REC, l_lines_tbl);
3964:
3972: l_loan_header_rec.loan_id := P_LOAN_REC.LOAN_ID;
3973: l_loan_header_rec.BILLED_FLAG := 'Y';
3974: l_loan_header_rec.LAST_BILLED_DATE := sysdate;
3975:
3976: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating loan header info w following values:');
3977: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loan_header_rec.BILLED_FLAG);
3978: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LAST_BILLED_DATE: ' || l_loan_header_rec.LAST_BILLED_DATE);
3979:
3980: LNS_LOAN_HEADER_PUB.UPDATE_LOAN(P_OBJECT_VERSION_NUMBER => P_LOAN_REC.OBJECT_VERSION_NUMBER,
3973: l_loan_header_rec.BILLED_FLAG := 'Y';
3974: l_loan_header_rec.LAST_BILLED_DATE := sysdate;
3975:
3976: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating loan header info w following values:');
3977: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loan_header_rec.BILLED_FLAG);
3978: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LAST_BILLED_DATE: ' || l_loan_header_rec.LAST_BILLED_DATE);
3979:
3980: LNS_LOAN_HEADER_PUB.UPDATE_LOAN(P_OBJECT_VERSION_NUMBER => P_LOAN_REC.OBJECT_VERSION_NUMBER,
3981: P_LOAN_HEADER_REC => l_loan_header_rec,
3974: l_loan_header_rec.LAST_BILLED_DATE := sysdate;
3975:
3976: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating loan header info w following values:');
3977: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loan_header_rec.BILLED_FLAG);
3978: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LAST_BILLED_DATE: ' || l_loan_header_rec.LAST_BILLED_DATE);
3979:
3980: LNS_LOAN_HEADER_PUB.UPDATE_LOAN(P_OBJECT_VERSION_NUMBER => P_LOAN_REC.OBJECT_VERSION_NUMBER,
3981: P_LOAN_HEADER_REC => l_loan_header_rec,
3982: P_INIT_MSG_LIST => FND_API.G_FALSE,
3983: X_RETURN_STATUS => l_return_status,
3984: X_MSG_COUNT => l_msg_count,
3985: X_MSG_DATA => l_msg_data);
3986:
3987: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
3988:
3989: IF l_return_status = 'S' THEN
3990: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
3991: ELSE
3986:
3987: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
3988:
3989: IF l_return_status = 'S' THEN
3990: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
3991: ELSE
3992: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_LOAN_HEADER_PUB.UPDATE_LOAN returned error: ' || substr(l_msg_data,1,225));
3993: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
3994: FND_MSG_PUB.Add;
3988:
3989: IF l_return_status = 'S' THEN
3990: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
3991: ELSE
3992: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_LOAN_HEADER_PUB.UPDATE_LOAN returned error: ' || substr(l_msg_data,1,225));
3993: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
3994: FND_MSG_PUB.Add;
3995: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
3996: RAISE FND_API.G_EXC_ERROR;
3991: ELSE
3992: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_LOAN_HEADER_PUB.UPDATE_LOAN returned error: ' || substr(l_msg_data,1,225));
3993: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
3994: FND_MSG_PUB.Add;
3995: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
3996: RAISE FND_API.G_EXC_ERROR;
3997: END IF;
3998:
3999: STORE_LAST_PAYMENT_NUMBER(P_LOAN_REC.LOAN_ID);
4005: p_loan_id => P_LOAN_REC.LOAN_ID,
4006: p_amortization_schedule_id => P_LOAN_REC.NEXT_AMORTIZATION_ID);
4007:
4008: l_end := sysdate;
4009: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Statement generation timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
4010:
4011: /* get statement after it stored in db */
4012: open get_statement_cur(P_LOAN_REC.LOAN_ID);
4013: fetch get_statement_cur into l_statement_xml;
4017: l_offset := DBMS_LOB.INSTR(lob_loc => l_statement_xml,
4018: pattern => '>',
4019: offset => 1,
4020: nth => 1);
4021: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Have removed header from the statement');
4022: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_offset: ' || l_offset);
4023:
4024: /* copy generated statement to output */
4025: dbms_lob.copy(dest_lob => X_STATEMENT_XML,
4018: pattern => '>',
4019: offset => 1,
4020: nth => 1);
4021: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Have removed header from the statement');
4022: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_offset: ' || l_offset);
4023:
4024: /* copy generated statement to output */
4025: dbms_lob.copy(dest_lob => X_STATEMENT_XML,
4026: src_lob => l_statement_xml,
4025: dbms_lob.copy(dest_lob => X_STATEMENT_XML,
4026: src_lob => l_statement_xml,
4027: amount => dbms_lob.getlength(l_statement_xml)-l_offset,
4028: src_offset => l_offset+1);
4029: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Have copied generated statement to output');
4030:
4031: if P_COMMIT = FND_API.G_TRUE then
4032: COMMIT WORK;
4033: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loan ' || P_LOAN_REC.LOAN_NUMBER);
4029: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Have copied generated statement to output');
4030:
4031: if P_COMMIT = FND_API.G_TRUE then
4032: COMMIT WORK;
4033: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loan ' || P_LOAN_REC.LOAN_NUMBER);
4034: end if;
4035:
4036: -- END OF BODY OF API
4037: x_return_status := FND_API.G_RET_STS_SUCCESS;
4041: p_encoded => FND_API.G_FALSE,
4042: p_count => x_msg_count,
4043: p_data => x_msg_data);
4044:
4045: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully processed loan ' || P_LOAN_REC.LOAN_NUMBER);
4046: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
4047:
4048: EXCEPTION
4049: WHEN FND_API.G_EXC_ERROR THEN
4042: p_count => x_msg_count,
4043: p_data => x_msg_data);
4044:
4045: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully processed loan ' || P_LOAN_REC.LOAN_NUMBER);
4046: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
4047:
4048: EXCEPTION
4049: WHEN FND_API.G_EXC_ERROR THEN
4050: ROLLBACK TO PROCESS_SINGLE_LOAN_PVT;
4049: WHEN FND_API.G_EXC_ERROR THEN
4050: ROLLBACK TO PROCESS_SINGLE_LOAN_PVT;
4051: x_return_status := FND_API.G_RET_STS_ERROR;
4052: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4053: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loan ' || P_LOAN_REC.LOAN_NUMBER);
4054: g_cr_return_status := 'WARNING';
4055:
4056: /* building error statement */
4057: BUILD_ERROR_STATEMENT(P_LOAN_ID => P_LOAN_REC.LOAN_ID,
4066: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4067: ROLLBACK TO PROCESS_SINGLE_LOAN_PVT;
4068: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4069: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4070: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loan ' || P_LOAN_REC.LOAN_NUMBER);
4071: g_cr_return_status := 'WARNING';
4072:
4073: /* building error statement */
4074: BUILD_ERROR_STATEMENT(P_LOAN_ID => P_LOAN_REC.LOAN_ID,
4086: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
4087: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
4088: END IF;
4089: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4090: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loan ' || P_LOAN_REC.LOAN_NUMBER);
4091: g_cr_return_status := 'WARNING';
4092:
4093: /* building error statement */
4094: BUILD_ERROR_STATEMENT(P_LOAN_ID => P_LOAN_REC.LOAN_ID,
4179: where LOAN_ID = P_LOAN_ID;
4180:
4181: BEGIN
4182:
4183: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4184: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
4185:
4186: -- Standard start of API savepoint
4187: SAVEPOINT SINGLE_LOAN_NEXT_DD_PVT;
4180:
4181: BEGIN
4182:
4183: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4184: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
4185:
4186: -- Standard start of API savepoint
4187: SAVEPOINT SINGLE_LOAN_NEXT_DD_PVT;
4188: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Established savepoint');
4184: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
4185:
4186: -- Standard start of API savepoint
4187: SAVEPOINT SINGLE_LOAN_NEXT_DD_PVT;
4188: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Established savepoint');
4189:
4190: -- Standard call to check for call compatibility
4191: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
4192: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4202:
4203: -- START OF BODY OF API
4204: l_start := sysdate;
4205:
4206: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4207: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'loan_id: ' || P_LOAN_NEXT_DD_REC.LOAN_ID);
4208: LogMessage(FND_LOG.LEVEL_STATEMENT, 'object_version: ' || P_LOAN_NEXT_DD_REC.OBJECT_VERSION_NUMBER);
4209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'next_payment_number: ' || P_LOAN_NEXT_DD_REC.NEXT_PAYMENT_NUMBER);
4210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_NEXT_DD_REC.CUSTOM_PAYMENTS_FLAG);
4203: -- START OF BODY OF API
4204: l_start := sysdate;
4205:
4206: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4207: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'loan_id: ' || P_LOAN_NEXT_DD_REC.LOAN_ID);
4208: LogMessage(FND_LOG.LEVEL_STATEMENT, 'object_version: ' || P_LOAN_NEXT_DD_REC.OBJECT_VERSION_NUMBER);
4209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'next_payment_number: ' || P_LOAN_NEXT_DD_REC.NEXT_PAYMENT_NUMBER);
4210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_NEXT_DD_REC.CUSTOM_PAYMENTS_FLAG);
4211:
4204: l_start := sysdate;
4205:
4206: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4207: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'loan_id: ' || P_LOAN_NEXT_DD_REC.LOAN_ID);
4208: LogMessage(FND_LOG.LEVEL_STATEMENT, 'object_version: ' || P_LOAN_NEXT_DD_REC.OBJECT_VERSION_NUMBER);
4209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'next_payment_number: ' || P_LOAN_NEXT_DD_REC.NEXT_PAYMENT_NUMBER);
4210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_NEXT_DD_REC.CUSTOM_PAYMENTS_FLAG);
4211:
4212: /* get loan current phase */
4205:
4206: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4207: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'loan_id: ' || P_LOAN_NEXT_DD_REC.LOAN_ID);
4208: LogMessage(FND_LOG.LEVEL_STATEMENT, 'object_version: ' || P_LOAN_NEXT_DD_REC.OBJECT_VERSION_NUMBER);
4209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'next_payment_number: ' || P_LOAN_NEXT_DD_REC.NEXT_PAYMENT_NUMBER);
4210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_NEXT_DD_REC.CUSTOM_PAYMENTS_FLAG);
4211:
4212: /* get loan current phase */
4213: open loan_cur_phase_cur(P_LOAN_NEXT_DD_REC.LOAN_ID);
4206: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Processing loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4207: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'loan_id: ' || P_LOAN_NEXT_DD_REC.LOAN_ID);
4208: LogMessage(FND_LOG.LEVEL_STATEMENT, 'object_version: ' || P_LOAN_NEXT_DD_REC.OBJECT_VERSION_NUMBER);
4209: LogMessage(FND_LOG.LEVEL_STATEMENT, 'next_payment_number: ' || P_LOAN_NEXT_DD_REC.NEXT_PAYMENT_NUMBER);
4210: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || P_LOAN_NEXT_DD_REC.CUSTOM_PAYMENTS_FLAG);
4211:
4212: /* get loan current phase */
4213: open loan_cur_phase_cur(P_LOAN_NEXT_DD_REC.LOAN_ID);
4214: fetch loan_cur_phase_cur into l_cur_phase;
4213: open loan_cur_phase_cur(P_LOAN_NEXT_DD_REC.LOAN_ID);
4214: fetch loan_cur_phase_cur into l_cur_phase;
4215: close loan_cur_phase_cur;
4216:
4217: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_cur_phase);
4218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Getting next payment due date from lns_financials.preProcessInstallment...');
4219:
4220: if l_cur_phase = 'TERM' then
4221: lns_financials.preProcessInstallment(
4214: fetch loan_cur_phase_cur into l_cur_phase;
4215: close loan_cur_phase_cur;
4216:
4217: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_cur_phase);
4218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Getting next payment due date from lns_financials.preProcessInstallment...');
4219:
4220: if l_cur_phase = 'TERM' then
4221: lns_financials.preProcessInstallment(
4222: P_API_VERSION => 1.0,
4240: X_MSG_COUNT => l_msg_count,
4241: X_MSG_DATA => l_msg_data);
4242: end if;
4243:
4244: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Returns from lns_financials.preProcessInstallment:');
4245: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
4246: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
4247:
4248: l_next_payment_due_date := l_amortization_rec.due_date;
4241: X_MSG_DATA => l_msg_data);
4242: end if;
4243:
4244: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Returns from lns_financials.preProcessInstallment:');
4245: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
4246: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
4247:
4248: l_next_payment_due_date := l_amortization_rec.due_date;
4249:
4242: end if;
4243:
4244: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Returns from lns_financials.preProcessInstallment:');
4245: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
4246: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
4247:
4248: l_next_payment_due_date := l_amortization_rec.due_date;
4249:
4250: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'next_payment_due_date: ' || l_next_payment_due_date);
4246: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
4247:
4248: l_next_payment_due_date := l_amortization_rec.due_date;
4249:
4250: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'next_payment_due_date: ' || l_next_payment_due_date);
4251:
4252: if l_next_payment_due_date is null then
4253:
4254: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Next installment date is unknown.');
4250: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'next_payment_due_date: ' || l_next_payment_due_date);
4251:
4252: if l_next_payment_due_date is null then
4253:
4254: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Next installment date is unknown.');
4255: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_INST_DUE_DATE');
4256: FND_MSG_PUB.Add;
4257: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
4258: RAISE FND_API.G_EXC_ERROR;
4253:
4254: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Next installment date is unknown.');
4255: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_INST_DUE_DATE');
4256: FND_MSG_PUB.Add;
4257: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
4258: RAISE FND_API.G_EXC_ERROR;
4259:
4260: end if;
4261:
4259:
4260: end if;
4261:
4262: /* Updating loan header */
4263: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating LNS_LOAN_HEADER_ALL table...');
4264:
4265: l_loan_header_rec.loan_id := P_LOAN_NEXT_DD_REC.LOAN_ID;
4266: l_loan_header_rec.BILLED_FLAG := 'N';
4267: l_object_version_number := P_LOAN_NEXT_DD_REC.OBJECT_VERSION_NUMBER;
4272: X_RETURN_STATUS => l_return_status,
4273: X_MSG_COUNT => l_msg_count,
4274: X_MSG_DATA => l_msg_data);
4275:
4276: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
4277:
4278: IF l_return_status = 'S' THEN
4279: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
4280: ELSE
4275:
4276: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
4277:
4278: IF l_return_status = 'S' THEN
4279: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
4280: ELSE
4281: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_LOAN_HEADER_PUB.UPDATE_LOAN returned error: ' || substr(l_msg_data,1,225));
4282: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
4283: FND_MSG_PUB.Add;
4277:
4278: IF l_return_status = 'S' THEN
4279: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_LOAN_HEADERS_ALL');
4280: ELSE
4281: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_LOAN_HEADER_PUB.UPDATE_LOAN returned error: ' || substr(l_msg_data,1,225));
4282: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
4283: FND_MSG_PUB.Add;
4284: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
4285: RAISE FND_API.G_EXC_ERROR;
4280: ELSE
4281: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_LOAN_HEADER_PUB.UPDATE_LOAN returned error: ' || substr(l_msg_data,1,225));
4282: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_LOAN_FAIL');
4283: FND_MSG_PUB.Add;
4284: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
4285: RAISE FND_API.G_EXC_ERROR;
4286: END IF;
4287:
4288: /* getting terms version for future update */
4290: fetch term_version_cur into l_term_id, l_version_number;
4291: close term_version_cur;
4292:
4293: /* Updating terms */
4294: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating lns_terms w following values:');
4295:
4296: l_term_rec.TERM_ID := l_term_id;
4297: l_term_rec.LOAN_ID := P_LOAN_NEXT_DD_REC.LOAN_ID;
4298:
4297: l_term_rec.LOAN_ID := P_LOAN_NEXT_DD_REC.LOAN_ID;
4298:
4299: if l_cur_phase is null or l_cur_phase = 'TERM' then
4300: l_term_rec.NEXT_PAYMENT_DUE_DATE := l_next_payment_due_date;
4301: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_term_rec.NEXT_PAYMENT_DUE_DATE);
4302: elsif l_cur_phase = 'OPEN' then
4303: l_term_rec.OPEN_NEXT_PAYMENT_DATE := l_next_payment_due_date;
4304: LogMessage(FND_LOG.LEVEL_STATEMENT, 'OPEN_NEXT_PAYMENT_DATE: ' || l_term_rec.OPEN_NEXT_PAYMENT_DATE);
4305: end if;
4300: l_term_rec.NEXT_PAYMENT_DUE_DATE := l_next_payment_due_date;
4301: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_term_rec.NEXT_PAYMENT_DUE_DATE);
4302: elsif l_cur_phase = 'OPEN' then
4303: l_term_rec.OPEN_NEXT_PAYMENT_DATE := l_next_payment_due_date;
4304: LogMessage(FND_LOG.LEVEL_STATEMENT, 'OPEN_NEXT_PAYMENT_DATE: ' || l_term_rec.OPEN_NEXT_PAYMENT_DATE);
4305: end if;
4306:
4307: LNS_TERMS_PUB.update_term(P_OBJECT_VERSION_NUMBER => l_version_number,
4308: p_init_msg_list => FND_API.G_FALSE,
4310: X_RETURN_STATUS => l_return_status,
4311: X_MSG_COUNT => l_msg_count,
4312: X_MSG_DATA => l_msg_data);
4313:
4314: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
4315:
4316: IF l_return_status = 'S' THEN
4317: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_TERMS');
4318: ELSE
4313:
4314: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
4315:
4316: IF l_return_status = 'S' THEN
4317: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_TERMS');
4318: ELSE
4319: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_TERMS_PUB.update_term returned error: ' || substr(l_msg_data,1,225));
4320: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_TERM_FAIL');
4321: FND_MSG_PUB.Add;
4315:
4316: IF l_return_status = 'S' THEN
4317: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_TERMS');
4318: ELSE
4319: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_TERMS_PUB.update_term returned error: ' || substr(l_msg_data,1,225));
4320: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_TERM_FAIL');
4321: FND_MSG_PUB.Add;
4322: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
4323: RAISE FND_API.G_EXC_ERROR;
4318: ELSE
4319: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: LNS_TERMS_PUB.update_term returned error: ' || substr(l_msg_data,1,225));
4320: FND_MESSAGE.SET_NAME('LNS', 'LNS_UPD_TERM_FAIL');
4321: FND_MSG_PUB.Add;
4322: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
4323: RAISE FND_API.G_EXC_ERROR;
4324: END IF;
4325:
4326: l_end := sysdate;
4323: RAISE FND_API.G_EXC_ERROR;
4324: END IF;
4325:
4326: l_end := sysdate;
4327: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
4328:
4329: if P_COMMIT = FND_API.G_TRUE then
4330: COMMIT WORK;
4331: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4327: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
4328:
4329: if P_COMMIT = FND_API.G_TRUE then
4330: COMMIT WORK;
4331: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4332: end if;
4333:
4334: -- END OF BODY OF API
4335: x_return_status := FND_API.G_RET_STS_SUCCESS;
4339: p_encoded => FND_API.G_FALSE,
4340: p_count => x_msg_count,
4341: p_data => x_msg_data);
4342:
4343: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully processed loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4344: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
4345:
4346: EXCEPTION
4347: WHEN FND_API.G_EXC_ERROR THEN
4340: p_count => x_msg_count,
4341: p_data => x_msg_data);
4342:
4343: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully processed loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4344: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
4345:
4346: EXCEPTION
4347: WHEN FND_API.G_EXC_ERROR THEN
4348: ROLLBACK TO SINGLE_LOAN_NEXT_DD_PVT;
4347: WHEN FND_API.G_EXC_ERROR THEN
4348: ROLLBACK TO SINGLE_LOAN_NEXT_DD_PVT;
4349: x_return_status := FND_API.G_RET_STS_ERROR;
4350: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4351: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4352: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4353: ROLLBACK TO SINGLE_LOAN_NEXT_DD_PVT;
4354: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4355: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4352: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4353: ROLLBACK TO SINGLE_LOAN_NEXT_DD_PVT;
4354: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4355: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4356: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4357: WHEN OTHERS THEN
4358: ROLLBACK TO SINGLE_LOAN_NEXT_DD_PVT;
4359: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4360: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
4360: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
4361: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
4362: END IF;
4363: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
4364: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loan ' || P_LOAN_NEXT_DD_REC.LOAN_NUMBER);
4365: END;
4366:
4367:
4368:
4418: BEGIN
4419:
4420: g_cr_return_status := 'NORMAL';
4421:
4422: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4423: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Processing paid off loans...-------->>');
4424:
4425: PROCESS_PAID_LOANS(
4426: P_API_VERSION => 1.0,
4419:
4420: g_cr_return_status := 'NORMAL';
4421:
4422: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4423: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Processing paid off loans...-------->>');
4424:
4425: PROCESS_PAID_LOANS(
4426: P_API_VERSION => 1.0,
4427: P_INIT_MSG_LIST => FND_API.G_TRUE,
4432: X_RETURN_STATUS => RETCODE,
4433: X_MSG_COUNT => l_msg_count,
4434: X_MSG_DATA => ERRBUF);
4435:
4436: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4437:
4438: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4439: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Processing paid off loans that must be reactivated...-------->>');
4440:
4434: X_MSG_DATA => ERRBUF);
4435:
4436: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4437:
4438: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4439: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Processing paid off loans that must be reactivated...-------->>');
4440:
4441: REACTIVATE_PAID_LOANS(
4442: P_API_VERSION => 1.0,
4435:
4436: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4437:
4438: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4439: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Processing paid off loans that must be reactivated...-------->>');
4440:
4441: REACTIVATE_PAID_LOANS(
4442: P_API_VERSION => 1.0,
4443: P_INIT_MSG_LIST => FND_API.G_TRUE,
4446: X_RETURN_STATUS => RETCODE,
4447: X_MSG_COUNT => l_msg_count,
4448: X_MSG_DATA => ERRBUF);
4449:
4450: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4451: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Recalculating due date for past due loans...-------->>');
4452:
4453: CALC_PAST_DUE_LOANS_NEXT_DD(
4454: P_API_VERSION => 1.0,
4447: X_MSG_COUNT => l_msg_count,
4448: X_MSG_DATA => ERRBUF);
4449:
4450: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4451: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Recalculating due date for past due loans...-------->>');
4452:
4453: CALC_PAST_DUE_LOANS_NEXT_DD(
4454: P_API_VERSION => 1.0,
4455: P_INIT_MSG_LIST => FND_API.G_TRUE,
4458: X_RETURN_STATUS => RETCODE,
4459: X_MSG_COUNT => l_msg_count,
4460: X_MSG_DATA => ERRBUF);
4461:
4462: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4463: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Billing loans...-------->>');
4464:
4465: /* bill loans and stores all last billed statements in g_last_all_statements */
4466: BILL_LOANS(
4459: X_MSG_COUNT => l_msg_count,
4460: X_MSG_DATA => ERRBUF);
4461:
4462: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4463: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Billing loans...-------->>');
4464:
4465: /* bill loans and stores all last billed statements in g_last_all_statements */
4466: BILL_LOANS(
4467: P_API_VERSION => 1.0,
4545: BEGIN
4546:
4547: g_cr_return_status := 'NORMAL';
4548:
4549: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4550: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Reversing a loans last payment...-------->>');
4551:
4552: REVERSE_LAST_AMORTIZATION(
4553: P_API_VERSION => 1.0,
4546:
4547: g_cr_return_status := 'NORMAL';
4548:
4549: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4550: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '<<--------Reversing a loans last payment...-------->>');
4551:
4552: REVERSE_LAST_AMORTIZATION(
4553: P_API_VERSION => 1.0,
4554: P_INIT_MSG_LIST => FND_API.G_TRUE,
4618: l_return boolean;
4619:
4620: BEGIN
4621:
4622: LogMessage(FND_LOG.LEVEL_UNEXPECTED, ' ');
4623:
4624: ADJUST_ORIGINAL_RECEIVABLE(
4625: P_API_VERSION => 1.0,
4626: P_INIT_MSG_LIST => FND_API.G_TRUE,
4766: ORDER BY head.LOAN_ID;
4767:
4768: BEGIN
4769:
4770: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
4771:
4772: -- Standard start of API savepoint
4773: SAVEPOINT BILL_LOANS_PVT;
4774: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
4770: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
4771:
4772: -- Standard start of API savepoint
4773: SAVEPOINT BILL_LOANS_PVT;
4774: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
4775:
4776: -- Standard call to check for call compatibility
4777: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
4778: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4793: dbms_lob.open(g_last_all_statements, dbms_lob.lob_readwrite);
4794:
4795: init;
4796:
4797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Passed input parameters:');
4798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Borrower ID: ' || P_BORROWER_ID);
4799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ID: ' || P_LOAN_ID);
4800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'From Days/Date: ' || P_FROM_DAYS_TO_DD || GET_BILLING_DATE(P_FROM_DAYS_TO_DD));
4801: LogMessage(FND_LOG.LEVEL_STATEMENT, 'To Days/Date: ' || P_TO_DAYS_TO_DD || GET_BILLING_DATE(P_TO_DAYS_TO_DD));
4794:
4795: init;
4796:
4797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Passed input parameters:');
4798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Borrower ID: ' || P_BORROWER_ID);
4799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ID: ' || P_LOAN_ID);
4800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'From Days/Date: ' || P_FROM_DAYS_TO_DD || GET_BILLING_DATE(P_FROM_DAYS_TO_DD));
4801: LogMessage(FND_LOG.LEVEL_STATEMENT, 'To Days/Date: ' || P_TO_DAYS_TO_DD || GET_BILLING_DATE(P_TO_DAYS_TO_DD));
4802:
4795: init;
4796:
4797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Passed input parameters:');
4798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Borrower ID: ' || P_BORROWER_ID);
4799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ID: ' || P_LOAN_ID);
4800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'From Days/Date: ' || P_FROM_DAYS_TO_DD || GET_BILLING_DATE(P_FROM_DAYS_TO_DD));
4801: LogMessage(FND_LOG.LEVEL_STATEMENT, 'To Days/Date: ' || P_TO_DAYS_TO_DD || GET_BILLING_DATE(P_TO_DAYS_TO_DD));
4802:
4803: /* making decision what to do */
4796:
4797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Passed input parameters:');
4798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Borrower ID: ' || P_BORROWER_ID);
4799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ID: ' || P_LOAN_ID);
4800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'From Days/Date: ' || P_FROM_DAYS_TO_DD || GET_BILLING_DATE(P_FROM_DAYS_TO_DD));
4801: LogMessage(FND_LOG.LEVEL_STATEMENT, 'To Days/Date: ' || P_TO_DAYS_TO_DD || GET_BILLING_DATE(P_TO_DAYS_TO_DD));
4802:
4803: /* making decision what to do */
4804: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Using following parameters:');
4797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Passed input parameters:');
4798: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Borrower ID: ' || P_BORROWER_ID);
4799: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan ID: ' || P_LOAN_ID);
4800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'From Days/Date: ' || P_FROM_DAYS_TO_DD || GET_BILLING_DATE(P_FROM_DAYS_TO_DD));
4801: LogMessage(FND_LOG.LEVEL_STATEMENT, 'To Days/Date: ' || P_TO_DAYS_TO_DD || GET_BILLING_DATE(P_TO_DAYS_TO_DD));
4802:
4803: /* making decision what to do */
4804: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Using following parameters:');
4805:
4800: LogMessage(FND_LOG.LEVEL_STATEMENT, 'From Days/Date: ' || P_FROM_DAYS_TO_DD || GET_BILLING_DATE(P_FROM_DAYS_TO_DD));
4801: LogMessage(FND_LOG.LEVEL_STATEMENT, 'To Days/Date: ' || P_TO_DAYS_TO_DD || GET_BILLING_DATE(P_TO_DAYS_TO_DD));
4802:
4803: /* making decision what to do */
4804: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Using following parameters:');
4805:
4806: if P_LOAN_ID is not null then -- if loan_id is passed - ignore all other input parameters
4807:
4808: l_loan_id := P_LOAN_ID;
4809: l_borrower_id := null;
4810: l_from_date := null;
4811: l_to_date := null;
4812:
4813: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Loan ID: ' || l_loan_id);
4814:
4815: elsif P_BORROWER_ID is null and P_FROM_DAYS_TO_DD is null and P_TO_DAYS_TO_DD is null then
4816:
4817: if g_days_to_bill_before_dd is null then
4814:
4815: elsif P_BORROWER_ID is null and P_FROM_DAYS_TO_DD is null and P_TO_DAYS_TO_DD is null then
4816:
4817: if g_days_to_bill_before_dd is null then
4818: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: At least one of the days must be set.');
4819: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_BILLING_INP_PAR');
4820: FND_MSG_PUB.Add;
4821: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
4822: RAISE FND_API.G_EXC_ERROR;
4817: if g_days_to_bill_before_dd is null then
4818: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: At least one of the days must be set.');
4819: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_BILLING_INP_PAR');
4820: FND_MSG_PUB.Add;
4821: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
4822: RAISE FND_API.G_EXC_ERROR;
4823: else
4824: l_to_date := g_days_to_bill_before_dd;
4825: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'To Days/Date: ' || l_to_date || GET_BILLING_DATE(l_to_date));
4821: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
4822: RAISE FND_API.G_EXC_ERROR;
4823: else
4824: l_to_date := g_days_to_bill_before_dd;
4825: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'To Days/Date: ' || l_to_date || GET_BILLING_DATE(l_to_date));
4826: end if;
4827:
4828:
4829: else
4833: l_from_date := P_FROM_DAYS_TO_DD;
4834: l_to_date := P_TO_DAYS_TO_DD;
4835:
4836: if l_borrower_id is not null then
4837: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Borrower ID: ' || l_borrower_id);
4838: end if;
4839:
4840: if l_from_date is not null then
4841: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'From Days/Date: ' || l_from_date || GET_BILLING_DATE(l_from_date));
4837: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Borrower ID: ' || l_borrower_id);
4838: end if;
4839:
4840: if l_from_date is not null then
4841: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'From Days/Date: ' || l_from_date || GET_BILLING_DATE(l_from_date));
4842: end if;
4843:
4844: if l_to_date is not null then
4845: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'To Days/Date: ' || l_to_date || GET_BILLING_DATE(l_to_date));
4841: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'From Days/Date: ' || l_from_date || GET_BILLING_DATE(l_from_date));
4842: end if;
4843:
4844: if l_to_date is not null then
4845: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'To Days/Date: ' || l_to_date || GET_BILLING_DATE(l_to_date));
4846: end if;
4847:
4848: end if;
4849:
4847:
4848: end if;
4849:
4850: /* quering for loans */
4851: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Searching for not billed yet loans to process...');
4852:
4853: open loans_to_bill_cur(l_borrower_id, l_loan_id, l_from_date, l_to_date);
4854:
4855: l_Count1 := 0;
4884: l_loans_to_bill_tbl(l_Count1).FORGIVENESS_PERCENT;
4885:
4886: exit when loans_to_bill_cur%NOTFOUND;
4887:
4888: LogMessage(FND_LOG.LEVEL_STATEMENT, ' ');
4889: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan #' || l_Count1);
4890: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loans_to_bill_tbl(l_Count1).LOAN_ID);
4891: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4892: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loans_to_bill_tbl(l_Count1).LOAN_DESCRIPTION);
4885:
4886: exit when loans_to_bill_cur%NOTFOUND;
4887:
4888: LogMessage(FND_LOG.LEVEL_STATEMENT, ' ');
4889: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan #' || l_Count1);
4890: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loans_to_bill_tbl(l_Count1).LOAN_ID);
4891: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4892: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loans_to_bill_tbl(l_Count1).LOAN_DESCRIPTION);
4893: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loans_to_bill_tbl(l_Count1).FUNDED_AMOUNT);
4886: exit when loans_to_bill_cur%NOTFOUND;
4887:
4888: LogMessage(FND_LOG.LEVEL_STATEMENT, ' ');
4889: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan #' || l_Count1);
4890: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loans_to_bill_tbl(l_Count1).LOAN_ID);
4891: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4892: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loans_to_bill_tbl(l_Count1).LOAN_DESCRIPTION);
4893: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loans_to_bill_tbl(l_Count1).FUNDED_AMOUNT);
4894: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || l_loans_to_bill_tbl(l_Count1).BILL_TO_ADDRESS_ID);
4887:
4888: LogMessage(FND_LOG.LEVEL_STATEMENT, ' ');
4889: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan #' || l_Count1);
4890: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loans_to_bill_tbl(l_Count1).LOAN_ID);
4891: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4892: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loans_to_bill_tbl(l_Count1).LOAN_DESCRIPTION);
4893: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loans_to_bill_tbl(l_Count1).FUNDED_AMOUNT);
4894: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || l_loans_to_bill_tbl(l_Count1).BILL_TO_ADDRESS_ID);
4895: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || l_loans_to_bill_tbl(l_Count1).FIRST_PAYMENT_DATE);
4888: LogMessage(FND_LOG.LEVEL_STATEMENT, ' ');
4889: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan #' || l_Count1);
4890: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loans_to_bill_tbl(l_Count1).LOAN_ID);
4891: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4892: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loans_to_bill_tbl(l_Count1).LOAN_DESCRIPTION);
4893: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loans_to_bill_tbl(l_Count1).FUNDED_AMOUNT);
4894: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || l_loans_to_bill_tbl(l_Count1).BILL_TO_ADDRESS_ID);
4895: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || l_loans_to_bill_tbl(l_Count1).FIRST_PAYMENT_DATE);
4896: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_loans_to_bill_tbl(l_Count1).NEXT_PAYMENT_DUE_DATE);
4889: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Loan #' || l_Count1);
4890: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loans_to_bill_tbl(l_Count1).LOAN_ID);
4891: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4892: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loans_to_bill_tbl(l_Count1).LOAN_DESCRIPTION);
4893: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loans_to_bill_tbl(l_Count1).FUNDED_AMOUNT);
4894: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || l_loans_to_bill_tbl(l_Count1).BILL_TO_ADDRESS_ID);
4895: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || l_loans_to_bill_tbl(l_Count1).FIRST_PAYMENT_DATE);
4896: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_loans_to_bill_tbl(l_Count1).NEXT_PAYMENT_DUE_DATE);
4897: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loans_to_bill_tbl(l_Count1).BILLED_FLAG);
4890: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loans_to_bill_tbl(l_Count1).LOAN_ID);
4891: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4892: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loans_to_bill_tbl(l_Count1).LOAN_DESCRIPTION);
4893: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loans_to_bill_tbl(l_Count1).FUNDED_AMOUNT);
4894: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || l_loans_to_bill_tbl(l_Count1).BILL_TO_ADDRESS_ID);
4895: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || l_loans_to_bill_tbl(l_Count1).FIRST_PAYMENT_DATE);
4896: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_loans_to_bill_tbl(l_Count1).NEXT_PAYMENT_DUE_DATE);
4897: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loans_to_bill_tbl(l_Count1).BILLED_FLAG);
4898: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_CURRENCY);
4891: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4892: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loans_to_bill_tbl(l_Count1).LOAN_DESCRIPTION);
4893: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loans_to_bill_tbl(l_Count1).FUNDED_AMOUNT);
4894: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || l_loans_to_bill_tbl(l_Count1).BILL_TO_ADDRESS_ID);
4895: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || l_loans_to_bill_tbl(l_Count1).FIRST_PAYMENT_DATE);
4896: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_loans_to_bill_tbl(l_Count1).NEXT_PAYMENT_DUE_DATE);
4897: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loans_to_bill_tbl(l_Count1).BILLED_FLAG);
4898: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_CURRENCY);
4899: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loans_to_bill_tbl(l_Count1).CUST_ACCOUNT_ID);
4892: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loans_to_bill_tbl(l_Count1).LOAN_DESCRIPTION);
4893: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loans_to_bill_tbl(l_Count1).FUNDED_AMOUNT);
4894: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || l_loans_to_bill_tbl(l_Count1).BILL_TO_ADDRESS_ID);
4895: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || l_loans_to_bill_tbl(l_Count1).FIRST_PAYMENT_DATE);
4896: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_loans_to_bill_tbl(l_Count1).NEXT_PAYMENT_DUE_DATE);
4897: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loans_to_bill_tbl(l_Count1).BILLED_FLAG);
4898: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_CURRENCY);
4899: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loans_to_bill_tbl(l_Count1).CUST_ACCOUNT_ID);
4900: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).CUSTOM_PAYMENTS_FLAG);
4893: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loans_to_bill_tbl(l_Count1).FUNDED_AMOUNT);
4894: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || l_loans_to_bill_tbl(l_Count1).BILL_TO_ADDRESS_ID);
4895: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || l_loans_to_bill_tbl(l_Count1).FIRST_PAYMENT_DATE);
4896: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_loans_to_bill_tbl(l_Count1).NEXT_PAYMENT_DUE_DATE);
4897: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loans_to_bill_tbl(l_Count1).BILLED_FLAG);
4898: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_CURRENCY);
4899: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loans_to_bill_tbl(l_Count1).CUST_ACCOUNT_ID);
4900: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).CUSTOM_PAYMENTS_FLAG);
4901: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_PAYMENT_FREQUENCY);
4894: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILL_TO_ADDRESS_ID: ' || l_loans_to_bill_tbl(l_Count1).BILL_TO_ADDRESS_ID);
4895: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || l_loans_to_bill_tbl(l_Count1).FIRST_PAYMENT_DATE);
4896: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_loans_to_bill_tbl(l_Count1).NEXT_PAYMENT_DUE_DATE);
4897: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loans_to_bill_tbl(l_Count1).BILLED_FLAG);
4898: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_CURRENCY);
4899: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loans_to_bill_tbl(l_Count1).CUST_ACCOUNT_ID);
4900: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).CUSTOM_PAYMENTS_FLAG);
4901: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_PAYMENT_FREQUENCY);
4902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loans_to_bill_tbl(l_Count1).NUMBER_GRACE_DAYS);
4895: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FIRST_PAYMENT_DATE: ' || l_loans_to_bill_tbl(l_Count1).FIRST_PAYMENT_DATE);
4896: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_loans_to_bill_tbl(l_Count1).NEXT_PAYMENT_DUE_DATE);
4897: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loans_to_bill_tbl(l_Count1).BILLED_FLAG);
4898: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_CURRENCY);
4899: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loans_to_bill_tbl(l_Count1).CUST_ACCOUNT_ID);
4900: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).CUSTOM_PAYMENTS_FLAG);
4901: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_PAYMENT_FREQUENCY);
4902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loans_to_bill_tbl(l_Count1).NUMBER_GRACE_DAYS);
4903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loans_to_bill_tbl(l_Count1).PAYMENT_APPLICATION_ORDER);
4896: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NEXT_PAYMENT_DUE_DATE: ' || l_loans_to_bill_tbl(l_Count1).NEXT_PAYMENT_DUE_DATE);
4897: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loans_to_bill_tbl(l_Count1).BILLED_FLAG);
4898: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_CURRENCY);
4899: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loans_to_bill_tbl(l_Count1).CUST_ACCOUNT_ID);
4900: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).CUSTOM_PAYMENTS_FLAG);
4901: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_PAYMENT_FREQUENCY);
4902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loans_to_bill_tbl(l_Count1).NUMBER_GRACE_DAYS);
4903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loans_to_bill_tbl(l_Count1).PAYMENT_APPLICATION_ORDER);
4904: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE_TYPE);
4897: LogMessage(FND_LOG.LEVEL_STATEMENT, 'BILLED_FLAG: ' || l_loans_to_bill_tbl(l_Count1).BILLED_FLAG);
4898: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_CURRENCY);
4899: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loans_to_bill_tbl(l_Count1).CUST_ACCOUNT_ID);
4900: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).CUSTOM_PAYMENTS_FLAG);
4901: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_PAYMENT_FREQUENCY);
4902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loans_to_bill_tbl(l_Count1).NUMBER_GRACE_DAYS);
4903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loans_to_bill_tbl(l_Count1).PAYMENT_APPLICATION_ORDER);
4904: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE_TYPE);
4905: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_DATE);
4898: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_CURRENCY);
4899: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loans_to_bill_tbl(l_Count1).CUST_ACCOUNT_ID);
4900: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).CUSTOM_PAYMENTS_FLAG);
4901: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_PAYMENT_FREQUENCY);
4902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loans_to_bill_tbl(l_Count1).NUMBER_GRACE_DAYS);
4903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loans_to_bill_tbl(l_Count1).PAYMENT_APPLICATION_ORDER);
4904: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE_TYPE);
4905: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_DATE);
4906: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE);
4899: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loans_to_bill_tbl(l_Count1).CUST_ACCOUNT_ID);
4900: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).CUSTOM_PAYMENTS_FLAG);
4901: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_PAYMENT_FREQUENCY);
4902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loans_to_bill_tbl(l_Count1).NUMBER_GRACE_DAYS);
4903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loans_to_bill_tbl(l_Count1).PAYMENT_APPLICATION_ORDER);
4904: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE_TYPE);
4905: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_DATE);
4906: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE);
4907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loans_to_bill_tbl(l_Count1).ORG_ID);
4900: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUSTOM_PAYMENTS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).CUSTOM_PAYMENTS_FLAG);
4901: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_PAYMENT_FREQUENCY);
4902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loans_to_bill_tbl(l_Count1).NUMBER_GRACE_DAYS);
4903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loans_to_bill_tbl(l_Count1).PAYMENT_APPLICATION_ORDER);
4904: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE_TYPE);
4905: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_DATE);
4906: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE);
4907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loans_to_bill_tbl(l_Count1).ORG_ID);
4908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loans_to_bill_tbl(l_Count1).LEGAL_ENTITY_ID);
4901: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_PAYMENT_FREQUENCY: ' || l_loans_to_bill_tbl(l_Count1).LOAN_PAYMENT_FREQUENCY);
4902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loans_to_bill_tbl(l_Count1).NUMBER_GRACE_DAYS);
4903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loans_to_bill_tbl(l_Count1).PAYMENT_APPLICATION_ORDER);
4904: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE_TYPE);
4905: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_DATE);
4906: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE);
4907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loans_to_bill_tbl(l_Count1).ORG_ID);
4908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loans_to_bill_tbl(l_Count1).LEGAL_ENTITY_ID);
4909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loans_to_bill_tbl(l_Count1).CURRENT_PHASE);
4902: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loans_to_bill_tbl(l_Count1).NUMBER_GRACE_DAYS);
4903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loans_to_bill_tbl(l_Count1).PAYMENT_APPLICATION_ORDER);
4904: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE_TYPE);
4905: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_DATE);
4906: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE);
4907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loans_to_bill_tbl(l_Count1).ORG_ID);
4908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loans_to_bill_tbl(l_Count1).LEGAL_ENTITY_ID);
4909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loans_to_bill_tbl(l_Count1).CURRENT_PHASE);
4910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_FLAG);
4903: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loans_to_bill_tbl(l_Count1).PAYMENT_APPLICATION_ORDER);
4904: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE_TYPE);
4905: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_DATE);
4906: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE);
4907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loans_to_bill_tbl(l_Count1).ORG_ID);
4908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loans_to_bill_tbl(l_Count1).LEGAL_ENTITY_ID);
4909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loans_to_bill_tbl(l_Count1).CURRENT_PHASE);
4910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_FLAG);
4911: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_PERCENT: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_PERCENT);
4904: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE_TYPE);
4905: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_DATE);
4906: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE);
4907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loans_to_bill_tbl(l_Count1).ORG_ID);
4908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loans_to_bill_tbl(l_Count1).LEGAL_ENTITY_ID);
4909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loans_to_bill_tbl(l_Count1).CURRENT_PHASE);
4910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_FLAG);
4911: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_PERCENT: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_PERCENT);
4912:
4905: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_DATE);
4906: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE);
4907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loans_to_bill_tbl(l_Count1).ORG_ID);
4908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loans_to_bill_tbl(l_Count1).LEGAL_ENTITY_ID);
4909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loans_to_bill_tbl(l_Count1).CURRENT_PHASE);
4910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_FLAG);
4911: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_PERCENT: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_PERCENT);
4912:
4913: END LOOP;
4906: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loans_to_bill_tbl(l_Count1).EXCHANGE_RATE);
4907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loans_to_bill_tbl(l_Count1).ORG_ID);
4908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loans_to_bill_tbl(l_Count1).LEGAL_ENTITY_ID);
4909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loans_to_bill_tbl(l_Count1).CURRENT_PHASE);
4910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_FLAG);
4911: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_PERCENT: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_PERCENT);
4912:
4913: END LOOP;
4914:
4907: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loans_to_bill_tbl(l_Count1).ORG_ID);
4908: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loans_to_bill_tbl(l_Count1).LEGAL_ENTITY_ID);
4909: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loans_to_bill_tbl(l_Count1).CURRENT_PHASE);
4910: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_FLAG);
4911: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_PERCENT: ' || l_loans_to_bill_tbl(l_Count1).FORGIVENESS_PERCENT);
4912:
4913: END LOOP;
4914:
4915: close loans_to_bill_cur;
4914:
4915: close loans_to_bill_cur;
4916:
4917: l_Count := l_loans_to_bill_tbl.count;
4918: LogMessage(FND_LOG.LEVEL_STATEMENT, '______________');
4919: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Total found ' || l_Count || ' loan(s) to process');
4920:
4921: if l_Count > 0 then
4922:
4915: close loans_to_bill_cur;
4916:
4917: l_Count := l_loans_to_bill_tbl.count;
4918: LogMessage(FND_LOG.LEVEL_STATEMENT, '______________');
4919: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Total found ' || l_Count || ' loan(s) to process');
4920:
4921: if l_Count > 0 then
4922:
4923: dbms_lob.createtemporary(l_error_statements_xml, FALSE, DBMS_LOB.CALL);
4925:
4926: /* bill all selected loans */
4927: FOR l_Count1 IN 1..l_loans_to_bill_tbl.COUNT LOOP
4928:
4929: LogMessage(FND_LOG.LEVEL_PROCEDURE, ' ');
4930: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Processing loan #' || l_Count1);
4931:
4932: l_start := sysdate;
4933: BILL_SINGLE_LOAN(
4926: /* bill all selected loans */
4927: FOR l_Count1 IN 1..l_loans_to_bill_tbl.COUNT LOOP
4928:
4929: LogMessage(FND_LOG.LEVEL_PROCEDURE, ' ');
4930: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Processing loan #' || l_Count1);
4931:
4932: l_start := sysdate;
4933: BILL_SINGLE_LOAN(
4934: P_API_VERSION => 1.0,
4941: X_MSG_COUNT => l_msg_count,
4942: X_MSG_DATA => l_msg_data);
4943:
4944: l_end := sysdate;
4945: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Total billing timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
4946:
4947: IF l_return_status = 'S' THEN /* append to all statements clob */
4948:
4949: dbms_lob.Append(g_last_all_statements, l_single_statement_xml);
4952: if l_loans_to_bill_tbl(l_Count1).FORGIVENESS_FLAG = 'Y' and
4953: l_loans_to_bill_tbl(l_Count1).FORGIVENESS_PERCENT > 0 and
4954: g_forgiveness_rec_trx_id is not null then
4955:
4956: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Performing loan forgiveness adjustment for loan ' || l_loans_to_bill_tbl(l_Count1).LOAN_ID || '...');
4957: l_start1 := sysdate;
4958: FORGIVENESS_ADJUSTMENT(
4959: P_API_VERSION => 1.0,
4960: P_INIT_MSG_LIST => FND_API.G_FALSE,
4965: X_MSG_COUNT => l_msg_count,
4966: X_MSG_DATA => l_msg_data);
4967:
4968: IF l_return_status = 'S' THEN
4969: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully performed forgiveness adjustment.');
4970: ELSE
4971: g_cr_return_status := 'WARNING';
4972: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Failed to perform forgiveness adjustment for loan ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4973: END IF;
4968: IF l_return_status = 'S' THEN
4969: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully performed forgiveness adjustment.');
4970: ELSE
4971: g_cr_return_status := 'WARNING';
4972: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Failed to perform forgiveness adjustment for loan ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4973: END IF;
4974:
4975: l_end1 := sysdate;
4976: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Forgiveness adjustment timing: ' || round((l_end1 - l_start1)*86400, 2) || ' sec');
4972: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Failed to perform forgiveness adjustment for loan ' || l_loans_to_bill_tbl(l_Count1).LOAN_NUMBER);
4973: END IF;
4974:
4975: l_end1 := sysdate;
4976: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Forgiveness adjustment timing: ' || round((l_end1 - l_start1)*86400, 2) || ' sec');
4977:
4978: else
4979: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Will not perform loan forgiveness adjustment for loan ' || l_loans_to_bill_tbl(l_Count1).LOAN_ID);
4980: end if;
4975: l_end1 := sysdate;
4976: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Forgiveness adjustment timing: ' || round((l_end1 - l_start1)*86400, 2) || ' sec');
4977:
4978: else
4979: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Will not perform loan forgiveness adjustment for loan ' || l_loans_to_bill_tbl(l_Count1).LOAN_ID);
4980: end if;
4981:
4982: ELSE /* otherwise append to errors clob */
4983:
5002:
5003:
5004: END IF;
5005:
5006: LogMessage(FND_LOG.LEVEL_PROCEDURE, '______________');
5007: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Total processed ' || (l_Count1-1) || ' loan(s)');
5008:
5009: if P_COMMIT = FND_API.G_TRUE then
5010: COMMIT WORK;
5003:
5004: END IF;
5005:
5006: LogMessage(FND_LOG.LEVEL_PROCEDURE, '______________');
5007: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Total processed ' || (l_Count1-1) || ' loan(s)');
5008:
5009: if P_COMMIT = FND_API.G_TRUE then
5010: COMMIT WORK;
5011: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loans');
5007: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'Total processed ' || (l_Count1-1) || ' loan(s)');
5008:
5009: if P_COMMIT = FND_API.G_TRUE then
5010: COMMIT WORK;
5011: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loans');
5012: end if;
5013:
5014: -- END OF BODY OF API
5015: x_return_status := FND_API.G_RET_STS_SUCCESS;
5019: p_encoded => FND_API.G_FALSE,
5020: p_count => x_msg_count,
5021: p_data => x_msg_data);
5022:
5023: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
5024:
5025: EXCEPTION
5026: WHEN FND_API.G_EXC_ERROR THEN
5027: ROLLBACK TO BILL_LOANS_PVT;
5026: WHEN FND_API.G_EXC_ERROR THEN
5027: ROLLBACK TO BILL_LOANS_PVT;
5028: x_return_status := FND_API.G_RET_STS_ERROR;
5029: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5030: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loans');
5031: g_cr_return_status := 'ERROR';
5032: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5033: ROLLBACK TO BILL_LOANS_PVT;
5034: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5032: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5033: ROLLBACK TO BILL_LOANS_PVT;
5034: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5035: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5036: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loans');
5037: g_cr_return_status := 'ERROR';
5038: WHEN OTHERS THEN
5039: ROLLBACK TO BILL_LOANS_PVT;
5040: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5041: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
5042: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
5043: END IF;
5044: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5045: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loans');
5046: g_cr_return_status := 'ERROR';
5047: END;
5048:
5049:
5131: ORDER BY head.LOAN_ID;
5132:
5133: BEGIN
5134:
5135: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
5136:
5137: -- Standard start of API savepoint
5138: SAVEPOINT LOANS_NEXT_DD_PVT;
5139: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Established savepoint');
5135: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
5136:
5137: -- Standard start of API savepoint
5138: SAVEPOINT LOANS_NEXT_DD_PVT;
5139: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Established savepoint');
5140:
5141: -- Standard call to check for call compatibility
5142: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
5143: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5155:
5156: init;
5157:
5158: /* quering for loans past due */
5159: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Searching for loans to process...');
5160:
5161: l_start := sysdate;
5162: open past_due_loans_cur;
5163:
5189: END LOOP;
5190:
5191: close past_due_loans_cur;
5192:
5193: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
5194: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || (l_Count1-1) || ' loan(s)');
5195: l_end := sysdate;
5196: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'All Recalc Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
5197:
5190:
5191: close past_due_loans_cur;
5192:
5193: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
5194: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || (l_Count1-1) || ' loan(s)');
5195: l_end := sysdate;
5196: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'All Recalc Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
5197:
5198: if P_COMMIT = FND_API.G_TRUE then
5192:
5193: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
5194: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || (l_Count1-1) || ' loan(s)');
5195: l_end := sysdate;
5196: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'All Recalc Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
5197:
5198: if P_COMMIT = FND_API.G_TRUE then
5199: COMMIT WORK;
5200: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loans');
5196: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'All Recalc Timing: ' || round((l_end - l_start)*86400, 2) || ' sec');
5197:
5198: if P_COMMIT = FND_API.G_TRUE then
5199: COMMIT WORK;
5200: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loans');
5201: end if;
5202:
5203: -- END OF BODY OF API
5204: x_return_status := FND_API.G_RET_STS_SUCCESS;
5208: p_encoded => FND_API.G_FALSE,
5209: p_count => x_msg_count,
5210: p_data => x_msg_data);
5211:
5212: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
5213:
5214: EXCEPTION
5215: WHEN FND_API.G_EXC_ERROR THEN
5216: ROLLBACK TO LOANS_NEXT_DD_PVT;
5215: WHEN FND_API.G_EXC_ERROR THEN
5216: ROLLBACK TO LOANS_NEXT_DD_PVT;
5217: x_return_status := FND_API.G_RET_STS_ERROR;
5218: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5219: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loans');
5220: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5221: ROLLBACK TO LOANS_NEXT_DD_PVT;
5222: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5223: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5220: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5221: ROLLBACK TO LOANS_NEXT_DD_PVT;
5222: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5223: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5224: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loans');
5225: WHEN OTHERS THEN
5226: ROLLBACK TO LOANS_NEXT_DD_PVT;
5227: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5228: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
5228: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
5229: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
5230: END IF;
5231: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5232: LogMessage(FND_LOG.LEVEL_ERROR, 'Rollbacked loans');
5233: END;
5234:
5235:
5236:
5370: where LOAN_ID = P_LOAN_ID;
5371:
5372: BEGIN
5373:
5374: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
5375:
5376: -- Standard start of API savepoint
5377: SAVEPOINT REVERSE_LAST_AMORTIZATION;
5378: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
5374: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
5375:
5376: -- Standard start of API savepoint
5377: SAVEPOINT REVERSE_LAST_AMORTIZATION;
5378: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
5379:
5380: -- Standard call to check for call compatibility
5381: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
5382: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5403: open terms_cur(p_loan_id);
5404: fetch terms_cur into l_rate_type;
5405: close terms_cur;
5406:
5407: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reversing loan ' || l_loan_number);
5408: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'loan_id ' || P_LOAN_ID);
5409: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'rate type ' || l_rate_type);
5410:
5411: /* verify input parameters */
5404: fetch terms_cur into l_rate_type;
5405: close terms_cur;
5406:
5407: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reversing loan ' || l_loan_number);
5408: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'loan_id ' || P_LOAN_ID);
5409: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'rate type ' || l_rate_type);
5410:
5411: /* verify input parameters */
5412: if P_LOAN_ID is null then
5405: close terms_cur;
5406:
5407: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reversing loan ' || l_loan_number);
5408: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'loan_id ' || P_LOAN_ID);
5409: LogMessage(FND_LOG.LEVEL_PROCEDURE, 'rate type ' || l_rate_type);
5410:
5411: /* verify input parameters */
5412: if P_LOAN_ID is null then
5413:
5410:
5411: /* verify input parameters */
5412: if P_LOAN_ID is null then
5413:
5414: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan must be set.');
5415: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LOAN');
5416: FND_MSG_PUB.Add;
5417: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
5418: RAISE FND_API.G_EXC_ERROR;
5413:
5414: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan must be set.');
5415: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LOAN');
5416: FND_MSG_PUB.Add;
5417: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
5418: RAISE FND_API.G_EXC_ERROR;
5419:
5420: end if;
5421:
5419:
5420: end if;
5421:
5422: /* quering for last loan amortization record */
5423: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Querying for last amortization record in LNS_AMORTIZATION_SCHEDS:');
5424:
5425: open last_loan_amort_cur(P_LOAN_ID);
5426:
5427: fetch last_loan_amort_cur into
5431: l_last_rate_id;
5432:
5433: if last_loan_amort_cur%NOTFOUND then
5434:
5435: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'No amortization record found. Exiting');
5436: return;
5437:
5438: else
5439:
5436: return;
5437:
5438: else
5439:
5440: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
5441: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || l_LAST_PAYMENT_NUMBER);
5442: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || l_due_date);
5443: LogMessage(FND_LOG.LEVEL_STATEMENT, 'amortization_schedule_id: ' || l_amortization_schedule_id);
5444:
5437:
5438: else
5439:
5440: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
5441: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || l_LAST_PAYMENT_NUMBER);
5442: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || l_due_date);
5443: LogMessage(FND_LOG.LEVEL_STATEMENT, 'amortization_schedule_id: ' || l_amortization_schedule_id);
5444:
5445: end if;
5438: else
5439:
5440: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
5441: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || l_LAST_PAYMENT_NUMBER);
5442: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || l_due_date);
5443: LogMessage(FND_LOG.LEVEL_STATEMENT, 'amortization_schedule_id: ' || l_amortization_schedule_id);
5444:
5445: end if;
5446:
5439:
5440: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
5441: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || l_LAST_PAYMENT_NUMBER);
5442: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || l_due_date);
5443: LogMessage(FND_LOG.LEVEL_STATEMENT, 'amortization_schedule_id: ' || l_amortization_schedule_id);
5444:
5445: end if;
5446:
5447: close last_loan_amort_cur;
5446:
5447: close last_loan_amort_cur;
5448:
5449: /* Quering for invoices with lines to reverse */
5450: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Quering for trx lines to reverse...');
5451:
5452: l_Count := 0;
5453: l_principal := 0;
5454: l_interest := 0;
5491:
5492: /* Verify count */
5493: if l_reverse_tbl.count = 0 then
5494:
5495: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No trx lines found to reverse.');
5496: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_LINES_TO_REV');
5497: FND_MSG_PUB.Add;
5498: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
5499: RAISE FND_API.G_EXC_ERROR;
5494:
5495: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No trx lines found to reverse.');
5496: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_LINES_TO_REV');
5497: FND_MSG_PUB.Add;
5498: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
5499: RAISE FND_API.G_EXC_ERROR;
5500:
5501: end if;
5502:
5503: /* Create credit memos */
5504: CREATE_AR_CM(l_reverse_tbl);
5505:
5506: /* Deleting reamortize record */
5507: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Deleting reamortize record...');
5508:
5509: delete from LNS_AMORTIZATION_SCHEDS
5510: where loan_id = P_LOAN_ID and
5511: REAMORTIZE_FROM_INSTALLMENT = l_last_payment_number;
5509: delete from LNS_AMORTIZATION_SCHEDS
5510: where loan_id = P_LOAN_ID and
5511: REAMORTIZE_FROM_INSTALLMENT = l_last_payment_number;
5512:
5513: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Deleted!');
5514:
5515: /* Update amortization table */
5516: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating record in LNS_AMORTIZATION_SCHEDS...') ;
5517:
5512:
5513: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Deleted!');
5514:
5515: /* Update amortization table */
5516: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating record in LNS_AMORTIZATION_SCHEDS...') ;
5517:
5518: LNS_AMORTIZATION_SCHEDS_PKG.Update_Row(
5519: P_AMORTIZATION_SCHEDULE_ID => l_amortization_schedule_id
5520: ,P_REVERSED_FLAG => 'Y'
5519: P_AMORTIZATION_SCHEDULE_ID => l_amortization_schedule_id
5520: ,P_REVERSED_FLAG => 'Y'
5521: ,P_REVERSED_DATE => sysdate);
5522:
5523: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Update successfull!');
5524:
5525: -- fix for bug 7716548: if its custom schedule call LNS_CUSTOM_PUB.addMissingInstallment to add custom row if needed
5526: if l_custom_payment_flag = 'Y' then
5527:
5543: X_MSG_COUNT => l_msg_count,
5544: X_MSG_DATA => l_msg_data);
5545:
5546: IF l_return_status <> 'S' THEN
5547: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Failed to insert missing custom schedule row.');
5548: END IF;
5549:
5550: end if;
5551:
5568: X_MSG_DATA => l_msg_data);
5569:
5570:
5571: IF l_return_status = 'S' THEN
5572: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully calculated next payment due date.');
5573: ELSE
5574: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Failed to calculate next payment due date.');
5575: FND_MESSAGE.SET_NAME('LNS', 'LNS_CALC_NEXT_DUE_FAIL');
5576: FND_MSG_PUB.Add;
5570:
5571: IF l_return_status = 'S' THEN
5572: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully calculated next payment due date.');
5573: ELSE
5574: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Failed to calculate next payment due date.');
5575: FND_MESSAGE.SET_NAME('LNS', 'LNS_CALC_NEXT_DUE_FAIL');
5576: FND_MSG_PUB.Add;
5577: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
5578: RAISE FND_API.G_EXC_ERROR;
5573: ELSE
5574: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Failed to calculate next payment due date.');
5575: FND_MESSAGE.SET_NAME('LNS', 'LNS_CALC_NEXT_DUE_FAIL');
5576: FND_MSG_PUB.Add;
5577: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
5578: RAISE FND_API.G_EXC_ERROR;
5579: END IF;
5580:
5581: STORE_LAST_PAYMENT_NUMBER(P_LOAN_ID);
5581: STORE_LAST_PAYMENT_NUMBER(P_LOAN_ID);
5582:
5583: if P_COMMIT = FND_API.G_TRUE then
5584: COMMIT WORK;
5585: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loan');
5586: end if;
5587:
5588: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully reversed loan ' || l_loan_number);
5589:
5584: COMMIT WORK;
5585: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loan');
5586: end if;
5587:
5588: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully reversed loan ' || l_loan_number);
5589:
5590: /* start billing process if P_REBILL_FLAG = 'Y' */
5591: if P_REBILL_FLAG = 'Y' then
5592:
5589:
5590: /* start billing process if P_REBILL_FLAG = 'Y' */
5591: if P_REBILL_FLAG = 'Y' then
5592:
5593: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Reprocessing Fees for loan ' || l_loan_number || ' payment number ' || l_LAST_PAYMENT_NUMBER);
5594: LNS_FEE_ENGINE.reprocessFees(
5595: p_loan_id => P_LOAN_ID,
5596: p_installment_number => l_LAST_PAYMENT_NUMBER,
5597: p_init_msg_list => FND_API.G_TRUE,
5600: x_msg_count => l_msg_count,
5601: x_msg_data => l_msg_data);
5602:
5603: IF l_return_status = 'S' THEN
5604: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully reprocessed fees.');
5605: ELSE
5606: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Failed to reprocess fees.');
5607: RAISE FND_API.G_EXC_ERROR;
5608: END IF;
5602:
5603: IF l_return_status = 'S' THEN
5604: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully reprocessed fees.');
5605: ELSE
5606: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Failed to reprocess fees.');
5607: RAISE FND_API.G_EXC_ERROR;
5608: END IF;
5609:
5610: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Starting billing for loan ' || l_loan_number);
5606: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Failed to reprocess fees.');
5607: RAISE FND_API.G_EXC_ERROR;
5608: END IF;
5609:
5610: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Starting billing for loan ' || l_loan_number);
5611:
5612: BILL_LOANS(
5613: P_API_VERSION => 1.0,
5614: P_INIT_MSG_LIST => FND_API.G_TRUE,
5621: X_RETURN_STATUS => l_return_status,
5622: X_MSG_COUNT => l_msg_count,
5623: X_MSG_DATA => l_msg_data);
5624:
5625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Done billing for loan ' || l_loan_number);
5626:
5627: else
5628: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Before inactivating unbilled manual fees for this installment: ' || l_LAST_PAYMENT_NUMBER);
5629: --Bug5397345
5624:
5625: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Done billing for loan ' || l_loan_number);
5626:
5627: else
5628: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Before inactivating unbilled manual fees for this installment: ' || l_LAST_PAYMENT_NUMBER);
5629: --Bug5397345
5630: --Make sure unbilled manual fees for this reversed installment are inactivated
5631: UPDATE LNS_FEE_SCHEDULES SET ACTIVE_FLAG = 'N', LAST_UPDATE_DATE = sysdate, LAST_UPDATED_BY = lns_utility_pub.last_updated_by, LAST_UPDATE_LOGIN = lns_utility_pub.last_update_login, OBJECT_VERSION_NUMBER = OBJECT_VERSION_NUMBER+1
5632: WHERE LOAN_ID = P_LOAN_ID AND BILLED_FLAG = 'N' AND FEE_INSTALLMENT = l_LAST_PAYMENT_NUMBER;
5629: --Bug5397345
5630: --Make sure unbilled manual fees for this reversed installment are inactivated
5631: UPDATE LNS_FEE_SCHEDULES SET ACTIVE_FLAG = 'N', LAST_UPDATE_DATE = sysdate, LAST_UPDATED_BY = lns_utility_pub.last_updated_by, LAST_UPDATE_LOGIN = lns_utility_pub.last_update_login, OBJECT_VERSION_NUMBER = OBJECT_VERSION_NUMBER+1
5632: WHERE LOAN_ID = P_LOAN_ID AND BILLED_FLAG = 'N' AND FEE_INSTALLMENT = l_LAST_PAYMENT_NUMBER;
5633: LogMessage(FND_LOG.LEVEL_STATEMENT, 'After inactivating unbilled manual fees by updating the active_flag in lns_fee_schedules for this loan and installment');
5634:
5635: end if;
5636:
5637: -- END OF BODY OF API
5642: p_encoded => FND_API.G_FALSE,
5643: p_count => x_msg_count,
5644: p_data => x_msg_data);
5645:
5646: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
5647:
5648: EXCEPTION
5649: WHEN FND_API.G_EXC_ERROR THEN
5650: ROLLBACK TO REVERSE_LAST_AMORTIZATION;
5649: WHEN FND_API.G_EXC_ERROR THEN
5650: ROLLBACK TO REVERSE_LAST_AMORTIZATION;
5651: x_return_status := FND_API.G_RET_STS_ERROR;
5652: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5653: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked loan');
5654: g_cr_return_status := 'ERROR';
5655: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5656: ROLLBACK TO REVERSE_LAST_AMORTIZATION;
5657: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5655: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5656: ROLLBACK TO REVERSE_LAST_AMORTIZATION;
5657: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5658: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5659: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked loan');
5660: g_cr_return_status := 'ERROR';
5661: WHEN OTHERS THEN
5662: ROLLBACK TO REVERSE_LAST_AMORTIZATION;
5663: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5664: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
5665: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
5666: END IF;
5667: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5668: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked loan');
5669: g_cr_return_status := 'ERROR';
5670: END;
5671:
5672:
5786: where LOAN_ID = P_LOAN_ID;
5787:
5788: BEGIN
5789:
5790: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
5791:
5792: -- Standard start of API savepoint
5793: SAVEPOINT REVERSE_LAST_AMORTIZATION;
5794: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
5790: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
5791:
5792: -- Standard start of API savepoint
5793: SAVEPOINT REVERSE_LAST_AMORTIZATION;
5794: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
5795:
5796: -- Standard call to check for call compatibility
5797: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
5798: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
5815: open loan_version_cur(P_LOAN_ID);
5816: fetch loan_version_cur into l_loan_number, l_version_number, l_custom_payment_flag;
5817: close loan_version_cur;
5818:
5819: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Crediting loan ' || l_loan_number);
5820: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'loan_id ' || P_LOAN_ID);
5821:
5822: /* verify input parameters */
5823: if P_LOAN_ID is null then
5816: fetch loan_version_cur into l_loan_number, l_version_number, l_custom_payment_flag;
5817: close loan_version_cur;
5818:
5819: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Crediting loan ' || l_loan_number);
5820: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'loan_id ' || P_LOAN_ID);
5821:
5822: /* verify input parameters */
5823: if P_LOAN_ID is null then
5824:
5821:
5822: /* verify input parameters */
5823: if P_LOAN_ID is null then
5824:
5825: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan must be set.');
5826: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LOAN');
5827: FND_MSG_PUB.Add;
5828: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
5829: RAISE FND_API.G_EXC_ERROR;
5824:
5825: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan must be set.');
5826: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LOAN');
5827: FND_MSG_PUB.Add;
5828: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
5829: RAISE FND_API.G_EXC_ERROR;
5830:
5831: end if;
5832:
5832:
5833: if P_LINE_TYPE is null then
5834: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LINE_TYPE');
5835: FND_MSG_PUB.Add;
5836: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
5837: RAISE FND_API.G_EXC_ERROR;
5838: end if;
5839:
5840: /* quering for last loan amortization record */
5837: RAISE FND_API.G_EXC_ERROR;
5838: end if;
5839:
5840: /* quering for last loan amortization record */
5841: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Querying for last amortization record in LNS_AMORTIZATION_SCHEDS:');
5842:
5843: open last_loan_amort_cur(P_LOAN_ID);
5844:
5845: fetch last_loan_amort_cur into
5848: l_amortization_schedule_id;
5849:
5850: if last_loan_amort_cur%NOTFOUND then
5851:
5852: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'No amortization record found. Exiting');
5853: return;
5854:
5855: else
5856:
5853: return;
5854:
5855: else
5856:
5857: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
5858: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || l_LAST_PAYMENT_NUMBER);
5859: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || l_due_date);
5860: LogMessage(FND_LOG.LEVEL_STATEMENT, 'amortization_schedule_id: ' || l_amortization_schedule_id);
5861:
5854:
5855: else
5856:
5857: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
5858: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || l_LAST_PAYMENT_NUMBER);
5859: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || l_due_date);
5860: LogMessage(FND_LOG.LEVEL_STATEMENT, 'amortization_schedule_id: ' || l_amortization_schedule_id);
5861:
5862: end if;
5855: else
5856:
5857: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
5858: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || l_LAST_PAYMENT_NUMBER);
5859: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || l_due_date);
5860: LogMessage(FND_LOG.LEVEL_STATEMENT, 'amortization_schedule_id: ' || l_amortization_schedule_id);
5861:
5862: end if;
5863:
5856:
5857: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
5858: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'PAYMENT_NUMBER: ' || l_LAST_PAYMENT_NUMBER);
5859: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'DUE_DATE: ' || l_due_date);
5860: LogMessage(FND_LOG.LEVEL_STATEMENT, 'amortization_schedule_id: ' || l_amortization_schedule_id);
5861:
5862: end if;
5863:
5864: close last_loan_amort_cur;
5863:
5864: close last_loan_amort_cur;
5865:
5866: /* Quering for invoices with lines to reverse */
5867: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Quering for trx lines to Credit...');
5868:
5869: l_Count := 0;
5870: open trx_to_reverse_cur(P_LOAN_ID, l_amortization_schedule_id, p_line_type);
5871:
5901: if l_reverse_tbl.count = 0 then
5902:
5903: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_LINES_TO_REV');
5904: FND_MSG_PUB.Add;
5905: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
5906: RAISE FND_API.G_EXC_ERROR;
5907:
5908: end if;
5909:
5911: CREATE_AR_CM(l_reverse_tbl);
5912:
5913: if P_COMMIT = FND_API.G_TRUE then
5914: COMMIT WORK;
5915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loan');
5916: end if;
5917:
5918: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully credit loan ' || l_loan_number);
5919:
5914: COMMIT WORK;
5915: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loan');
5916: end if;
5917:
5918: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully credit loan ' || l_loan_number);
5919:
5920: -- END OF BODY OF API
5921: x_return_status := FND_API.G_RET_STS_SUCCESS;
5922:
5925: p_encoded => FND_API.G_FALSE,
5926: p_count => x_msg_count,
5927: p_data => x_msg_data);
5928:
5929: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
5930:
5931: EXCEPTION
5932: WHEN FND_API.G_EXC_ERROR THEN
5933: ROLLBACK TO REVERSE_LAST_AMORTIZATION;
5932: WHEN FND_API.G_EXC_ERROR THEN
5933: ROLLBACK TO REVERSE_LAST_AMORTIZATION;
5934: x_return_status := FND_API.G_RET_STS_ERROR;
5935: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5936: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked loan');
5937: g_cr_return_status := 'ERROR';
5938: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5939: ROLLBACK TO REVERSE_LAST_AMORTIZATION;
5940: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5938: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5939: ROLLBACK TO REVERSE_LAST_AMORTIZATION;
5940: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5941: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5942: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked loan');
5943: g_cr_return_status := 'ERROR';
5944: WHEN OTHERS THEN
5945: ROLLBACK TO REVERSE_LAST_AMORTIZATION;
5946: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5947: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
5948: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
5949: END IF;
5950: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
5951: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked loan');
5952: g_cr_return_status := 'ERROR';
5953:
5954: END CREDIT_AMORTIZATION_PARTIAL;
5955:
6053: and nvl(am.PHASE(+), 'TERM') = nvl(head.CURRENT_PHASE, 'TERM');
6054:
6055: BEGIN
6056:
6057: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
6058:
6059: l_lines_tbl := P_BILL_LINES_TBL;
6060:
6061: -- Standard start of API savepoint
6059: l_lines_tbl := P_BILL_LINES_TBL;
6060:
6061: -- Standard start of API savepoint
6062: SAVEPOINT CREATE_SINGLE_OFFCYCLE_BILL;
6063: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
6064:
6065: -- Standard call to check for call compatibility
6066: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
6067: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6080: init;
6081:
6082: /* verify input parameters */
6083:
6084: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Header data:');
6085: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_BILL_HEADER_REC.LOAN_ID);
6086: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ASSOC_PAYMENT_NUM: ' || P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM);
6087: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_BILL_HEADER_REC.DUE_DATE);
6088:
6081:
6082: /* verify input parameters */
6083:
6084: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Header data:');
6085: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_BILL_HEADER_REC.LOAN_ID);
6086: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ASSOC_PAYMENT_NUM: ' || P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM);
6087: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_BILL_HEADER_REC.DUE_DATE);
6088:
6089: if P_BILL_HEADER_REC.LOAN_ID is null then
6082: /* verify input parameters */
6083:
6084: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Header data:');
6085: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_BILL_HEADER_REC.LOAN_ID);
6086: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ASSOC_PAYMENT_NUM: ' || P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM);
6087: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_BILL_HEADER_REC.DUE_DATE);
6088:
6089: if P_BILL_HEADER_REC.LOAN_ID is null then
6090: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan ID is not set.');
6083:
6084: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Header data:');
6085: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || P_BILL_HEADER_REC.LOAN_ID);
6086: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ASSOC_PAYMENT_NUM: ' || P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM);
6087: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_BILL_HEADER_REC.DUE_DATE);
6088:
6089: if P_BILL_HEADER_REC.LOAN_ID is null then
6090: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan ID is not set.');
6091: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LOAN');
6086: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ASSOC_PAYMENT_NUM: ' || P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM);
6087: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || P_BILL_HEADER_REC.DUE_DATE);
6088:
6089: if P_BILL_HEADER_REC.LOAN_ID is null then
6090: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan ID is not set.');
6091: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LOAN');
6092: FND_MSG_PUB.Add;
6093: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6094: RAISE FND_API.G_EXC_ERROR;
6089: if P_BILL_HEADER_REC.LOAN_ID is null then
6090: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan ID is not set.');
6091: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LOAN');
6092: FND_MSG_PUB.Add;
6093: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6094: RAISE FND_API.G_EXC_ERROR;
6095: end if;
6096:
6097: if P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM is null then
6094: RAISE FND_API.G_EXC_ERROR;
6095: end if;
6096:
6097: if P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM is null then
6098: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Associated Payment Number is not set.');
6099: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_NUM');
6100: FND_MSG_PUB.Add;
6101: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6102: RAISE FND_API.G_EXC_ERROR;
6097: if P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM is null then
6098: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Associated Payment Number is not set.');
6099: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_NUM');
6100: FND_MSG_PUB.Add;
6101: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6102: RAISE FND_API.G_EXC_ERROR;
6103: end if;
6104:
6105: if P_BILL_HEADER_REC.DUE_DATE is null then
6102: RAISE FND_API.G_EXC_ERROR;
6103: end if;
6104:
6105: if P_BILL_HEADER_REC.DUE_DATE is null then
6106: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Bill Due Date is not set.');
6107: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_DUE');
6108: FND_MSG_PUB.Add;
6109: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6110: RAISE FND_API.G_EXC_ERROR;
6105: if P_BILL_HEADER_REC.DUE_DATE is null then
6106: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Bill Due Date is not set.');
6107: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_DUE');
6108: FND_MSG_PUB.Add;
6109: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6110: RAISE FND_API.G_EXC_ERROR;
6111: end if;
6112:
6113: if l_lines_tbl.count = 0 then
6110: RAISE FND_API.G_EXC_ERROR;
6111: end if;
6112:
6113: if l_lines_tbl.count = 0 then
6114: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No lines found for header ' || P_BILL_HEADER_REC.HEADER_ID);
6115: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LINES');
6116: FND_MESSAGE.SET_TOKEN('HEADER', P_BILL_HEADER_REC.HEADER_ID);
6117: FND_MSG_PUB.Add;
6118: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6114: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No lines found for header ' || P_BILL_HEADER_REC.HEADER_ID);
6115: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LINES');
6116: FND_MESSAGE.SET_TOKEN('HEADER', P_BILL_HEADER_REC.HEADER_ID);
6117: FND_MSG_PUB.Add;
6118: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6119: RAISE FND_API.G_EXC_ERROR;
6120: end if;
6121:
6122: /* init amounts */
6124: l_loan_rec.NEXT_INTEREST_AMOUNT := 0;
6125: l_loan_rec.NEXT_FEE_AMOUNT := 0;
6126:
6127: /* looping and suming amounts */
6128: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Lines data:');
6129:
6130: FOR l_Count IN 1..l_lines_tbl.count LOOP
6131:
6132: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Line # ' || l_Count);
6128: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Lines data:');
6129:
6130: FOR l_Count IN 1..l_lines_tbl.count LOOP
6131:
6132: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Line # ' || l_Count);
6133: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_ID: ' || l_lines_tbl(l_Count).LINE_ID);
6134: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_AMOUNT: ' || l_lines_tbl(l_Count).LINE_AMOUNT);
6135: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_lines_tbl(l_Count).LINE_TYPE);
6136: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_DESC: ' || l_lines_tbl(l_Count).LINE_DESC);
6129:
6130: FOR l_Count IN 1..l_lines_tbl.count LOOP
6131:
6132: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Line # ' || l_Count);
6133: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_ID: ' || l_lines_tbl(l_Count).LINE_ID);
6134: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_AMOUNT: ' || l_lines_tbl(l_Count).LINE_AMOUNT);
6135: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_lines_tbl(l_Count).LINE_TYPE);
6136: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_DESC: ' || l_lines_tbl(l_Count).LINE_DESC);
6137: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_REF_ID: ' || l_lines_tbl(l_Count).LINE_REF_ID);
6130: FOR l_Count IN 1..l_lines_tbl.count LOOP
6131:
6132: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Line # ' || l_Count);
6133: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_ID: ' || l_lines_tbl(l_Count).LINE_ID);
6134: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_AMOUNT: ' || l_lines_tbl(l_Count).LINE_AMOUNT);
6135: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_lines_tbl(l_Count).LINE_TYPE);
6136: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_DESC: ' || l_lines_tbl(l_Count).LINE_DESC);
6137: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_REF_ID: ' || l_lines_tbl(l_Count).LINE_REF_ID);
6138: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CASH_RECEIPT_ID: ' || l_lines_tbl(l_Count).CASH_RECEIPT_ID);
6131:
6132: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Line # ' || l_Count);
6133: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_ID: ' || l_lines_tbl(l_Count).LINE_ID);
6134: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_AMOUNT: ' || l_lines_tbl(l_Count).LINE_AMOUNT);
6135: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_lines_tbl(l_Count).LINE_TYPE);
6136: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_DESC: ' || l_lines_tbl(l_Count).LINE_DESC);
6137: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_REF_ID: ' || l_lines_tbl(l_Count).LINE_REF_ID);
6138: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CASH_RECEIPT_ID: ' || l_lines_tbl(l_Count).CASH_RECEIPT_ID);
6139: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLY_AMOUNT: ' || l_lines_tbl(l_Count).APPLY_AMOUNT);
6132: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Line # ' || l_Count);
6133: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_ID: ' || l_lines_tbl(l_Count).LINE_ID);
6134: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_AMOUNT: ' || l_lines_tbl(l_Count).LINE_AMOUNT);
6135: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_lines_tbl(l_Count).LINE_TYPE);
6136: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_DESC: ' || l_lines_tbl(l_Count).LINE_DESC);
6137: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_REF_ID: ' || l_lines_tbl(l_Count).LINE_REF_ID);
6138: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CASH_RECEIPT_ID: ' || l_lines_tbl(l_Count).CASH_RECEIPT_ID);
6139: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLY_AMOUNT: ' || l_lines_tbl(l_Count).APPLY_AMOUNT);
6140: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_lines_tbl(l_Count).FEE_SCHEDULE_ID);
6133: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_ID: ' || l_lines_tbl(l_Count).LINE_ID);
6134: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_AMOUNT: ' || l_lines_tbl(l_Count).LINE_AMOUNT);
6135: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_lines_tbl(l_Count).LINE_TYPE);
6136: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_DESC: ' || l_lines_tbl(l_Count).LINE_DESC);
6137: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_REF_ID: ' || l_lines_tbl(l_Count).LINE_REF_ID);
6138: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CASH_RECEIPT_ID: ' || l_lines_tbl(l_Count).CASH_RECEIPT_ID);
6139: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLY_AMOUNT: ' || l_lines_tbl(l_Count).APPLY_AMOUNT);
6140: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_lines_tbl(l_Count).FEE_SCHEDULE_ID);
6141:
6134: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_AMOUNT: ' || l_lines_tbl(l_Count).LINE_AMOUNT);
6135: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_lines_tbl(l_Count).LINE_TYPE);
6136: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_DESC: ' || l_lines_tbl(l_Count).LINE_DESC);
6137: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_REF_ID: ' || l_lines_tbl(l_Count).LINE_REF_ID);
6138: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CASH_RECEIPT_ID: ' || l_lines_tbl(l_Count).CASH_RECEIPT_ID);
6139: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLY_AMOUNT: ' || l_lines_tbl(l_Count).APPLY_AMOUNT);
6140: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_lines_tbl(l_Count).FEE_SCHEDULE_ID);
6141:
6142: /* Verifying lines data */
6135: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_TYPE: ' || l_lines_tbl(l_Count).LINE_TYPE);
6136: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_DESC: ' || l_lines_tbl(l_Count).LINE_DESC);
6137: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_REF_ID: ' || l_lines_tbl(l_Count).LINE_REF_ID);
6138: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CASH_RECEIPT_ID: ' || l_lines_tbl(l_Count).CASH_RECEIPT_ID);
6139: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLY_AMOUNT: ' || l_lines_tbl(l_Count).APPLY_AMOUNT);
6140: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_lines_tbl(l_Count).FEE_SCHEDULE_ID);
6141:
6142: /* Verifying lines data */
6143: if l_lines_tbl(l_Count).LINE_AMOUNT is null or l_lines_tbl(l_Count).LINE_AMOUNT <= 0 then
6136: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_DESC: ' || l_lines_tbl(l_Count).LINE_DESC);
6137: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LINE_REF_ID: ' || l_lines_tbl(l_Count).LINE_REF_ID);
6138: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CASH_RECEIPT_ID: ' || l_lines_tbl(l_Count).CASH_RECEIPT_ID);
6139: LogMessage(FND_LOG.LEVEL_STATEMENT, 'APPLY_AMOUNT: ' || l_lines_tbl(l_Count).APPLY_AMOUNT);
6140: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_lines_tbl(l_Count).FEE_SCHEDULE_ID);
6141:
6142: /* Verifying lines data */
6143: if l_lines_tbl(l_Count).LINE_AMOUNT is null or l_lines_tbl(l_Count).LINE_AMOUNT <= 0 then
6144: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Amount for line ' || l_lines_tbl(l_Count).LINE_ID || ' is not set.');
6140: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_SCHEDULE_ID: ' || l_lines_tbl(l_Count).FEE_SCHEDULE_ID);
6141:
6142: /* Verifying lines data */
6143: if l_lines_tbl(l_Count).LINE_AMOUNT is null or l_lines_tbl(l_Count).LINE_AMOUNT <= 0 then
6144: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Amount for line ' || l_lines_tbl(l_Count).LINE_ID || ' is not set.');
6145: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LINE_AMOUNT');
6146: FND_MESSAGE.SET_TOKEN('LINE', l_lines_tbl(l_Count).LINE_ID);
6147: FND_MSG_PUB.Add;
6148: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6144: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Amount for line ' || l_lines_tbl(l_Count).LINE_ID || ' is not set.');
6145: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LINE_AMOUNT');
6146: FND_MESSAGE.SET_TOKEN('LINE', l_lines_tbl(l_Count).LINE_ID);
6147: FND_MSG_PUB.Add;
6148: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6149: RAISE FND_API.G_EXC_ERROR;
6150: end if;
6151:
6152: if l_lines_tbl(l_Count).LINE_TYPE is null then
6149: RAISE FND_API.G_EXC_ERROR;
6150: end if;
6151:
6152: if l_lines_tbl(l_Count).LINE_TYPE is null then
6153: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Line type for line ' || l_lines_tbl(l_Count).LINE_ID || ' is not set.');
6154: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LINE_TYPE');
6155: FND_MESSAGE.SET_TOKEN('LINE', l_lines_tbl(l_Count).LINE_ID);
6156: FND_MSG_PUB.Add;
6157: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6153: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Line type for line ' || l_lines_tbl(l_Count).LINE_ID || ' is not set.');
6154: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LINE_TYPE');
6155: FND_MESSAGE.SET_TOKEN('LINE', l_lines_tbl(l_Count).LINE_ID);
6156: FND_MSG_PUB.Add;
6157: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6158: RAISE FND_API.G_EXC_ERROR;
6159: end if;
6160: /*
6161: if l_lines_tbl(l_Count).LINE_DESC is null then
6158: RAISE FND_API.G_EXC_ERROR;
6159: end if;
6160: /*
6161: if l_lines_tbl(l_Count).LINE_DESC is null then
6162: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Line description for line ' || l_lines_tbl(l_Count).LINE_ID || ' is not set.');
6163: RAISE FND_API.G_EXC_ERROR;
6164: end if;
6165: */
6166: /* Suming amounts */
6177: /* validate principal amount */
6178: VALIDATE_PRIN_AMOUNT(P_BILL_HEADER_REC.LOAN_ID, l_loan_rec.NEXT_PRINCIPAL_AMOUNT);
6179:
6180: /* quering for data needed for billing */
6181: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Creating OFFCYCLE bill for loan ' || P_BILL_HEADER_REC.LOAN_ID);
6182:
6183: open loan_cur(P_BILL_HEADER_REC.LOAN_ID, P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM);
6184:
6185: fetch loan_cur into
6203: l_loan_rec.FORGIVENESS_PERCENT;
6204:
6205:
6206: if loan_cur%NOTFOUND then
6207: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No amortization record found.');
6208: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_INSTALLMENT');
6209: FND_MESSAGE.SET_TOKEN('LOAN',P_BILL_HEADER_REC.LOAN_ID);
6210: FND_MESSAGE.SET_TOKEN('INST', P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM);
6211: FND_MSG_PUB.Add;
6208: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_INSTALLMENT');
6209: FND_MESSAGE.SET_TOKEN('LOAN',P_BILL_HEADER_REC.LOAN_ID);
6210: FND_MESSAGE.SET_TOKEN('INST', P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM);
6211: FND_MSG_PUB.Add;
6212: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6213: RAISE FND_API.G_EXC_ERROR;
6214: end if;
6215:
6216: close loan_cur;
6214: end if;
6215:
6216: close loan_cur;
6217:
6218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
6219: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6220: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loan_rec.LOAN_NUMBER);
6221: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loan_rec.LOAN_DESCRIPTION);
6222: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loan_rec.LOAN_CURRENCY);
6215:
6216: close loan_cur;
6217:
6218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
6219: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6220: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loan_rec.LOAN_NUMBER);
6221: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loan_rec.LOAN_DESCRIPTION);
6222: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loan_rec.LOAN_CURRENCY);
6223: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loan_rec.CUST_ACCOUNT_ID);
6216: close loan_cur;
6217:
6218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
6219: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6220: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loan_rec.LOAN_NUMBER);
6221: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loan_rec.LOAN_DESCRIPTION);
6222: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loan_rec.LOAN_CURRENCY);
6223: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loan_rec.CUST_ACCOUNT_ID);
6224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loan_rec.NUMBER_GRACE_DAYS);
6217:
6218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
6219: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6220: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loan_rec.LOAN_NUMBER);
6221: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loan_rec.LOAN_DESCRIPTION);
6222: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loan_rec.LOAN_CURRENCY);
6223: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loan_rec.CUST_ACCOUNT_ID);
6224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loan_rec.NUMBER_GRACE_DAYS);
6225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loan_rec.PAYMENT_APPLICATION_ORDER);
6218: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Amortization record found:');
6219: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6220: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loan_rec.LOAN_NUMBER);
6221: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loan_rec.LOAN_DESCRIPTION);
6222: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loan_rec.LOAN_CURRENCY);
6223: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loan_rec.CUST_ACCOUNT_ID);
6224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loan_rec.NUMBER_GRACE_DAYS);
6225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loan_rec.PAYMENT_APPLICATION_ORDER);
6226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loan_rec.EXCHANGE_RATE_TYPE);
6219: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6220: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loan_rec.LOAN_NUMBER);
6221: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loan_rec.LOAN_DESCRIPTION);
6222: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loan_rec.LOAN_CURRENCY);
6223: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loan_rec.CUST_ACCOUNT_ID);
6224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loan_rec.NUMBER_GRACE_DAYS);
6225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loan_rec.PAYMENT_APPLICATION_ORDER);
6226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loan_rec.EXCHANGE_RATE_TYPE);
6227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loan_rec.EXCHANGE_DATE);
6220: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_NUMBER: ' || l_loan_rec.LOAN_NUMBER);
6221: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loan_rec.LOAN_DESCRIPTION);
6222: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loan_rec.LOAN_CURRENCY);
6223: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loan_rec.CUST_ACCOUNT_ID);
6224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loan_rec.NUMBER_GRACE_DAYS);
6225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loan_rec.PAYMENT_APPLICATION_ORDER);
6226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loan_rec.EXCHANGE_RATE_TYPE);
6227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loan_rec.EXCHANGE_DATE);
6228: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loan_rec.EXCHANGE_RATE);
6221: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_DESCRIPTION: ' || l_loan_rec.LOAN_DESCRIPTION);
6222: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loan_rec.LOAN_CURRENCY);
6223: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loan_rec.CUST_ACCOUNT_ID);
6224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loan_rec.NUMBER_GRACE_DAYS);
6225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loan_rec.PAYMENT_APPLICATION_ORDER);
6226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loan_rec.EXCHANGE_RATE_TYPE);
6227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loan_rec.EXCHANGE_DATE);
6228: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loan_rec.EXCHANGE_RATE);
6229: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loan_rec.ORG_ID);
6222: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_CURRENCY: ' || l_loan_rec.LOAN_CURRENCY);
6223: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loan_rec.CUST_ACCOUNT_ID);
6224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loan_rec.NUMBER_GRACE_DAYS);
6225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loan_rec.PAYMENT_APPLICATION_ORDER);
6226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loan_rec.EXCHANGE_RATE_TYPE);
6227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loan_rec.EXCHANGE_DATE);
6228: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loan_rec.EXCHANGE_RATE);
6229: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loan_rec.ORG_ID);
6230: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loan_rec.LEGAL_ENTITY_ID);
6223: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CUST_ACCOUNT_ID: ' || l_loan_rec.CUST_ACCOUNT_ID);
6224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loan_rec.NUMBER_GRACE_DAYS);
6225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loan_rec.PAYMENT_APPLICATION_ORDER);
6226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loan_rec.EXCHANGE_RATE_TYPE);
6227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loan_rec.EXCHANGE_DATE);
6228: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loan_rec.EXCHANGE_RATE);
6229: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loan_rec.ORG_ID);
6230: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loan_rec.LEGAL_ENTITY_ID);
6231: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loan_rec.FUNDED_AMOUNT);
6224: LogMessage(FND_LOG.LEVEL_STATEMENT, 'NUMBER_GRACE_DAYS: ' || l_loan_rec.NUMBER_GRACE_DAYS);
6225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loan_rec.PAYMENT_APPLICATION_ORDER);
6226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loan_rec.EXCHANGE_RATE_TYPE);
6227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loan_rec.EXCHANGE_DATE);
6228: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loan_rec.EXCHANGE_RATE);
6229: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loan_rec.ORG_ID);
6230: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loan_rec.LEGAL_ENTITY_ID);
6231: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loan_rec.FUNDED_AMOUNT);
6232: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loan_rec.CURRENT_PHASE);
6225: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_APPLICATION_ORDER: ' || l_loan_rec.PAYMENT_APPLICATION_ORDER);
6226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loan_rec.EXCHANGE_RATE_TYPE);
6227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loan_rec.EXCHANGE_DATE);
6228: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loan_rec.EXCHANGE_RATE);
6229: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loan_rec.ORG_ID);
6230: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loan_rec.LEGAL_ENTITY_ID);
6231: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loan_rec.FUNDED_AMOUNT);
6232: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loan_rec.CURRENT_PHASE);
6233: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loan_rec.FORGIVENESS_FLAG);
6226: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE_TYPE: ' || l_loan_rec.EXCHANGE_RATE_TYPE);
6227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loan_rec.EXCHANGE_DATE);
6228: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loan_rec.EXCHANGE_RATE);
6229: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loan_rec.ORG_ID);
6230: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loan_rec.LEGAL_ENTITY_ID);
6231: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loan_rec.FUNDED_AMOUNT);
6232: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loan_rec.CURRENT_PHASE);
6233: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loan_rec.FORGIVENESS_FLAG);
6234: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_PERCENT: ' || l_loan_rec.FORGIVENESS_PERCENT);
6227: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_DATE: ' || l_loan_rec.EXCHANGE_DATE);
6228: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loan_rec.EXCHANGE_RATE);
6229: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loan_rec.ORG_ID);
6230: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loan_rec.LEGAL_ENTITY_ID);
6231: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loan_rec.FUNDED_AMOUNT);
6232: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loan_rec.CURRENT_PHASE);
6233: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loan_rec.FORGIVENESS_FLAG);
6234: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_PERCENT: ' || l_loan_rec.FORGIVENESS_PERCENT);
6235:
6228: LogMessage(FND_LOG.LEVEL_STATEMENT, 'EXCHANGE_RATE: ' || l_loan_rec.EXCHANGE_RATE);
6229: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loan_rec.ORG_ID);
6230: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loan_rec.LEGAL_ENTITY_ID);
6231: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loan_rec.FUNDED_AMOUNT);
6232: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loan_rec.CURRENT_PHASE);
6233: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loan_rec.FORGIVENESS_FLAG);
6234: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_PERCENT: ' || l_loan_rec.FORGIVENESS_PERCENT);
6235:
6236: /* setting new values */
6229: LogMessage(FND_LOG.LEVEL_STATEMENT, 'ORG_ID: ' || l_loan_rec.ORG_ID);
6230: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loan_rec.LEGAL_ENTITY_ID);
6231: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loan_rec.FUNDED_AMOUNT);
6232: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loan_rec.CURRENT_PHASE);
6233: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loan_rec.FORGIVENESS_FLAG);
6234: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_PERCENT: ' || l_loan_rec.FORGIVENESS_PERCENT);
6235:
6236: /* setting new values */
6237: l_loan_rec.NEXT_PAYMENT_NUMBER := P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM;
6230: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LEGAL_ENTITY_ID: ' || l_loan_rec.LEGAL_ENTITY_ID);
6231: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FUNDED_AMOUNT: ' || l_loan_rec.FUNDED_AMOUNT);
6232: LogMessage(FND_LOG.LEVEL_STATEMENT, 'CURRENT_PHASE: ' || l_loan_rec.CURRENT_PHASE);
6233: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_FLAG: ' || l_loan_rec.FORGIVENESS_FLAG);
6234: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FORGIVENESS_PERCENT: ' || l_loan_rec.FORGIVENESS_PERCENT);
6235:
6236: /* setting new values */
6237: l_loan_rec.NEXT_PAYMENT_NUMBER := P_BILL_HEADER_REC.ASSOC_PAYMENT_NUM;
6238: l_loan_rec.NEXT_PAYMENT_DUE_DATE := P_BILL_HEADER_REC.DUE_DATE;
6243: if l_loan_rec.CURRENT_PHASE is not null and l_loan_rec.CURRENT_PHASE = 'OPEN' then
6244: l_prin_balance := l_loan_rec.FUNDED_AMOUNT;
6245: end if;
6246:
6247: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_SCHEDS w following values:');
6248: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loan_rec.LOAN_ID);
6249: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_loan_rec.NEXT_PAYMENT_NUMBER);
6250: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_loan_rec.NEXT_PAYMENT_DUE_DATE);
6251: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || l_loan_rec.NEXT_PAYMENT_LATE_DATE);
6244: l_prin_balance := l_loan_rec.FUNDED_AMOUNT;
6245: end if;
6246:
6247: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_SCHEDS w following values:');
6248: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loan_rec.LOAN_ID);
6249: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_loan_rec.NEXT_PAYMENT_NUMBER);
6250: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_loan_rec.NEXT_PAYMENT_DUE_DATE);
6251: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || l_loan_rec.NEXT_PAYMENT_LATE_DATE);
6252: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_loan_rec.NEXT_PRINCIPAL_AMOUNT);
6245: end if;
6246:
6247: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_SCHEDS w following values:');
6248: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loan_rec.LOAN_ID);
6249: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_loan_rec.NEXT_PAYMENT_NUMBER);
6250: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_loan_rec.NEXT_PAYMENT_DUE_DATE);
6251: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || l_loan_rec.NEXT_PAYMENT_LATE_DATE);
6252: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_loan_rec.NEXT_PRINCIPAL_AMOUNT);
6253: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_loan_rec.NEXT_INTEREST_AMOUNT);
6246:
6247: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_SCHEDS w following values:');
6248: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loan_rec.LOAN_ID);
6249: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_loan_rec.NEXT_PAYMENT_NUMBER);
6250: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_loan_rec.NEXT_PAYMENT_DUE_DATE);
6251: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || l_loan_rec.NEXT_PAYMENT_LATE_DATE);
6252: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_loan_rec.NEXT_PRINCIPAL_AMOUNT);
6253: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_loan_rec.NEXT_INTEREST_AMOUNT);
6254: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_loan_rec.NEXT_FEE_AMOUNT);
6247: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Inserting new record into LNS_AMORTIZATION_SCHEDS w following values:');
6248: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loan_rec.LOAN_ID);
6249: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_loan_rec.NEXT_PAYMENT_NUMBER);
6250: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_loan_rec.NEXT_PAYMENT_DUE_DATE);
6251: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || l_loan_rec.NEXT_PAYMENT_LATE_DATE);
6252: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_loan_rec.NEXT_PRINCIPAL_AMOUNT);
6253: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_loan_rec.NEXT_INTEREST_AMOUNT);
6254: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_loan_rec.NEXT_FEE_AMOUNT);
6255: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6248: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_loan_rec.LOAN_ID);
6249: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_loan_rec.NEXT_PAYMENT_NUMBER);
6250: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_loan_rec.NEXT_PAYMENT_DUE_DATE);
6251: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || l_loan_rec.NEXT_PAYMENT_LATE_DATE);
6252: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_loan_rec.NEXT_PRINCIPAL_AMOUNT);
6253: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_loan_rec.NEXT_INTEREST_AMOUNT);
6254: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_loan_rec.NEXT_FEE_AMOUNT);
6255: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6256: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
6249: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_loan_rec.NEXT_PAYMENT_NUMBER);
6250: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_loan_rec.NEXT_PAYMENT_DUE_DATE);
6251: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || l_loan_rec.NEXT_PAYMENT_LATE_DATE);
6252: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_loan_rec.NEXT_PRINCIPAL_AMOUNT);
6253: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_loan_rec.NEXT_INTEREST_AMOUNT);
6254: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_loan_rec.NEXT_FEE_AMOUNT);
6255: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6256: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
6257: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PHASE: ' || l_loan_rec.CURRENT_PHASE);
6250: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_loan_rec.NEXT_PAYMENT_DUE_DATE);
6251: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || l_loan_rec.NEXT_PAYMENT_LATE_DATE);
6252: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_loan_rec.NEXT_PRINCIPAL_AMOUNT);
6253: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_loan_rec.NEXT_INTEREST_AMOUNT);
6254: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_loan_rec.NEXT_FEE_AMOUNT);
6255: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6256: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
6257: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PHASE: ' || l_loan_rec.CURRENT_PHASE);
6258:
6251: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LATE_DATE: ' || l_loan_rec.NEXT_PAYMENT_LATE_DATE);
6252: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_loan_rec.NEXT_PRINCIPAL_AMOUNT);
6253: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_loan_rec.NEXT_INTEREST_AMOUNT);
6254: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_loan_rec.NEXT_FEE_AMOUNT);
6255: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6256: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
6257: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PHASE: ' || l_loan_rec.CURRENT_PHASE);
6258:
6259: LNS_AMORTIZATION_SCHEDS_PKG.Insert_Row(
6252: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_loan_rec.NEXT_PRINCIPAL_AMOUNT);
6253: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_loan_rec.NEXT_INTEREST_AMOUNT);
6254: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_loan_rec.NEXT_FEE_AMOUNT);
6255: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6256: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
6257: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PHASE: ' || l_loan_rec.CURRENT_PHASE);
6258:
6259: LNS_AMORTIZATION_SCHEDS_PKG.Insert_Row(
6260: X_AMORTIZATION_SCHEDULE_ID => l_loan_rec.NEXT_AMORTIZATION_ID
6253: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_loan_rec.NEXT_INTEREST_AMOUNT);
6254: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_loan_rec.NEXT_FEE_AMOUNT);
6255: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_loan_rec.PARENT_AMORTIZATION_ID);
6256: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_BALANCE: ' || l_prin_balance);
6257: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PHASE: ' || l_loan_rec.CURRENT_PHASE);
6258:
6259: LNS_AMORTIZATION_SCHEDS_PKG.Insert_Row(
6260: X_AMORTIZATION_SCHEDULE_ID => l_loan_rec.NEXT_AMORTIZATION_ID
6261: ,P_LOAN_ID => l_loan_rec.LOAN_ID
6270: ,P_PARENT_AMORTIZATION_ID => l_loan_rec.PARENT_AMORTIZATION_ID
6271: ,P_PRINCIPAL_BALANCE => l_prin_balance
6272: ,P_PHASE => l_loan_rec.CURRENT_PHASE);
6273:
6274: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_SCHEDULE_ID: ' || l_loan_rec.NEXT_AMORTIZATION_ID);
6275: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully inserted record into LNS_AMORTIZATION_SCHEDS');
6276:
6277: /* Creating AR invoices */
6278: CREATE_AR_INVOICES(l_loan_rec, l_lines_tbl);
6271: ,P_PRINCIPAL_BALANCE => l_prin_balance
6272: ,P_PHASE => l_loan_rec.CURRENT_PHASE);
6273:
6274: LogMessage(FND_LOG.LEVEL_STATEMENT, 'AMORTIZATION_SCHEDULE_ID: ' || l_loan_rec.NEXT_AMORTIZATION_ID);
6275: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully inserted record into LNS_AMORTIZATION_SCHEDS');
6276:
6277: /* Creating AR invoices */
6278: CREATE_AR_INVOICES(l_loan_rec, l_lines_tbl);
6279:
6284: p_amortization_schedule_id => l_loan_rec.NEXT_AMORTIZATION_ID);
6285:
6286: if P_COMMIT = FND_API.G_TRUE then
6287: COMMIT WORK;
6288: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
6289: end if;
6290:
6291: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully created OFFCYCLE bill');
6292:
6287: COMMIT WORK;
6288: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
6289: end if;
6290:
6291: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully created OFFCYCLE bill');
6292:
6293: -- loan forgiveness adjustment for manual bills: fix for bug 7429910
6294: if l_loan_rec.FORGIVENESS_FLAG = 'Y' and
6295: l_loan_rec.FORGIVENESS_PERCENT > 0 and
6294: if l_loan_rec.FORGIVENESS_FLAG = 'Y' and
6295: l_loan_rec.FORGIVENESS_PERCENT > 0 and
6296: g_forgiveness_rec_trx_id is not null then
6297:
6298: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Performing loan forgiveness adjustment...');
6299: FORGIVENESS_ADJUSTMENT(
6300: P_API_VERSION => 1.0,
6301: P_INIT_MSG_LIST => FND_API.G_FALSE,
6302: P_COMMIT => P_COMMIT,
6306: X_MSG_COUNT => l_msg_count,
6307: X_MSG_DATA => l_msg_data);
6308:
6309: IF l_return_status = 'S' THEN
6310: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully performed forgiveness adjustment.');
6311: ELSE
6312: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Failed to perform forgiveness adjustment');
6313: END IF;
6314:
6308:
6309: IF l_return_status = 'S' THEN
6310: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully performed forgiveness adjustment.');
6311: ELSE
6312: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Failed to perform forgiveness adjustment');
6313: END IF;
6314:
6315: else
6316: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Will not perform loan forgiveness adjustment');
6312: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Failed to perform forgiveness adjustment');
6313: END IF;
6314:
6315: else
6316: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Will not perform loan forgiveness adjustment');
6317: end if;
6318:
6319: /* applying cash receipts */
6320:
6340: p_encoded => FND_API.G_FALSE,
6341: p_count => x_msg_count,
6342: p_data => x_msg_data);
6343:
6344: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
6345:
6346: EXCEPTION
6347: WHEN FND_API.G_EXC_ERROR THEN
6348: ROLLBACK TO CREATE_SINGLE_OFFCYCLE_BILL;
6347: WHEN FND_API.G_EXC_ERROR THEN
6348: ROLLBACK TO CREATE_SINGLE_OFFCYCLE_BILL;
6349: x_return_status := FND_API.G_RET_STS_ERROR;
6350: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6351: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
6352: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6353: ROLLBACK TO CREATE_SINGLE_OFFCYCLE_BILL;
6354: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6355: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6352: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6353: ROLLBACK TO CREATE_SINGLE_OFFCYCLE_BILL;
6354: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6355: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6356: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
6357: WHEN OTHERS THEN
6358: ROLLBACK TO CREATE_SINGLE_OFFCYCLE_BILL;
6359: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6360: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
6360: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
6361: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
6362: END IF;
6363: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6364: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
6365: END;
6366:
6367:
6368:
6429: l_bill_lines_tbl LNS_BILLING_BATCH_PUB.BILL_LINES_TBL;
6430:
6431: BEGIN
6432:
6433: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
6434:
6435: -- Standard start of API savepoint
6436: SAVEPOINT CREATE_OFFCYCLE_BILLS;
6437: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
6433: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
6434:
6435: -- Standard start of API savepoint
6436: SAVEPOINT CREATE_OFFCYCLE_BILLS;
6437: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
6438:
6439: -- Standard call to check for call compatibility
6440: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
6441: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6449: -- Initialize API return status to success
6450: l_return_status := FND_API.G_RET_STS_SUCCESS;
6451:
6452: -- START OF BODY OF API
6453: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Creating OFFCYCLE bills...');
6454:
6455: /* Looping thru headers table */
6456: FOR l_Count IN 1..P_BILL_HEADERS_TBL.count LOOP
6457:
6455: /* Looping thru headers table */
6456: FOR l_Count IN 1..P_BILL_HEADERS_TBL.count LOOP
6457:
6458: if P_BILL_HEADERS_TBL(l_Count).HEADER_ID is null then
6459: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Header ID is not set.');
6460: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_HEADER');
6461: FND_MSG_PUB.Add;
6462: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6463: RAISE FND_API.G_EXC_ERROR;
6458: if P_BILL_HEADERS_TBL(l_Count).HEADER_ID is null then
6459: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Header ID is not set.');
6460: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_HEADER');
6461: FND_MSG_PUB.Add;
6462: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6463: RAISE FND_API.G_EXC_ERROR;
6464: end if;
6465:
6466: /* Init lines table */
6470: /* Looping thru lines table */
6471: FOR l_Count1 IN 1..P_BILL_LINES_TBL.count LOOP
6472:
6473: if P_BILL_LINES_TBL(l_Count1).HEADER_ID is null then
6474: -- LogMessage(FND_LOG.LEVEL_ERROR, 'ERROR: Header ID for line ' || P_BILL_LINES_TBL(l_Count1).LINE_ID || ' is not set.');
6475: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LINE_HEADER');
6476: FND_MESSAGE.SET_TOKEN('LINE', P_BILL_LINES_TBL(l_Count1).LINE_ID);
6477: FND_MSG_PUB.Add;
6478: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
6474: -- LogMessage(FND_LOG.LEVEL_ERROR, 'ERROR: Header ID for line ' || P_BILL_LINES_TBL(l_Count1).LINE_ID || ' is not set.');
6475: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_BILL_NO_LINE_HEADER');
6476: FND_MESSAGE.SET_TOKEN('LINE', P_BILL_LINES_TBL(l_Count1).LINE_ID);
6477: FND_MSG_PUB.Add;
6478: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
6479: RAISE FND_API.G_EXC_ERROR;
6480: end if;
6481:
6482: /* Adding current line record to lines table of current header */
6504: END IF;
6505:
6506: END LOOP;
6507:
6508: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
6509: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || P_BILL_HEADERS_TBL.count || ' OFFCYCLE bill(s)');
6510:
6511: if P_COMMIT = FND_API.G_TRUE then
6512: COMMIT WORK;
6505:
6506: END LOOP;
6507:
6508: LogMessage(FND_LOG.LEVEL_UNEXPECTED, '______________');
6509: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || P_BILL_HEADERS_TBL.count || ' OFFCYCLE bill(s)');
6510:
6511: if P_COMMIT = FND_API.G_TRUE then
6512: COMMIT WORK;
6513: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loan');
6509: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Total processed ' || P_BILL_HEADERS_TBL.count || ' OFFCYCLE bill(s)');
6510:
6511: if P_COMMIT = FND_API.G_TRUE then
6512: COMMIT WORK;
6513: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited loan');
6514: end if;
6515:
6516: -- END OF BODY OF API
6517: x_return_status := FND_API.G_RET_STS_SUCCESS;
6521: p_encoded => FND_API.G_FALSE,
6522: p_count => x_msg_count,
6523: p_data => x_msg_data);
6524:
6525: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
6526:
6527: EXCEPTION
6528: WHEN FND_API.G_EXC_ERROR THEN
6529: ROLLBACK TO CREATE_OFFCYCLE_BILLS;
6528: WHEN FND_API.G_EXC_ERROR THEN
6529: ROLLBACK TO CREATE_OFFCYCLE_BILLS;
6530: x_return_status := FND_API.G_RET_STS_ERROR;
6531: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6532: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked loan');
6533: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6534: ROLLBACK TO CREATE_OFFCYCLE_BILLS;
6535: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6536: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6533: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6534: ROLLBACK TO CREATE_OFFCYCLE_BILLS;
6535: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6536: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6537: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked loan');
6538: WHEN OTHERS THEN
6539: ROLLBACK TO CREATE_OFFCYCLE_BILLS;
6540: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6541: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
6541: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
6542: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
6543: END IF;
6544: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6545: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked loan');
6546: END;
6547:
6548:
6549:
6656: lines.AMORTIZATION_SCHEDULE_ID = P_AMORTIZATION_ID;
6657:
6658: BEGIN
6659:
6660: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
6661:
6662: -- Standard start of API savepoint
6663: SAVEPOINT REVERSE_OFFCYCLE_BILL;
6664: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
6660: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
6661:
6662: -- Standard start of API savepoint
6663: SAVEPOINT REVERSE_OFFCYCLE_BILL;
6664: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
6665:
6666: -- Standard call to check for call compatibility
6667: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
6668: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6679: -- START OF BODY OF API
6680:
6681: init;
6682:
6683: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reversing offcycle bill with amortization_id ' || P_AMORTIZATION_ID);
6684:
6685: /* verify input parameters */
6686: if P_AMORTIZATION_ID is null then
6687: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Amortization ID must be set.');
6683: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Reversing offcycle bill with amortization_id ' || P_AMORTIZATION_ID);
6684:
6685: /* verify input parameters */
6686: if P_AMORTIZATION_ID is null then
6687: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Amortization ID must be set.');
6688: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_REV_NO_AMORT');
6689: FND_MSG_PUB.Add;
6690: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6691: RAISE FND_API.G_EXC_ERROR;
6686: if P_AMORTIZATION_ID is null then
6687: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Amortization ID must be set.');
6688: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_REV_NO_AMORT');
6689: FND_MSG_PUB.Add;
6690: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
6691: RAISE FND_API.G_EXC_ERROR;
6692: end if;
6693:
6694: /* verify is it really offcycle bill, reversed etc. */
6691: RAISE FND_API.G_EXC_ERROR;
6692: end if;
6693:
6694: /* verify is it really offcycle bill, reversed etc. */
6695: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Querying for details of the amortization:');
6696:
6697: open amort_cur(P_AMORTIZATION_ID);
6698: fetch amort_cur into
6699: l_LOAN_ID,
6703: l_REVERSED_FLAG;
6704:
6705: if amort_cur%NOTFOUND then
6706:
6707: -- LogMessage(FND_LOG.LEVEL_ERROR, 'ERROR: No amortization record found.');
6708: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_REV_NO_BILL_FOUND');
6709: FND_MSG_PUB.Add;
6710: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
6711: RAISE FND_API.G_EXC_ERROR;
6706:
6707: -- LogMessage(FND_LOG.LEVEL_ERROR, 'ERROR: No amortization record found.');
6708: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_REV_NO_BILL_FOUND');
6709: FND_MSG_PUB.Add;
6710: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
6711: RAISE FND_API.G_EXC_ERROR;
6712:
6713: else
6714:
6711: RAISE FND_API.G_EXC_ERROR;
6712:
6713: else
6714:
6715: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_LOAN_ID);
6716: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_PAYMENT_NUMBER);
6717: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_DUE_DATE);
6718: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_PARENT_AMORTIZATION_ID);
6719: LogMessage(FND_LOG.LEVEL_STATEMENT, 'REVERSED_FLAG: ' || l_REVERSED_FLAG);
6712:
6713: else
6714:
6715: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_LOAN_ID);
6716: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_PAYMENT_NUMBER);
6717: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_DUE_DATE);
6718: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_PARENT_AMORTIZATION_ID);
6719: LogMessage(FND_LOG.LEVEL_STATEMENT, 'REVERSED_FLAG: ' || l_REVERSED_FLAG);
6720:
6713: else
6714:
6715: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_LOAN_ID);
6716: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_PAYMENT_NUMBER);
6717: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_DUE_DATE);
6718: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_PARENT_AMORTIZATION_ID);
6719: LogMessage(FND_LOG.LEVEL_STATEMENT, 'REVERSED_FLAG: ' || l_REVERSED_FLAG);
6720:
6721: if l_PARENT_AMORTIZATION_ID is null then
6714:
6715: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_LOAN_ID);
6716: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_PAYMENT_NUMBER);
6717: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_DUE_DATE);
6718: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_PARENT_AMORTIZATION_ID);
6719: LogMessage(FND_LOG.LEVEL_STATEMENT, 'REVERSED_FLAG: ' || l_REVERSED_FLAG);
6720:
6721: if l_PARENT_AMORTIZATION_ID is null then
6722:
6715: LogMessage(FND_LOG.LEVEL_STATEMENT, 'LOAN_ID: ' || l_LOAN_ID);
6716: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PAYMENT_NUMBER: ' || l_PAYMENT_NUMBER);
6717: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_DUE_DATE);
6718: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PARENT_AMORTIZATION_ID: ' || l_PARENT_AMORTIZATION_ID);
6719: LogMessage(FND_LOG.LEVEL_STATEMENT, 'REVERSED_FLAG: ' || l_REVERSED_FLAG);
6720:
6721: if l_PARENT_AMORTIZATION_ID is null then
6722:
6723: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: The amortization is not offcycle bill.');
6719: LogMessage(FND_LOG.LEVEL_STATEMENT, 'REVERSED_FLAG: ' || l_REVERSED_FLAG);
6720:
6721: if l_PARENT_AMORTIZATION_ID is null then
6722:
6723: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: The amortization is not offcycle bill.');
6724: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_REV_NOT_MAN_BILL');
6725: FND_MSG_PUB.Add;
6726: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
6727: RAISE FND_API.G_EXC_ERROR;
6722:
6723: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: The amortization is not offcycle bill.');
6724: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_REV_NOT_MAN_BILL');
6725: FND_MSG_PUB.Add;
6726: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
6727: RAISE FND_API.G_EXC_ERROR;
6728:
6729: elsif l_REVERSED_FLAG = 'Y' then
6730:
6727: RAISE FND_API.G_EXC_ERROR;
6728:
6729: elsif l_REVERSED_FLAG = 'Y' then
6730:
6731: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: The amortization is already reversed.');
6732: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_REV_ALREADY_REV');
6733: FND_MSG_PUB.Add;
6734: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
6735: RAISE FND_API.G_EXC_ERROR;
6730:
6731: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: The amortization is already reversed.');
6732: FND_MESSAGE.SET_NAME('LNS', 'LNS_MAN_REV_ALREADY_REV');
6733: FND_MSG_PUB.Add;
6734: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
6735: RAISE FND_API.G_EXC_ERROR;
6736:
6737: end if;
6738:
6740:
6741: close amort_cur;
6742:
6743: /* Quering for invoices with lines to reverse */
6744: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Quering for trx lines to reverse...');
6745:
6746: open trx_to_reverse_cur(l_LOAN_ID, P_AMORTIZATION_ID);
6747:
6748: l_Count := 0;
6774:
6775: /* Check for table count */
6776: if l_reverse_tbl.count = 0 then
6777:
6778: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No trx lines found to reverse.');
6779: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_LINES_TO_REV');
6780: FND_MSG_PUB.Add;
6781: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
6782: RAISE FND_API.G_EXC_ERROR;
6777:
6778: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: No trx lines found to reverse.');
6779: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_LINES_TO_REV');
6780: FND_MSG_PUB.Add;
6781: LogMessage(FND_LOG.LEVEL_ERROR, FND_MSG_PUB.Get(p_encoded => 'F'));
6782: RAISE FND_API.G_EXC_ERROR;
6783:
6784: end if;
6785:
6786: /* Create credit memos */
6787: CREATE_AR_CM(l_reverse_tbl);
6788:
6789: /* Updating amortization table */
6790: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating record in LNS_AMORTIZATION_SCHEDS...') ;
6791:
6792: LNS_AMORTIZATION_SCHEDS_PKG.Update_Row(
6793: P_AMORTIZATION_SCHEDULE_ID => P_AMORTIZATION_ID
6794: ,P_REVERSED_FLAG => 'Y'
6793: P_AMORTIZATION_SCHEDULE_ID => P_AMORTIZATION_ID
6794: ,P_REVERSED_FLAG => 'Y'
6795: ,P_REVERSED_DATE => sysdate);
6796:
6797: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Update successfull!');
6798:
6799: STORE_LAST_PAYMENT_NUMBER(l_LOAN_ID);
6800:
6801: if P_COMMIT = FND_API.G_TRUE then
6799: STORE_LAST_PAYMENT_NUMBER(l_LOAN_ID);
6800:
6801: if P_COMMIT = FND_API.G_TRUE then
6802: COMMIT WORK;
6803: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
6804: end if;
6805:
6806: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully reversed offcycle bill');
6807:
6802: COMMIT WORK;
6803: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
6804: end if;
6805:
6806: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully reversed offcycle bill');
6807:
6808: -- END OF BODY OF API
6809: x_return_status := FND_API.G_RET_STS_SUCCESS;
6810:
6813: p_encoded => FND_API.G_FALSE,
6814: p_count => x_msg_count,
6815: p_data => x_msg_data);
6816:
6817: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
6818:
6819: EXCEPTION
6820: WHEN FND_API.G_EXC_ERROR THEN
6821: ROLLBACK TO REVERSE_OFFCYCLE_BILL;
6820: WHEN FND_API.G_EXC_ERROR THEN
6821: ROLLBACK TO REVERSE_OFFCYCLE_BILL;
6822: x_return_status := FND_API.G_RET_STS_ERROR;
6823: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6824: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
6825: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6826: ROLLBACK TO REVERSE_OFFCYCLE_BILL;
6827: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6828: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6825: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6826: ROLLBACK TO REVERSE_OFFCYCLE_BILL;
6827: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6828: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6829: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
6830: WHEN OTHERS THEN
6831: ROLLBACK TO REVERSE_OFFCYCLE_BILL;
6832: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6833: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
6833: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
6834: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
6835: END IF;
6836: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
6837: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
6838: END;
6839:
6840:
6841:
6966: order by lines.LOAN_LINE_ID;
6967:
6968: BEGIN
6969:
6970: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
6971:
6972: -- Standard start of API savepoint
6973: SAVEPOINT ADJUST_ORIGINAL_RECEIVABLE;
6974: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
6970: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
6971:
6972: -- Standard start of API savepoint
6973: SAVEPOINT ADJUST_ORIGINAL_RECEIVABLE;
6974: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
6975:
6976: -- Standard call to check for call compatibility
6977: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
6978: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
6989: -- START OF BODY OF API
6990:
6991: init;
6992:
6993: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input loan_id :' || P_LOAN_ID);
6994:
6995: /* verify input parameters */
6996: if P_LOAN_ID is null then
6997:
6994:
6995: /* verify input parameters */
6996: if P_LOAN_ID is null then
6997:
6998: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan must be set.');
6999: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LOAN');
7000: FND_MSG_PUB.Add;
7001: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7002: RAISE FND_API.G_EXC_ERROR;
6997:
6998: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan must be set.');
6999: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LOAN');
7000: FND_MSG_PUB.Add;
7001: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7002: RAISE FND_API.G_EXC_ERROR;
7003:
7004: end if;
7005:
7004: end if;
7005:
7006: /* checking for system options values required for adjustment */
7007: if g_receivables_trx_id is null then
7008: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Receivables activity name is not set in the system option.');
7009: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_REC_TRX_IN_SYS_OPT');
7010: FND_MSG_PUB.Add;
7011: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7012: RAISE FND_API.G_EXC_ERROR;
7007: if g_receivables_trx_id is null then
7008: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Receivables activity name is not set in the system option.');
7009: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_REC_TRX_IN_SYS_OPT');
7010: FND_MSG_PUB.Add;
7011: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7012: RAISE FND_API.G_EXC_ERROR;
7013:
7014: end if;
7015:
7020:
7021: if l_ussgl_flag = 'Y' then
7022:
7023: if g_USSGL_TRANSACTION_CODE is null then
7024: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: USSGL Transaction Code is not set in the system option.');
7025: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_CODE_IN_SYS_OPT');
7026: FND_MSG_PUB.Add;
7027: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7028: RAISE FND_API.G_EXC_ERROR;
7023: if g_USSGL_TRANSACTION_CODE is null then
7024: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: USSGL Transaction Code is not set in the system option.');
7025: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_TRX_CODE_IN_SYS_OPT');
7026: FND_MSG_PUB.Add;
7027: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7028: RAISE FND_API.G_EXC_ERROR;
7029:
7030: end if;
7031:
7057:
7058: l_Count := l_Count + 1;
7059:
7060: if l_Count = 1 then
7061: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjusting original receivables for loan ' || l_loan_number || ' (id ' || P_LOAN_ID || ')...');
7062: end if;
7063:
7064: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjusting receivable ' || l_trx_number || '...');
7065:
7060: if l_Count = 1 then
7061: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjusting original receivables for loan ' || l_loan_number || ' (id ' || P_LOAN_ID || ')...');
7062: end if;
7063:
7064: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjusting receivable ' || l_trx_number || '...');
7065:
7066: /* verify adjust amount and set adjustment type */
7067: if l_requested_amount > l_amount_due_remaining then
7068: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Adjust amount cannot be greater than receivable remaining amount.');
7064: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjusting receivable ' || l_trx_number || '...');
7065:
7066: /* verify adjust amount and set adjustment type */
7067: if l_requested_amount > l_amount_due_remaining then
7068: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Adjust amount cannot be greater than receivable remaining amount.');
7069: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjustment amount: -' || l_requested_amount);
7070: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Receivable remaining amount: ' || l_amount_due_remaining);
7071: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_ADJ_AMT');
7072: FND_MSG_PUB.Add;
7065:
7066: /* verify adjust amount and set adjustment type */
7067: if l_requested_amount > l_amount_due_remaining then
7068: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Adjust amount cannot be greater than receivable remaining amount.');
7069: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjustment amount: -' || l_requested_amount);
7070: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Receivable remaining amount: ' || l_amount_due_remaining);
7071: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_ADJ_AMT');
7072: FND_MSG_PUB.Add;
7073: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7066: /* verify adjust amount and set adjustment type */
7067: if l_requested_amount > l_amount_due_remaining then
7068: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Adjust amount cannot be greater than receivable remaining amount.');
7069: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjustment amount: -' || l_requested_amount);
7070: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Receivable remaining amount: ' || l_amount_due_remaining);
7071: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_ADJ_AMT');
7072: FND_MSG_PUB.Add;
7073: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7074: RAISE FND_API.G_EXC_ERROR;
7069: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjustment amount: -' || l_requested_amount);
7070: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Receivable remaining amount: ' || l_amount_due_remaining);
7071: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_ADJ_AMT');
7072: FND_MSG_PUB.Add;
7073: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7074: RAISE FND_API.G_EXC_ERROR;
7075: else
7076: l_type := 'LINE';
7077: end if;
7075: else
7076: l_type := 'LINE';
7077: end if;
7078:
7079: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjustment amount: -' || l_requested_amount);
7080: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Receivable remaining amount: ' || l_amount_due_remaining);
7081:
7082: /* checking if adjustment for this loan already was made */
7083: if l_adj_number is not null or l_adj_id is not null then
7076: l_type := 'LINE';
7077: end if;
7078:
7079: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjustment amount: -' || l_requested_amount);
7080: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Receivable remaining amount: ' || l_amount_due_remaining);
7081:
7082: /* checking if adjustment for this loan already was made */
7083: if l_adj_number is not null or l_adj_id is not null then
7084: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Attempt to duplicate adjustment. Receivable has been already adjusted for this loan by adjustment xxx' );
7080: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Receivable remaining amount: ' || l_amount_due_remaining);
7081:
7082: /* checking if adjustment for this loan already was made */
7083: if l_adj_number is not null or l_adj_id is not null then
7084: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Attempt to duplicate adjustment. Receivable has been already adjusted for this loan by adjustment xxx' );
7085: FND_MESSAGE.SET_NAME('LNS', 'LNS_DUPL_ADJ_ORIG_REC');
7086: FND_MESSAGE.SET_TOKEN('ADJ', l_adj_number);
7087: FND_MSG_PUB.Add;
7088: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7084: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Attempt to duplicate adjustment. Receivable has been already adjusted for this loan by adjustment xxx' );
7085: FND_MESSAGE.SET_NAME('LNS', 'LNS_DUPL_ADJ_ORIG_REC');
7086: FND_MESSAGE.SET_TOKEN('ADJ', l_adj_number);
7087: FND_MSG_PUB.Add;
7088: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7089: RAISE FND_API.G_EXC_ERROR;
7090: end if;
7091:
7092: /* buld comments */
7123: X_ADJ_ID => l_adj_id,
7124: X_ADJ_NUMBER => l_adj_number,
7125: P_ORG_ID => l_org_id);
7126:
7127: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating LNS_LOAN_LINES...');
7128: LNS_LOAN_LINE_PUB.UPDATE_LINE_ADJUSTMENT_NUMBER(
7129: p_init_msg_list => FND_API.G_FALSE
7130: ,p_loan_id => P_LOAN_ID
7131: ,p_loan_line_id => l_line_id
7136: ,x_return_status => l_return_status
7137: ,x_msg_count => l_msg_count
7138: ,x_msg_data => l_msg_data);
7139:
7140: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
7141: IF l_return_status = 'S' THEN
7142: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully updated LNS_LOAN_LINES');
7143: ELSE
7144: RAISE FND_API.G_EXC_ERROR;
7138: ,x_msg_data => l_msg_data);
7139:
7140: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
7141: IF l_return_status = 'S' THEN
7142: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully updated LNS_LOAN_LINES');
7143: ELSE
7144: RAISE FND_API.G_EXC_ERROR;
7145: END IF;
7146: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully created adjustment ' || l_adj_number || ' for original receivable ' || l_trx_number);
7142: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully updated LNS_LOAN_LINES');
7143: ELSE
7144: RAISE FND_API.G_EXC_ERROR;
7145: END IF;
7146: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully created adjustment ' || l_adj_number || ' for original receivable ' || l_trx_number);
7147:
7148: END LOOP;
7149:
7150: close orig_rec_cur;
7149:
7150: close orig_rec_cur;
7151:
7152: if l_Count = 0 then
7153: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Cannot find receivable to adjust.');
7154: FND_MESSAGE.SET_NAME('LNS', 'LNS_CANT_FIND_ORIG_REC');
7155: FND_MSG_PUB.Add;
7156: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7157: RAISE FND_API.G_EXC_ERROR;
7152: if l_Count = 0 then
7153: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Cannot find receivable to adjust.');
7154: FND_MESSAGE.SET_NAME('LNS', 'LNS_CANT_FIND_ORIG_REC');
7155: FND_MSG_PUB.Add;
7156: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7157: RAISE FND_API.G_EXC_ERROR;
7158: end if;
7159:
7160: if P_COMMIT = FND_API.G_TRUE then
7158: end if;
7159:
7160: if P_COMMIT = FND_API.G_TRUE then
7161: COMMIT WORK;
7162: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
7163: end if;
7164:
7165: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully adjusted ' || l_Count || ' original receivable for loan ' || l_loan_number);
7166:
7161: COMMIT WORK;
7162: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
7163: end if;
7164:
7165: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully adjusted ' || l_Count || ' original receivable for loan ' || l_loan_number);
7166:
7167: -- END OF BODY OF API
7168: x_return_status := FND_API.G_RET_STS_SUCCESS;
7169:
7172: p_encoded => FND_API.G_FALSE,
7173: p_count => x_msg_count,
7174: p_data => x_msg_data);
7175:
7176: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
7177:
7178: EXCEPTION
7179: WHEN FND_API.G_EXC_ERROR THEN
7180: ROLLBACK TO ADJUST_ORIGINAL_RECEIVABLE;
7179: WHEN FND_API.G_EXC_ERROR THEN
7180: ROLLBACK TO ADJUST_ORIGINAL_RECEIVABLE;
7181: x_return_status := FND_API.G_RET_STS_ERROR;
7182: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7183: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
7184: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7185: ROLLBACK TO ADJUST_ORIGINAL_RECEIVABLE;
7186: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7187: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7184: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7185: ROLLBACK TO ADJUST_ORIGINAL_RECEIVABLE;
7186: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7187: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7188: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
7189: WHEN OTHERS THEN
7190: ROLLBACK TO ADJUST_ORIGINAL_RECEIVABLE;
7191: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7192: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
7192: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
7193: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
7194: END IF;
7195: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7196: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
7197: END;
7198:
7199:
7200: /*========================================================================
7281: BEGIN
7282:
7283: X_BILLED_YN := 'N';
7284:
7285: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
7286:
7287: -- Standard start of API savepoint
7288: SAVEPOINT PREBILL_SINGLE_LOAN;
7289: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
7285: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
7286:
7287: -- Standard start of API savepoint
7288: SAVEPOINT PREBILL_SINGLE_LOAN;
7289: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
7290:
7291: -- Standard call to check for call compatibility
7292: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
7293: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7306:
7307: /* verify input parameters */
7308: if P_LOAN_ID is null then
7309:
7310: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan must be set.');
7311: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LOAN');
7312: FND_MSG_PUB.Add;
7313: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7314: RAISE FND_API.G_EXC_ERROR;
7309:
7310: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan must be set.');
7311: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LOAN');
7312: FND_MSG_PUB.Add;
7313: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7314: RAISE FND_API.G_EXC_ERROR;
7315:
7316: end if;
7317:
7319: open loan_cur(P_LOAN_ID);
7320: fetch loan_cur into l_loan_number, l_cur_phase;
7321: close loan_cur;
7322:
7323: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Billing 0-th installment for loan ' || l_loan_number || '...');
7324:
7325: /* new principal and interest amounts from getInstallment api */
7326: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling lns_financials.getInstallment...');
7327:
7322:
7323: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Billing 0-th installment for loan ' || l_loan_number || '...');
7324:
7325: /* new principal and interest amounts from getInstallment api */
7326: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling lns_financials.getInstallment...');
7327:
7328: if l_cur_phase = 'TERM' then
7329:
7330: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling lns_financials.getInstallment...');
7326: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling lns_financials.getInstallment...');
7327:
7328: if l_cur_phase = 'TERM' then
7329:
7330: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling lns_financials.getInstallment...');
7331: lns_financials.getInstallment(
7332: p_api_version => 1.0,
7333: p_init_msg_list => FND_API.G_TRUE,
7334: p_commit => FND_API.G_FALSE,
7341: X_MSG_DATA => l_msg_data);
7342:
7343: else
7344:
7345: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling lns_financials.getOpenInstallment...');
7346: lns_financials.getOpenInstallment(
7347: -- p_api_version => 1.0,
7348: p_init_msg_list => FND_API.G_TRUE,
7349: -- p_commit => FND_API.G_FALSE,
7356: X_MSG_DATA => l_msg_data);
7357:
7358: end if;
7359:
7360: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
7361: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
7362:
7363: if l_return_status <> 'S' then
7364: RAISE FND_API.G_EXC_ERROR;
7357:
7358: end if;
7359:
7360: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
7361: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_msg_data: ' || substr(l_msg_data,1,225));
7362:
7363: if l_return_status <> 'S' then
7364: RAISE FND_API.G_EXC_ERROR;
7365: end if;
7363: if l_return_status <> 'S' then
7364: RAISE FND_API.G_EXC_ERROR;
7365: end if;
7366:
7367: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Data returned from lns_financials.getInstallment:');
7368: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
7369: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
7370: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
7371: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
7364: RAISE FND_API.G_EXC_ERROR;
7365: end if;
7366:
7367: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Data returned from lns_financials.getInstallment:');
7368: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
7369: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
7370: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
7371: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
7372: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_amortization_rec.FEE_AMOUNT);
7365: end if;
7366:
7367: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Data returned from lns_financials.getInstallment:');
7368: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
7369: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
7370: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
7371: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
7372: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_amortization_rec.FEE_AMOUNT);
7373:
7366:
7367: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Data returned from lns_financials.getInstallment:');
7368: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
7369: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
7370: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
7371: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
7372: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_amortization_rec.FEE_AMOUNT);
7373:
7374: l_header_count := 101;
7367: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Data returned from lns_financials.getInstallment:');
7368: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
7369: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
7370: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
7371: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
7372: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_amortization_rec.FEE_AMOUNT);
7373:
7374: l_header_count := 101;
7375: l_BILL_HEADERS_TBL(1).HEADER_ID := l_header_count;
7368: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INSTALLMENT_NUMBER: ' || l_amortization_rec.INSTALLMENT_NUMBER);
7369: LogMessage(FND_LOG.LEVEL_STATEMENT, 'DUE_DATE: ' || l_amortization_rec.due_date);
7370: LogMessage(FND_LOG.LEVEL_STATEMENT, 'PRINCIPAL_AMOUNT: ' || l_amortization_rec.PRINCIPAL_AMOUNT);
7371: LogMessage(FND_LOG.LEVEL_STATEMENT, 'INTEREST_AMOUNT: ' || l_amortization_rec.INTEREST_AMOUNT);
7372: LogMessage(FND_LOG.LEVEL_STATEMENT, 'FEE_AMOUNT: ' || l_amortization_rec.FEE_AMOUNT);
7373:
7374: l_header_count := 101;
7375: l_BILL_HEADERS_TBL(1).HEADER_ID := l_header_count;
7376: l_BILL_HEADERS_TBL(1).LOAN_ID := P_LOAN_ID;
7382: (l_amortization_rec.INTEREST_AMOUNT is null or l_amortization_rec.INTEREST_AMOUNT = 0) and
7383: (l_amortization_rec.FEE_AMOUNT is null or l_amortization_rec.FEE_AMOUNT = 0)
7384: then
7385:
7386: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'All amounts returned from lns_financials.getInstallment = 0. Nothing to bill.');
7387: return;
7388:
7389: end if;
7390:
7414:
7415: /* adding fee amounts into lines table */
7416: FOR l_Count IN 1..l_fee_tbl.count LOOP
7417:
7418: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Fee #' || l_Count || ' Name: ' || l_fee_tbl(l_Count).FEE_NAME || ' Amount: ' || l_fee_tbl(l_Count).FEE_AMOUNT);
7419:
7420: l_Count1 := l_Count1 + 1;
7421: l_BILL_LINES_TBL(l_Count1).LINE_ID := 100 + l_Count1;
7422: l_BILL_LINES_TBL(l_Count1).HEADER_ID := l_header_count;
7430: if l_amortization_rec.INSTALLMENT_NUMBER <> l_fee_tbl(l_Count).FEE_INSTALLMENT then
7431:
7432: FND_MESSAGE.SET_NAME('LNS', 'LNS_INVALID_FEE_INSTAL');
7433: FND_MSG_PUB.Add;
7434: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7435: RAISE FND_API.G_EXC_ERROR;
7436:
7437: end if;
7438:
7436:
7437: end if;
7438:
7439: /* updating LNS_FEE_SCHEDULES with billed_flag = Y */
7440: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Updating LNS_FEE_SCHEDULES with billed_flag = Y ...');
7441: UPDATE LNS_FEE_SCHEDULES
7442: SET
7443: BILLED_FLAG = 'Y',
7444: last_update_date = LNS_UTILITY_PUB.LAST_UPDATE_DATE,
7445: last_updated_by = LNS_UTILITY_PUB.LAST_UPDATED_BY,
7446: last_update_login = LNS_UTILITY_PUB.LAST_UPDATE_LOGIN
7447: WHERE
7448: FEE_SCHEDULE_ID = l_fee_tbl(l_Count).fee_schedule_id;
7449: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_FEE_SCHEDULES');
7450:
7451: END LOOP;
7452:
7453: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling LNS_BILLING_BATCH_PUB.CREATE_OFFCYCLE_BILLS...');
7449: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Successfully update LNS_FEE_SCHEDULES');
7450:
7451: END LOOP;
7452:
7453: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Calling LNS_BILLING_BATCH_PUB.CREATE_OFFCYCLE_BILLS...');
7454:
7455: LNS_BILLING_BATCH_PUB.CREATE_OFFCYCLE_BILLS(
7456: P_API_VERSION => 1.0,
7457: P_INIT_MSG_LIST => FND_API.G_TRUE,
7462: x_return_status => l_return_status,
7463: x_msg_count => l_msg_count,
7464: x_msg_data => l_msg_data);
7465:
7466: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_return_status: ' || l_return_status);
7467:
7468: if l_return_status <> 'S' then
7469: RAISE FND_API.G_EXC_ERROR;
7470: end if;
7470: end if;
7471:
7472: if P_COMMIT = FND_API.G_TRUE then
7473: COMMIT WORK;
7474: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
7475: end if;
7476:
7477: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully billed 0-th installment for loan ' || l_loan_number);
7478:
7473: COMMIT WORK;
7474: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
7475: end if;
7476:
7477: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully billed 0-th installment for loan ' || l_loan_number);
7478:
7479: -- END OF BODY OF API
7480: x_return_status := FND_API.G_RET_STS_SUCCESS;
7481: X_BILLED_YN := 'Y';
7485: p_encoded => FND_API.G_FALSE,
7486: p_count => x_msg_count,
7487: p_data => x_msg_data);
7488:
7489: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
7490:
7491: EXCEPTION
7492: WHEN FND_API.G_EXC_ERROR THEN
7493: ROLLBACK TO PREBILL_SINGLE_LOAN;
7492: WHEN FND_API.G_EXC_ERROR THEN
7493: ROLLBACK TO PREBILL_SINGLE_LOAN;
7494: x_return_status := FND_API.G_RET_STS_ERROR;
7495: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7496: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
7497: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7498: ROLLBACK TO PREBILL_SINGLE_LOAN;
7499: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7500: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7497: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7498: ROLLBACK TO PREBILL_SINGLE_LOAN;
7499: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7500: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7501: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
7502: WHEN OTHERS THEN
7503: ROLLBACK TO PREBILL_SINGLE_LOAN;
7504: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7505: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
7505: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
7506: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
7507: END IF;
7508: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7509: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
7510: END;
7511:
7512:
7513:
7618: am.PRINCIPAL_TRX_ID = psa.CUSTOMER_TRX_ID(+);
7619:
7620: BEGIN
7621:
7622: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
7623:
7624: -- Standard start of API savepoint
7625: SAVEPOINT FORGIVENESS_ADJUSTMENT;
7626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
7622: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' +');
7623:
7624: -- Standard start of API savepoint
7625: SAVEPOINT FORGIVENESS_ADJUSTMENT;
7626: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Savepoint is established');
7627:
7628: -- Standard call to check for call compatibility
7629: IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
7630: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
7638: -- Initialize API return status to success
7639: X_RETURN_STATUS := FND_API.G_RET_STS_SUCCESS;
7640:
7641: -- START OF BODY OF API
7642: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Input loan_id = ' || P_LOAN_ID);
7643:
7644: /* verify input parameters */
7645: if P_LOAN_ID is null then
7646:
7643:
7644: /* verify input parameters */
7645: if P_LOAN_ID is null then
7646:
7647: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan must be set.');
7648: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LOAN');
7649: FND_MSG_PUB.Add;
7650: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7651: RAISE FND_API.G_EXC_ERROR;
7646:
7647: -- LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Loan must be set.');
7648: FND_MESSAGE.SET_NAME('LNS', 'LNS_NO_LOAN');
7649: FND_MSG_PUB.Add;
7650: LogMessage(FND_LOG.LEVEL_UNEXPECTED, FND_MSG_PUB.Get(p_encoded => 'F'));
7651: RAISE FND_API.G_EXC_ERROR;
7652:
7653: end if;
7654:
7653: end if;
7654:
7655: /* checking for system options values required for adjustment */
7656: if g_forgiveness_rec_trx_id is null then
7657: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Loan Forgiveness receivables activity name is not set in the system option. Exiting.');
7658: return;
7659: end if;
7660:
7661: /* querying psa, loan details */
7675: l_org_id,
7676: l_currency;
7677: close details_cur;
7678:
7679: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_number = ' || l_loan_number);
7680: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_desc = ' || l_loan_desc);
7681: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_forgiveness_flag = ' || l_forgiveness_flag);
7682: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_forgiveness_percent = ' || l_forgiveness_percent);
7683: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_number = ' || l_payment_number);
7676: l_currency;
7677: close details_cur;
7678:
7679: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_number = ' || l_loan_number);
7680: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_desc = ' || l_loan_desc);
7681: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_forgiveness_flag = ' || l_forgiveness_flag);
7682: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_forgiveness_percent = ' || l_forgiveness_percent);
7683: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_number = ' || l_payment_number);
7684: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_id = ' || l_trx_id);
7677: close details_cur;
7678:
7679: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_number = ' || l_loan_number);
7680: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_desc = ' || l_loan_desc);
7681: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_forgiveness_flag = ' || l_forgiveness_flag);
7682: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_forgiveness_percent = ' || l_forgiveness_percent);
7683: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_number = ' || l_payment_number);
7684: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_id = ' || l_trx_id);
7685: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_schedule_id = ' || l_payment_schedule_id);
7678:
7679: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_number = ' || l_loan_number);
7680: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_desc = ' || l_loan_desc);
7681: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_forgiveness_flag = ' || l_forgiveness_flag);
7682: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_forgiveness_percent = ' || l_forgiveness_percent);
7683: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_number = ' || l_payment_number);
7684: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_id = ' || l_trx_id);
7685: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_schedule_id = ' || l_payment_schedule_id);
7686: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_original_amount = ' || l_original_amount);
7679: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_number = ' || l_loan_number);
7680: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_desc = ' || l_loan_desc);
7681: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_forgiveness_flag = ' || l_forgiveness_flag);
7682: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_forgiveness_percent = ' || l_forgiveness_percent);
7683: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_number = ' || l_payment_number);
7684: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_id = ' || l_trx_id);
7685: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_schedule_id = ' || l_payment_schedule_id);
7686: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_original_amount = ' || l_original_amount);
7687: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_apply_date = ' || l_apply_date);
7680: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_loan_desc = ' || l_loan_desc);
7681: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_forgiveness_flag = ' || l_forgiveness_flag);
7682: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_forgiveness_percent = ' || l_forgiveness_percent);
7683: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_number = ' || l_payment_number);
7684: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_id = ' || l_trx_id);
7685: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_schedule_id = ' || l_payment_schedule_id);
7686: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_original_amount = ' || l_original_amount);
7687: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_apply_date = ' || l_apply_date);
7688: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_gl_date = ' || l_gl_date);
7681: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_forgiveness_flag = ' || l_forgiveness_flag);
7682: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_forgiveness_percent = ' || l_forgiveness_percent);
7683: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_number = ' || l_payment_number);
7684: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_id = ' || l_trx_id);
7685: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_schedule_id = ' || l_payment_schedule_id);
7686: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_original_amount = ' || l_original_amount);
7687: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_apply_date = ' || l_apply_date);
7688: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_gl_date = ' || l_gl_date);
7689: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_phase = ' || l_phase);
7682: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_forgiveness_percent = ' || l_forgiveness_percent);
7683: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_number = ' || l_payment_number);
7684: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_id = ' || l_trx_id);
7685: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_schedule_id = ' || l_payment_schedule_id);
7686: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_original_amount = ' || l_original_amount);
7687: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_apply_date = ' || l_apply_date);
7688: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_gl_date = ' || l_gl_date);
7689: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_phase = ' || l_phase);
7690: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_org_id = ' || l_org_id);
7683: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_number = ' || l_payment_number);
7684: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_id = ' || l_trx_id);
7685: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_schedule_id = ' || l_payment_schedule_id);
7686: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_original_amount = ' || l_original_amount);
7687: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_apply_date = ' || l_apply_date);
7688: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_gl_date = ' || l_gl_date);
7689: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_phase = ' || l_phase);
7690: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_org_id = ' || l_org_id);
7691:
7684: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_trx_id = ' || l_trx_id);
7685: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_schedule_id = ' || l_payment_schedule_id);
7686: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_original_amount = ' || l_original_amount);
7687: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_apply_date = ' || l_apply_date);
7688: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_gl_date = ' || l_gl_date);
7689: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_phase = ' || l_phase);
7690: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_org_id = ' || l_org_id);
7691:
7692: if l_trx_id is null then
7685: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_payment_schedule_id = ' || l_payment_schedule_id);
7686: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_original_amount = ' || l_original_amount);
7687: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_apply_date = ' || l_apply_date);
7688: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_gl_date = ' || l_gl_date);
7689: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_phase = ' || l_phase);
7690: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_org_id = ' || l_org_id);
7691:
7692: if l_trx_id is null then
7693: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Nothing to adjust - principal invoice does not exist for payment number ' || l_payment_number || '. Exiting.');
7686: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_original_amount = ' || l_original_amount);
7687: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_apply_date = ' || l_apply_date);
7688: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_gl_date = ' || l_gl_date);
7689: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_phase = ' || l_phase);
7690: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_org_id = ' || l_org_id);
7691:
7692: if l_trx_id is null then
7693: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Nothing to adjust - principal invoice does not exist for payment number ' || l_payment_number || '. Exiting.');
7694: return;
7689: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_phase = ' || l_phase);
7690: LogMessage(FND_LOG.LEVEL_STATEMENT, 'l_org_id = ' || l_org_id);
7691:
7692: if l_trx_id is null then
7693: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Nothing to adjust - principal invoice does not exist for payment number ' || l_payment_number || '. Exiting.');
7694: return;
7695: end if;
7696:
7697: if l_payment_schedule_id is null then
7694: return;
7695: end if;
7696:
7697: if l_payment_schedule_id is null then
7698: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'ERROR: Cannot create adjustment - principal invoice is INCOMPLETE!');
7699: RAISE FND_API.G_EXC_ERROR;
7700: end if;
7701:
7702: if l_forgiveness_flag = 'N' then
7699: RAISE FND_API.G_EXC_ERROR;
7700: end if;
7701:
7702: if l_forgiveness_flag = 'N' then
7703: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Loan is not part of loan forgiveness program. Exiting.');
7704: return;
7705: end if;
7706:
7707: if l_forgiveness_percent = 0 then
7704: return;
7705: end if;
7706:
7707: if l_forgiveness_percent = 0 then
7708: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Forgiveness percent = 0. Will not perform forgiveness adjustment. Exiting.');
7709: return;
7710: end if;
7711:
7712: if l_original_amount = 0 then
7709: return;
7710: end if;
7711:
7712: if l_original_amount = 0 then
7713: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Principal amount = 0. Will not perform forgiveness adjustment. Exiting.');
7714: return;
7715: end if;
7716:
7717: l_type := 'LINE';
7722: EXT_PRECISION => l_ext_precision,
7723: MIN_ACCT_UNIT => l_min_acct_unit);
7724: l_requested_amount := round(l_original_amount * (l_forgiveness_percent/100), l_precision);
7725:
7726: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Adjustment amount: -' || l_requested_amount);
7727:
7728: /* buld comments */
7729: l_comments := 'Loan Forgiveness Program for loan ' || l_loan_number;
7730:
7743: X_ADJ_ID => l_adj_id,
7744: X_ADJ_NUMBER => l_adj_number,
7745: P_ORG_ID => l_org_id);
7746:
7747: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'l_adj_number = ' || l_adj_number || ' (l_adj_id = ' || l_adj_id || ')');
7748:
7749: if l_adj_id is null and l_adj_number is null then
7750: RAISE FND_API.G_EXC_ERROR;
7751: end if;
7751: end if;
7752:
7753: if P_COMMIT = FND_API.G_TRUE then
7754: COMMIT WORK;
7755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
7756: end if;
7757:
7758: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully adjusted payment ' || l_payment_number || ' for loan ' || l_loan_number);
7759:
7754: COMMIT WORK;
7755: LogMessage(FND_LOG.LEVEL_STATEMENT, 'Commited');
7756: end if;
7757:
7758: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Successfully adjusted payment ' || l_payment_number || ' for loan ' || l_loan_number);
7759:
7760: -- END OF BODY OF API
7761: x_return_status := FND_API.G_RET_STS_SUCCESS;
7762:
7765: p_encoded => FND_API.G_FALSE,
7766: p_count => x_msg_count,
7767: p_data => x_msg_data);
7768:
7769: LogMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME || '.' || l_api_name || ' -');
7770:
7771: EXCEPTION
7772: WHEN FND_API.G_EXC_ERROR THEN
7773: ROLLBACK TO FORGIVENESS_ADJUSTMENT;
7772: WHEN FND_API.G_EXC_ERROR THEN
7773: ROLLBACK TO FORGIVENESS_ADJUSTMENT;
7774: x_return_status := FND_API.G_RET_STS_ERROR;
7775: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7776: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
7777: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7778: ROLLBACK TO FORGIVENESS_ADJUSTMENT;
7779: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7780: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7777: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
7778: ROLLBACK TO FORGIVENESS_ADJUSTMENT;
7779: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7780: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7781: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
7782: WHEN OTHERS THEN
7783: ROLLBACK TO FORGIVENESS_ADJUSTMENT;
7784: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7785: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
7785: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)THEN
7786: FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
7787: END IF;
7788: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data => x_msg_data);
7789: LogMessage(FND_LOG.LEVEL_UNEXPECTED, 'Rollbacked');
7790: END;
7791:
7792:
7793:
7792:
7793:
7794: BEGIN
7795: G_LOG_ENABLED := 'N';
7796: G_MSG_LEVEL := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
7797:
7798: /* getting msg logging info */
7799: G_LOG_ENABLED := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'), 'N');
7800: /*
7798: /* getting msg logging info */
7799: G_LOG_ENABLED := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'), 'N');
7800: /*
7801: if (G_LOG_ENABLED = 'N') then
7802: G_MSG_LEVEL := FND_LOG.LEVEL_UNEXPECTED;
7803: else
7804: G_MSG_LEVEL := NVL(to_number(FND_PROFILE.VALUE('AFLOG_LEVEL')), FND_LOG.LEVEL_UNEXPECTED);
7805: end if;
7806: */
7800: /*
7801: if (G_LOG_ENABLED = 'N') then
7802: G_MSG_LEVEL := FND_LOG.LEVEL_UNEXPECTED;
7803: else
7804: G_MSG_LEVEL := NVL(to_number(FND_PROFILE.VALUE('AFLOG_LEVEL')), FND_LOG.LEVEL_UNEXPECTED);
7805: end if;
7806: */
7807: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_LOG_ENABLED: ' || G_LOG_ENABLED);
7808: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_MSG_LEVEL: ' || G_MSG_LEVEL);
7803: else
7804: G_MSG_LEVEL := NVL(to_number(FND_PROFILE.VALUE('AFLOG_LEVEL')), FND_LOG.LEVEL_UNEXPECTED);
7805: end if;
7806: */
7807: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_LOG_ENABLED: ' || G_LOG_ENABLED);
7808: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_MSG_LEVEL: ' || G_MSG_LEVEL);
7809:
7810: END;
7804: G_MSG_LEVEL := NVL(to_number(FND_PROFILE.VALUE('AFLOG_LEVEL')), FND_LOG.LEVEL_UNEXPECTED);
7805: end if;
7806: */
7807: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_LOG_ENABLED: ' || G_LOG_ENABLED);
7808: LogMessage(FND_LOG.LEVEL_STATEMENT, 'G_MSG_LEVEL: ' || G_MSG_LEVEL);
7809:
7810: END;