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


The following commit(s) were added to refs/heads/develop by this push:
     new 5a0115e6ec FINERACT-2319: added e2e test for verifying backdated 
repayment allocation respects payment order for future dated penalties
5a0115e6ec is described below

commit 5a0115e6ec1619acbdf5531e97edb4ee802b255a
Author: Rustam Zeinalov <[email protected]>
AuthorDate: Thu Jul 10 14:18:07 2025 +0200

    FINERACT-2319: added e2e test for verifying backdated repayment allocation 
respects payment order for future dated penalties
---
 .../test/resources/features/LoanRepayment.feature  | 99 +++++++++++++++++++++-
 1 file changed, 98 insertions(+), 1 deletion(-)

diff --git 
a/fineract-e2e-tests-runner/src/test/resources/features/LoanRepayment.feature 
b/fineract-e2e-tests-runner/src/test/resources/features/LoanRepayment.feature
index d9ad3fe40d..7b042add40 100644
--- 
a/fineract-e2e-tests-runner/src/test/resources/features/LoanRepayment.feature
+++ 
b/fineract-e2e-tests-runner/src/test/resources/features/LoanRepayment.feature
@@ -5407,6 +5407,7 @@ Feature: LoanRepayment
       | 01 February 2024 | Repayment        | 40.0   | 39.42     | 0.58     | 
0.0  | 0.0       | 60.58        | false    | false    |
     When Admin set 
"LP2_ADV_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL" loan product 
"DEFAULT" transaction type to "NEXT_INSTALLMENT" future installment allocation 
rule
 
+  @TestRailId:C3840
   Scenario: Verify progressive loan repayment reversals with penalty charge 
and backdated repayment
     When Admin sets the business date to "20 October 2024"
     When Admin creates a client with random data
@@ -5488,4 +5489,100 @@ Feature: LoanRepayment
       | 26 October 2024  | Repayment        | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 0.0          | true     | false    |
       | 26 October 2024  | Repayment        | 101.0  | 100.0     | 0.0      | 
0.0  | 1.0       | 0.0          | false    | false    |
     When Customer makes "AUTOPAY" repayment on "27 October 2024" with 9 EUR 
transaction amount
-    Then Loan status will be "CLOSED_OBLIGATIONS_MET"
\ No newline at end of file
+    Then Loan status will be "CLOSED_OBLIGATIONS_MET"
+
+  @TestRailId:C3841
+  Scenario: Verify backdated repayment allocation respects payment order for 
future dated penalties
+    When Admin sets the business date to "20 October 2024"
+    When 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_NO_INTEREST_RECALCULATION_ALLOCATION_PENALTY_FIRST | 20 October 
2024   | 100            | 0                      | FLAT          | 
SAME_AS_REPAYMENT_PERIOD    | EQUAL_INSTALLMENTS | 30                | DAYS     
             | 30             | DAYS                   | 1                  | 0 
                      | 0                      | 0                    | 
ADVANCED_PAYMENT_ALLOCATION |
+    And Admin successfully approves the loan on "20 October 2024" with "100" 
amount and expected disbursement date on "20 October 2024"
+    And Admin successfully disburse the loan on "20 October 2024" with "100" 
EUR transaction amount
+    Then Loan Repayment schedule has 1 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 |
+      |    |      | 20 October 2024  |           | 100.0           |           
    |          | 0.0  |           | 0.0   | 0.0  |            |      |          
   |
+      | 1  | 30   | 19 November 2024 |           | 0.0             | 100.0     
    | 0.0      | 0.0  | 0.0       | 100.0 | 0.0  | 0.0        | 0.0  | 100.0    
   |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due   | Paid | In 
advance | Late | Outstanding |
+      | 100.0         | 0.0      | 0.0  | 0.0       | 100.0 | 0.0  | 0.0       
 | 0.0  | 100.0       |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance |
+      | 20 October 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        |
+  # Step 2: First repayment on 22 October
+    When Admin sets the business date to "22 October 2024"
+    And Customer makes "AUTOPAY" repayment on "22 October 2024" with 100 EUR 
transaction amount
+    Then Loan status will be "CLOSED_OBLIGATIONS_MET"
+    Then Loan Repayment schedule has 1 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 |
+      |    |      | 20 October 2024  |                 | 100.0           |     
          |          | 0.0  |           | 0.0   | 0.0   |            |      |   
          |
+      | 1  | 30   | 19 November 2024 | 22 October 2024 | 0.0             | 
100.0         | 0.0      | 0.0  | 0.0       | 100.0 | 100.0 | 100.0      | 0.0  
| 0.0         |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance |
+      | 20 October 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        |
+      | 22 October 2024  | Repayment        | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 0.0          |
+  # Step 3: First repayment reversal on 24 October
+    When Admin sets the business date to "24 October 2024"
+    And Customer makes a repayment undo on "22 October 2024"
+    Then Loan status will be "ACTIVE"
+    And Loan has 100 outstanding amount
+    Then Loan Repayment schedule has 1 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 |
+      |    |      | 20 October 2024  |           | 100.0           |           
    |          | 0.0  |           | 0.0   | 0.0  |            |      |          
   |
+      | 1  | 30   | 19 November 2024 |           | 0.0             | 100.0     
    | 0.0      | 0.0  | 0.0       | 100.0 | 0.0  | 0.0        | 0.0  | 100.0    
   |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted |
+      | 20 October 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 22 October 2024  | Repayment        | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 0.0          | true     |
+  # Step 4: Second repayment on 26 October
+    When Admin sets the business date to "26 October 2024"
+    And Customer makes "AUTOPAY" repayment on "26 October 2024" with 100 EUR 
transaction amount
+    Then Loan status will be "CLOSED_OBLIGATIONS_MET"
+    Then Loan Repayment schedule has 1 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 |
+      |    |      | 20 October 2024  |                 | 100.0           |     
          |          | 0.0  |           | 0.0   | 0.0   |            |      |   
          |
+      | 1  | 30   | 19 November 2024 | 26 October 2024 | 0.0             | 
100.0         | 0.0      | 0.0  | 0.0       | 100.0 | 100.0 | 100.0      | 0.0  
| 0.0         |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted |
+      | 20 October 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 22 October 2024  | Repayment        | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 0.0          | true     |
+      | 26 October 2024  | Repayment        | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 0.0          | false    |
+  # Step 5: Second repayment reversal on 28 October
+    When Admin sets the business date to "28 October 2024"
+    And Customer makes a repayment undo on "26 October 2024"
+    Then Loan status will be "ACTIVE"
+    And Loan has 100 outstanding amount
+    Then Loan Repayment schedule has 1 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 |
+      |    |      | 20 October 2024  |           | 100.0           |           
    |          | 0.0  |           | 0.0   | 0.0  |            |      |          
   |
+      | 1  | 30   | 19 November 2024 |           | 0.0             | 100.0     
    | 0.0      | 0.0  | 0.0       | 100.0 | 0.0  | 0.0        | 0.0  | 100.0    
   |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted |
+      | 20 October 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 22 October 2024  | Repayment        | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 0.0          | true     |
+      | 26 October 2024  | Repayment        | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 0.0          | true     |
+  # Step 6: Add penalty charge on 28 October
+    When Admin adds "LOAN_NSF_FEE" due date charge with "28 October 2024" due 
date and 10 EUR transaction amount
+    Then Loan Repayment schedule has 1 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 |
+      |    |      | 20 October 2024  |           | 100.0           |           
    |          | 0.0  |           | 0.0   | 0.0  |            |      |          
   |
+      | 1  | 30   | 19 November 2024 |           | 0.0             | 100.0     
    | 0.0      | 0.0  | 10.0      | 110.0 | 0.0  | 0.0        | 0.0  | 110.0    
   |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due   | Paid | In 
advance | Late | Outstanding |
+      | 100.0         | 0.0      | 0.0  | 10.0      | 110.0 | 0.0  | 0.0       
 | 0.0  | 110.0       |
+  # Step 7: Backdated repayment on 26 October (while business date is 28 
October)
+    And Customer makes "AUTOPAY" repayment on "26 October 2024" with 101 EUR 
transaction amount
+    Then Loan Repayment schedule has 1 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 |
+      |    |      | 20 October 2024  |           | 100.0           |           
    |          | 0.0  |           | 0.0   | 0.0   |            |      |         
    |
+      | 1  | 30   | 19 November 2024 |           | 0.0             | 100.0     
    | 0.0      | 0.0  | 10.0      | 110.0 | 101.0 | 101.0      | 0.0  | 9.0     
    |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due   | Paid  | In 
advance | Late | Outstanding |
+      | 100.0         | 0.0      | 0.0  | 10.0      | 110.0 | 101.0 | 101.0    
  | 0.0  | 9.0         |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted |
+      | 20 October 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    |
+      | 22 October 2024  | Repayment        | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 0.0          | true     |
+      | 26 October 2024  | Repayment        | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 0.0          | true     |
+      | 26 October 2024  | Repayment        | 101.0  | 100.0     | 0.0      | 
0.0  | 1.0       | 0.0          | false    |
\ No newline at end of file

Reply via email to