DBA Data[Home] [Help]

APPS.LNS_FINANCIALS dependencies on LNS_FIN_UTILS

Line 236: if p_installment_number <> lns_fin_utils.getNumberInstallments(p_loan_id => p_loan_id

232: --
233: -- Api body
234: -- ----------------------------------------------------------------
235:
236: if p_installment_number <> lns_fin_utils.getNumberInstallments(p_loan_id => p_loan_id
237: ,p_phase => p_phase) then
238: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting next rate change info');
239: l_next_rate_change := lns_fin_utils.getNextDate(p_date => p_period_begin_date
240: ,p_interval_type => p_interest_adjustment_freq

Line 239: l_next_rate_change := lns_fin_utils.getNextDate(p_date => p_period_begin_date

235:
236: if p_installment_number <> lns_fin_utils.getNumberInstallments(p_loan_id => p_loan_id
237: ,p_phase => p_phase) then
238: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting next rate change info');
239: l_next_rate_change := lns_fin_utils.getNextDate(p_date => p_period_begin_date
240: ,p_interval_type => p_interest_adjustment_freq
241: ,p_direction => 1);
242: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - updating terms with new date ' || l_next_rate_change);
243: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - updating terms with new rate' || p_annualized_interest_rate);

Line 335: else --else for if p_installment_number <> lns_fin_utils.getNumberInstallments(p_loan_id => p_loan_id

331: p_rate_id := l_new_rate_id ;
332:
333: end if; --end else part for if (l_begin_inst_num = l_end_inst_num = p_installment_number) then
334:
335: else --else for if p_installment_number <> lns_fin_utils.getNumberInstallments(p_loan_id => p_loan_id
336:
337: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - updating the rate schedule LAST ROW ' || p_rate_id);
338: -- update existing rate_schedule row
339: update lns_rate_schedules

Line 344: end if; --end if p_installment_number <> lns_fin_utils.getNumberInstallments(p_loan_id => p_loan_id

340: set current_interest_rate = p_annualized_interest_rate
341: ,index_rate = p_annualized_interest_rate - nvl(spread,0)
342: where rate_id = p_rate_id;
343:
344: end if; --end if p_installment_number <> lns_fin_utils.getNumberInstallments(p_loan_id => p_loan_id
345:
346:
347: --
348: -- End of API body

Line 2045: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

2041: ,x_msg_data OUT NOCOPY VARCHAR2)
2042: is
2043: l_amortization_rec LNS_FINANCIALS.AMORTIZATION_REC;
2044: l_loan_details LNS_FINANCIALS.LOAN_DETAILS_REC;
2045: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
2046: l_rate_schedule_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;
2047: l_rates_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;
2048: l_rate_details LNS_FINANCIALS.INTEREST_RATE_REC;
2049:

Line 2133: l_payment_tbl := lns_fin_utils.buildPaymentSchedule(p_loan_start_date => l_loan_Details.loan_start_date

2129: -- 0. buildPaymentSchedule
2130: -- 1. calculate wtd balance
2131: -- 2. calculateInterest
2132: -- 3. return record
2133: l_payment_tbl := lns_fin_utils.buildPaymentSchedule(p_loan_start_date => l_loan_Details.loan_start_date
2134: ,p_loan_maturity_date => l_loan_details.maturity_date
2135: ,p_first_pay_date => l_loan_details.first_payment_date
2136: ,p_num_intervals => l_loan_details.number_installments
2137: ,p_interval_type => l_loan_details.payment_frequency

Line 2190: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(l_loan_details.OPEN_INDEX_RATE_ID

2186: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': spread:' || l_rate_details.spread);
2187: l_annualized_rate := l_loan_details.last_interest_rate + l_rate_details.spread;
2188:
2189: elsif p_installment_number = 1 OR l_payment_tbl(p_installment_number).period_begin_date > l_loan_details.NEXT_RATE_CHANGE_DATE then
2190: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(l_loan_details.OPEN_INDEX_RATE_ID
2191: ,l_payment_tbl(p_installment_number).period_begin_date);
2192:
2193: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': FLOATING RECALCULATE');
2194: -- raise error as rates does not exist

Line 2374: l_rate_date := lns_fin_utils.getNextDate(l_rate_date, p_rate_change_frequency, 1);

2370: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - p_maturity_date ' || p_maturity_date );
2371: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - p_index_rate_id ' || p_index_rate_id );
2372:
2373: WHILE l_rate_date <= p_maturity_date LOOP
2374: l_rate_date := lns_fin_utils.getNextDate(l_rate_date, p_rate_change_frequency, 1);
2375: i := i + 1;
2376: l_Rates_tbl(i).begin_date := l_rate_date;
2377: --logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - l_rate_date ' || l_rate_date);
2378: END LOOP;

Line 2391: function get_remain_num_prin_instal(p_payment_tbl in LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL

2387: end getRatesTable;
2388:
2389:
2390: -- created for bug 6498771
2391: function get_remain_num_prin_instal(p_payment_tbl in LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL
2392: ,p_from_installment in NUMBER) return NUMBER
2393: is
2394: l_num_prin_payments number;
2395: l_total_installments number;

Line 2493: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

2489: l_amortization_rec LNS_FINANCIALS.AMORTIZATION_REC;
2490: l_amortization_tbl LNS_FINANCIALS.AMORTIZATION_TBL;
2491: l_rate_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;
2492: --l_pay_dates LNS_FINANCIALS.DATE_TBL;
2493: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
2494: l_loan_start_date date;
2495: l_num_pay_dates number; -- number of dates on installment schedule
2496: l_periodic_payment number;
2497: l_periodic_principal number;

Line 2692: l_payment_tbl := LNS_FIN_UTILS.buildSIPPaymentSchedule(

2688: -- get payment schedule
2689: -- this will return the acutal dates that payments will be due on
2690: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || '- getting payment schedule');
2691:
2692: l_payment_tbl := LNS_FIN_UTILS.buildSIPPaymentSchedule(
2693: p_loan_start_date => l_loan_start_date
2694: ,p_loan_maturity_date => l_maturity_date
2695: ,p_int_first_pay_date => l_first_payment_date
2696: ,p_int_num_intervals => l_intervals

Line 2975: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(p_loan_details.OPEN_INDEX_RATE_ID

2971: if p_based_on_terms = 'CURRENT' then
2972:
2973: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': FLOATING RECALCULATE');
2974:
2975: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(p_loan_details.OPEN_INDEX_RATE_ID
2976: ,l_payment_tbl(l_installment_number).period_begin_date);
2977:
2978: -- raise error as rates does not exist
2979: if l_rate_details.ANNUAL_RATE is null then

Line 3570: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

3566: l_amortization_rec LNS_FINANCIALS.AMORTIZATION_REC;
3567: l_amortization_tbl LNS_FINANCIALS.AMORTIZATION_TBL;
3568: l_rate_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;
3569: --l_pay_dates LNS_FINANCIALS.DATE_TBL;
3570: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
3571: l_loan_start_date date;
3572: l_num_pay_dates number; -- number of dates on installment schedule
3573: l_periodic_payment number;
3574: l_periodic_principal number;

Line 3761: l_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(p_loan_start_date => l_loan_start_date

3757:
3758: -- get payment schedule
3759: -- this will return the acutal dates that payments will be due on
3760: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || '- getting payment schedule');
3761: l_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(p_loan_start_date => l_loan_start_date
3762: ,p_loan_maturity_date => l_maturity_date
3763: ,p_first_pay_date => l_first_payment_date
3764: ,p_num_intervals => l_intervals
3765: ,p_interval_type => l_payment_frequency

Line 3945: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(p_loan_details.OPEN_INDEX_RATE_ID

3941:
3942: elsif p_loan_details.rate_type = 'VARIABLE' and l_rate_details.floating_flag = 'Y' then
3943:
3944: l_previous_interest_only_flag := l_rate_details.interest_only_flag;
3945: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(p_loan_details.OPEN_INDEX_RATE_ID
3946: ,l_payment_tbl(l_last_installment_billed).period_begin_date);
3947:
3948: l_raw_rate := l_rate_details.ANNUAL_RATE + l_rate_details.spread;
3949: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_raw_rate ' || l_raw_rate);

Line 4067: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(p_loan_details.OPEN_INDEX_RATE_ID

4063: if p_based_on_terms = 'CURRENT' then
4064:
4065: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': FLOATING RECALCULATE');
4066:
4067: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(p_loan_details.OPEN_INDEX_RATE_ID
4068: ,l_payment_tbl(l_installment_number).period_begin_date);
4069:
4070: -- raise error as rates does not exist
4071: if l_rate_details.ANNUAL_RATE is null then

Line 4584: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

4580:
4581: l_amortization_rec LNS_FINANCIALS.AMORTIZATION_REC;
4582: l_amortization_tbl LNS_FINANCIALS.AMORTIZATION_TBL;
4583: l_rate_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;
4584: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
4585: l_loan_start_date date;
4586: l_num_pay_dates number; -- number of dates on installment schedule
4587: l_periodic_payment number;
4588: l_periodic_principal number;

Line 4777: l_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(p_loan_start_date => l_loan_start_date

4773:
4774: -- get payment schedule
4775: -- this will return the acutal dates that payments will be due on
4776: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || '- getting payment schedule');
4777: l_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(p_loan_start_date => l_loan_start_date
4778: ,p_loan_maturity_date => l_maturity_date
4779: ,p_first_pay_date => l_first_payment_date
4780: ,p_num_intervals => l_intervals
4781: ,p_interval_type => l_payment_frequency

Line 4960: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(p_loan_details.OPEN_INDEX_RATE_ID

4956:
4957: elsif p_loan_details.rate_type = 'VARIABLE' and l_rate_details.floating_flag = 'Y' then
4958:
4959: l_previous_interest_only_flag := l_rate_details.interest_only_flag;
4960: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(p_loan_details.OPEN_INDEX_RATE_ID
4961: ,l_payment_tbl(l_last_installment_billed).period_begin_date);
4962:
4963: l_raw_rate := l_rate_details.ANNUAL_RATE + l_rate_details.spread;
4964: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_raw_rate ' || l_raw_rate);

Line 5081: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(p_loan_details.OPEN_INDEX_RATE_ID

5077: if p_based_on_terms = 'CURRENT' then
5078:
5079: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': FLOATING RECALCULATE');
5080:
5081: l_rate_details.ANNUAL_RATE := lns_fin_utils.getRateForDate(p_loan_details.OPEN_INDEX_RATE_ID
5082: ,l_payment_tbl(l_installment_number).period_begin_date);
5083:
5084: -- raise error as rates does not exist
5085: if l_rate_details.ANNUAL_RATE is null then

Line 5149: l_rate_to_calculate := lns_fin_utils.convertRate(p_annualized_rate => l_annualized_rate

5145: l_amortization_intervals := l_amortization_intervals_orig - l_installment_number + 1;
5146:
5147: if (l_calc_method = 'SIMPLE') then
5148:
5149: l_rate_to_calculate := lns_fin_utils.convertRate(p_annualized_rate => l_annualized_rate
5150: ,p_amortization_frequency => l_amortization_frequency);
5151:
5152: elsif (l_calc_method = 'COMPOUND') then
5153:

Line 5688: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

5684:
5685: l_amortization_rec LNS_FINANCIALS.AMORTIZATION_REC;
5686: l_amortization_tbl LNS_FINANCIALS.AMORTIZATION_TBL;
5687: l_rate_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;
5688: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
5689: l_loan_start_date date;
5690: l_num_pay_dates number; -- number of dates on installment schedule
5691: l_periodic_payment number;
5692: l_periodic_principal number;

Line 5800: l_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(p_loan_start_date => l_loan_start_date

5796:
5797: -- get payment schedule
5798: -- this will return the acutal dates that payments will be due on
5799: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || '- getting payment schedule');
5800: l_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(p_loan_start_date => l_loan_start_date
5801: ,p_loan_maturity_date => l_maturity_date
5802: ,p_first_pay_date => l_first_payment_date
5803: ,p_num_intervals => l_intervals
5804: ,p_interval_type => l_payment_frequency

Line 6464: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;

6460: l_num_pay_dates number;
6461: l_period_start_date date;
6462: l_period_end_date date;
6463: --l_pay_in_arrears boolean;
6464: l_payment_tbl LNS_FIN_UTILS.PAYMENT_SCHEDULE_TBL;
6465: l_exit_loop boolean;
6466:
6467: begin
6468:

Line 6483: l_payment_tbl := LNS_FIN_UTILS.buildSIPPaymentSchedule(

6479: if p_loan_details.custom_schedule = 'N' then
6480:
6481: if p_loan_details.PAYMENT_CALC_METHOD = 'SEPARATE_SCHEDULES' then
6482:
6483: l_payment_tbl := LNS_FIN_UTILS.buildSIPPaymentSchedule(
6484: p_loan_start_date => p_loan_details.loan_start_date
6485: ,p_loan_maturity_date => p_loan_details.maturity_date
6486: ,p_int_first_pay_date => p_loan_details.first_payment_date
6487: ,p_int_num_intervals => p_loan_details.number_installments

Line 6497: l_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(p_loan_start_date => p_loan_details.loan_start_date

6493: ,p_prin_pay_in_arrears => p_loan_details.PRIN_PAY_IN_ARREARS_BOOL);
6494:
6495: else
6496:
6497: l_payment_tbl := LNS_FIN_UTILS.buildPaymentSchedule(p_loan_start_date => p_loan_details.loan_start_date
6498: ,p_loan_maturity_date => p_loan_details.maturity_date
6499: ,p_first_pay_date => p_loan_details.first_payment_date
6500: ,p_num_intervals => p_loan_details.number_installments
6501: ,p_interval_type => p_loan_details.payment_frequency

Line 6557: l_days_at_rate := LNS_FIN_UTILS.getDayCount(p_start_date => l_period_start_date

6553: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ' l_period_end_date: ' || l_period_end_date);
6554:
6555: if l_period_start_date is not null and l_period_end_date is not null then
6556:
6557: l_days_at_rate := LNS_FIN_UTILS.getDayCount(p_start_date => l_period_start_date
6558: ,p_end_date => l_period_end_date
6559: ,p_day_count_method => p_loan_details.day_count_method);
6560: l_rate_details := getRateDetails(p_installment => k
6561: ,p_rate_tbl => p_rate_tbl);

Line 6830: ,nvl(lns_fin_utils.getActiveRate(h.loan_id), decode(p_phase, 'TERM', t.TERM_PROJECTED_RATE, t.OPEN_PROJECTED_RATE)) LAST_INTEREST_RATE

6826: ,t.INDEX_RATE_ID TERM_INDEX_RATE_ID
6827: ,t.OPEN_INDEX_DATE OPEN_INDEX_DATE
6828: ,t.TERM_INDEX_DATE TERM_INDEX_DATE
6829: ,decode(p_phase, 'TERM', t.TERM_PROJECTED_RATE, t.OPEN_PROJECTED_RATE) INITIAL_INTEREST_RATE
6830: ,nvl(lns_fin_utils.getActiveRate(h.loan_id), decode(p_phase, 'TERM', t.TERM_PROJECTED_RATE, t.OPEN_PROJECTED_RATE)) LAST_INTEREST_RATE
6831: ,nvl(t.FIRST_RATE_CHANGE_DATE, t.NEXT_RATE_CHANGE_DATE) FIRST_RATE_CHANGE_DATE
6832: ,t.NEXT_RATE_CHANGE_DATE NEXT_RATE_CHANGE_DATE
6833: ,t.CALCULATION_METHOD
6834: ,t.INTEREST_COMPOUNDING_FREQ

Line 6957: l_amortize_dates LNS_FIN_UTILS.DATE_TBL;

6953: l_billed_principal number;
6954: l_amortized_to_Date date;
6955: --l_pay_in_arrears boolean;
6956: l_loan_Details LNS_FINANCIALS.LOAN_DETAILS_REC;
6957: l_amortize_dates LNS_FIN_UTILS.DATE_TBL;
6958: l_loan_id number;
6959: l_api_name varchar2(25);
6960:
6961: begin

Line 7123: l_loan_details.number_installments := lns_fin_utils.intervalsInPeriod(l_loan_Details.loan_term

7119: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - l_loan_Details.amortization_frequency' || l_loan_Details.amortization_frequency);
7120: */
7121:
7122: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting number of payment intervals');
7123: l_loan_details.number_installments := lns_fin_utils.intervalsInPeriod(l_loan_Details.loan_term
7124: ,l_loan_Details.loan_term_period
7125: ,l_loan_Details.payment_frequency);
7126:
7127: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting number of principal payment intervals');

Line 7128: l_loan_details.PRIN_NUMBER_INSTALLMENTS := lns_fin_utils.intervalsInPeriod(l_loan_Details.loan_term

7124: ,l_loan_Details.loan_term_period
7125: ,l_loan_Details.payment_frequency);
7126:
7127: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting number of principal payment intervals');
7128: l_loan_details.PRIN_NUMBER_INSTALLMENTS := lns_fin_utils.intervalsInPeriod(l_loan_Details.loan_term
7129: ,l_loan_Details.loan_term_period
7130: ,l_loan_Details.prin_payment_frequency);
7131:
7132: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting number of principal amortized payment intervals');

Line 7133: l_loan_details.PRIN_AMORT_INSTALLMENTS := lns_fin_utils.intervalsInPeriod(l_loan_Details.amortized_term

7129: ,l_loan_Details.loan_term_period
7130: ,l_loan_Details.prin_payment_frequency);
7131:
7132: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting number of principal amortized payment intervals');
7133: l_loan_details.PRIN_AMORT_INSTALLMENTS := lns_fin_utils.intervalsInPeriod(l_loan_Details.amortized_term
7134: ,l_loan_Details.amortized_term_period
7135: ,l_loan_Details.prin_payment_frequency);
7136:
7137: -- get the number of amortization intervals on a loan

Line 7153: l_loan_details.num_amortization_intervals := lns_fin_utils.intervalsInPeriod(l_loan_Details.amortized_term

7149: l_loan_details.PRIN_PAY_IN_ARREARS_BOOL := false;
7150: end if;
7151:
7152: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting number of amortization intervals');
7153: l_loan_details.num_amortization_intervals := lns_fin_utils.intervalsInPeriod(l_loan_Details.amortized_term
7154: ,l_loan_Details.amortized_term_period
7155: ,l_loan_Details.amortization_frequency);
7156: if l_loan_details.balloon_payment_amount > 0 then
7157: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - reducing number of amortization intervals');

Line 7162: l_amortized_to_Date := LNS_FIN_UTILS.getMaturityDate(p_term => l_loan_Details.amortized_term

7158: l_loan_details.num_amortization_intervals := l_loan_details.num_amortization_intervals - 1;
7159: end if;
7160:
7161: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting amortized to date');
7162: l_amortized_to_Date := LNS_FIN_UTILS.getMaturityDate(p_term => l_loan_Details.amortized_term
7163: ,p_term_period => l_loan_Details.amortized_term_period
7164: ,p_frequency => l_loan_Details.amortization_frequency
7165: ,p_start_date => l_loan_Details.loan_start_date);
7166:

Line 7168: -- fix for bug 5842639: added p_loan_start_date parameter to LNS_FIN_UTILS.getPaymentSchedule

7164: ,p_frequency => l_loan_Details.amortization_frequency
7165: ,p_start_date => l_loan_Details.loan_start_date);
7166:
7167: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting payment schedule');
7168: -- fix for bug 5842639: added p_loan_start_date parameter to LNS_FIN_UTILS.getPaymentSchedule
7169: l_amortize_dates := LNS_FIN_UTILS.getPaymentSchedule(p_loan_start_date => l_loan_Details.loan_start_date
7170: ,p_first_pay_date => l_loan_Details.first_payment_date
7171: ,p_maturity_Date => l_amortized_to_Date
7172: ,p_pay_in_arrears => l_loan_details.pay_in_arrears_boolean

Line 7169: l_amortize_dates := LNS_FIN_UTILS.getPaymentSchedule(p_loan_start_date => l_loan_Details.loan_start_date

7165: ,p_start_date => l_loan_Details.loan_start_date);
7166:
7167: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting payment schedule');
7168: -- fix for bug 5842639: added p_loan_start_date parameter to LNS_FIN_UTILS.getPaymentSchedule
7169: l_amortize_dates := LNS_FIN_UTILS.getPaymentSchedule(p_loan_start_date => l_loan_Details.loan_start_date
7170: ,p_first_pay_date => l_loan_Details.first_payment_date
7171: ,p_maturity_Date => l_amortized_to_Date
7172: ,p_pay_in_arrears => l_loan_details.pay_in_arrears_boolean
7173: ,p_num_intervals => l_loan_details.num_amortization_intervals

Line 7251: l_loan_details.number_installments := lns_fin_utils.intervalsInPeriod(l_loan_Details.loan_term

7247: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': getting number of intervals');
7248: -- get the number of installments on a loan
7249: -- this represents the number of payments on the loan
7250: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - getting number of payment intervals');
7251: l_loan_details.number_installments := lns_fin_utils.intervalsInPeriod(l_loan_Details.loan_term
7252: ,l_loan_Details.loan_term_period
7253: ,l_loan_Details.payment_frequency);
7254:
7255: -- get the number of amortization intervals on a loan

Line 7465: l_initial_months := lns_fin_utils.convertPeriod(p_term => l_term

7461: if l_custom_payments_flag <> 'Y' then
7462: -- we will be converting the term of the loan if frequency > MONTHLY
7463: if l_payment_frequency <> 'SEMI-MONTHLY' AND l_payment_frequency <> 'WEEKLY' then
7464: l_new_frequency := 'MONTHS';
7465: l_initial_months := lns_fin_utils.convertPeriod(p_term => l_term
7466: ,p_term_period => l_term_period);
7467: else
7468: --weeks or semi-months
7469: if substr(l_payment_frequency, length(l_payment_frequency) - 1, 2) = 'LY' then

Line 7483: l_new_maturity_date := lns_fin_utils.getNextDate(p_date => l_new_maturity_date

7479: loop
7480: -- i will be the number of "TERMS" to add the LNS_LOAN_HEADERS.TERM
7481: i := i + 1;
7482: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - i ' || l_new_maturity_date);
7483: l_new_maturity_date := lns_fin_utils.getNextDate(p_date => l_new_maturity_date
7484: ,p_interval_type => l_new_frequency
7485: ,p_direction => 1);
7486: exit when l_new_maturity_date >= l_max_pay_request_date;
7487: end loop;

Line 7705: l_day_difference := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_details.loan_start_Date

7701:
7702: /* see bug #4178486
7703: -- count the difference between the old start date and old first payment date
7704: -- this is according to the day count method
7705: l_day_difference := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_details.loan_start_Date
7706: ,p_end_date => l_loan_details.first_payment_Date
7707: ,p_day_count_method => l_loan_details.day_count_method);
7708: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - l_day_difference ' || l_day_difference);
7709:

Line 7716: l_new_maturity_date := LNS_FIN_UTILS.getMaturityDate(p_term => l_loan_Details.loan_term

7712: */
7713: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - l_new_first_payment_date ' || l_new_first_payment_date);
7714:
7715: -- get the new maturity date
7716: l_new_maturity_date := LNS_FIN_UTILS.getMaturityDate(p_term => l_loan_Details.loan_term
7717: ,p_term_period => l_loan_Details.loan_term_period
7718: ,p_frequency => l_loan_Details.amortization_frequency
7719: ,p_start_date => p_new_start_date);
7720:

Line 8326: l_rate_for_date := lns_fin_utils.getRateForDate(p_index_rate_id => l_index_rate_id

8322:
8323: -- bug #4865575
8324: if l_rate_type = 'VARIABLE' then
8325:
8326: l_rate_for_date := lns_fin_utils.getRateForDate(p_index_rate_id => l_index_rate_id
8327: ,p_rate_date => p_payoff_date);
8328:
8329: if l_rate_for_date is null then
8330: LogMessage(FND_LOG.LEVEL_UNEXPECTED, G_PKG_NAME, l_api_name || FND_MSG_PUB.Get(p_encoded => 'F'));

Line 8691: l_day_count := LNS_FIN_UTILS.getDayCount(p_start_date => l_start_date

8687:
8688: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_start_date ' || l_start_date);
8689: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_end_date ' || l_end_date);
8690:
8691: l_day_count := LNS_FIN_UTILS.getDayCount(p_start_date => l_start_date
8692: ,p_end_date => l_end_date
8693: ,p_day_count_method => p_days_count_method);
8694:
8695: l_days_in_year := LNS_FIN_UTILS.daysInYear(p_year => k

Line 8695: l_days_in_year := LNS_FIN_UTILS.daysInYear(p_year => k

8691: l_day_count := LNS_FIN_UTILS.getDayCount(p_start_date => l_start_date
8692: ,p_end_date => l_end_date
8693: ,p_day_count_method => p_days_count_method);
8694:
8695: l_days_in_year := LNS_FIN_UTILS.daysInYear(p_year => k
8696: ,p_year_count_method => p_days_count_method);
8697:
8698: l_rate1 := l_day_count / (l_days_in_year/l_payments_per_year);
8699: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': days ratio ' || l_rate1);

Line 8811: l_day_count := LNS_FIN_UTILS.getDayCount(p_start_date => l_start_date

8807:
8808: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_start_date ' || l_start_date);
8809: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_end_date ' || l_end_date);
8810:
8811: l_day_count := LNS_FIN_UTILS.getDayCount(p_start_date => l_start_date
8812: ,p_end_date => l_end_date
8813: ,p_day_count_method => p_days_count_method);
8814:
8815: l_days_in_year := LNS_FIN_UTILS.daysInYear(p_year => k

Line 8815: l_days_in_year := LNS_FIN_UTILS.daysInYear(p_year => k

8811: l_day_count := LNS_FIN_UTILS.getDayCount(p_start_date => l_start_date
8812: ,p_end_date => l_end_date
8813: ,p_day_count_method => p_days_count_method);
8814:
8815: l_days_in_year := LNS_FIN_UTILS.daysInYear(p_year => k
8816: ,p_year_count_method => p_days_count_method);
8817:
8818: l_rate1 := (l_day_count / l_days_in_year) * l_annual_rate;
8819: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': rate1 ' || l_rate1);

Line 9298: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => p_from_date

9294: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - activity date: ' || l_loan_activities(p).activity_date);
9295: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - activity amount: ' || l_loan_activities(p).activity_amount);
9296: if p = 1 then
9297: -- this is for the previous balance
9298: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => p_from_date
9299: ,p_end_date => p_to_date
9300: ,p_day_count_method => p_day_count_method);
9301: elsif p < m then
9302: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_activities(p).activity_date

Line 9302: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_activities(p).activity_date

9298: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => p_from_date
9299: ,p_end_date => p_to_date
9300: ,p_day_count_method => p_day_count_method);
9301: elsif p < m then
9302: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_activities(p).activity_date
9303: ,p_end_date => l_loan_activities(p+1).activity_date
9304: ,p_day_count_method => p_day_count_method);
9305:
9306: elsif p = m then

Line 9308: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_activities(p).activity_date

9304: ,p_day_count_method => p_day_count_method);
9305:
9306: elsif p = m then
9307: --dbms_output.put_line('2');
9308: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_activities(p).activity_date
9309: ,p_end_date => p_to_date
9310: ,p_day_count_method => p_day_count_method);
9311:
9312: end if;

Line 9324: l_total_Days := LNS_FIN_UTILS.getDayCount(p_start_date => p_from_date

9320: end if;
9321:
9322: end loop;
9323: -- this is the total days (denominator)
9324: l_total_Days := LNS_FIN_UTILS.getDayCount(p_start_date => p_from_date
9325: ,p_end_date => p_to_date
9326: ,p_day_count_method => p_day_count_method);
9327: -- dbms_output.put_line('total days is ' || l_total_Days );
9328: l_weighted_balance := l_balance_days / l_total_days;

Line 9734: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => p_from_date

9730: for p in k..m loop
9731: --dbms_output.put_line('p is ' || p);
9732: if p = k then -- first record
9733: --dbms_output.put_line('1');
9734: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => p_from_date
9735: ,p_end_date => l_loan_activities(p + 1).activity_date
9736: ,p_day_count_method => l_loan_details.day_count_method);
9737:
9738: elsif p = m then

Line 9740: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_activities(p).activity_date

9736: ,p_day_count_method => l_loan_details.day_count_method);
9737:
9738: elsif p = m then
9739: -- dbms_output.put_line('3');
9740: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_activities(p).activity_date
9741: ,p_end_date => p_to_date
9742: ,p_day_count_method => l_loan_details.day_count_method);
9743:
9744: else

Line 9746: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_activities(p).activity_date

9742: ,p_day_count_method => l_loan_details.day_count_method);
9743:
9744: else
9745: -- dbms_output.put_line('2');
9746: l_num_days := LNS_FIN_UTILS.getDayCount(p_start_date => l_loan_activities(p).activity_date
9747: ,p_end_date => l_loan_activities(p + 1).activity_date
9748: ,p_day_count_method => l_loan_details.day_count_method);
9749:
9750: end if;

Line 9757: l_total_Days := LNS_FIN_UTILS.getDayCount(p_start_date => p_from_date

9753: l_balance_days := l_balance_days + l_num_days * l_loan_activities(p).ending_balance;
9754:
9755: end loop;
9756: -- this is the total days (denominator)
9757: l_total_Days := LNS_FIN_UTILS.getDayCount(p_start_date => p_from_date
9758: ,p_end_date => p_to_date
9759: ,p_day_count_method => l_loan_details.day_count_method);
9760:
9761: --dbms_output.put_line('total days is ' || l_total_Days );