DBA Data[Home] [Help]

APPS.LNS_CUSTOM_PUB dependencies on LNS_FINANCIALS

Line 103: l_loan_details LNS_FINANCIALS.LOAN_DETAILS_REC;

99: l_msg_count NUMBER;
100: l_msg_data VARCHAR2(2000);
101: l_return_Status VARCHAR2(1);
102: l_last_installment_billed NUMBER;
103: l_loan_details LNS_FINANCIALS.LOAN_DETAILS_REC;
104: l_customized varchar2(1);
105: l_loan_header_rec LNS_LOAN_HEADER_PUB.LOAN_HEADER_REC_TYPE;
106: l_object_version number;
107: l_skip_update boolean;

Line 422: l_custom_tbl(1).installment_begin_balance := lns_financials.getRemainingBalance(p_loan_id);

418: --l_orig_fees_tbl.delete;
419: l_fee_amount := 0;
420:
421: end if;
422: l_custom_tbl(1).installment_begin_balance := lns_financials.getRemainingBalance(p_loan_id);
423:
424: for k in 1..l_custom_tbl.count
425: loop
426: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'custom_schedule_id: ' || l_custom_tbl(k).custom_schedule_id);

Line 699: l_custom_tbl2(1).installment_begin_balance := lns_financials.getRemainingBalance(p_loan_id);

695: RAISE FND_API.G_EXC_ERROR;
696: end if;
697:
698: -- now we've passed validation initialize loan_begin_balance to calculate balances
699: l_custom_tbl2(1).installment_begin_balance := lns_financials.getRemainingBalance(p_loan_id);
700:
701: for k in 1..l_custom_tbl.count
702: loop
703:

Line 796: l_loan_details LNS_FINANCIALS.LOAN_DETAILS_REC;

792: l_return_Status VARCHAR2(1);
793: l_date DATE;
794: l_api_name varchar2(35);
795: l_cust_tbl custom_tbl;
796: l_loan_details LNS_FINANCIALS.LOAN_DETAILS_REC;
797:
798: Begin
799: l_api_name := 'validateCustomTable';
800: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, l_api_name || ' - Begin');

Line 807: l_loan_details := lns_financials.getLoanDetails(p_loan_id => p_loan_id

803: -- only if this is an UPDATE
804: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'validate customtbl begin');
805: l_cust_tbl := p_cust_tbl;
806:
807: l_loan_details := lns_financials.getLoanDetails(p_loan_id => p_loan_id
808: ,p_based_on_terms => 'CURRENT'
809: ,p_phase => 'TERM');
810: l_count := 0;
811: l_amount := 0;

Line 857: if l_cust_tbl(1).installment_begin_balance <> lns_financials.getRemainingBalance(p_loan_id) then

853: if i = 1 then
854: -- check that first row in custom table is = remainingBalance
855: -- CHECK THIS WITH KARTHIK
856: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'check balance');
857: if l_cust_tbl(1).installment_begin_balance <> lns_financials.getRemainingBalance(p_loan_id) then
858: logMessage(FND_LOG.LEVEL_PROCEDURE, G_PKG_NAME, 'balance incorrect');
859: FND_MESSAGE.Set_Name('LNS', 'LNS_BEGIN_BALANCE_INCORRECT');
860: FND_MSG_PUB.Add;
861: RAISE FND_API.G_EXC_ERROR;

Line 1472: procedure synchRateSchedule(p_rate_tbl IN OUT NOCOPY LNS_FINANCIALS.RATE_SCHEDULE_TBL, p_num_installments in number)

1468:
1469: /*
1470: This procedure synchs rate schedule with new number of installments in memory only, no changes to db
1471: */
1472: procedure synchRateSchedule(p_rate_tbl IN OUT NOCOPY LNS_FINANCIALS.RATE_SCHEDULE_TBL, p_num_installments in number)
1473:
1474: is
1475:
1476: /*-----------------------------------------------------------------------+

Line 1485: l_rate_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;

1481: l_RATE number;
1482: l_BEGIN_INSTALLMENT number;
1483: l_END_INSTALLMENT number;
1484: i number;
1485: l_rate_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;
1486:
1487: /*-----------------------------------------------------------------------+
1488: | Cursor Declarations |
1489: +-----------------------------------------------------------------------*/

Line 1601: ,lns_financials.getRemainingBalance(p_loan_id)

1597: ,t.loan_payment_frequency
1598: ,trunc(h.loan_start_date)
1599: ,h.funded_amount
1600: ,h.requested_amount
1601: ,lns_financials.getRemainingBalance(p_loan_id)
1602: ,trunc(h.loan_maturity_date)
1603: ,decode(p_based_on_terms, 'CURRENT', LNS_BILLING_UTIL_PUB.LAST_PAYMENT_NUMBER(p_loan_id, 'TERM'), 0)
1604: -- ,decode(p_based_on_terms, 'CURRENT', LNS_BILLING_UTIL_PUB.LAST_PAYMENT_NUMBER_EXT(p_loan_id), -1)
1605: ,decode(nvl(t.day_count_method, 'PERIODIC30_360'), 'PERIODIC30_360', '30/360', t.day_count_method)

Line 1826: l_amort_tbl LNS_FINANCIALS.AMORTIZATION_TBL;

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:
1830: /*-----------------------------------------------------------------------+

Line 1905: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Calling LNS_FINANCIALS.runAmortization...');

1901: (l_loan_details.CUSTOM_SCHEDULE = 'Y' and l_loan_details.loan_status <> 'INCOMPLETE' and
1902: p_based_on_terms <> 'CURRENT' and l_loan_details.ORIG_PAY_CALC_METHOD is not null))
1903: then
1904:
1905: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Calling LNS_FINANCIALS.runAmortization...');
1906: LNS_FINANCIALS.runAmortization(
1907: P_API_VERSION => 1.0,
1908: P_INIT_MSG_LIST => FND_API.G_TRUE,
1909: P_COMMIT => FND_API.G_FALSE,

Line 1906: LNS_FINANCIALS.runAmortization(

1902: p_based_on_terms <> 'CURRENT' and l_loan_details.ORIG_PAY_CALC_METHOD is not null))
1903: then
1904:
1905: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Calling LNS_FINANCIALS.runAmortization...');
1906: LNS_FINANCIALS.runAmortization(
1907: P_API_VERSION => 1.0,
1908: P_INIT_MSG_LIST => FND_API.G_TRUE,
1909: P_COMMIT => FND_API.G_FALSE,
1910: P_LOAN_ID => P_LOAN_ID,

Line 1921: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Schedule from LNS_FINANCIALS.runAmortization:');

1917: IF l_return_status <> 'S' THEN
1918: RAISE FND_API.G_EXC_ERROR;
1919: END IF;
1920:
1921: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Schedule from LNS_FINANCIALS.runAmortization:');
1922: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'PN DD PRIN LP INT LI FEE OTH ID');
1923: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, '--- -------- ------- -- ------- -- ----- ----- ------');
1924:
1925: j := 0;

Line 2110: l_rate_tbl LNS_FINANCIALS.RATE_SCHEDULE_TBL;

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);
2114: l_remaining_balance_actual number;

Line 2111: l_rate_details LNS_FINANCIALS.INTEREST_RATE_REC;

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);
2114: l_remaining_balance_actual number;
2115: l_remaining_balance_theory number;

Line 2397: l_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_custom_tbl(i).PERIOD_START_DATE, p_based_on_terms);

2393: l_custom_tbl(i).PERIOD_START_DATE := l_period_begin_date;
2394: l_custom_tbl(i).PERIOD_END_DATE := l_period_end_date;
2395: l_custom_tbl(i).PERIOD := FND_DATE.DATE_TO_DISPLAYDATE(l_period_begin_date, 1) || ' - ' || FND_DATE.DATE_TO_DISPLAYDATE((l_period_end_date-1), 1);
2396:
2397: l_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_custom_tbl(i).PERIOD_START_DATE, p_based_on_terms);
2398: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'l_funded_amount: ' || l_funded_amount);
2399:
2400: -- fix for bug 7026226: default PRINCIPAL_AMOUNT if its null
2401: if l_custom_tbl(i).PRINCIPAL_AMOUNT is null then

Line 2450: l_rate_tbl := lns_financials.getRateSchedule(p_loan_id, 'TERM');

2446: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Number of unlocked principals: ' || l_num_unlocked_prin);
2447: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Sum of locked principals: ' || l_locked_prin);
2448:
2449: -- get rate schedule
2450: l_rate_tbl := lns_financials.getRateSchedule(p_loan_id, 'TERM');
2451:
2452: -- synch rate schedule with current custom schedule
2453: l_num_installments := l_custom_tbl(l_custom_tbl.count).PAYMENT_NUMBER;
2454: synchRateSchedule(l_rate_tbl, l_num_installments);

Line 2464: l_remaining_balance_theory := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_loan_details.LOAN_START_DATE, p_based_on_terms);

2460:
2461: if l_fund_sched_count = 0 then
2462: l_remaining_balance_theory := l_loan_details.requested_amount;
2463: else
2464: l_remaining_balance_theory := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_loan_details.LOAN_START_DATE, p_based_on_terms);
2465: end if;
2466: else
2467: l_remaining_balance_theory := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_loan_details.LOAN_START_DATE, p_based_on_terms);
2468: end if;

Line 2467: l_remaining_balance_theory := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_loan_details.LOAN_START_DATE, p_based_on_terms);

2463: else
2464: l_remaining_balance_theory := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_loan_details.LOAN_START_DATE, p_based_on_terms);
2465: end if;
2466: else
2467: l_remaining_balance_theory := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_loan_details.LOAN_START_DATE, p_based_on_terms);
2468: end if;
2469:
2470: if p_based_on_terms = 'CURRENT' and l_last_installment_billed > 0 then
2471: l_begin_funded_amount := 0;

Line 2492: --l_default_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_loan_details.LOAN_START_DATE, p_based_on_terms);

2488: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_prev_cap_int = ' || l_prev_cap_int);
2489: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': CAPITALIZE_INT = ' || l_loan_details.CAPITALIZE_INT);
2490:
2491: l_increase_amount_instal := -1;
2492: --l_default_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_loan_details.LOAN_START_DATE, p_based_on_terms);
2493:
2494: for i in 1..l_custom_tbl.count loop
2495:
2496: --i := i + 1;

Line 2510: l_rate_details := lns_financials.getRateDetails(p_installment => l_custom_tbl(i).PAYMENT_NUMBER

2506: l_period_begin_date := l_custom_tbl(i).PERIOD_START_DATE;
2507: l_period_end_date := l_custom_tbl(i).PERIOD_END_DATE;
2508:
2509: -- get rate
2510: l_rate_details := lns_financials.getRateDetails(p_installment => l_custom_tbl(i).PAYMENT_NUMBER
2511: ,p_rate_tbl => l_rate_tbl);
2512:
2513: l_annualized_rate := l_rate_details.annual_rate;
2514: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'annualized_rate: ' || l_annualized_rate);

Line 2550: l_begin_funded_amount_new := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_custom_tbl(i).PERIOD_START_DATE, p_based_on_terms);

2546: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_custom_tbl(i).PAYMENT_NUMBER = (l_last_installment_billed + 1)');
2547:
2548: if l_loan_details.LOAN_STATUS <> 'PAIDOFF' and l_loan_details.LOAN_STATUS <> 'CANCELLED' then
2549: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Getting funded amount for ' || l_custom_tbl(i).PERIOD_START_DATE);
2550: l_begin_funded_amount_new := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_custom_tbl(i).PERIOD_START_DATE, p_based_on_terms);
2551: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_begin_funded_amount_new = ' || l_begin_funded_amount_new);
2552:
2553: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Getting funded amount for ' || (l_custom_tbl(i).PERIOD_END_DATE-1));
2554: l_end_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_END_DATE-1), p_based_on_terms);

Line 2554: l_end_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_END_DATE-1), p_based_on_terms);

2550: l_begin_funded_amount_new := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_custom_tbl(i).PERIOD_START_DATE, p_based_on_terms);
2551: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_begin_funded_amount_new = ' || l_begin_funded_amount_new);
2552:
2553: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Getting funded amount for ' || (l_custom_tbl(i).PERIOD_END_DATE-1));
2554: l_end_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_END_DATE-1), p_based_on_terms);
2555: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_end_funded_amount = ' || l_end_funded_amount);
2556:
2557: if l_end_funded_amount > l_begin_funded_amount then
2558: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_end_funded_amount > l_begin_funded_amount');

Line 2578: l_begin_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_START_DATE-1), p_based_on_terms);

2574:
2575: l_detail_int_calc_flag := true;
2576:
2577: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Getting funded amount for ' || (l_custom_tbl(i).PERIOD_START_DATE-1));
2578: l_begin_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_START_DATE-1), p_based_on_terms);
2579: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_begin_funded_amount = ' || l_begin_funded_amount);
2580:
2581: l_increased_amount := l_end_funded_amount - l_begin_funded_amount;
2582: l_begin_funded_amount := l_begin_funded_amount_new;

Line 2595: l_begin_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_START_DATE-1), p_based_on_terms);

2591:
2592: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_custom_tbl(i).PAYMENT_NUMBER > (l_last_installment_billed + 1)');
2593: if l_loan_details.loan_status <> 'PAIDOFF' and l_loan_details.LOAN_STATUS <> 'CANCELLED' then
2594: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Getting funded amount for ' || (l_custom_tbl(i).PERIOD_START_DATE-1));
2595: l_begin_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_START_DATE-1), p_based_on_terms);
2596: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_begin_funded_amount = ' || l_begin_funded_amount);
2597:
2598: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Getting funded amount for ' || l_custom_tbl(i).PERIOD_START_DATE);
2599: l_begin_funded_amount_new := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_custom_tbl(i).PERIOD_START_DATE, p_based_on_terms);

Line 2599: l_begin_funded_amount_new := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_custom_tbl(i).PERIOD_START_DATE, p_based_on_terms);

2595: l_begin_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_START_DATE-1), p_based_on_terms);
2596: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_begin_funded_amount = ' || l_begin_funded_amount);
2597:
2598: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Getting funded amount for ' || l_custom_tbl(i).PERIOD_START_DATE);
2599: l_begin_funded_amount_new := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_custom_tbl(i).PERIOD_START_DATE, p_based_on_terms);
2600: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_begin_funded_amount_new = ' || l_begin_funded_amount_new);
2601:
2602: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Getting funded amount for ' || (l_custom_tbl(i).PERIOD_END_DATE-1));
2603: l_end_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_END_DATE-1), p_based_on_terms);

Line 2603: l_end_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_END_DATE-1), p_based_on_terms);

2599: l_begin_funded_amount_new := LNS_FINANCIALS.getFundedAmount(p_loan_id, l_custom_tbl(i).PERIOD_START_DATE, p_based_on_terms);
2600: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_begin_funded_amount_new = ' || l_begin_funded_amount_new);
2601:
2602: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Getting funded amount for ' || (l_custom_tbl(i).PERIOD_END_DATE-1));
2603: l_end_funded_amount := LNS_FINANCIALS.getFundedAmount(p_loan_id, (l_custom_tbl(i).PERIOD_END_DATE-1), p_based_on_terms);
2604: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_end_funded_amount = ' || l_end_funded_amount);
2605:
2606: if l_end_funded_amount > l_begin_funded_amount then
2607: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_end_funded_amount > l_begin_funded_amount');

Line 2668: LNS_FINANCIALS.CALC_NORM_INTEREST(p_loan_id => p_loan_id,

2664:
2665: if (p_based_on_terms = 'CURRENT' and l_detail_int_calc_flag = true) then
2666:
2667: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Calculating normal interest...');
2668: LNS_FINANCIALS.CALC_NORM_INTEREST(p_loan_id => p_loan_id,
2669: p_calc_method => l_calc_method,
2670: p_period_start_date => l_period_begin_date,
2671: p_period_end_date => l_period_end_date,
2672: p_interest_rate => l_annualized_rate,

Line 2713: LNS_FINANCIALS.CALC_ADD_INTEREST(p_loan_id => p_loan_id,

2709: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': l_prev_grace_end_date: ' || l_prev_grace_end_date);
2710:
2711: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Calculating additional interest on unpaid principal...');
2712: -- calculate additional interest on unpaid principal
2713: LNS_FINANCIALS.CALC_ADD_INTEREST(p_loan_id => p_loan_id,
2714: p_calc_method => l_calc_method,
2715: p_period_start_date => l_add_start_date,
2716: p_period_end_date => l_add_end_date,
2717: p_interest_rate => l_annualized_rate,

Line 2734: LNS_FINANCIALS.CALC_ADD_INTEREST(p_loan_id => p_loan_id,

2730: l_add_prin_interest := round(l_add_prin_interest, l_precision);
2731:
2732: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Calculating additional interest on unpaid interest...');
2733: -- calculate additional interest on unpaid interest
2734: LNS_FINANCIALS.CALC_ADD_INTEREST(p_loan_id => p_loan_id,
2735: p_calc_method => l_calc_method,
2736: p_period_start_date => l_add_start_date,
2737: p_period_end_date => l_add_end_date,
2738: p_interest_rate => l_annualized_rate,

Line 2761: LNS_FINANCIALS.CALC_EARLY_PAY_CR(p_loan_id => p_loan_id,

2757: end if;
2758:
2759: -- calculate interest credit on early payment
2760: logMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, l_api_name || ': Calculating early payment credit amount...');
2761: LNS_FINANCIALS.CALC_EARLY_PAY_CR(p_loan_id => p_loan_id,
2762: p_calc_method => l_calc_method,
2763: p_installment => l_custom_tbl(i).PAYMENT_NUMBER,
2764: p_interest_rate => l_previous_annualized,
2765: p_day_count_method => l_day_count_method,

Line 2778: l_periodic_rate := lns_financials.getPeriodicRate(

2774:
2775: if (l_calc_method = 'SIMPLE') then
2776:
2777: -- recalculate periodic rate for each period if day counting methodolgy varies
2778: l_periodic_rate := lns_financials.getPeriodicRate(
2779: p_payment_freq => l_payment_freq
2780: ,p_period_start_date => l_period_begin_date
2781: ,p_period_end_date => l_period_end_date
2782: ,p_annualized_rate => l_annualized_rate

Line 2788: l_periodic_rate := lns_financials.getCompoundPeriodicRate(p_compound_freq => l_compound_freq

2784: ,p_target => 'INTEREST');
2785:
2786: elsif (l_calc_method = 'COMPOUND') then
2787:
2788: l_periodic_rate := lns_financials.getCompoundPeriodicRate(p_compound_freq => l_compound_freq
2789: ,p_payment_freq => l_payment_freq
2790: ,p_annualized_rate => l_annualized_rate
2791: ,p_period_start_date => l_period_begin_date
2792: ,p_period_end_date => l_period_end_date

Line 2798: lns_financials.getWeightedBalance(p_loan_id => p_loan_id

2794: ,p_target => 'INTEREST');
2795:
2796: end if;
2797:
2798: lns_financials.getWeightedBalance(p_loan_id => p_loan_id
2799: ,p_from_date => l_period_begin_date
2800: ,p_to_date => l_period_end_date
2801: ,p_calc_method => 'TARGET'
2802: ,p_phase => 'TERM'

Line 2810: l_norm_interest := lns_financials.calculateInterest(p_amount => l_wtd_balance

2806: ,x_begin_balance => l_balance1
2807: ,x_end_balance => l_balance2);
2808:
2809: l_wtd_balance := l_wtd_balance + l_prev_cap_int;
2810: l_norm_interest := lns_financials.calculateInterest(p_amount => l_wtd_balance
2811: ,p_periodic_rate => l_periodic_rate
2812: ,p_compounding_period => null);
2813: l_norm_interest := round(l_norm_interest, l_precision);
2814:

Line 2825: l_periodic_rate := lns_financials.getPeriodicRate(

2821: else
2822:
2823: if (l_calc_method = 'SIMPLE') then
2824:
2825: l_periodic_rate := lns_financials.getPeriodicRate(
2826: p_payment_freq => l_payment_freq
2827: ,p_period_start_date => l_period_begin_date
2828: ,p_period_end_date => l_period_end_date
2829: ,p_annualized_rate => l_annualized_rate

Line 2835: l_periodic_rate := lns_financials.getCompoundPeriodicRate(p_compound_freq => l_compound_freq

2831: ,p_target => 'INTEREST');
2832:
2833: elsif (l_calc_method = 'COMPOUND') then
2834:
2835: l_periodic_rate := lns_financials.getCompoundPeriodicRate(p_compound_freq => l_compound_freq
2836: ,p_payment_freq => l_payment_freq
2837: ,p_annualized_rate => l_annualized_rate
2838: ,p_period_start_date => l_period_begin_date
2839: ,p_period_end_date => l_period_end_date

Line 2846: l_norm_interest := lns_financials.calculateInterest(p_amount => l_remaining_balance_theory1

2842: end if;
2843:
2844: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'periodic_rate: ' || l_periodic_rate);
2845: l_remaining_balance_theory1 := l_remaining_balance_theory + l_prev_cap_int;
2846: l_norm_interest := lns_financials.calculateInterest(p_amount => l_remaining_balance_theory1
2847: ,p_periodic_rate => l_periodic_rate
2848: ,p_compounding_period => null);
2849: l_norm_interest := round(l_norm_interest, l_precision);
2850:

Line 3056: l_periodic_principal := lns_financials.calculateEPPayment(p_loan_amount => (l_remaining_balance_theory - l_locked_prin + l_increased_amount1)

3052: -- calc principal amount
3053: if i = 1 or l_increase_amount_instal = i or l_prev_increase_amount_instal = i then
3054: if l_num_unlocked_prin > 0 then
3055: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Calculating periodic_principal...');
3056: l_periodic_principal := lns_financials.calculateEPPayment(p_loan_amount => (l_remaining_balance_theory - l_locked_prin + l_increased_amount1)
3057: ,p_num_intervals => l_num_unlocked_prin
3058: ,p_ending_balance=> 0
3059: ,p_pay_in_arrears=> true);
3060: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'periodic_principal: ' || l_periodic_principal);

Line 3115: l_rate_to_calculate := lns_financials.getPeriodicRate(

3111: LogMessage(FND_LOG.LEVEL_STATEMENT, G_PKG_NAME, 'Calculating periodic_payment...');
3112:
3113: if (l_calc_method = 'SIMPLE') then
3114:
3115: l_rate_to_calculate := lns_financials.getPeriodicRate(
3116: p_payment_freq => l_payment_freq
3117: ,p_period_start_date => l_period_begin_date
3118: ,p_period_end_date => l_loan_details.maturity_Date
3119: ,p_annualized_rate => l_annualized_rate

Line 3125: l_rate_to_calculate := lns_financials.getCompoundPeriodicRate(p_compound_freq => l_compound_freq

3121: ,p_target => 'PAYMENT');
3122:
3123: elsif (l_calc_method = 'COMPOUND') then
3124:
3125: l_rate_to_calculate := lns_financials.getCompoundPeriodicRate(p_compound_freq => l_compound_freq
3126: ,p_payment_freq => l_payment_freq
3127: ,p_annualized_rate => l_annualized_rate
3128: ,p_period_start_date => l_period_begin_date
3129: ,p_period_end_date => l_loan_details.maturity_Date

Line 3136: l_periodic_payment := lns_financials.calculatePayment(p_loan_amount => (l_remaining_balance_theory + l_increased_amount1)

3132:
3133: end if;
3134:
3135: l_amortization_intervals := l_custom_tbl.count + 1 - i;
3136: l_periodic_payment := lns_financials.calculatePayment(p_loan_amount => (l_remaining_balance_theory + l_increased_amount1)
3137: ,p_periodic_rate => l_rate_to_calculate
3138: ,p_num_intervals => l_amortization_intervals
3139: ,p_ending_balance=> 0
3140: ,p_pay_in_arrears=> true);