@@ -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