Skip to content

Commit 019d15d

Browse files
FINERACT-2684: Duplicate installment periods after advance repayment and adjust schedule
1 parent 559eaf6 commit 019d15d

2 files changed

Lines changed: 128 additions & 10 deletions

File tree

fineract-e2e-tests-runner/src/test/resources/features/LoanReschedule.feature

Lines changed: 121 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2668,4 +2668,124 @@ Feature: LoanReschedule
26682668
And Loan Transactions tab has the following data:
26692669
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | Reverted |
26702670
| 31 May 2026 | Disbursement | 150.0 | 0.0 | 0.0 | 0.0 | 0.0 | 150.0 | false |
2671-
| 10 June 2026 | Re-age | 150.0 | 150.0 | 0.0 | 0.0 | 0.0 | 0.0 | false |
2671+
| 10 June 2026 | Re-age | 150.0 | 150.0 | 0.0 | 0.0 | 0.0 | 0.0 | false |
2672+
2673+
Scenario: Verify no duplicate installment periods after advance repayment and due date reschedule
2674+
When Admin sets the business date to "20 January 2026"
2675+
And Admin creates a client with random data
2676+
And Admin creates a fully customized loan with the following data:
2677+
| 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 |
2678+
| LP2_ADV_PYMNT_INTEREST_DAILY_EMI_ACTUAL_ACTUAL_INTEREST_RECALCULATION_DAILY | 20 January 2026 | 741.99 | 24.99 | DECLINING_BALANCE | DAILY | EQUAL_INSTALLMENTS | 24 | MONTHS | 1 | MONTHS | 24 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION |
2679+
And Admin successfully approves the loan on "20 January 2026" with "741.99" amount and expected disbursement date on "20 January 2026"
2680+
And Admin successfully disburse the loan on "20 January 2026" with "741.99" EUR transaction amount
2681+
Then Loan has 949.82 outstanding amount
2682+
Then Loan Repayment schedule has 24 periods, with the following data for periods:
2683+
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
2684+
| | | 20 January 2026 | | 741.99 | | | 0.0 | | 0.0 | 0.0 | | | |
2685+
| 1 | 31 | 20 February 2026 | | 718.16 | 23.83 | 15.75 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2686+
| 2 | 28 | 20 March 2026 | | 692.35 | 25.81 | 13.77 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2687+
| 3 | 31 | 20 April 2026 | | 667.46 | 24.89 | 14.69 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2688+
| 4 | 30 | 20 May 2026 | | 641.59 | 25.87 | 13.71 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2689+
| 5 | 31 | 20 June 2026 | | 615.63 | 25.96 | 13.62 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2690+
| 6 | 30 | 20 July 2026 | | 588.69 | 26.94 | 12.64 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2691+
| 7 | 31 | 20 August 2026 | | 561.6 | 27.09 | 12.49 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2692+
| 8 | 31 | 20 September 2026 | | 533.94 | 27.66 | 11.92 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2693+
| 9 | 30 | 20 October 2026 | | 505.33 | 28.61 | 10.97 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2694+
| 10 | 31 | 20 November 2026 | | 476.48 | 28.85 | 10.73 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2695+
| 11 | 30 | 20 December 2026 | | 446.69 | 29.79 | 9.79 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2696+
| 12 | 31 | 20 January 2027 | | 416.59 | 30.1 | 9.48 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2697+
| 13 | 31 | 20 February 2027 | | 385.85 | 30.74 | 8.84 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2698+
| 14 | 28 | 20 March 2027 | | 353.67 | 32.18 | 7.4 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2699+
| 15 | 31 | 20 April 2027 | | 321.6 | 32.07 | 7.51 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2700+
| 16 | 30 | 20 May 2027 | | 288.63 | 32.97 | 6.61 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2701+
| 17 | 31 | 20 June 2027 | | 255.18 | 33.45 | 6.13 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2702+
| 18 | 30 | 20 July 2027 | | 220.84 | 34.34 | 5.24 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2703+
| 19 | 31 | 20 August 2027 | | 185.95 | 34.89 | 4.69 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2704+
| 20 | 31 | 20 September 2027 | | 150.32 | 35.63 | 3.95 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2705+
| 21 | 30 | 20 October 2027 | | 113.83 | 36.49 | 3.09 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2706+
| 22 | 31 | 20 November 2027 | | 76.67 | 37.16 | 2.42 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2707+
| 23 | 30 | 20 December 2027 | | 38.66 | 38.01 | 1.57 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2708+
| 24 | 31 | 20 January 2028 | | 0.0 | 38.66 | 0.82 | 0.0 | 0.0 | 39.48 | 0.0 | 0.0 | 0.0 | 39.48 |
2709+
And Loan Repayment schedule has the following data in Total row:
2710+
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
2711+
| 741.99 | 207.83 | 0.0 | 0.0 | 949.82 | 0.0 | 0.0 | 0.0 | 949.82 |
2712+
And Loan Transactions tab has the following data:
2713+
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | Reverted |
2714+
| 20 January 2026 | Disbursement | 741.99 | 0.0 | 0.0 | 0.0 | 0.0 | 741.99 | false |
2715+
And Customer makes "REAL_TIME" repayment on "20 January 2026" with 300 EUR transaction amount
2716+
Then Loan has 597.69 outstanding amount
2717+
Then Loan Repayment schedule has 24 periods, with the following data for periods:
2718+
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
2719+
| | | 20 January 2026 | | 741.99 | | | 0.0 | | 0.0 | 0.0 | | | |
2720+
| 1 | 31 | 20 February 2026 | 20 January 2026 | 702.41 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2721+
| 2 | 28 | 20 March 2026 | 20 January 2026 | 662.83 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2722+
| 3 | 31 | 20 April 2026 | 20 January 2026 | 623.25 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2723+
| 4 | 30 | 20 May 2026 | 20 January 2026 | 583.67 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2724+
| 5 | 31 | 20 June 2026 | 20 January 2026 | 544.09 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2725+
| 6 | 30 | 20 July 2026 | 20 January 2026 | 504.51 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2726+
| 7 | 31 | 20 August 2026 | 20 January 2026 | 464.93 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2727+
| 8 | 31 | 20 September 2026 | | 425.35 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 22.94 | 22.94 | 0.0 | 16.64 |
2728+
| 9 | 30 | 20 October 2026 | | 425.35 | 0.0 | 39.58 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2729+
| 10 | 31 | 20 November 2026 | | 425.35 | 0.0 | 39.58 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2730+
| 11 | 30 | 20 December 2026 | | 406.65 | 18.7 | 20.88 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2731+
| 12 | 31 | 20 January 2027 | | 375.7 | 30.95 | 8.63 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2732+
| 13 | 31 | 20 February 2027 | | 344.09 | 31.61 | 7.97 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2733+
| 14 | 28 | 20 March 2027 | | 311.11 | 32.98 | 6.6 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2734+
| 15 | 31 | 20 April 2027 | | 278.13 | 32.98 | 6.6 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2735+
| 16 | 30 | 20 May 2027 | | 244.26 | 33.87 | 5.71 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2736+
| 17 | 31 | 20 June 2027 | | 209.86 | 34.4 | 5.18 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2737+
| 18 | 30 | 20 July 2027 | | 174.59 | 35.27 | 4.31 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2738+
| 19 | 31 | 20 August 2027 | | 138.72 | 35.87 | 3.71 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2739+
| 20 | 31 | 20 September 2027 | | 102.08 | 36.64 | 2.94 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2740+
| 21 | 30 | 20 October 2027 | | 64.6 | 37.48 | 2.1 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2741+
| 22 | 31 | 20 November 2027 | | 26.39 | 38.21 | 1.37 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2742+
| 23 | 30 | 20 December 2027 | | 0.0 | 26.39 | 0.54 | 0.0 | 0.0 | 26.93 | 0.0 | 0.0 | 0.0 | 26.93 |
2743+
| 24 | 31 | 20 January 2028 | 20 January 2026 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2744+
And Loan Repayment schedule has the following data in Total row:
2745+
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
2746+
| 741.99 | 155.7 | 0.0 | 0.0 | 897.69 | 300.0 | 300.0 | 0.0 | 597.69 |
2747+
And Loan Transactions tab has the following data:
2748+
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | Reverted |
2749+
| 20 January 2026 | Disbursement | 741.99 | 0.0 | 0.0 | 0.0 | 0.0 | 741.99 | false |
2750+
| 20 January 2026 | Repayment | 300.0 | 300.0 | 0.0 | 0.0 | 0.0 | 441.99 | false |
2751+
When Admin creates and approves Loan reschedule with the following data:
2752+
| rescheduleFromDate | submittedOnDate | adjustedDueDate | graceOnPrincipal | graceOnInterest | extraTerms | newInterestRate |
2753+
| 20 February 2026 | 20 January 2026 | 20 October 2026 | | | | |
2754+
Then Loan has 690.03 outstanding amount
2755+
Then Loan Repayment schedule has 24 periods, with the following data for periods:
2756+
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
2757+
| | | 20 January 2026 | | 741.99 | | | 0.0 | | 0.0 | 0.0 | | | |
2758+
| 1 | 273 | 20 October 2026 | 20 January 2026 | 702.41 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2759+
| 2 | 31 | 20 November 2026 | 20 January 2026 | 662.83 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2760+
| 3 | 30 | 20 December 2026 | 20 January 2026 | 623.25 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2761+
| 4 | 31 | 20 January 2027 | 20 January 2026 | 583.67 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2762+
| 5 | 31 | 20 February 2027 | 20 January 2026 | 544.09 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2763+
| 6 | 28 | 20 March 2027 | 20 January 2026 | 504.51 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2764+
| 7 | 31 | 20 April 2027 | 20 January 2026 | 464.93 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 39.58 | 39.58 | 0.0 | 0.0 |
2765+
| 8 | 30 | 20 May 2027 | | 425.35 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 | 22.94 | 22.94 | 0.0 | 16.64 |
2766+
| 9 | 31 | 20 June 2027 | | 425.35 | 0.0 | 39.58 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2767+
| 10 | 30 | 20 July 2027 | | 425.35 | 0.0 | 39.58 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2768+
| 11 | 31 | 20 August 2027 | | 425.35 | 0.0 | 39.58 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2769+
| 12 | 31 | 20 September 2027 | | 425.35 | 0.0 | 39.58 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2770+
| 13 | 30 | 20 October 2027 | | 418.78 | 6.57 | 33.01 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2771+
| 14 | 31 | 20 November 2027 | | 388.09 | 30.69 | 8.89 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2772+
| 15 | 30 | 20 December 2027 | | 356.48 | 31.61 | 7.97 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2773+
| 16 | 31 | 20 January 2028 | | 324.45 | 32.03 | 7.55 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2774+
| 17 | 31 | 20 February 2028 | | 291.74 | 32.71 | 6.87 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2775+
| 18 | 29 | 20 March 2028 | | 257.94 | 33.8 | 5.78 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2776+
| 19 | 31 | 20 April 2028 | | 223.82 | 34.12 | 5.46 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2777+
| 20 | 30 | 20 May 2028 | | 188.82 | 35.0 | 4.58 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2778+
| 21 | 31 | 20 June 2028 | | 153.24 | 35.58 | 4.0 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2779+
| 22 | 30 | 20 July 2028 | | 116.8 | 36.44 | 3.14 | 0.0 | 0.0 | 39.58 | 0.0 | 0.0 | 0.0 | 39.58 |
2780+
| 23 | 31 | 20 August 2028 | | 0.0 | 116.8 | 2.47 | 0.0 | 0.0 | 119.27 | 0.0 | 0.0 | 0.0 | 119.27 |
2781+
| 24 | 31 | 20 September 2028 | 20 January 2026 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2782+
And Loan Repayment schedule has the following data in Total row:
2783+
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
2784+
| 741.99 | 248.04 | 0.0 | 0.0 | 990.03 | 300.0 | 300.0 | 0.0 | 690.03 |
2785+
And Loan Transactions tab has the following data:
2786+
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | Reverted |
2787+
| 20 January 2026 | Disbursement | 741.99 | 0.0 | 0.0 | 0.0 | 0.0 | 741.99 | false |
2788+
| 20 January 2026 | Repayment | 300.0 | 300.0 | 0.0 | 0.0 | 0.0 | 441.99 | false |
2789+
When Admin sets the business date to "20 September 2028"
2790+
When Loan Pay-off is made on "20 September 2028"
2791+
Then Loan is closed with zero outstanding balance and it's all installments have obligations met

0 commit comments

Comments
 (0)