This is an automated email from the ASF dual-hosted git repository. adamsaghy pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/fineract.git
commit cb4c66302ae8e0203c251f8f989b519d0a4ffa90 Author: Rustam Zeinalov <[email protected]> AuthorDate: Thu Jul 31 15:11:56 2025 +0200 FINERACT-1968: added e2e test cases for progressive Loan schedule handling - interest handling (FLAT interest, Daily, Equal installments) --- .../test/resources/features/EMICalculation.feature | 124 +++++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/fineract-e2e-tests-runner/src/test/resources/features/EMICalculation.feature b/fineract-e2e-tests-runner/src/test/resources/features/EMICalculation.feature index 94f9652c2f..61828b35ad 100644 --- a/fineract-e2e-tests-runner/src/test/resources/features/EMICalculation.feature +++ b/fineract-e2e-tests-runner/src/test/resources/features/EMICalculation.feature @@ -9632,3 +9632,127 @@ Feature: EMI calculation and repayment schedule checks for interest bearing loan | ASSET | 112601 | Loans Receivable | | 906.25 | | ASSET | 112603 | Interest/Fee Receivable | | 16.87 | | LIABILITY | 145023 | Suspense/Clearing account | 923.12 | | + + @TestRailId:С3893 + Scenario: Progressive loan - flat interest DAILY, multi-disbursement, actual/actual, second disbursement in the middle of installment period + When Admin sets the business date to "01 June 2024" + And Admin creates a client with random data + When Admin creates a fully customized loan with the following data: + | LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy | + | LP2_INTEREST_FLAT_ADV_PMT_ALLOC_MULTIDISBURSE | 01 January 2024 | 3000 | 12 | FLAT | DAILY | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION | + And Admin successfully approves the loan on "01 June 2024" with "3000" amount and expected disbursement date on "01 June 2024" + And Admin successfully disburse the loan on "01 June 2024" with "1000" EUR transaction amount + Then Loan Repayment schedule has 3 periods, with the following data for periods: + | Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | | | 01 June 2024 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 30 | 01 July 2024 | | 666.45 | 333.55 | 9.84 | 0.0 | 0.0 | 343.39 | 0.0 | 0.0 | 0.0 | 343.39 | + | 2 | 31 | 01 August 2024 | | 333.22 | 333.23 | 10.16 | 0.0 | 0.0 | 343.39 | 0.0 | 0.0 | 0.0 | 343.39 | + | 3 | 31 | 01 September 2024 | | 0.0 | 333.22 | 10.16 | 0.0 | 0.0 | 343.38 | 0.0 | 0.0 | 0.0 | 343.38 | + Then Loan Repayment schedule has the following data in Total row: + | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | 1000 | 30.16 | 0.0 | 0.0 | 1030.16 | 0.0 | 0.0 | 0.0 | 1030.16 | + Then Loan Transactions tab has the following data: + | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | + | 01 June 2024 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 | + When Admin sets the business date to "15 July 2024" + When Admin successfully disburse the loan on "15 July 2024" with "250" EUR transaction amount + Then Loan Repayment schedule has 3 periods, with the following data for periods: + | Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | | | 01 June 2024 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 30 | 01 July 2024 | | 666.45 | 333.55 | 9.84 | 0.0 | 0.0 | 343.39 | 0.0 | 0.0 | 0.0 | 343.39 | + | | | 15 July 2024 | | 250.0 | | | 0.0 | | 0.0 | 0.0 | | | | + | 2 | 31 | 01 August 2024 | | 457.65 | 458.8 | 11.56 | 0.0 | 0.0 | 470.36 | 0.0 | 0.0 | 0.0 | 470.36 | + | 3 | 31 | 01 September 2024 | | 0.0 | 457.65 | 12.7 | 0.0 | 0.0 | 470.35 | 0.0 | 0.0 | 0.0 | 470.35 | + Then Loan Repayment schedule has the following data in Total row: + | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | 1250 | 34.1 | 0.0 | 0.0 | 1284.1 | 0.0 | 0.0 | 0.0 | 1284.1 | + Then Loan Transactions tab has the following data: + | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | + | 01 June 2024 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 | + | 15 July 2024 | Disbursement | 250.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1250.0 | + + @TestRailId:С3894 + Scenario: Progressive loan - flat interest DAILY, down-payment, multi-disbursement, actual/actual, second disbursement on the due date of installment period + When Admin sets the business date to "01 June 2024" + And Admin creates a client with random data + When Admin creates a fully customized loan with the following data: + | LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy | + | LP2_DOWNPAYMENT_INTEREST_FLAT_ADV_PMT_ALLOC_MULTIDISBURSE | 01 January 2024 | 3000 | 12 | FLAT | DAILY | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION | + And Admin successfully approves the loan on "01 June 2024" with "3000" amount and expected disbursement date on "01 June 2024" + And Admin successfully disburse the loan on "01 June 2024" with "1000" EUR transaction amount + Then Loan Repayment schedule has 4 periods, with the following data for periods: + | Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | | | 01 June 2024 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 0 | 01 June 2024 | | 750.0 | 250.0 | 0.0 | 0.0 | 0.0 | 250.0 | 0.0 | 0.0 | 0.0 | 250.0 | + | 2 | 30 | 01 July 2024 | | 499.84 | 250.16 | 7.38 | 0.0 | 0.0 | 257.54 | 0.0 | 0.0 | 0.0 | 257.54 | + | 3 | 31 | 01 August 2024 | | 249.92 | 249.92 | 7.62 | 0.0 | 0.0 | 257.54 | 0.0 | 0.0 | 0.0 | 257.54 | + | 4 | 31 | 01 September 2024 | | 0.0 | 249.92 | 7.62 | 0.0 | 0.0 | 257.54 | 0.0 | 0.0 | 0.0 | 257.54 | + Then Loan Repayment schedule has the following data in Total row: + | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | 1000 | 22.62 | 0.0 | 0.0 | 1022.62 | 0.0 | 0.0 | 0.0 | 1022.62 | + Then Loan Transactions tab has the following data: + | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | + | 01 June 2024 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 | + When Admin sets the business date to "01 August 2024" + When Admin successfully disburse the loan on "01 August 2024" with "250" EUR transaction amount + Then Loan Repayment schedule has 5 periods, with the following data for periods: + | Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | | | 01 June 2024 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 0 | 01 June 2024 | | 750.0 | 250.0 | 0.0 | 0.0 | 0.0 | 250.0 | 0.0 | 0.0 | 0.0 | 250.0 | + | 2 | 30 | 01 July 2024 | | 499.84 | 250.16 | 7.38 | 0.0 | 0.0 | 257.54 | 0.0 | 0.0 | 0.0 | 257.54 | + | 3 | 31 | 01 August 2024 | | 249.92 | 249.92 | 7.62 | 0.0 | 0.0 | 257.54 | 0.0 | 0.0 | 0.0 | 257.54 | + | | | 01 August 2024 | | 250.0 | | | 0.0 | | 0.0 | 0.0 | | | | + | 4 | 0 | 01 August 2024 | | 437.42 | 62.5 | 0.0 | 0.0 | 0.0 | 62.5 | 0.0 | 0.0 | 0.0 | 62.5 | + | 5 | 31 | 01 September 2024 | | 0.0 | 437.42 | 9.53 | 0.0 | 0.0 | 446.95 | 0.0 | 0.0 | 0.0 | 446.95 | + Then Loan Repayment schedule has the following data in Total row: + | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | 1250 | 24.53 | 0.0 | 0.0 | 1274.53 | 0.0 | 0.0 | 0.0 | 1274.53 | + Then Loan Transactions tab has the following data: + | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | + | 01 June 2024 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 | + | 01 August 2024 | Disbursement | 250.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1250.0 | + + @TestRailId:C3897 + Scenario: Progressive loan - flat interest DAILY, actual/actual, 4% interest rate + When Admin sets the business date to "01 January 2024" + And Admin creates a client with random data + When Admin creates a fully customized loan with the following data: + | LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy | + | LP2_INTEREST_FLAT_ADV_PMT_ALLOC_MULTIDISBURSE | 01 January 2024 | 100 | 4 | FLAT | DAILY | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION | + And Admin successfully approves the loan on "01 January 2024" with "100" amount and expected disbursement date on "01 January 2024" + And Admin successfully disburse the loan on "01 January 2024" with "100" EUR transaction amount + Then Loan Repayment schedule has 3 periods, with the following data for periods: + | Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | | | 01 January 2024 | | 100.0 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 31 | 01 February 2024| | 66.67 | 33.33 | 0.34 | 0.0 | 0.0 | 33.67 | 0.0 | 0.0 | 0.0 | 33.67 | + | 2 | 29 | 01 March 2024 | | 33.32 | 33.35 | 0.32 | 0.0 | 0.0 | 33.67 | 0.0 | 0.0 | 0.0 | 33.67 | + | 3 | 31 | 01 April 2024 | | 0.0 | 33.32 | 0.34 | 0.0 | 0.0 | 33.66 | 0.0 | 0.0 | 0.0 | 33.66 | + Then Loan Repayment schedule has the following data in Total row: + | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | 100 | 1.0 | 0.0 | 0.0 | 101.0 | 0.0 | 0.0 | 0.0 | 101.0 | + Then Loan Transactions tab has the following data: + | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | + | 01 January 2024 | Disbursement | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 | 100.0 | + + @TestRailId:C3898 + Scenario: Progressive loan with downpayment - flat interest DAILY, actual/actual, 4% interest rate + When Admin sets the business date to "01 January 2024" + And Admin creates a client with random data + When Admin creates a fully customized loan with the following data: + | LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy | + | LP2_DOWNPAYMENT_INTEREST_FLAT_ADV_PMT_ALLOC_MULTIDISBURSE | 01 January 2024 | 1000 | 4 | FLAT | DAILY | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION | + And Admin successfully approves the loan on "01 January 2024" with "1000" amount and expected disbursement date on "01 January 2024" + And Admin successfully disburse the loan on "01 January 2024" with "1000" EUR transaction amount + Then Loan Repayment schedule has 4 periods, with the following data for periods: + | Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | | | 01 January 2024 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 0 | 01 January 2024 | | 750.0 | 250.0 | 0.0 | 0.0 | 0.0 | 250.0 | 0.0 | 0.0 | 0.0 | 250.0 | + | 2 | 31 | 01 February 2024| | 500.05 | 249.95 | 2.54 | 0.0 | 0.0 | 252.49 | 0.0 | 0.0 | 0.0 | 252.49 | + | 3 | 29 | 01 March 2024 | | 249.94 | 250.11 | 2.38 | 0.0 | 0.0 | 252.49 | 0.0 | 0.0 | 0.0 | 252.49 | + | 4 | 31 | 01 April 2024 | | 0.0 | 249.94 | 2.54 | 0.0 | 0.0 | 252.48 | 0.0 | 0.0 | 0.0 | 252.48 | + Then Loan Repayment schedule has the following data in Total row: + | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | 1000 | 7.46 | 0.0 | 0.0 | 1007.46| 0.0 | 0.0 | 0.0 | 1007.46 | + Then Loan Transactions tab has the following data: + | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | + | 01 January 2024 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
