1: PACKAGE BODY LNS_CUSTOM_PUB AS
2: /* $Header: LNS_CUST_PUBP_B.pls 120.34.12020000.2 2012/07/19 20:54:28 scherkas ship $ */
3: G_DEBUG_COUNT CONSTANT NUMBER := 0;
4: G_DEBUG CONSTANT BOOLEAN := FALSE;
5:
2: /* $Header: LNS_CUST_PUBP_B.pls 120.34.12020000.2 2012/07/19 20:54:28 scherkas ship $ */
3: G_DEBUG_COUNT CONSTANT NUMBER := 0;
4: G_DEBUG CONSTANT BOOLEAN := FALSE;
5:
6: G_PKG_NAME CONSTANT VARCHAR2(30) := 'LNS_CUSTOM_PUB';
7: G_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
8: G_AMORT_METHOD VARCHAR2(30);
9: g_COMBINE_INT_WITH_LAST_PRIN VARCHAR2(1);
10: g_CUSTOM_SCHED_DESC VARCHAR2(100);
3: G_DEBUG_COUNT CONSTANT NUMBER := 0;
4: G_DEBUG CONSTANT BOOLEAN := FALSE;
5:
6: G_PKG_NAME CONSTANT VARCHAR2(30) := 'LNS_CUSTOM_PUB';
7: G_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
8: G_AMORT_METHOD VARCHAR2(30);
9: g_COMBINE_INT_WITH_LAST_PRIN VARCHAR2(1);
10: g_CUSTOM_SCHED_DESC VARCHAR2(100);
11:
32:
33: /* this funciton will ensure the rows in the custom tbl are ordered by payment number
34: || will NOT validate that payment numbers are unique. this should be done prior to sorting
35: */
36: procedure sortRows(p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
37:
38: is
39: l_return_tbl LNS_CUSTOM_PUB.custom_tbl;
40: j number;
35: */
36: procedure sortRows(p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
37:
38: is
39: l_return_tbl LNS_CUSTOM_PUB.custom_tbl;
40: j number;
41: l_tmp_row lns_custom_pub.custom_sched_type;
42: l_number number;
43: l_min number;
37:
38: is
39: l_return_tbl LNS_CUSTOM_PUB.custom_tbl;
40: j number;
41: l_tmp_row lns_custom_pub.custom_sched_type;
42: l_number number;
43: l_min number;
44: l_tmp number;
45:
286:
287: l_loan_header_rec LNS_LOAN_HEADER_PUB.loan_header_rec_type;
288: l_object_version number;
289: g_object_version number;
290: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
291: l_api_name varchar2(25);
292: l_loan_start_date date;
293: l_original_loan_amount number;
294: l_fee_amount number;
342: l_custom_tbl(m) := p_custom_tbl(j);
343: end if;
344: end loop;
345:
346: lns_custom_pub.validateCustomTable(p_cust_tbl => l_custom_tbl
347: ,p_loan_id => p_loan_id
348: ,p_create_flag => true
349: ,x_installment => l_installment
350: ,x_return_status => l_return_status
490: l_custom_tbl(k + 1).installment_begin_balance := l_custom_rec.installment_end_balance;
491: end if;
492:
493: -- call api to update rows one-by-one for compliance reasons
494: lns_custom_pub.createCustomSched(P_CUSTOM_REC => l_custom_rec
495: ,x_return_status => l_return_status
496: ,x_custom_sched_id => l_custom_sched_id
497: ,x_msg_count => l_msg_Count
498: ,x_msg_data => l_msg_Data);
605: l_return_Status VARCHAR2(1);
606: l_installment NUMBER;
607: l_custom_rec custom_sched_type;
608: l_total_amount NUMBER;
609: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
610: l_custom_tbl2 LNS_CUSTOM_PUB.CUSTOM_TBL;
611:
612: l_api_name varchar2(25);
613:
606: l_installment NUMBER;
607: l_custom_rec custom_sched_type;
608: l_total_amount NUMBER;
609: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
610: l_custom_tbl2 LNS_CUSTOM_PUB.CUSTOM_TBL;
611:
612: l_api_name varchar2(25);
613:
614:
672:
673: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - after clean up records');
674: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - num records is '|| l_custom_tbl.count);
675:
676: lns_custom_pub.validateCustomTable(p_cust_tbl => l_custom_tbl
677: ,p_loan_id => p_loan_id
678: ,p_create_flag => false
679: ,x_installment => l_installment
680: ,x_return_status => l_return_status
732: l_custom_tbl(k+1).installment_begin_balance := l_custom_rec.installment_end_balance;
733: end if;
734:
735: -- call api to update rows one-by-one for compliance reasons
736: lns_custom_pub.updateCustomSched(P_CUSTOM_REC => l_custom_rec
737: ,x_return_status => l_return_status
738: ,x_msg_count => l_msg_Count
739: ,x_msg_data => l_msg_Data);
740:
1159: /*
1160: This procedure ensures the rows in the custom tbl are ordered by due date.
1161: Validates that due dates are unique
1162: */
1163: procedure sortRowsByDate(p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
1164:
1165: is
1166: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1167: i number;
1162: */
1163: procedure sortRowsByDate(p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
1164:
1165: is
1166: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1167: i number;
1168: j number;
1169: l_temp LNS_CUSTOM_PUB.custom_sched_type;
1170: l_exist boolean;
1165: is
1166: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1167: i number;
1168: j number;
1169: l_temp LNS_CUSTOM_PUB.custom_sched_type;
1170: l_exist boolean;
1171:
1172: begin
1173: l_custom_tbl := p_custom_tbl;
1226:
1227: /*
1228: This procedure filters the custom tbl from deleted rows
1229: */
1230: procedure filterCustSchedule(p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
1231:
1232: is
1233: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1234: l_new_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1229: */
1230: procedure filterCustSchedule(p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
1231:
1232: is
1233: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1234: l_new_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1235: i number;
1236: j number;
1237:
1230: procedure filterCustSchedule(p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
1231:
1232: is
1233: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1234: l_new_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1235: i number;
1236: j number;
1237:
1238: begin
1256:
1257: /*
1258: This procedure resolves relative dates and set actual due dates for all rows
1259: */
1260: procedure resolveRelativeDates(p_loan_details in LNS_CUSTOM_PUB.LOAN_DETAILS_REC,
1261: p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
1262:
1263: is
1264: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1257: /*
1258: This procedure resolves relative dates and set actual due dates for all rows
1259: */
1260: procedure resolveRelativeDates(p_loan_details in LNS_CUSTOM_PUB.LOAN_DETAILS_REC,
1261: p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
1262:
1263: is
1264: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1265: l_new_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1260: procedure resolveRelativeDates(p_loan_details in LNS_CUSTOM_PUB.LOAN_DETAILS_REC,
1261: p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
1262:
1263: is
1264: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1265: l_new_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1266: l_last_due_date date;
1267: l_term number;
1268: l_period varchar2(30);
1261: p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl)
1262:
1263: is
1264: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1265: l_new_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
1266: l_last_due_date date;
1267: l_term number;
1268: l_period varchar2(30);
1269: i number;
1575:
1576:
1577:
1578: function getLoanDetails(p_loan_id in number
1579: ,p_based_on_terms in varchar2) return LNS_CUSTOM_PUB.LOAN_DETAILS_REC
1580:
1581: is
1582:
1583: /*-----------------------------------------------------------------------+
1584: | Local Variable Declarations and initializations |
1585: +-----------------------------------------------------------------------*/
1586:
1587: l_api_name CONSTANT VARCHAR2(30) := 'getLoanDetails';
1588: l_loan_Details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
1589: l_billed_principal number;
1590:
1591: /*-----------------------------------------------------------------------+
1592: | Cursor Declarations |
1801: P_COMMIT IN VARCHAR2,
1802: P_VALIDATION_LEVEL IN NUMBER,
1803: P_LOAN_ID IN NUMBER,
1804: P_BASED_ON_TERMS IN VARCHAR2,
1805: X_CUSTOM_SET_REC OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
1806: X_CUSTOM_TBL OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
1807: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
1808: X_MSG_COUNT OUT NOCOPY NUMBER,
1809: X_MSG_DATA OUT NOCOPY VARCHAR2)
1802: P_VALIDATION_LEVEL IN NUMBER,
1803: P_LOAN_ID IN NUMBER,
1804: P_BASED_ON_TERMS IN VARCHAR2,
1805: X_CUSTOM_SET_REC OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
1806: X_CUSTOM_TBL OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
1807: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
1808: X_MSG_COUNT OUT NOCOPY NUMBER,
1809: X_MSG_DATA OUT NOCOPY VARCHAR2)
1810: IS
1818: l_return_status VARCHAR2(1);
1819: l_msg_count NUMBER;
1820: l_msg_data VARCHAR2(32767);
1821:
1822: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
1823: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
1824: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
1825: l_temp_row LNS_CUSTOM_PUB.custom_sched_type;
1826: l_amort_tbl LNS_FINANCIALS.AMORTIZATION_TBL;
1819: l_msg_count NUMBER;
1820: l_msg_data VARCHAR2(32767);
1821:
1822: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
1823: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
1824: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
1825: l_temp_row LNS_CUSTOM_PUB.custom_sched_type;
1826: l_amort_tbl LNS_FINANCIALS.AMORTIZATION_TBL;
1827: i number;
1820: l_msg_data VARCHAR2(32767);
1821:
1822: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
1823: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
1824: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
1825: l_temp_row LNS_CUSTOM_PUB.custom_sched_type;
1826: l_amort_tbl LNS_FINANCIALS.AMORTIZATION_TBL;
1827: i number;
1828: j number;
1821:
1822: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
1823: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
1824: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
1825: l_temp_row LNS_CUSTOM_PUB.custom_sched_type;
1826: l_amort_tbl LNS_FINANCIALS.AMORTIZATION_TBL;
1827: i number;
1828: j number;
1829:
2020:
2021: end if;
2022:
2023: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Recalculating schedule...');
2024: LNS_CUSTOM_PUB.recalcCustomSchedule(
2025: P_API_VERSION => 1.0,
2026: P_INIT_MSG_LIST => FND_API.G_TRUE,
2027: P_COMMIT => FND_API.G_FALSE,
2028: P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL,
2086: P_VALIDATION_LEVEL IN NUMBER,
2087: P_LOAN_ID IN NUMBER,
2088: P_BASED_ON_TERMS IN VARCHAR2,
2089: P_USE_RETAINED_DATA IN VARCHAR2,
2090: P_CUSTOM_SET_REC IN OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
2091: P_CUSTOM_TBL IN OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
2092: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
2093: X_MSG_COUNT OUT NOCOPY NUMBER,
2094: X_MSG_DATA OUT NOCOPY VARCHAR2)
2087: P_LOAN_ID IN NUMBER,
2088: P_BASED_ON_TERMS IN VARCHAR2,
2089: P_USE_RETAINED_DATA IN VARCHAR2,
2090: P_CUSTOM_SET_REC IN OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
2091: P_CUSTOM_TBL IN OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
2092: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
2093: X_MSG_COUNT OUT NOCOPY NUMBER,
2094: X_MSG_DATA OUT NOCOPY VARCHAR2)
2095: IS
2103: l_return_status VARCHAR2(1);
2104: l_msg_count NUMBER;
2105: l_msg_data VARCHAR2(32767);
2106:
2107: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
2108: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
2109: l_temp_row LNS_CUSTOM_PUB.custom_sched_type;
2110: l_rate_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;
2111: l_rate_details LNS_FINANCIALS.INTEREST_RATE_REC;
2104: l_msg_count NUMBER;
2105: l_msg_data VARCHAR2(32767);
2106:
2107: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
2108: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
2109: l_temp_row LNS_CUSTOM_PUB.custom_sched_type;
2110: l_rate_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;
2111: l_rate_details LNS_FINANCIALS.INTEREST_RATE_REC;
2112:
2105: l_msg_data VARCHAR2(32767);
2106:
2107: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
2108: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
2109: l_temp_row LNS_CUSTOM_PUB.custom_sched_type;
2110: l_rate_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;
2111: l_rate_details LNS_FINANCIALS.INTEREST_RATE_REC;
2112:
2113: l_compound_freq varchar2(30);
3485: P_VALIDATION_LEVEL IN NUMBER,
3486: P_LOAN_ID IN NUMBER,
3487: P_BASED_ON_TERMS IN VARCHAR2,
3488: P_USE_RETAINED_DATA IN VARCHAR2,
3489: P_CUSTOM_SET_REC IN OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
3490: P_CUSTOM_TBL IN OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
3491: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
3492: X_MSG_COUNT OUT NOCOPY NUMBER,
3493: X_MSG_DATA OUT NOCOPY VARCHAR2)
3486: P_LOAN_ID IN NUMBER,
3487: P_BASED_ON_TERMS IN VARCHAR2,
3488: P_USE_RETAINED_DATA IN VARCHAR2,
3489: P_CUSTOM_SET_REC IN OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
3490: P_CUSTOM_TBL IN OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
3491: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
3492: X_MSG_COUNT OUT NOCOPY NUMBER,
3493: X_MSG_DATA OUT NOCOPY VARCHAR2)
3494: IS
3502: l_return_status VARCHAR2(1);
3503: l_msg_count NUMBER;
3504: l_msg_data VARCHAR2(32767);
3505:
3506: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
3507: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
3508: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
3509: l_custom_rec LNS_CUSTOM_PUB.custom_sched_type;
3510: l_loan_header_rec LNS_LOAN_HEADER_PUB.LOAN_HEADER_REC_TYPE;
3503: l_msg_count NUMBER;
3504: l_msg_data VARCHAR2(32767);
3505:
3506: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
3507: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
3508: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
3509: l_custom_rec LNS_CUSTOM_PUB.custom_sched_type;
3510: l_loan_header_rec LNS_LOAN_HEADER_PUB.LOAN_HEADER_REC_TYPE;
3511: l_term_rec LNS_TERMS_PUB.loan_term_rec_type;
3504: l_msg_data VARCHAR2(32767);
3505:
3506: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
3507: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
3508: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
3509: l_custom_rec LNS_CUSTOM_PUB.custom_sched_type;
3510: l_loan_header_rec LNS_LOAN_HEADER_PUB.LOAN_HEADER_REC_TYPE;
3511: l_term_rec LNS_TERMS_PUB.loan_term_rec_type;
3512:
3505:
3506: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
3507: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
3508: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
3509: l_custom_rec LNS_CUSTOM_PUB.custom_sched_type;
3510: l_loan_header_rec LNS_LOAN_HEADER_PUB.LOAN_HEADER_REC_TYPE;
3511: l_term_rec LNS_TERMS_PUB.loan_term_rec_type;
3512:
3513: l_custom_sched_id number;
3601: l_CUSTOM_TBL := P_CUSTOM_TBL;
3602: l_CUSTOM_SET_REC := P_CUSTOM_SET_REC;
3603: end if;
3604:
3605: LNS_CUSTOM_PUB.recalcCustomSchedule(
3606: P_API_VERSION => 1.0,
3607: P_INIT_MSG_LIST => FND_API.G_TRUE,
3608: P_COMMIT => FND_API.G_FALSE,
3609: P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL,
3650: CUSTOM_SCHEDULE_ID = l_custom_tbl(i).CUSTOM_SCHEDULE_ID;
3651:
3652:
3653: -- call api to update rows one-by-one for compliance reasons
3654: lns_custom_pub.updateCustomSched(P_CUSTOM_REC => l_custom_rec
3655: ,x_return_status => l_return_status
3656: ,x_msg_count => l_msg_Count
3657: ,x_msg_data => l_msg_Data);
3658:
3662:
3663: elsif l_custom_tbl(i).ACTION is null or l_custom_tbl(i).ACTION = 'I' then
3664:
3665: -- call api to update rows one-by-one for compliance reasons
3666: lns_custom_pub.createCustomSched(P_CUSTOM_REC => l_custom_rec
3667: ,x_return_status => l_return_status
3668: ,x_custom_sched_id => l_custom_sched_id
3669: ,x_msg_count => l_msg_Count
3670: ,x_msg_data => l_msg_Data);
3873: l_return_status VARCHAR2(1);
3874: l_msg_count NUMBER;
3875: l_msg_data VARCHAR2(32767);
3876:
3877: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
3878: l_loan_header_rec LNS_LOAN_HEADER_PUB.LOAN_HEADER_REC_TYPE;
3879: l_term_rec LNS_TERMS_PUB.loan_term_rec_type;
3880:
3881: l_object_version number;
4056: | Local Variable Declarations and initializations |
4057: +-----------------------------------------------------------------------*/
4058:
4059: l_api_name CONSTANT VARCHAR2(30) := 'customizeSchedule';
4060: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
4061: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
4062:
4063: /*-----------------------------------------------------------------------+
4064: | Cursor Declarations |
4057: +-----------------------------------------------------------------------*/
4058:
4059: l_api_name CONSTANT VARCHAR2(30) := 'customizeSchedule';
4060: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
4061: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
4062:
4063: /*-----------------------------------------------------------------------+
4064: | Cursor Declarations |
4065: +-----------------------------------------------------------------------*/
4089: P_COMMIT IN VARCHAR2,
4090: P_VALIDATION_LEVEL IN NUMBER,
4091: P_LOAN_ID IN NUMBER,
4092: P_CLOB IN CLOB,
4093: X_CUSTOM_SET_REC OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
4094: X_CUSTOM_TBL OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
4095: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
4096: X_MSG_COUNT OUT NOCOPY NUMBER,
4097: X_MSG_DATA OUT NOCOPY VARCHAR2)
4090: P_VALIDATION_LEVEL IN NUMBER,
4091: P_LOAN_ID IN NUMBER,
4092: P_CLOB IN CLOB,
4093: X_CUSTOM_SET_REC OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
4094: X_CUSTOM_TBL OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
4095: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
4096: X_MSG_COUNT OUT NOCOPY NUMBER,
4097: X_MSG_DATA OUT NOCOPY VARCHAR2)
4098: IS
4106: l_return_status VARCHAR2(1);
4107: l_msg_count NUMBER;
4108: l_msg_data VARCHAR2(32767);
4109:
4110: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
4111: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
4112: l_AMORT_METHOD varchar2(30);
4113: l_BASED_ON_TERMS varchar2(30);
4114: l_loan_status varchar2(60);
4107: l_msg_count NUMBER;
4108: l_msg_data VARCHAR2(32767);
4109:
4110: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
4111: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
4112: l_AMORT_METHOD varchar2(30);
4113: l_BASED_ON_TERMS varchar2(30);
4114: l_loan_status varchar2(60);
4115:
4183: l_BASED_ON_TERMS := 'CURRENT';
4184: end if;
4185:
4186: -- immediatly save it
4187: LNS_CUSTOM_PUB.saveCustomSchedule(
4188: P_API_VERSION => 1.0,
4189: P_INIT_MSG_LIST => FND_API.G_TRUE,
4190: P_COMMIT => FND_API.G_FALSE,
4191: P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL,
4202: RAISE FND_API.G_EXC_ERROR;
4203: END IF;
4204:
4205: -- clear retained date
4206: LNS_CUSTOM_PUB.clearRetainedSchedule(
4207: P_API_VERSION => 1.0,
4208: P_INIT_MSG_LIST => FND_API.G_TRUE,
4209: P_COMMIT => FND_API.G_FALSE,
4210: P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL,
4259: Return 1 - success; 0 - failed
4260: */
4261: function shiftRowsByDate(P_OLD_DUE_DATE IN DATE,
4262: P_NEW_DUE_DATE IN DATE,
4263: p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl) return NUMBER
4264: is
4265: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
4266: i number;
4267: l_found boolean;
4261: function shiftRowsByDate(P_OLD_DUE_DATE IN DATE,
4262: P_NEW_DUE_DATE IN DATE,
4263: p_custom_tbl in out nocopy LNS_CUSTOM_PUB.custom_tbl) return NUMBER
4264: is
4265: l_custom_tbl LNS_CUSTOM_PUB.custom_tbl;
4266: i number;
4267: l_found boolean;
4268: l_shift_from_row number;
4269: l_month_diff number;
4345: P_LOAN_ID IN NUMBER,
4346: P_OLD_DUE_DATE IN DATE,
4347: P_NEW_DUE_DATE IN DATE,
4348: P_BASED_ON_TERMS IN VARCHAR2,
4349: P_CUSTOM_SET_REC IN OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
4350: P_CUSTOM_TBL IN OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
4351: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
4352: X_MSG_COUNT OUT NOCOPY NUMBER,
4353: X_MSG_DATA OUT NOCOPY VARCHAR2)
4346: P_OLD_DUE_DATE IN DATE,
4347: P_NEW_DUE_DATE IN DATE,
4348: P_BASED_ON_TERMS IN VARCHAR2,
4349: P_CUSTOM_SET_REC IN OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
4350: P_CUSTOM_TBL IN OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
4351: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
4352: X_MSG_COUNT OUT NOCOPY NUMBER,
4353: X_MSG_DATA OUT NOCOPY VARCHAR2)
4354: IS
4362: l_return_status VARCHAR2(1);
4363: l_msg_count NUMBER;
4364: l_msg_data VARCHAR2(32767);
4365:
4366: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
4367: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
4368: l_return number;
4369:
4370: /*-----------------------------------------------------------------------+
4363: l_msg_count NUMBER;
4364: l_msg_data VARCHAR2(32767);
4365:
4366: l_custom_tbl LNS_CUSTOM_PUB.CUSTOM_TBL;
4367: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
4368: l_return number;
4369:
4370: /*-----------------------------------------------------------------------+
4371: | Cursor Declarations |
4453: if l_return = 0 then
4454: return;
4455: end if;
4456:
4457: LNS_CUSTOM_PUB.recalcCustomSchedule(
4458: P_API_VERSION => 1.0,
4459: P_INIT_MSG_LIST => FND_API.G_TRUE,
4460: P_COMMIT => FND_API.G_FALSE,
4461: P_VALIDATION_LEVEL => FND_API.G_VALID_LEVEL_FULL,
4529: l_return_status VARCHAR2(1);
4530: l_msg_count NUMBER;
4531: l_msg_data VARCHAR2(32767);
4532:
4533: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
4534: l_loan_header_rec LNS_LOAN_HEADER_PUB.LOAN_HEADER_REC_TYPE;
4535: l_term_rec LNS_TERMS_PUB.loan_term_rec_type;
4536:
4537: l_object_version number;
4642: +-----------------------------------------------------------------------*/
4643:
4644: l_api_name CONSTANT VARCHAR2(30) := 'buildCustomPaySchedule';
4645: l_payment_schedule LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
4646: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
4647: l_due_date date;
4648: l_payment_number number;
4649: i number;
4650:
4751: P_API_VERSION IN NUMBER,
4752: P_INIT_MSG_LIST IN VARCHAR2,
4753: P_COMMIT IN VARCHAR2,
4754: P_VALIDATION_LEVEL IN NUMBER,
4755: P_INSTALLMENT_REC IN LNS_CUSTOM_PUB.custom_sched_type,
4756: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
4757: X_MSG_COUNT OUT NOCOPY NUMBER,
4758: X_MSG_DATA OUT NOCOPY VARCHAR2)
4759: IS
4767: l_return_status VARCHAR2(1);
4768: l_msg_count NUMBER;
4769: l_msg_data VARCHAR2(32767);
4770:
4771: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
4772: l_custom_sched_id NUMBER;
4773: l_INSTALLMENT_REC LNS_CUSTOM_PUB.custom_sched_type;
4774:
4775: /*-----------------------------------------------------------------------+
4769: l_msg_data VARCHAR2(32767);
4770:
4771: l_loan_details LNS_CUSTOM_PUB.LOAN_DETAILS_REC;
4772: l_custom_sched_id NUMBER;
4773: l_INSTALLMENT_REC LNS_CUSTOM_PUB.custom_sched_type;
4774:
4775: /*-----------------------------------------------------------------------+
4776: | Cursor Declarations |
4777: +-----------------------------------------------------------------------*/
4886: l_INSTALLMENT_REC.LOCK_INT := 'Y';
4887: end if;
4888:
4889: -- call api to insert new row
4890: lns_custom_pub.createCustomSched(P_CUSTOM_REC => l_INSTALLMENT_REC
4891: ,x_return_status => l_return_status
4892: ,x_custom_sched_id => l_custom_sched_id
4893: ,x_msg_count => l_msg_Count
4894: ,x_msg_data => l_msg_Data);
4953: | Local Variable Declarations and initializations |
4954: +-----------------------------------------------------------------------*/
4955:
4956: l_api_name CONSTANT VARCHAR2(30) := 'parseClob';
4957: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
4958: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
4959:
4960: /*-----------------------------------------------------------------------+
4961: | Cursor Declarations |
4954: +-----------------------------------------------------------------------*/
4955:
4956: l_api_name CONSTANT VARCHAR2(30) := 'parseClob';
4957: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
4958: l_CUSTOM_SET_REC LNS_CUSTOM_PUB.custom_settings_type;
4959:
4960: /*-----------------------------------------------------------------------+
4961: | Cursor Declarations |
4962: +-----------------------------------------------------------------------*/
4988: P_COMMIT IN VARCHAR2,
4989: P_VALIDATION_LEVEL IN NUMBER,
4990: P_CLOB IN CLOB,
4991: P_RETAIN_DATA IN VARCHAR2,
4992: X_CUSTOM_SET_REC OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
4993: X_CUSTOM_TBL OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
4994: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
4995: X_MSG_COUNT OUT NOCOPY NUMBER,
4996: X_MSG_DATA OUT NOCOPY VARCHAR2)
4989: P_VALIDATION_LEVEL IN NUMBER,
4990: P_CLOB IN CLOB,
4991: P_RETAIN_DATA IN VARCHAR2,
4992: X_CUSTOM_SET_REC OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
4993: X_CUSTOM_TBL OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
4994: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
4995: X_MSG_COUNT OUT NOCOPY NUMBER,
4996: X_MSG_DATA OUT NOCOPY VARCHAR2)
4997: IS
5005: l_return_status VARCHAR2(1);
5006: l_msg_count NUMBER;
5007: l_msg_data VARCHAR2(32767);
5008:
5009: l_CUSTOM_TBL LNS_CUSTOM_PUB.CUSTOM_TBL;
5010: l_start number;
5011: l_record VARCHAR2(512);
5012: l_end number;
5013: l_clob_length BINARY_INTEGER;
5423: P_API_VERSION IN NUMBER,
5424: P_INIT_MSG_LIST IN VARCHAR2,
5425: P_COMMIT IN VARCHAR2,
5426: P_VALIDATION_LEVEL IN NUMBER,
5427: P_CUSTOM_SET_REC IN LNS_CUSTOM_PUB.custom_settings_type,
5428: P_CUSTOM_TBL IN LNS_CUSTOM_PUB.CUSTOM_TBL,
5429: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
5430: X_MSG_COUNT OUT NOCOPY NUMBER,
5431: X_MSG_DATA OUT NOCOPY VARCHAR2)
5424: P_INIT_MSG_LIST IN VARCHAR2,
5425: P_COMMIT IN VARCHAR2,
5426: P_VALIDATION_LEVEL IN NUMBER,
5427: P_CUSTOM_SET_REC IN LNS_CUSTOM_PUB.custom_settings_type,
5428: P_CUSTOM_TBL IN LNS_CUSTOM_PUB.CUSTOM_TBL,
5429: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
5430: X_MSG_COUNT OUT NOCOPY NUMBER,
5431: X_MSG_DATA OUT NOCOPY VARCHAR2)
5432: IS
5488: P_API_VERSION IN NUMBER,
5489: P_INIT_MSG_LIST IN VARCHAR2,
5490: P_COMMIT IN VARCHAR2,
5491: P_VALIDATION_LEVEL IN NUMBER,
5492: X_CUSTOM_SET_REC OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
5493: X_CUSTOM_TBL OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
5494: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
5495: X_MSG_COUNT OUT NOCOPY NUMBER,
5496: X_MSG_DATA OUT NOCOPY VARCHAR2)
5489: P_INIT_MSG_LIST IN VARCHAR2,
5490: P_COMMIT IN VARCHAR2,
5491: P_VALIDATION_LEVEL IN NUMBER,
5492: X_CUSTOM_SET_REC OUT NOCOPY LNS_CUSTOM_PUB.custom_settings_type,
5493: X_CUSTOM_TBL OUT NOCOPY LNS_CUSTOM_PUB.CUSTOM_TBL,
5494: X_RETURN_STATUS OUT NOCOPY VARCHAR2,
5495: X_MSG_COUNT OUT NOCOPY NUMBER,
5496: X_MSG_DATA OUT NOCOPY VARCHAR2)
5497: IS
5508: END;
5509:
5510:
5511:
5512: END LNS_CUSTOM_PUB;
5513: