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 4e8fc2c0a FINERACT-2070: E2E testcase migration - feature files - pt6
4e8fc2c0a is described below

commit 4e8fc2c0a88c7c43995238caca237b490acf2a86
Author: Peter Kovacs <[email protected]>
AuthorDate: Wed Nov 13 10:03:15 2024 +0100

    FINERACT-2070: E2E testcase migration - feature files - pt6
---
 .../test/stepdef/common/BatchApiStepDef.java       |   9 +-
 .../fineract/test/stepdef/common/UserStepDef.java  |   8 +-
 .../test/stepdef/loan/LoanDelinquencyStepDef.java  |   9 +-
 .../test/stepdef/loan/LoanRepaymentStepDef.java    |  10 +-
 .../fineract/test/stepdef/loan/LoanStepDef.java    | 287 +++++++-----
 .../test/resources/features/EMICalculation.feature | 505 ++++++++++++++++++++-
 .../src/test/resources/features/Loan.feature       |  88 ++++
 7 files changed, 767 insertions(+), 149 deletions(-)

diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BatchApiStepDef.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BatchApiStepDef.java
index fde636e62..92e4493c2 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BatchApiStepDef.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/BatchApiStepDef.java
@@ -64,7 +64,6 @@ import org.apache.fineract.client.services.ClientApi;
 import org.apache.fineract.client.services.LoansApi;
 import org.apache.fineract.client.services.UsersApi;
 import org.apache.fineract.client.util.JSON;
-import org.apache.fineract.test.api.ApiProperties;
 import org.apache.fineract.test.data.ChargeProductType;
 import org.apache.fineract.test.data.LoanRescheduleErrorMessage;
 import org.apache.fineract.test.data.LoanStatus;
@@ -118,6 +117,7 @@ public class BatchApiStepDef extends AbstractStepDef {
     private static final Integer ERROR_HTTP_404 = 404;
     private static final String ERROR_DEVELOPER_MESSAGE_CLIENT = "Client with 
identifier null does not exist";
     private static final String ERROR_DEVELOPER_MESSAGE_LOAN_EXTERNAL = "Loan 
with external identifier {externalId} does not exist";
+    private static final String PWD_USER_WITH_ROLE = "1234567890Aa!";
 
     @Autowired
     private BatchApiApi batchApiApi;
@@ -140,9 +140,6 @@ public class BatchApiStepDef extends AbstractStepDef {
     @Autowired
     private UsersApi usersApi;
 
-    @Autowired
-    private ApiProperties apiProperties;
-
     @When("Batch API sample call ran")
     public void runSampleBatchApiCall() throws IOException {
         List<BatchRequest> requestList = new ArrayList<>();
@@ -473,7 +470,7 @@ public class BatchApiStepDef extends AbstractStepDef {
         Long createdUserId = createUserResponse.body().getResourceId();
         Response<GetUsersUserIdResponse> user = 
usersApi.retrieveOne31(createdUserId).execute();
         ErrorHelper.checkSuccessfulApiCall(user);
-        String authorizationString = user.body().getUsername() + ":" + 
apiProperties.getStrongPassword();
+        String authorizationString = user.body().getUsername() + ":" + 
PWD_USER_WITH_ROLE;
         Base64 base64 = new Base64();
         headerMap.put("Authorization",
                 "Basic " + new 
String(base64.encode(authorizationString.getBytes(StandardCharsets.UTF_8)), 
StandardCharsets.UTF_8));
@@ -533,7 +530,7 @@ public class BatchApiStepDef extends AbstractStepDef {
         Long createdUserId = createUserResponse.body().getResourceId();
         Response<GetUsersUserIdResponse> user = 
usersApi.retrieveOne31(createdUserId).execute();
         ErrorHelper.checkSuccessfulApiCall(user);
-        String authorizationString = user.body().getUsername() + ":" + 
apiProperties.getStrongPassword();
+        String authorizationString = user.body().getUsername() + ":" + 
PWD_USER_WITH_ROLE;
         Base64 base64 = new Base64();
         headerMap.put("Authorization",
                 "Basic " + new 
String(base64.encode(authorizationString.getBytes(StandardCharsets.UTF_8)), 
StandardCharsets.UTF_8));
diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/UserStepDef.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/UserStepDef.java
index a4606f568..2c424b237 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/UserStepDef.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/common/UserStepDef.java
@@ -32,7 +32,6 @@ import 
org.apache.fineract.client.models.PutRolesRoleIdPermissionsRequest;
 import org.apache.fineract.client.models.PutRolesRoleIdPermissionsResponse;
 import org.apache.fineract.client.services.RolesApi;
 import org.apache.fineract.client.services.UsersApi;
-import org.apache.fineract.test.api.ApiProperties;
 import org.apache.fineract.test.helper.ErrorHelper;
 import org.apache.fineract.test.helper.Utils;
 import org.apache.fineract.test.stepdef.AbstractStepDef;
@@ -50,8 +49,7 @@ public class UserStepDef extends AbstractStepDef {
     @Autowired
     private UsersApi usersApi;
 
-    @Autowired
-    private ApiProperties apiProperties;
+    private static final String PWD_USER_WITH_ROLE = "1234567890Aa!";
 
     @When("Admin creates new user with {string} username, {string} role name 
and given permissions:")
     public void createUserWithUsernameAndRoles(String username, String 
roleName, List<String> permissions) throws IOException {
@@ -76,8 +74,8 @@ public class UserStepDef extends AbstractStepDef {
                 .lastname(username) //
                 .sendPasswordToEmail(Boolean.FALSE) //
                 .officeId(1L) //
-                .password(apiProperties.getStrongPassword()) //
-                .repeatPassword(apiProperties.getStrongPassword()) //
+                .password(PWD_USER_WITH_ROLE) //
+                .repeatPassword(PWD_USER_WITH_ROLE) //
                 .roles(List.of(roleId));
 
         Response<PostUsersResponse> createUserResponse = 
usersApi.create15(postUsersRequest).execute();
diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanDelinquencyStepDef.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanDelinquencyStepDef.java
index 707040b7d..3da1be530 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanDelinquencyStepDef.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanDelinquencyStepDef.java
@@ -54,7 +54,6 @@ import org.apache.fineract.client.models.PostUsersResponse;
 import org.apache.fineract.client.services.LoansApi;
 import org.apache.fineract.client.services.UsersApi;
 import org.apache.fineract.client.util.JSON;
-import org.apache.fineract.test.api.ApiProperties;
 import org.apache.fineract.test.data.DelinquencyRange;
 import org.apache.fineract.test.data.LoanStatus;
 import org.apache.fineract.test.helper.ErrorHelper;
@@ -75,6 +74,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef {
     public static final String DEFAULT_LOCALE = "en";
     public static final DateTimeFormatter FORMATTER = 
DateTimeFormatter.ofPattern(DATE_FORMAT);
     private static final Gson GSON = new JSON().getGson();
+    private static final String PWD_USER_WITH_ROLE = "1234567890Aa!";
 
     @Autowired
     private LoansApi loansApi;
@@ -85,9 +85,6 @@ public class LoanDelinquencyStepDef extends AbstractStepDef {
     @Autowired
     private EventCheckHelper eventCheckHelper;
 
-    @Autowired
-    private ApiProperties apiProperties;
-
     @Autowired
     private UsersApi usersApi;
 
@@ -225,7 +222,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef 
{
         Long createdUserId = createUserResponse.body().getResourceId();
         Response<GetUsersUserIdResponse> user = 
usersApi.retrieveOne31(createdUserId).execute();
         ErrorHelper.checkSuccessfulApiCall(user);
-        String authorizationString = user.body().getUsername() + ":" + 
apiProperties.getStrongPassword();
+        String authorizationString = user.body().getUsername() + ":" + 
PWD_USER_WITH_ROLE;
         Base64 base64 = new Base64();
         headerMap.put("Authorization",
                 "Basic " + new 
String(base64.encode(authorizationString.getBytes(StandardCharsets.UTF_8)), 
StandardCharsets.UTF_8));
@@ -257,7 +254,7 @@ public class LoanDelinquencyStepDef extends AbstractStepDef 
{
         Long createdUserId = createUserResponse.body().getResourceId();
         Response<GetUsersUserIdResponse> user = 
usersApi.retrieveOne31(createdUserId).execute();
         ErrorHelper.checkSuccessfulApiCall(user);
-        String authorizationString = user.body().getUsername() + ":" + 
apiProperties.getStrongPassword();
+        String authorizationString = user.body().getUsername() + ":" + 
PWD_USER_WITH_ROLE;
         Base64 base64 = new Base64();
         headerMap.put("Authorization",
                 "Basic " + new 
String(base64.encode(authorizationString.getBytes(StandardCharsets.UTF_8)), 
StandardCharsets.UTF_8));
diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanRepaymentStepDef.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanRepaymentStepDef.java
index d33e60762..b8aea7c88 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanRepaymentStepDef.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanRepaymentStepDef.java
@@ -51,7 +51,6 @@ import org.apache.fineract.client.models.PostUsersResponse;
 import org.apache.fineract.client.services.LoanTransactionsApi;
 import org.apache.fineract.client.services.LoansApi;
 import org.apache.fineract.client.services.UsersApi;
-import org.apache.fineract.test.api.ApiProperties;
 import org.apache.fineract.test.data.TransactionType;
 import org.apache.fineract.test.data.paymenttype.DefaultPaymentType;
 import org.apache.fineract.test.data.paymenttype.PaymentTypeResolver;
@@ -78,6 +77,8 @@ public class LoanRepaymentStepDef extends AbstractStepDef {
     public static final String DEFAULT_RECEIPT_NB = "1234567890";
     public static final String DEFAULT_BANK_NB = "1234567890";
     public static final String DEFAULT_REPAYMENT_TYPE = "AUTOPAY";
+    private static final String PWD_USER_WITH_ROLE = "1234567890Aa!";
+
     @Autowired
     private LoanTransactionsApi loanTransactionsApi;
 
@@ -87,9 +88,6 @@ public class LoanRepaymentStepDef extends AbstractStepDef {
     @Autowired
     private EventAssertion eventAssertion;
 
-    @Autowired
-    private ApiProperties apiProperties;
-
     @Autowired
     private UsersApi usersApi;
 
@@ -161,7 +159,7 @@ public class LoanRepaymentStepDef extends AbstractStepDef {
         Long createdUserId = createUserResponse.body().getResourceId();
         Response<GetUsersUserIdResponse> user = 
usersApi.retrieveOne31(createdUserId).execute();
         ErrorHelper.checkSuccessfulApiCall(user);
-        String authorizationString = user.body().getUsername() + ":" + 
apiProperties.getStrongPassword();
+        String authorizationString = user.body().getUsername() + ":" + 
PWD_USER_WITH_ROLE;
         Base64 base64 = new Base64();
         headerMap.put("Authorization",
                 "Basic " + new 
String(base64.encode(authorizationString.getBytes(StandardCharsets.UTF_8)), 
StandardCharsets.UTF_8));
@@ -222,7 +220,7 @@ public class LoanRepaymentStepDef extends AbstractStepDef {
         Long createdUserId = createUserResponse.body().getResourceId();
         Response<GetUsersUserIdResponse> user = 
usersApi.retrieveOne31(createdUserId).execute();
         ErrorHelper.checkSuccessfulApiCall(user);
-        String authorizationString = user.body().getUsername() + ":" + 
apiProperties.getStrongPassword();
+        String authorizationString = user.body().getUsername() + ":" + 
PWD_USER_WITH_ROLE;
         Base64 base64 = new Base64();
         headerMap.put("Authorization",
                 "Basic " + new 
String(base64.encode(authorizationString.getBytes(StandardCharsets.UTF_8)), 
StandardCharsets.UTF_8));
diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
index 4b926aa7c..5e1b2b783 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanStepDef.java
@@ -85,6 +85,7 @@ import org.apache.fineract.client.services.LoansApi;
 import org.apache.fineract.client.util.JSON;
 import org.apache.fineract.test.data.AmortizationType;
 import org.apache.fineract.test.data.InterestCalculationPeriodTime;
+import org.apache.fineract.test.data.InterestRateFrequencyType;
 import org.apache.fineract.test.data.InterestType;
 import org.apache.fineract.test.data.LoanStatus;
 import org.apache.fineract.test.data.LoanTermFrequencyType;
@@ -401,6 +402,12 @@ public class LoanStepDef extends AbstractStepDef {
         createCustomizedLoan(data.get(1), true);
     }
 
+    @When("Admin creates a fully customized loan with 
interestRateFrequencyType and following data:")
+    public void createFullyCustomizedLoanWithinterestRateFrequencyType(final 
DataTable table) throws IOException {
+        final List<List<String>> data = table.asLists();
+        createFullyCustomizedLoanWithInterestRateFrequency(data.get(1));
+    }
+
     @When("Admin creates a fully customized loan with forced disabled 
downpayment with the following data:")
     public void 
createFullyCustomizedLoanWithForcedDisabledDownpayment(DataTable table) throws 
IOException {
         List<List<String>> data = table.asLists();
@@ -409,13 +416,13 @@ public class LoanStepDef extends AbstractStepDef {
         String submitDate = loanData.get(1);
         String principal = loanData.get(2);
         BigDecimal interestRate = new BigDecimal(loanData.get(3));
-        String interestType = loanData.get(4);
-        String interestCalculationPeriod = loanData.get(5);
-        String amortizationType = loanData.get(6);
+        String interestTypeStr = loanData.get(4);
+        String interestCalculationPeriodStr = loanData.get(5);
+        String amortizationTypeStr = loanData.get(6);
         Integer loanTermFrequency = Integer.valueOf(loanData.get(7));
         String loanTermFrequencyType = loanData.get(8);
         Integer repaymentFrequency = Integer.valueOf(loanData.get(9));
-        String repaymentFrequencyType = loanData.get(10);
+        String repaymentFrequencyTypeStr = loanData.get(10);
         Integer numberOfRepayments = Integer.valueOf(loanData.get(11));
         Integer graceOnPrincipalPayment = Integer.valueOf(loanData.get(12));
         Integer graceOnInterestPayment = Integer.valueOf(loanData.get(13));
@@ -431,17 +438,17 @@ public class LoanStepDef extends AbstractStepDef {
         LoanTermFrequencyType termFrequencyType = 
LoanTermFrequencyType.valueOf(loanTermFrequencyType);
         Integer loanTermFrequencyTypeValue = termFrequencyType.getValue();
 
-        RepaymentFrequencyType repaymentFrequencyType1 = 
RepaymentFrequencyType.valueOf(repaymentFrequencyType);
-        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType1.getValue();
+        RepaymentFrequencyType repaymentFrequencyType = 
RepaymentFrequencyType.valueOf(repaymentFrequencyTypeStr);
+        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType.getValue();
 
-        InterestType interestType1 = InterestType.valueOf(interestType);
-        Integer interestTypeValue = interestType1.getValue();
+        InterestType interestType = InterestType.valueOf(interestTypeStr);
+        Integer interestTypeValue = interestType.getValue();
 
-        InterestCalculationPeriodTime interestCalculationPeriod1 = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriod);
-        Integer interestCalculationPeriodValue = 
interestCalculationPeriod1.getValue();
+        InterestCalculationPeriodTime interestCalculationPeriod = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriodStr);
+        Integer interestCalculationPeriodValue = 
interestCalculationPeriod.getValue();
 
-        AmortizationType amortizationType1 = 
AmortizationType.valueOf(amortizationType);
-        Integer amortizationTypeValue = amortizationType1.getValue();
+        AmortizationType amortizationType = 
AmortizationType.valueOf(amortizationTypeStr);
+        Integer amortizationTypeValue = amortizationType.getValue();
 
         TransactionProcessingStrategyCode processingStrategyCode = 
TransactionProcessingStrategyCode
                 .valueOf(transactionProcessingStrategyCode);
@@ -481,13 +488,13 @@ public class LoanStepDef extends AbstractStepDef {
         String submitDate = loanData.get(1);
         String principal = loanData.get(2);
         BigDecimal interestRate = new BigDecimal(loanData.get(3));
-        String interestType = loanData.get(4);
-        String interestCalculationPeriod = loanData.get(5);
-        String amortizationType = loanData.get(6);
+        String interestTypeStr = loanData.get(4);
+        String interestCalculationPeriodStr = loanData.get(5);
+        String amortizationTypeStr = loanData.get(6);
         Integer loanTermFrequency = Integer.valueOf(loanData.get(7));
         String loanTermFrequencyType = loanData.get(8);
         Integer repaymentFrequency = Integer.valueOf(loanData.get(9));
-        String repaymentFrequencyType = loanData.get(10);
+        String repaymentFrequencyTypeStr = loanData.get(10);
         Integer numberOfRepayments = Integer.valueOf(loanData.get(11));
         Integer graceOnPrincipalPayment = Integer.valueOf(loanData.get(12));
         Integer graceOnInterestPayment = Integer.valueOf(loanData.get(13));
@@ -503,17 +510,17 @@ public class LoanStepDef extends AbstractStepDef {
         LoanTermFrequencyType termFrequencyType = 
LoanTermFrequencyType.valueOf(loanTermFrequencyType);
         Integer loanTermFrequencyTypeValue = termFrequencyType.getValue();
 
-        RepaymentFrequencyType repaymentFrequencyType1 = 
RepaymentFrequencyType.valueOf(repaymentFrequencyType);
-        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType1.getValue();
+        RepaymentFrequencyType repaymentFrequencyType = 
RepaymentFrequencyType.valueOf(repaymentFrequencyTypeStr);
+        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType.getValue();
 
-        InterestType interestType1 = InterestType.valueOf(interestType);
-        Integer interestTypeValue = interestType1.getValue();
+        InterestType interestType = InterestType.valueOf(interestTypeStr);
+        Integer interestTypeValue = interestType.getValue();
 
-        InterestCalculationPeriodTime interestCalculationPeriod1 = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriod);
-        Integer interestCalculationPeriodValue = 
interestCalculationPeriod1.getValue();
+        InterestCalculationPeriodTime interestCalculationPeriod = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriodStr);
+        Integer interestCalculationPeriodValue = 
interestCalculationPeriod.getValue();
 
-        AmortizationType amortizationType1 = 
AmortizationType.valueOf(amortizationType);
-        Integer amortizationTypeValue = amortizationType1.getValue();
+        AmortizationType amortizationType = 
AmortizationType.valueOf(amortizationTypeStr);
+        Integer amortizationTypeValue = amortizationType.getValue();
 
         TransactionProcessingStrategyCode processingStrategyCode = 
TransactionProcessingStrategyCode
                 .valueOf(transactionProcessingStrategyCode);
@@ -559,13 +566,13 @@ public class LoanStepDef extends AbstractStepDef {
         String submitDate = loanData.get(1);
         String principal = loanData.get(2);
         BigDecimal interestRate = new BigDecimal(loanData.get(3));
-        String interestType = loanData.get(4);
-        String interestCalculationPeriod = loanData.get(5);
-        String amortizationType = loanData.get(6);
+        String interestTypeStr = loanData.get(4);
+        String interestCalculationPeriodStr = loanData.get(5);
+        String amortizationTypeStr = loanData.get(6);
         Integer loanTermFrequency = Integer.valueOf(loanData.get(7));
         String loanTermFrequencyType = loanData.get(8);
         Integer repaymentFrequency = Integer.valueOf(loanData.get(9));
-        String repaymentFrequencyType = loanData.get(10);
+        String repaymentFrequencyTypeStr = loanData.get(10);
         Integer numberOfRepayments = Integer.valueOf(loanData.get(11));
         Integer graceOnPrincipalPayment = Integer.valueOf(loanData.get(12));
         Integer graceOnInterestPayment = Integer.valueOf(loanData.get(13));
@@ -581,17 +588,17 @@ public class LoanStepDef extends AbstractStepDef {
         LoanTermFrequencyType termFrequencyType = 
LoanTermFrequencyType.valueOf(loanTermFrequencyType);
         Integer loanTermFrequencyTypeValue = termFrequencyType.getValue();
 
-        RepaymentFrequencyType repaymentFrequencyType1 = 
RepaymentFrequencyType.valueOf(repaymentFrequencyType);
-        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType1.getValue();
+        RepaymentFrequencyType repaymentFrequencyType = 
RepaymentFrequencyType.valueOf(repaymentFrequencyTypeStr);
+        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType.getValue();
 
-        InterestType interestType1 = InterestType.valueOf(interestType);
-        Integer interestTypeValue = interestType1.getValue();
+        InterestType interestType = InterestType.valueOf(interestTypeStr);
+        Integer interestTypeValue = interestType.getValue();
 
-        InterestCalculationPeriodTime interestCalculationPeriod1 = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriod);
-        Integer interestCalculationPeriodValue = 
interestCalculationPeriod1.getValue();
+        InterestCalculationPeriodTime interestCalculationPeriod = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriodStr);
+        Integer interestCalculationPeriodValue = 
interestCalculationPeriod.getValue();
 
-        AmortizationType amortizationType1 = 
AmortizationType.valueOf(amortizationType);
-        Integer amortizationTypeValue = amortizationType1.getValue();
+        AmortizationType amortizationType = 
AmortizationType.valueOf(amortizationTypeStr);
+        Integer amortizationTypeValue = amortizationType.getValue();
 
         TransactionProcessingStrategyCode processingStrategyCode = 
TransactionProcessingStrategyCode
                 .valueOf(transactionProcessingStrategyCode);
@@ -632,13 +639,13 @@ public class LoanStepDef extends AbstractStepDef {
         String submitDate = loanData.get(1);
         String principal = loanData.get(2);
         BigDecimal interestRate = new BigDecimal(loanData.get(3));
-        String interestType = loanData.get(4);
-        String interestCalculationPeriod = loanData.get(5);
-        String amortizationType = loanData.get(6);
+        String interestTypeStr = loanData.get(4);
+        String interestCalculationPeriodStr = loanData.get(5);
+        String amortizationTypeStr = loanData.get(6);
         Integer loanTermFrequency = Integer.valueOf(loanData.get(7));
         String loanTermFrequencyType = loanData.get(8);
         Integer repaymentFrequency = Integer.valueOf(loanData.get(9));
-        String repaymentFrequencyType = loanData.get(10);
+        String repaymentFrequencyTypeStr = loanData.get(10);
         Integer numberOfRepayments = Integer.valueOf(loanData.get(11));
         Integer graceOnPrincipalPayment = Integer.valueOf(loanData.get(12));
         Integer graceOnInterestPayment = Integer.valueOf(loanData.get(13));
@@ -654,17 +661,17 @@ public class LoanStepDef extends AbstractStepDef {
         LoanTermFrequencyType termFrequencyType = 
LoanTermFrequencyType.valueOf(loanTermFrequencyType);
         Integer loanTermFrequencyTypeValue = termFrequencyType.getValue();
 
-        RepaymentFrequencyType repaymentFrequencyType1 = 
RepaymentFrequencyType.valueOf(repaymentFrequencyType);
-        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType1.getValue();
+        RepaymentFrequencyType repaymentFrequencyType = 
RepaymentFrequencyType.valueOf(repaymentFrequencyTypeStr);
+        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType.getValue();
 
-        InterestType interestType1 = InterestType.valueOf(interestType);
-        Integer interestTypeValue = interestType1.getValue();
+        InterestType interestType = InterestType.valueOf(interestTypeStr);
+        Integer interestTypeValue = interestType.getValue();
 
-        InterestCalculationPeriodTime interestCalculationPeriod1 = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriod);
-        Integer interestCalculationPeriodValue = 
interestCalculationPeriod1.getValue();
+        InterestCalculationPeriodTime interestCalculationPeriod = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriodStr);
+        Integer interestCalculationPeriodValue = 
interestCalculationPeriod.getValue();
 
-        AmortizationType amortizationType1 = 
AmortizationType.valueOf(amortizationType);
-        Integer amortizationTypeValue = amortizationType1.getValue();
+        AmortizationType amortizationType = 
AmortizationType.valueOf(amortizationTypeStr);
+        Integer amortizationTypeValue = amortizationType.getValue();
 
         TransactionProcessingStrategyCode processingStrategyCode = 
TransactionProcessingStrategyCode
                 .valueOf(transactionProcessingStrategyCode);
@@ -705,13 +712,13 @@ public class LoanStepDef extends AbstractStepDef {
         String submitDate = loanData.get(1);
         String principal = loanData.get(2);
         BigDecimal interestRate = new BigDecimal(loanData.get(3));
-        String interestType = loanData.get(4);
-        String interestCalculationPeriod = loanData.get(5);
-        String amortizationType = loanData.get(6);
+        String interestTypeStr = loanData.get(4);
+        String interestCalculationPeriodStr = loanData.get(5);
+        String amortizationTypeStr = loanData.get(6);
         Integer loanTermFrequency = Integer.valueOf(loanData.get(7));
         String loanTermFrequencyType = loanData.get(8);
         Integer repaymentFrequency = Integer.valueOf(loanData.get(9));
-        String repaymentFrequencyType = loanData.get(10);
+        String repaymentFrequencyTypeStr = loanData.get(10);
         Integer numberOfRepayments = Integer.valueOf(loanData.get(11));
         Integer graceOnPrincipalPayment = Integer.valueOf(loanData.get(12));
         Integer graceOnInterestPayment = Integer.valueOf(loanData.get(13));
@@ -727,17 +734,17 @@ public class LoanStepDef extends AbstractStepDef {
         LoanTermFrequencyType termFrequencyType = 
LoanTermFrequencyType.valueOf(loanTermFrequencyType);
         Integer loanTermFrequencyTypeValue = termFrequencyType.getValue();
 
-        RepaymentFrequencyType repaymentFrequencyType1 = 
RepaymentFrequencyType.valueOf(repaymentFrequencyType);
-        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType1.getValue();
+        RepaymentFrequencyType repaymentFrequencyType = 
RepaymentFrequencyType.valueOf(repaymentFrequencyTypeStr);
+        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType.getValue();
 
-        InterestType interestType1 = InterestType.valueOf(interestType);
-        Integer interestTypeValue = interestType1.getValue();
+        InterestType interestType = InterestType.valueOf(interestTypeStr);
+        Integer interestTypeValue = interestType.getValue();
 
-        InterestCalculationPeriodTime interestCalculationPeriod1 = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriod);
-        Integer interestCalculationPeriodValue = 
interestCalculationPeriod1.getValue();
+        InterestCalculationPeriodTime interestCalculationPeriod = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriodStr);
+        Integer interestCalculationPeriodValue = 
interestCalculationPeriod.getValue();
 
-        AmortizationType amortizationType1 = 
AmortizationType.valueOf(amortizationType);
-        Integer amortizationTypeValue = amortizationType1.getValue();
+        AmortizationType amortizationType = 
AmortizationType.valueOf(amortizationTypeStr);
+        Integer amortizationTypeValue = amortizationType.getValue();
 
         TransactionProcessingStrategyCode processingStrategyCode = 
TransactionProcessingStrategyCode
                 .valueOf(transactionProcessingStrategyCode);
@@ -778,13 +785,13 @@ public class LoanStepDef extends AbstractStepDef {
         String submitDate = loanData.get(1);
         String principal = loanData.get(2);
         BigDecimal interestRate = new BigDecimal(loanData.get(3));
-        String interestType = loanData.get(4);
-        String interestCalculationPeriod = loanData.get(5);
-        String amortizationType = loanData.get(6);
+        String interestTypeStr = loanData.get(4);
+        String interestCalculationPeriodStr = loanData.get(5);
+        String amortizationTypeStr = loanData.get(6);
         Integer loanTermFrequency = Integer.valueOf(loanData.get(7));
         String loanTermFrequencyType = loanData.get(8);
         Integer repaymentFrequency = Integer.valueOf(loanData.get(9));
-        String repaymentFrequencyType = loanData.get(10);
+        String repaymentFrequencyTypeStr = loanData.get(10);
         Integer numberOfRepayments = Integer.valueOf(loanData.get(11));
         Integer graceOnPrincipalPayment = Integer.valueOf(loanData.get(12));
         Integer graceOnInterestPayment = Integer.valueOf(loanData.get(13));
@@ -800,17 +807,17 @@ public class LoanStepDef extends AbstractStepDef {
         LoanTermFrequencyType termFrequencyType = 
LoanTermFrequencyType.valueOf(loanTermFrequencyType);
         Integer loanTermFrequencyTypeValue = termFrequencyType.getValue();
 
-        RepaymentFrequencyType repaymentFrequencyType1 = 
RepaymentFrequencyType.valueOf(repaymentFrequencyType);
-        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType1.getValue();
+        RepaymentFrequencyType repaymentFrequencyType = 
RepaymentFrequencyType.valueOf(repaymentFrequencyTypeStr);
+        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType.getValue();
 
-        InterestType interestType1 = InterestType.valueOf(interestType);
-        Integer interestTypeValue = interestType1.getValue();
+        InterestType interestType = InterestType.valueOf(interestTypeStr);
+        Integer interestTypeValue = interestType.getValue();
 
-        InterestCalculationPeriodTime interestCalculationPeriod1 = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriod);
-        Integer interestCalculationPeriodValue = 
interestCalculationPeriod1.getValue();
+        InterestCalculationPeriodTime interestCalculationPeriod = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriodStr);
+        Integer interestCalculationPeriodValue = 
interestCalculationPeriod.getValue();
 
-        AmortizationType amortizationType1 = 
AmortizationType.valueOf(amortizationType);
-        Integer amortizationTypeValue = amortizationType1.getValue();
+        AmortizationType amortizationType = 
AmortizationType.valueOf(amortizationTypeStr);
+        Integer amortizationTypeValue = amortizationType.getValue();
 
         TransactionProcessingStrategyCode processingStrategyCode = 
TransactionProcessingStrategyCode
                 .valueOf(transactionProcessingStrategyCode);
@@ -859,13 +866,13 @@ public class LoanStepDef extends AbstractStepDef {
         String submitDate = loanData.get(1);
         String principal = loanData.get(2);
         BigDecimal interestRate = new BigDecimal(loanData.get(3));
-        String interestType = loanData.get(4);
-        String interestCalculationPeriod = loanData.get(5);
-        String amortizationType = loanData.get(6);
+        String interestTypeStr = loanData.get(4);
+        String interestCalculationPeriodStr = loanData.get(5);
+        String amortizationTypeStr = loanData.get(6);
         Integer loanTermFrequency = Integer.valueOf(loanData.get(7));
         String loanTermFrequencyType = loanData.get(8);
         Integer repaymentFrequency = Integer.valueOf(loanData.get(9));
-        String repaymentFrequencyType = loanData.get(10);
+        String repaymentFrequencyTypeStr = loanData.get(10);
         Integer numberOfRepayments = Integer.valueOf(loanData.get(11));
         Integer graceOnPrincipalPayment = Integer.valueOf(loanData.get(12));
         Integer graceOnInterestPayment = Integer.valueOf(loanData.get(13));
@@ -881,17 +888,17 @@ public class LoanStepDef extends AbstractStepDef {
         LoanTermFrequencyType termFrequencyType = 
LoanTermFrequencyType.valueOf(loanTermFrequencyType);
         Integer loanTermFrequencyTypeValue = termFrequencyType.getValue();
 
-        RepaymentFrequencyType repaymentFrequencyType1 = 
RepaymentFrequencyType.valueOf(repaymentFrequencyType);
-        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType1.getValue();
+        RepaymentFrequencyType repaymentFrequencyType = 
RepaymentFrequencyType.valueOf(repaymentFrequencyTypeStr);
+        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType.getValue();
 
-        InterestType interestType1 = InterestType.valueOf(interestType);
-        Integer interestTypeValue = interestType1.getValue();
+        InterestType interestType = InterestType.valueOf(interestTypeStr);
+        Integer interestTypeValue = interestType.getValue();
 
-        InterestCalculationPeriodTime interestCalculationPeriod1 = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriod);
-        Integer interestCalculationPeriodValue = 
interestCalculationPeriod1.getValue();
+        InterestCalculationPeriodTime interestCalculationPeriod = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriodStr);
+        Integer interestCalculationPeriodValue = 
interestCalculationPeriod.getValue();
 
-        AmortizationType amortizationType1 = 
AmortizationType.valueOf(amortizationType);
-        Integer amortizationTypeValue = amortizationType1.getValue();
+        AmortizationType amortizationType = 
AmortizationType.valueOf(amortizationTypeStr);
+        Integer amortizationTypeValue = amortizationType.getValue();
 
         TransactionProcessingStrategyCode processingStrategyCode = 
TransactionProcessingStrategyCode
                 .valueOf(transactionProcessingStrategyCode);
@@ -938,13 +945,13 @@ public class LoanStepDef extends AbstractStepDef {
         String submitDate = loanData.get(1);
         String principal = loanData.get(2);
         BigDecimal interestRate = new BigDecimal(loanData.get(3));
-        String interestType = loanData.get(4);
-        String interestCalculationPeriod = loanData.get(5);
-        String amortizationType = loanData.get(6);
+        String interestTypeStr = loanData.get(4);
+        String interestCalculationPeriodStr = loanData.get(5);
+        String amortizationTypeStr = loanData.get(6);
         Integer loanTermFrequency = Integer.valueOf(loanData.get(7));
         String loanTermFrequencyType = loanData.get(8);
         Integer repaymentFrequency = Integer.valueOf(loanData.get(9));
-        String repaymentFrequencyType = loanData.get(10);
+        String repaymentFrequencyTypeStr = loanData.get(10);
         Integer numberOfRepayments = Integer.valueOf(loanData.get(11));
         Integer graceOnPrincipalPayment = Integer.valueOf(loanData.get(12));
         Integer graceOnInterestPayment = Integer.valueOf(loanData.get(13));
@@ -960,17 +967,17 @@ public class LoanStepDef extends AbstractStepDef {
         LoanTermFrequencyType termFrequencyType = 
LoanTermFrequencyType.valueOf(loanTermFrequencyType);
         Integer loanTermFrequencyTypeValue = termFrequencyType.getValue();
 
-        RepaymentFrequencyType repaymentFrequencyType1 = 
RepaymentFrequencyType.valueOf(repaymentFrequencyType);
-        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType1.getValue();
+        RepaymentFrequencyType repaymentFrequencyType = 
RepaymentFrequencyType.valueOf(repaymentFrequencyTypeStr);
+        Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType.getValue();
 
-        InterestType interestType1 = InterestType.valueOf(interestType);
-        Integer interestTypeValue = interestType1.getValue();
+        InterestType interestType = InterestType.valueOf(interestTypeStr);
+        Integer interestTypeValue = interestType.getValue();
 
-        InterestCalculationPeriodTime interestCalculationPeriod1 = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriod);
-        Integer interestCalculationPeriodValue = 
interestCalculationPeriod1.getValue();
+        InterestCalculationPeriodTime interestCalculationPeriod = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriodStr);
+        Integer interestCalculationPeriodValue = 
interestCalculationPeriod.getValue();
 
-        AmortizationType amortizationType1 = 
AmortizationType.valueOf(amortizationType);
-        Integer amortizationTypeValue = amortizationType1.getValue();
+        AmortizationType amortizationType = 
AmortizationType.valueOf(amortizationTypeStr);
+        Integer amortizationTypeValue = amortizationType.getValue();
 
         TransactionProcessingStrategyCode processingStrategyCode = 
TransactionProcessingStrategyCode
                 .valueOf(transactionProcessingStrategyCode);
@@ -2548,13 +2555,13 @@ public class LoanStepDef extends AbstractStepDef {
         final String submitDate = loanData.get(1);
         final String principal = loanData.get(2);
         final BigDecimal interestRate = new BigDecimal(loanData.get(3));
-        final String interestType = loanData.get(4);
-        final String interestCalculationPeriod = loanData.get(5);
-        final String amortizationType = loanData.get(6);
+        final String interestTypeStr = loanData.get(4);
+        final String interestCalculationPeriodStr = loanData.get(5);
+        final String amortizationTypeStr = loanData.get(6);
         final Integer loanTermFrequency = Integer.valueOf(loanData.get(7));
         final String loanTermFrequencyType = loanData.get(8);
         final Integer repaymentFrequency = Integer.valueOf(loanData.get(9));
-        final String repaymentFrequencyType = loanData.get(10);
+        final String repaymentFrequencyTypeStr = loanData.get(10);
         final Integer numberOfRepayments = Integer.valueOf(loanData.get(11));
         final Integer graceOnPrincipalPayment = 
Integer.valueOf(loanData.get(12));
         final Integer graceOnInterestPayment = 
Integer.valueOf(loanData.get(13));
@@ -2570,17 +2577,17 @@ public class LoanStepDef extends AbstractStepDef {
         final LoanTermFrequencyType termFrequencyType = 
LoanTermFrequencyType.valueOf(loanTermFrequencyType);
         final Integer loanTermFrequencyTypeValue = 
termFrequencyType.getValue();
 
-        final RepaymentFrequencyType repaymentFrequencyType1 = 
RepaymentFrequencyType.valueOf(repaymentFrequencyType);
-        final Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType1.getValue();
+        final RepaymentFrequencyType repaymentFrequencyType = 
RepaymentFrequencyType.valueOf(repaymentFrequencyTypeStr);
+        final Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType.getValue();
 
-        final InterestType interestType1 = InterestType.valueOf(interestType);
-        final Integer interestTypeValue = interestType1.getValue();
+        final InterestType interestType = 
InterestType.valueOf(interestTypeStr);
+        final Integer interestTypeValue = interestType.getValue();
 
-        final InterestCalculationPeriodTime interestCalculationPeriod1 = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriod);
-        final Integer interestCalculationPeriodValue = 
interestCalculationPeriod1.getValue();
+        final InterestCalculationPeriodTime interestCalculationPeriod = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriodStr);
+        final Integer interestCalculationPeriodValue = 
interestCalculationPeriod.getValue();
 
-        final AmortizationType amortizationType1 = 
AmortizationType.valueOf(amortizationType);
-        final Integer amortizationTypeValue = amortizationType1.getValue();
+        final AmortizationType amortizationType = 
AmortizationType.valueOf(amortizationTypeStr);
+        final Integer amortizationTypeValue = amortizationType.getValue();
 
         final TransactionProcessingStrategyCode processingStrategyCode = 
TransactionProcessingStrategyCode
                 .valueOf(transactionProcessingStrategyCode);
@@ -2606,6 +2613,70 @@ public class LoanStepDef extends AbstractStepDef {
         eventCheckHelper.createLoanEventCheck(response);
     }
 
+    public void createFullyCustomizedLoanWithInterestRateFrequency(final 
List<String> loanData) throws IOException {
+        final String loanProduct = loanData.get(0);
+        final String submitDate = loanData.get(1);
+        final String principal = loanData.get(2);
+        final BigDecimal interestRate = new BigDecimal(loanData.get(3));
+        final String interestTypeStr = loanData.get(4);
+        final String interestCalculationPeriodStr = loanData.get(5);
+        final String amortizationTypeStr = loanData.get(6);
+        final Integer loanTermFrequency = Integer.valueOf(loanData.get(7));
+        final String loanTermFrequencyType = loanData.get(8);
+        final Integer repaymentFrequency = Integer.valueOf(loanData.get(9));
+        final String repaymentFrequencyTypeStr = loanData.get(10);
+        final Integer numberOfRepayments = Integer.valueOf(loanData.get(11));
+        final Integer graceOnPrincipalPayment = 
Integer.valueOf(loanData.get(12));
+        final Integer graceOnInterestPayment = 
Integer.valueOf(loanData.get(13));
+        final Integer graceOnInterestCharged = 
Integer.valueOf(loanData.get(14));
+        final String transactionProcessingStrategyCode = loanData.get(15);
+        final String interestRateFrequencyTypeStr = loanData.get(16);
+
+        final Response<PostClientsResponse> clientResponse = 
testContext().get(TestContextKey.CLIENT_CREATE_RESPONSE);
+        final Long clientId = clientResponse.body().getClientId();
+
+        final DefaultLoanProduct product = 
DefaultLoanProduct.valueOf(loanProduct);
+        final Long loanProductId = loanProductResolver.resolve(product);
+
+        final LoanTermFrequencyType termFrequencyType = 
LoanTermFrequencyType.valueOf(loanTermFrequencyType);
+        final Integer loanTermFrequencyTypeValue = 
termFrequencyType.getValue();
+
+        final RepaymentFrequencyType repaymentFrequencyType = 
RepaymentFrequencyType.valueOf(repaymentFrequencyTypeStr);
+        final Integer repaymentFrequencyTypeValue = 
repaymentFrequencyType.getValue();
+
+        final InterestType interestType = 
InterestType.valueOf(interestTypeStr);
+        final Integer interestTypeValue = interestType.getValue();
+
+        final InterestCalculationPeriodTime interestCalculationPeriod = 
InterestCalculationPeriodTime.valueOf(interestCalculationPeriodStr);
+        final Integer interestCalculationPeriodValue = 
interestCalculationPeriod.getValue();
+
+        final AmortizationType amortizationType = 
AmortizationType.valueOf(amortizationTypeStr);
+        final Integer amortizationTypeValue = amortizationType.getValue();
+
+        final TransactionProcessingStrategyCode processingStrategyCode = 
TransactionProcessingStrategyCode
+                .valueOf(transactionProcessingStrategyCode);
+        final String transactionProcessingStrategyCodeValue = 
processingStrategyCode.getValue();
+
+        InterestRateFrequencyType interestRateFrequencyType = 
InterestRateFrequencyType.valueOf(interestRateFrequencyTypeStr);
+        Integer interestRateFrequencyTypeValue = 
interestRateFrequencyType.value;
+
+        final PostLoansRequest loansRequest = 
loanRequestFactory.defaultLoansRequest(clientId).productId(loanProductId)
+                .principal(new 
BigDecimal(principal)).interestRatePerPeriod(interestRate).interestType(interestTypeValue)
+                
.interestCalculationPeriodType(interestCalculationPeriodValue).amortizationType(amortizationTypeValue)
+                
.loanTermFrequency(loanTermFrequency).loanTermFrequencyType(loanTermFrequencyTypeValue)
+                
.numberOfRepayments(numberOfRepayments).repaymentEvery(repaymentFrequency)
+                
.repaymentFrequencyType(repaymentFrequencyTypeValue).submittedOnDate(submitDate).expectedDisbursementDate(submitDate)
+                
.graceOnPrincipalPayment(graceOnPrincipalPayment).graceOnInterestPayment(graceOnInterestPayment)
+                
.graceOnInterestPayment(graceOnInterestCharged).transactionProcessingStrategyCode(transactionProcessingStrategyCodeValue)
+                .interestRateFrequencyType(interestRateFrequencyTypeValue);
+
+        final Response<PostLoansResponse> response = 
loansApi.calculateLoanScheduleOrSubmitLoanApplication(loansRequest, 
"").execute();
+        testContext().set(TestContextKey.LOAN_CREATE_RESPONSE, response);
+        ErrorHelper.checkSuccessfulApiCall(response);
+
+        eventCheckHelper.createLoanEventCheck(response);
+    }
+
     private void performLoanDisbursementAndVerifyStatus(final long loanId, 
final PostLoansLoanIdRequest disburseRequest)
             throws IOException {
         final Response<PostLoansLoanIdResponse> loanDisburseResponse = 
loansApi.stateTransitions(loanId, disburseRequest, "disburse")
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 66b8ac830..d3b738755 100644
--- 
a/fineract-e2e-tests-runner/src/test/resources/features/EMICalculation.feature
+++ 
b/fineract-e2e-tests-runner/src/test/resources/features/EMICalculation.feature
@@ -1367,11 +1367,11 @@ Feature: EMI calculation and repayment schedule checks 
for interest bearing loan
       | 15 February 2024 | Repayment        | 84.06  | 83.57     | 0.49     | 
0.0  | 0.0       | 0.0          | false    | false    |
     Then Loan's all installments have obligations met
 
-# TODO unskip and check when PS-2101 and PS-2070 is done
-  @Skip @TestRailId:C3213
+  @TestRailId:C3213
   Scenario: Verify the Pay-off transaction - UC3: 360/30, pre-close on overdue 
loan, preClosureInterestCalculationStrategy = till pre-close date
     When Admin sets the business date to "01 January 2024"
     When Admin creates a client with random data
+    When Admin set 
"LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE"
 loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future 
installment allocation rule
     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_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE
 | 01 January 2024   | 100            | 7                      | 
DECLINING_BALANCE | DAILY                       | EQUAL_INSTALLMENTS | 6        
         | MONTHS                | 1              | MONTHS                 | 6  
                | 0                       | 0                      | 0          
          | ADVANCED_PAYMENT_ALLOCATION |
@@ -1405,19 +1405,19 @@ Feature: EMI calculation and repayment schedule checks 
for interest bearing loan
       | 5  | 31   | 01 June 2024     | 15 February 2024 | 15.81           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 17.01 | 17.01      | 0.0  
 | 0.0         |
       | 6  | 30   | 01 July 2024     | 15 February 2024 | 0.0             | 
15.81         | 0.0      | 0.0  | 0.0       | 15.81 | 15.81 | 15.81      | 0.0  
 | 0.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.86     | 0.0  | 0.0       | 100.86 | 100.86 | 83.84  
    | 0.0  | 0.0         |
+      | Principal due | Interest | Fees | Penalties | Due    | Paid   | In 
advance | Late  | Outstanding |
+      | 100.0         | 0.86     | 0.0  | 0.0       | 100.86 | 100.86 | 83.85  
    | 17.01 | 0.0         |
     Then Loan Transactions tab has the following data:
       | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
       | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    | false    |
-      | 15 February 2024 | Repayment        | 83.84  | 83.57     | 0.27     | 
0.0  | 0.0       | 83.57        | false    | false    |
+      | 15 February 2024 | Repayment        | 100.86 | 100.0     | 0.86     | 
0.0  | 0.0       | 0.0          | false    | false    |
     Then Loan's all installments have obligations met
 
-# TODO unskip and check when PS-2101 and PS-2070 is done
-  @Skip @TestRailId:C3214
+  @TestRailId:C3214
   Scenario: Verify the Pay-off transaction - UC2: 360/30, pre-close on overdue 
loan, preClosureInterestCalculationStrategy = till rest frequency date
     When Admin sets the business date to "01 January 2024"
     When Admin creates a client with random data
+    When Admin set 
"LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_REST_FREQUENCY_DATE"
 loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future 
installment allocation rule
     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_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_REST_FREQUENCY_DATE
 | 01 January 2024   | 100            | 7                      | 
DECLINING_BALANCE | DAILY                       | EQUAL_INSTALLMENTS | 6        
         | MONTHS                | 1              | MONTHS                 | 6  
                | 0                       | 0                      | 0          
          | ADVANCED_PAYMENT_ALLOCATION |
@@ -1440,23 +1440,23 @@ Feature: EMI calculation and repayment schedule checks 
for interest bearing loan
       | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    | false    |
 #    --- Pay-off between 1st and 2nd installment, 1st installment is overdue 
---
     When Admin sets the business date to "15 February 2024"
-    When Loan Pay-off is made on "15 February 2024"
+    And Customer makes "AUTOPAY" repayment on "15 February 2024" with 101.11 
EUR transaction amount
     Then Loan Repayment schedule has 6 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 | 15 February 2024 | 83.57           | 
16.43         | 0.58     | 0.0  | 0.0       | 17.01 | 17.01 | 0.0        | 
17.01 | 0.0         |
-      | 2  | 29   | 01 March 2024    | 15 February 2024 | 67.05           | 
16.52         | 0.49     | 0.0  | 0.0       | 17.01 | 17.01 | 17.01      | 0.0  
 | 0.0         |
-      | 3  | 31   | 01 April 2024    | 15 February 2024 | 50.04           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 17.01 | 17.01      | 0.0  
 | 0.0         |
-      | 4  | 30   | 01 May 2024      | 15 February 2024 | 33.03           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 17.01 | 17.01      | 0.0  
 | 0.0         |
-      | 5  | 31   | 01 June 2024     | 15 February 2024 | 16.02           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 17.01 | 17.01      | 0.0  
 | 0.0         |
-      | 6  | 30   | 01 July 2024     | 15 February 2024 | 0.0             | 
16.02         | 0.0      | 0.0  | 0.0       | 16.02 | 16.02 | 16.02      | 0.0  
 | 0.0         |
+      | 2  | 29   | 01 March 2024    | 15 February 2024 | 67.09           | 
16.48         | 0.53     | 0.0  | 0.0       | 17.01 | 17.01 | 17.01      | 0.0  
 | 0.0         |
+      | 3  | 31   | 01 April 2024    | 15 February 2024 | 50.08           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 17.01 | 17.01      | 0.0  
 | 0.0         |
+      | 4  | 30   | 01 May 2024      | 15 February 2024 | 33.07           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 17.01 | 17.01      | 0.0  
 | 0.0         |
+      | 5  | 31   | 01 June 2024     | 15 February 2024 | 16.06           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 17.01 | 17.01      | 0.0  
 | 0.0         |
+      | 6  | 30   | 01 July 2024     | 15 February 2024 | 0.0             | 
16.06         | 0.0      | 0.0  | 0.0       | 16.06 | 16.06 | 16.06      | 0.0  
 | 0.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         | 1.07     | 0.0  | 0.0       | 101.07 | 101.07 | 84.06  
    | 0.0  | 0.0         |
+      | Principal due | Interest | Fees | Penalties | Due    | Paid   | In 
advance | Late  | Outstanding |
+      | 100.0         | 1.11     | 0.0  | 0.0       | 101.11 | 101.11 | 84.1   
    | 17.01 | 0.0         |
     Then Loan Transactions tab has the following data:
       | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
       | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    | false    |
-      | 15 February 2024 | Repayment        | 84.06  | 83.57     | 0.49     | 
0.0  | 0.0       | 83.57        | false    | false    |
+      | 15 February 2024 | Repayment        | 101.11 | 100.0     | 1.11     | 
0.0  | 0.0       | 0.0          | false    | false    |
     Then Loan's all installments have obligations met
 
 #    TODO unskip and check when PS-2037 is done
@@ -2933,6 +2933,56 @@ Feature: EMI calculation and repayment schedule checks 
for interest bearing loan
       | ASSET     | 112601       | Loans Receivable          | 100.0 |        |
       | LIABILITY | 145023       | Suspense/Clearing account |       | 100.0  |
 
+  @TestRailId:C3287
+  Scenario: Verify support of interest rate calculation with frequency Whole 
term  configured for progressive loan on loan account level
+    When Admin sets the business date to "01 January 2024"
+    When Admin creates a client with random data
+    When Admin creates a fully customized loan with interestRateFrequencyType 
and 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            | 
interestRateFrequencyType |
+      | 
LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE
 | 01 January 2024   | 100            | 4                      | 
DECLINING_BALANCE | DAILY                       | EQUAL_INSTALLMENTS | 4        
         | MONTHS                | 1              | MONTHS                 | 4  
                | 0                       | 0                      | 0          
          | ADVANCED_PAYMENT_ALLOCATION | WHOLE_TERM                |
+    And Admin successfully approves the loan on "01 January 2024" with "100" 
amount and expected disbursement date on "01 January 2024"
+    When Admin successfully disburse the loan on "01 January 2024" with "100" 
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  |           | 100.0           |           
    |          | 0.0  |           | 0.0   | 0.0  |            |      |          
   |
+      | 1  | 31   | 01 February 2024 |           | 75.37           | 24.63     
    | 1.0      | 0.0  | 0.0       | 25.63 | 0.0  | 0.0        | 0.0  | 25.63    
   |
+      | 2  | 29   | 01 March 2024    |           | 50.49           | 24.88     
    | 0.75     | 0.0  | 0.0       | 25.63 | 0.0  | 0.0        | 0.0  | 25.63    
   |
+      | 3  | 31   | 01 April 2024    |           | 25.36           | 25.13     
    | 0.5      | 0.0  | 0.0       | 25.63 | 0.0  | 0.0        | 0.0  | 25.63    
   |
+      | 4  | 30   | 01 May 2024      |           | 0.0             | 25.36     
    | 0.25     | 0.0  | 0.0       | 25.61 | 0.0  | 0.0        | 0.0  | 25.61    
   |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due    | Paid | In 
advance | Late | Outstanding |
+      | 100           | 2.50     | 0.0  | 0.0       | 102.50 | 0.0  | 0.0      
  | 0.0  | 102.50      |
+    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        |
+    Then Loan Transactions tab has a "DISBURSEMENT" transaction with date "01 
January 2024" which has the following Journal entries:
+      | Type      | Account code | Account name              | Debit | Credit |
+      | ASSET     | 112601       | Loans Receivable          | 100.0 |        |
+      | LIABILITY | 145023       | Suspense/Clearing account |       | 100.0  |
+#  -- create other progressive loan with 12% interest rate and frequency 
PerYear to check that data should match for both loans
+    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_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE
 | 01 January 2024   | 100            | 12                     | 
DECLINING_BALANCE | DAILY                       | EQUAL_INSTALLMENTS | 4        
         | MONTHS                | 1              | MONTHS                 | 4  
                | 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"
+    When Admin successfully disburse the loan on "01 January 2024" with "100" 
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  |           | 100.0           |           
    |          | 0.0  |           | 0.0   | 0.0  |            |      |          
   |
+      | 1  | 31   | 01 February 2024 |           | 75.37           | 24.63     
    | 1.0      | 0.0  | 0.0       | 25.63 | 0.0  | 0.0        | 0.0  | 25.63    
   |
+      | 2  | 29   | 01 March 2024    |           | 50.49           | 24.88     
    | 0.75     | 0.0  | 0.0       | 25.63 | 0.0  | 0.0        | 0.0  | 25.63    
   |
+      | 3  | 31   | 01 April 2024    |           | 25.36           | 25.13     
    | 0.5      | 0.0  | 0.0       | 25.63 | 0.0  | 0.0        | 0.0  | 25.63    
   |
+      | 4  | 30   | 01 May 2024      |           | 0.0             | 25.36     
    | 0.25     | 0.0  | 0.0       | 25.61 | 0.0  | 0.0        | 0.0  | 25.61    
   |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due    | Paid | In 
advance | Late | Outstanding |
+      | 100           | 2.50     | 0.0  | 0.0       | 102.50 | 0.0  | 0.0      
  | 0.0  | 102.50      |
+    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        |
+    Then Loan Transactions tab has a "DISBURSEMENT" transaction with date "01 
January 2024" which has the following Journal entries:
+      | Type      | Account code | Account name              | Debit | Credit |
+      | ASSET     | 112601       | Loans Receivable          | 100.0 |        |
+      | LIABILITY | 145023       | Suspense/Clearing account |       | 100.0  |
+
   @TestRailId:C3245
   Scenario: Verify Interest recalculation - daily for overdue loan - UC1: 
360/30, pre-close on overdue loan, preClosureInterestCalculationStrategy = till 
pre-close date
     When Admin sets the business date to "01 January 2024"
@@ -3735,7 +3785,7 @@ Feature: EMI calculation and repayment schedule checks 
for interest bearing loan
     When Admin sets the business date to "20 January 2024"
     When Admin creates and approves Loan reschedule with the following data:
       | rescheduleFromDate | submittedOnDate | adjustedDueDate | 
graceOnPrincipal | graceOnInterest | extraTerms | newInterestRate |
-      | 01 March 2024   | 20 January 2024 |                 |                  
|                 |            | 4               |
+      | 01 March 2024      | 20 January 2024 |                 |               
   |                 |            | 4               |
     Then Loan Repayment schedule has 6 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   |            |      |   
          |
@@ -3973,7 +4023,7 @@ Feature: EMI calculation and repayment schedule checks 
for interest bearing loan
       | 3  | 31   | 01 April 2024    | 09 February 2024 | 244.38          | 
254.94        | 0.0      | 0.0  | 0.0       | 254.94 | 254.94 | 254.94     | 
0.0  | 0.0         |
       | 4  | 30   | 01 May 2024      | 09 February 2024 | 0.0             | 
244.38        | 0.0      | 0.0  | 0.0       | 244.38 | 244.38 | 244.38     | 
0.0  | 0.0         |
     Then Loan Repayment schedule has the following data in Total row:
-      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late | Outstanding |
+      | Principal due | Interest | Fees | Penalties | Due    | Paid   | In 
advance | Late | Outstanding |
       | 1000.0        | 9.2      | 0.0  | 0.0       | 1009.2 | 1009.2 | 754.26 
    | 0.0  | 0.0         |
     Then Loan Transactions tab has the following data:
       | Transaction date | Transaction Type       | Amount | Principal | 
Interest | Fees | Penalties | Loan Balance | Reverted | Replayed |
@@ -3985,3 +4035,422 @@ Feature: EMI calculation and repayment schedule checks 
for interest bearing loan
       | 10 February 2024 | Credit Balance Refund  | 255.14 | 0.0       | 0.0   
   | 0.0  | 0.0       | 0.0          | false    | false    |
       | 10 February 2024 | Accrual                | 9.2    | 0.0       | 9.2   
   | 0.0  | 0.0       | 0.0          | false    | false    |
     Then Loan status will be "CLOSED_OBLIGATIONS_MET"
+
+  @TestRailId:C3277
+  Scenario: UC6 - Single disbursement, partial refund within first installment 
period
+    When Admin sets the business date to "01 January 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_ADV_PYMNT_INTEREST_DAILY_EMI_ACTUAL_ACTUAL_INTEREST_REFUND_FULL | 
01 January 2024   | 1000           | 9.9                    | DECLINING_BALANCE 
| DAILY                       | EQUAL_INSTALLMENTS | 4                 | MONTHS 
               | 1              | MONTHS                 | 4                  | 
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"
+    When 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  | 31   | 01 February 2024 |           | 753.25          | 246.75    
    | 8.39     | 0.0  | 0.0       | 255.14 | 0.0  | 0.0        | 0.0  | 255.14  
    |
+      | 2  | 29   | 01 March 2024    |           | 504.02          | 249.23    
    | 5.91     | 0.0  | 0.0       | 255.14 | 0.0  | 0.0        | 0.0  | 255.14  
    |
+      | 3  | 31   | 01 April 2024    |           | 253.11          | 250.91    
    | 4.23     | 0.0  | 0.0       | 255.14 | 0.0  | 0.0        | 0.0  | 255.14  
    |
+      | 4  | 30   | 01 May 2024      |           | 0.0             | 253.11    
    | 2.05     | 0.0  | 0.0       | 255.16 | 0.0  | 0.0        | 0.0  | 255.16  
    |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid | In 
advance | Late | Outstanding |
+      | 1000.0        | 20.58    | 0.0  | 0.0       | 1020.58 | 0.0  | 0.0     
   | 0.0  | 1020.58     |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 1000.0 | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+    When Admin sets the business date to "14 February 2024"
+    When Customer makes "PAYOUT_REFUND" transaction with "AUTOPAY" payment 
type on "14 February 2024" with 500 EUR transaction amount and system-generated 
Idempotency key
+    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  | 31   | 01 February 2024 | 14 February 2024 | 753.25          | 
246.75        | 8.39     | 0.0  | 0.0       | 255.14 | 255.14 | 0.0        | 
255.14 | 0.0         |
+      | 2  | 29   | 01 March 2024    |                  | 498.11          | 
255.14        | 0.0      | 0.0  | 0.0       | 255.14 | 250.81 | 250.81     | 
0.0    | 4.33        |
+      | 3  | 31   | 01 April 2024    |                  | 252.83          | 
245.28        | 9.86     | 0.0  | 0.0       | 255.14 | 0.0    | 0.0        | 
0.0    | 255.14      |
+      | 4  | 30   | 01 May 2024      |                  | 0.0             | 
252.83        | 2.05     | 0.0  | 0.0       | 254.88 | 0.0    | 0.0        | 
0.0    | 254.88      |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid   | In 
advance | Late   | Outstanding |
+      | 1000.0        | 20.30    | 0.0  | 0.0       | 1020.30 | 505.95 | 
250.81     | 255.14 | 514.35      |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 1000.0 | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+      | 14 February 2024 | Payout Refund    | 500.0  | 491.61    | 8.39     | 
0.0  | 0.0       | 508.39       | false    | false    |
+      | 14 February 2024 | Interest Refund  | 5.95   | 5.95      | 0.0      | 
0.0  | 0.0       | 502.44       | false    | false    |
+    When Admin sets the business date to "01 March 2024"
+    And Customer makes "AUTOPAY" repayment on "01 March 2024" with 4.33 EUR 
transaction amount
+    When Admin sets the business date to "01 April 2024"
+    And Customer makes "AUTOPAY" repayment on "01 April 2024" with 255.14 EUR 
transaction amount
+    When Admin sets the business date to "01 May 2024"
+    And Customer makes "AUTOPAY" repayment on "01 May 2024" with 254.88 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  | 31   | 01 February 2024 | 14 February 2024 | 753.25          | 
246.75        | 8.39     | 0.0  | 0.0       | 255.14 | 255.14 | 0.0        | 
255.14 | 0.0         |
+      | 2  | 29   | 01 March 2024    | 01 March 2024    | 498.11          | 
255.14        | 0.0      | 0.0  | 0.0       | 255.14 | 255.14 | 250.81     | 
0.0    | 0.0         |
+      | 3  | 31   | 01 April 2024    | 01 April 2024    | 252.83          | 
245.28        | 9.86     | 0.0  | 0.0       | 255.14 | 255.14 | 0.0        | 
0.0    | 0.0         |
+      | 4  | 30   | 01 May 2024      | 01 May 2024      | 0.0             | 
252.83        | 2.05     | 0.0  | 0.0       | 254.88 | 254.88 | 0.0        | 
0.0    | 0.0         |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late   | Outstanding |
+      | 1000.0        | 20.30    | 0.0  | 0.0       | 1020.30 | 1020.30 | 
250.81     | 255.14 | 0.0         |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 1000.0 | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+      | 14 February 2024 | Payout Refund    | 500.0  | 491.61    | 8.39     | 
0.0  | 0.0       | 508.39       | false    | false    |
+      | 14 February 2024 | Interest Refund  | 5.95   | 5.95      | 0.0      | 
0.0  | 0.0       | 502.44       | false    | false    |
+      | 01 March 2024    | Repayment        | 4.33   | 4.33      | 0.0      | 
0.0  | 0.0       | 498.11       | false    | false    |
+      | 01 April 2024    | Repayment        | 255.14 | 245.28    | 9.86     | 
0.0  | 0.0       | 252.83       | false    | false    |
+      | 01 May 2024      | Repayment        | 254.88 | 252.83    | 2.05     | 
0.0  | 0.0       | 0.0          | false    | false    |
+    Then Loan status will be "CLOSED_OBLIGATIONS_MET"
+
+
+  @TestRailId:C3278
+  Scenario: UC7 - Single disbursement, partial refund after first installment 
period
+    When Admin sets the business date to "01 January 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_ADV_PYMNT_INTEREST_DAILY_EMI_ACTUAL_ACTUAL_INTEREST_REFUND_FULL | 
01 January 2024   | 1000           | 9.9                    | DECLINING_BALANCE 
| DAILY                       | EQUAL_INSTALLMENTS | 4                 | MONTHS 
               | 1              | MONTHS                 | 4                  | 
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"
+    When Admin successfully disburse the loan on "01 January 2024" with "1000" 
EUR transaction amount
+    When Admin sets the business date to "01 February 2024"
+    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  | 31   | 01 February 2024 |           | 753.25          | 246.75    
    | 8.39     | 0.0  | 0.0       | 255.14 | 0.0  | 0.0        | 0.0  | 255.14  
    |
+      | 2  | 29   | 01 March 2024    |           | 504.02          | 249.23    
    | 5.91     | 0.0  | 0.0       | 255.14 | 0.0  | 0.0        | 0.0  | 255.14  
    |
+      | 3  | 31   | 01 April 2024    |           | 253.11          | 250.91    
    | 4.23     | 0.0  | 0.0       | 255.14 | 0.0  | 0.0        | 0.0  | 255.14  
    |
+      | 4  | 30   | 01 May 2024      |           | 0.0             | 253.11    
    | 2.05     | 0.0  | 0.0       | 255.16 | 0.0  | 0.0        | 0.0  | 255.16  
    |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid | In 
advance | Late | Outstanding |
+      | 1000.0        | 20.58    | 0.0  | 0.0       | 1020.58 | 0.0  | 0.0     
   | 0.0  | 1020.58     |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 1000.0 | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+    And Customer makes "AUTOPAY" repayment on "01 February 2024" with 255.14 
EUR transaction amount
+    When Admin sets the business date to "09 February 2024"
+    When Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" 
payment type on "09 February 2024" with 500 EUR transaction amount and 
system-generated Idempotency key
+    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  | 31   | 01 February 2024 | 01 February 2024 | 753.25          | 
246.75        | 8.39     | 0.0  | 0.0       | 255.14 | 255.14 | 0.0        | 
0.0  | 0.0         |
+      | 2  | 29   | 01 March 2024    | 09 February 2024 | 499.74          | 
253.51        | 1.63     | 0.0  | 0.0       | 255.14 | 255.14 | 255.14     | 
0.0  | 0.0         |
+      | 3  | 31   | 01 April 2024    |                  | 248.11          | 
251.63        | 3.51     | 0.0  | 0.0       | 255.14 | 250.15 | 250.15     | 
0.0  | 4.99        |
+      | 4  | 30   | 01 May 2024      |                  | 0.0             | 
248.11        | 2.01     | 0.0  | 0.0       | 250.12 | 0.0    | 0.0        | 
0.0  | 250.12      |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid   | In 
advance | Late | Outstanding |
+      | 1000.0        | 15.54    | 0.0  | 0.0       | 1015.54 | 760.43 | 
505.29     | 0.0  | 255.11      |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type       | Amount | Principal | 
Interest | Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement           | 1000.0 | 0.0       | 0.0   
   | 0.0  | 0.0       | 1000.0       | false    | false    |
+      | 01 February 2024 | Repayment              | 255.14 | 246.75    | 8.39  
   | 0.0  | 0.0       | 753.25       | false    | false    |
+      | 09 February 2024 | Merchant Issued Refund | 500.0  | 498.37    | 1.63  
   | 0.0  | 0.0       | 254.88       | false    | false    |
+      | 09 February 2024 | Interest Refund        | 5.29   | 5.29      | 0.0   
   | 0.0  | 0.0       | 249.59       | false    | false    |
+    When Admin sets the business date to "01 March 2024"
+    When Admin sets the business date to "01 April 2024"
+    And Customer makes "AUTOPAY" repayment on "01 April 2024" with 4.99 EUR 
transaction amount
+    When Admin sets the business date to "01 May 2024"
+    And Customer makes "AUTOPAY" repayment on "01 May 2024" with 250.12 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  | 31   | 01 February 2024 | 01 February 2024 | 753.25          | 
246.75        | 8.39     | 0.0  | 0.0       | 255.14 | 255.14 | 0.0        | 
0.0  | 0.0         |
+      | 2  | 29   | 01 March 2024    | 09 February 2024 | 499.74          | 
253.51        | 1.63     | 0.0  | 0.0       | 255.14 | 255.14 | 255.14     | 
0.0  | 0.0         |
+      | 3  | 31   | 01 April 2024    | 01 April 2024    | 248.11          | 
251.63        | 3.51     | 0.0  | 0.0       | 255.14 | 255.14 | 250.15     | 
0.0  | 0.0         |
+      | 4  | 30   | 01 May 2024      | 01 May 2024      | 0.0             | 
248.11        | 2.01     | 0.0  | 0.0       | 250.12 | 250.12 | 0.0        | 
0.0  | 0.0         |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late | Outstanding |
+      | 1000.0        | 15.54    | 0.0  | 0.0       | 1015.54 | 1015.54 | 
505.29     | 0.0  | 0.0         |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type       | Amount | Principal | 
Interest | Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement           | 1000.0 | 0.0       | 0.0   
   | 0.0  | 0.0       | 1000.0       | false    | false    |
+      | 01 February 2024 | Repayment              | 255.14 | 246.75    | 8.39  
   | 0.0  | 0.0       | 753.25       | false    | false    |
+      | 09 February 2024 | Merchant Issued Refund | 500.0  | 498.37    | 1.63  
   | 0.0  | 0.0       | 254.88       | false    | false    |
+      | 09 February 2024 | Interest Refund        | 5.29   | 5.29      | 0.0   
   | 0.0  | 0.0       | 249.59       | false    | false    |
+      | 01 April 2024    | Repayment              | 4.99   | 1.48      | 3.51  
   | 0.0  | 0.0       | 248.11       | false    | false    |
+      | 01 May 2024      | Repayment              | 250.12 | 248.11    | 2.01  
   | 0.0  | 0.0       | 0.0          | false    | false    |
+    Then Loan status will be "CLOSED_OBLIGATIONS_MET"
+
+  @TestRailId:C3279
+  Scenario: UC8 - Multi disbursements, same days, partial refund within first 
installment period
+    When Admin sets the business date to "01 January 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_ADV_PYMNT_INTEREST_DAILY_EMI_ACTUAL_ACTUAL_INTEREST_REFUND_FULL | 
01 January 2024   | 1000           | 9.9                    | DECLINING_BALANCE 
| DAILY                       | EQUAL_INSTALLMENTS | 4                 | MONTHS 
               | 1              | MONTHS                 | 4                  | 
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"
+    When Admin successfully disburse the loan on "01 January 2024" with "250" 
EUR transaction amount
+    When Admin successfully disburse the loan on "01 January 2024" with "750" 
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  |           | 250.0           |           
    |          | 0.0  |           | 0.0    | 0.0  |            |      |         
    |
+      |    |      | 01 January 2024  |           | 750.0           |           
    |          | 0.0  |           | 0.0    | 0.0  |            |      |         
    |
+      | 1  | 31   | 01 February 2024 |           | 753.25          | 246.75    
    | 8.39     | 0.0  | 0.0       | 255.14 | 0.0  | 0.0        | 0.0  | 255.14  
    |
+      | 2  | 29   | 01 March 2024    |           | 504.02          | 249.23    
    | 5.91     | 0.0  | 0.0       | 255.14 | 0.0  | 0.0        | 0.0  | 255.14  
    |
+      | 3  | 31   | 01 April 2024    |           | 253.11          | 250.91    
    | 4.23     | 0.0  | 0.0       | 255.14 | 0.0  | 0.0        | 0.0  | 255.14  
    |
+      | 4  | 30   | 01 May 2024      |           | 0.0             | 253.11    
    | 2.05     | 0.0  | 0.0       | 255.16 | 0.0  | 0.0        | 0.0  | 255.16  
    |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid | In 
advance | Late | Outstanding |
+      | 1000.0        | 20.58    | 0.0  | 0.0       | 1020.58 | 0.0  | 0.0     
   | 0.0  | 1020.58     |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 250.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 250.0        | false    | false    |
+      | 01 January 2024  | Disbursement     | 750.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+    When Admin sets the business date to "22 January 2024"
+    When Customer makes "PAYOUT_REFUND" transaction with "AUTOPAY" payment 
type on "22 January 2024" with 500 EUR transaction amount and system-generated 
Idempotency key
+    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  |                 | 250.0           |     
          |          | 0.0  |           | 0.0    | 0.0    |            |      | 
            |
+      |    |      | 01 January 2024  |                 | 750.0           |     
          |          | 0.0  |           | 0.0    | 0.0    |            |      | 
            |
+      | 1  | 31   | 01 February 2024 | 22 January 2024 | 750.54          | 
249.46        | 5.68     | 0.0  | 0.0       | 255.14 | 255.14 | 255.14     | 
0.0  | 0.0         |
+      | 2  | 29   | 01 March 2024    |                 | 500.7           | 
249.84        | 5.3      | 0.0  | 0.0       | 255.14 | 247.7  | 247.7      | 
0.0  | 7.44        |
+      | 3  | 31   | 01 April 2024    |                 | 249.76          | 
250.94        | 4.2      | 0.0  | 0.0       | 255.14 | 0.0    | 0.0        | 
0.0  | 255.14      |
+      | 4  | 30   | 01 May 2024      |                 | 0.0             | 
249.76        | 2.03     | 0.0  | 0.0       | 251.79 | 0.0    | 0.0        | 
0.0  | 251.79      |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid   | In 
advance | Late | Outstanding |
+      | 1000.0        | 17.21    | 0.0  | 0.0       | 1017.21 | 502.84 | 
502.84     | 0.0  | 514.37      |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 250.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 250.0        | false    | false    |
+      | 01 January 2024  | Disbursement     | 750.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+      | 22 January 2024  | Payout Refund    | 500.0  | 494.32    | 5.68     | 
0.0  | 0.0       | 505.68       | false    | false    |
+      | 22 January 2024  | Interest Refund  | 2.84   | 2.84      | 0.0      | 
0.0  | 0.0       | 502.84       | false    | false    |
+    When Admin sets the business date to "01 March 2024"
+    And Customer makes "AUTOPAY" repayment on "01 March 2024" with 7.44 EUR 
transaction amount
+    When Admin sets the business date to "01 April 2024"
+    And Customer makes "AUTOPAY" repayment on "01 April 2024" with 255.14 EUR 
transaction amount
+    When Admin sets the business date to "01 May 2024"
+    And Customer makes "AUTOPAY" repayment on "01 May 2024" with 251.79 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  |                 | 250.0           |     
          |          | 0.0  |           | 0.0    | 0.0    |            |      | 
            |
+      |    |      | 01 January 2024  |                 | 750.0           |     
          |          | 0.0  |           | 0.0    | 0.0    |            |      | 
            |
+      | 1  | 31   | 01 February 2024 | 22 January 2024 | 750.54          | 
249.46        | 5.68     | 0.0  | 0.0       | 255.14 | 255.14 | 255.14     | 
0.0  | 0.0         |
+      | 2  | 29   | 01 March 2024    | 01 March 2024   | 500.7           | 
249.84        | 5.3      | 0.0  | 0.0       | 255.14 | 255.14 | 247.7      | 
0.0  | 0.0         |
+      | 3  | 31   | 01 April 2024    | 01 April 2024   | 249.76          | 
250.94        | 4.2      | 0.0  | 0.0       | 255.14 | 255.14 | 0.0        | 
0.0  | 0.0         |
+      | 4  | 30   | 01 May 2024      | 01 May 2024     | 0.0             | 
249.76        | 2.03     | 0.0  | 0.0       | 251.79 | 251.79 | 0.0        | 
0.0  | 0.0         |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late | Outstanding |
+      | 1000.0        | 17.21    | 0.0  | 0.0       | 1017.21 | 1017.21 | 
502.84     | 0.0  | 0.0         |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 250.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 250.0        | false    | false    |
+      | 01 January 2024  | Disbursement     | 750.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+      | 22 January 2024  | Payout Refund    | 500.0  | 494.32    | 5.68     | 
0.0  | 0.0       | 505.68       | false    | false    |
+      | 22 January 2024  | Interest Refund  | 2.84   | 2.84      | 0.0      | 
0.0  | 0.0       | 502.84       | false    | false    |
+      | 01 March 2024    | Repayment        | 7.44   | 2.14      | 5.3      | 
0.0  | 0.0       | 500.7        | false    | false    |
+      | 01 April 2024    | Repayment        | 255.14 | 250.94    | 4.2      | 
0.0  | 0.0       | 249.76       | false    | false    |
+      | 01 May 2024      | Repayment        | 251.79 | 249.76    | 2.03     | 
0.0  | 0.0       | 0.0          | false    | false    |
+    Then Loan status will be "CLOSED_OBLIGATIONS_MET"
+
+  @TestRailId:C3280
+  Scenario: UC9 - Multi disbursements, different days, partial refund within 
first installment period
+    When Admin sets the business date to "01 January 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_ADV_PYMNT_INTEREST_DAILY_EMI_ACTUAL_ACTUAL_INTEREST_REFUND_FULL | 
01 January 2024   | 1000           | 9.9                    | DECLINING_BALANCE 
| DAILY                       | EQUAL_INSTALLMENTS | 4                 | MONTHS 
               | 1              | MONTHS                 | 4                  | 
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"
+    When Admin successfully disburse the loan on "01 January 2024" with "250" 
EUR transaction amount
+    When Admin sets the business date to "07 January 2024"
+    When Admin successfully disburse the loan on "07 January 2024" with "750" 
EUR transaction amount
+    When Admin sets the business date to "22 January 2024"
+    When Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" 
payment type on "22 January 2024" with 500 EUR transaction amount and 
system-generated Idempotency key
+    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  |                 | 250.0           |     
          |          | 0.0  |           | 0.0    | 0.0    |            |      | 
            |
+      |    |      | 07 January 2024  |                 | 750.0           |     
          |          | 0.0  |           | 0.0    | 0.0    |            |      | 
            |
+      | 1  | 31   | 01 February 2024 | 22 January 2024 | 749.64          | 
250.36        | 4.47     | 0.0  | 0.0       | 254.83 | 254.83 | 254.83     | 
0.0  | 0.0         |
+      | 2  | 29   | 01 March 2024    |                 | 500.11          | 
249.53        | 5.3      | 0.0  | 0.0       | 254.83 | 247.61 | 247.61     | 
0.0  | 7.22        |
+      | 3  | 31   | 01 April 2024    |                 | 249.47          | 
250.64        | 4.19     | 0.0  | 0.0       | 254.83 | 0.0    | 0.0        | 
0.0  | 254.83      |
+      | 4  | 30   | 01 May 2024      |                 | 0.0             | 
249.47        | 2.02     | 0.0  | 0.0       | 251.49 | 0.0    | 0.0        | 
0.0  | 251.49      |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid   | In 
advance | Late | Outstanding |
+      | 1000.0        | 15.98    | 0.0  | 0.0       | 1015.98 | 502.44 | 
502.44     | 0.0  | 513.54      |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type       | Amount | Principal | 
Interest | Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement           | 250.0  | 0.0       | 0.0   
   | 0.0  | 0.0       | 250.0        | false    | false    |
+      | 07 January 2024  | Disbursement           | 750.0  | 0.0       | 0.0   
   | 0.0  | 0.0       | 1000.0       | false    | false    |
+      | 22 January 2024  | Merchant Issued Refund | 500.0  | 495.53    | 4.47  
   | 0.0  | 0.0       | 504.47       | false    | false    |
+      | 22 January 2024  | Interest Refund        | 2.44   | 2.44      | 0.0   
   | 0.0  | 0.0       | 502.03       | false    | false    |
+    When Admin sets the business date to "01 March 2024"
+    And Customer makes "AUTOPAY" repayment on "01 March 2024" with 7.22 EUR 
transaction amount
+    When Admin sets the business date to "01 April 2024"
+    And Customer makes "AUTOPAY" repayment on "01 April 2024" with 254.83 EUR 
transaction amount
+    When Admin sets the business date to "01 May 2024"
+    And Customer makes "AUTOPAY" repayment on "01 May 2024" with 251.49 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  |                 | 250.0           |     
          |          | 0.0  |           | 0.0    | 0.0    |            |      | 
            |
+      |    |      | 07 January 2024  |                 | 750.0           |     
          |          | 0.0  |           | 0.0    | 0.0    |            |      | 
            |
+      | 1  | 31   | 01 February 2024 | 22 January 2024 | 749.64          | 
250.36        | 4.47     | 0.0  | 0.0       | 254.83 | 254.83 | 254.83     | 
0.0  | 0.0         |
+      | 2  | 29   | 01 March 2024    | 01 March 2024   | 500.11          | 
249.53        | 5.3      | 0.0  | 0.0       | 254.83 | 254.83 | 247.61     | 
0.0  | 0.0         |
+      | 3  | 31   | 01 April 2024    | 01 April 2024   | 249.47          | 
250.64        | 4.19     | 0.0  | 0.0       | 254.83 | 254.83 | 0.0        | 
0.0  | 0.0         |
+      | 4  | 30   | 01 May 2024      | 01 May 2024     | 0.0             | 
249.47        | 2.02     | 0.0  | 0.0       | 251.49 | 251.49 | 0.0        | 
0.0  | 0.0         |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late | Outstanding |
+      | 1000.0        | 15.98    | 0.0  | 0.0       | 1015.98 | 1015.98 | 
502.44     | 0.0  | 0.0         |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type       | Amount | Principal | 
Interest | Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement           | 250.0  | 0.0       | 0.0   
   | 0.0  | 0.0       | 250.0        | false    | false    |
+      | 07 January 2024  | Disbursement           | 750.0  | 0.0       | 0.0   
   | 0.0  | 0.0       | 1000.0       | false    | false    |
+      | 22 January 2024  | Merchant Issued Refund | 500.0  | 495.53    | 4.47  
   | 0.0  | 0.0       | 504.47       | false    | false    |
+      | 22 January 2024  | Interest Refund        | 2.44   | 2.44      | 0.0   
   | 0.0  | 0.0       | 502.03       | false    | false    |
+      | 01 March 2024    | Repayment              | 7.22   | 1.92      | 5.3   
   | 0.0  | 0.0       | 500.11       | false    | false    |
+      | 01 April 2024    | Repayment              | 254.83 | 250.64    | 4.19  
   | 0.0  | 0.0       | 249.47       | false    | false    |
+      | 01 May 2024      | Repayment              | 251.49 | 249.47    | 2.02  
   | 0.0  | 0.0       | 0.0          | false    | false    |
+    Then Loan status will be "CLOSED_OBLIGATIONS_MET"
+
+  @TestRailId:C3281
+  Scenario: UC10 - Multi disbursements, different days, partial refund after 
all installments are paid
+    When Admin sets the business date to "01 January 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_ADV_PYMNT_INTEREST_DAILY_EMI_ACTUAL_ACTUAL_INTEREST_REFUND_FULL | 
01 January 2024   | 1000           | 9.9                    | DECLINING_BALANCE 
| DAILY                       | EQUAL_INSTALLMENTS | 4                 | MONTHS 
               | 1              | MONTHS                 | 4                  | 
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"
+    When Admin successfully disburse the loan on "01 January 2024" with "250" 
EUR transaction amount
+    When Admin sets the business date to "07 January 2024"
+    When Admin successfully disburse the loan on "07 January 2024" with "750" 
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  |           | 250.0           |           
    |          | 0.0  |           | 0.0    | 0.0  |            |      |         
    |
+      |    |      | 07 January 2024  |           | 750.0           |           
    |          | 0.0  |           | 0.0    | 0.0  |            |      |         
    |
+      | 1  | 31   | 01 February 2024 |           | 752.34          | 247.66    
    | 7.17     | 0.0  | 0.0       | 254.83 | 0.0  | 0.0        | 0.0  | 254.83  
    |
+      | 2  | 29   | 01 March 2024    |           | 503.41          | 248.93    
    | 5.9      | 0.0  | 0.0       | 254.83 | 0.0  | 0.0        | 0.0  | 254.83  
    |
+      | 3  | 31   | 01 April 2024    |           | 252.8           | 250.61    
    | 4.22     | 0.0  | 0.0       | 254.83 | 0.0  | 0.0        | 0.0  | 254.83  
    |
+      | 4  | 30   | 01 May 2024      |           | 0.0             | 252.8     
    | 2.05     | 0.0  | 0.0       | 254.85 | 0.0  | 0.0        | 0.0  | 254.85  
    |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid | In 
advance | Late | Outstanding |
+      | 1000.0        | 19.34    | 0.0  | 0.0       | 1019.34 | 0.0  | 0.0     
   | 0.0  | 1019.34     |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 250.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 250.0        | false    | false    |
+      | 07 January 2024  | Disbursement     | 750.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+    When Admin sets the business date to "01 February 2024"
+    And Customer makes "AUTOPAY" repayment on "01 February 2024" with 254.83 
EUR transaction amount
+    When Admin sets the business date to "01 March 2024"
+    And Customer makes "AUTOPAY" repayment on "01 March 2024" with 254.83 EUR 
transaction amount
+    When Admin sets the business date to "01 April 2024"
+    And Customer makes "AUTOPAY" repayment on "01 April 2024" with 254.83 EUR 
transaction amount
+    When Admin sets the business date to "01 May 2024"
+    And Customer makes "AUTOPAY" repayment on "01 May 2024" with 254.85 EUR 
transaction amount
+    When Admin sets the business date to "10 May 2024"
+    When Customer makes "PAYOUT_REFUND" transaction with "AUTOPAY" payment 
type on "10 May 2024" with 500 EUR transaction amount and system-generated 
Idempotency key
+    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  |                  | 250.0           |    
           |          | 0.0  |           | 0.0    | 0.0    |            |      
|             |
+      |    |      | 07 January 2024  |                  | 750.0           |    
           |          | 0.0  |           | 0.0    | 0.0    |            |      
|             |
+      | 1  | 31   | 01 February 2024 | 01 February 2024 | 752.34          | 
247.66        | 7.17     | 0.0  | 0.0       | 254.83 | 254.83 | 0.0        | 
0.0  | 0.0         |
+      | 2  | 29   | 01 March 2024    | 01 March 2024    | 503.41          | 
248.93        | 5.9      | 0.0  | 0.0       | 254.83 | 254.83 | 0.0        | 
0.0  | 0.0         |
+      | 3  | 31   | 01 April 2024    | 01 April 2024    | 252.8           | 
250.61        | 4.22     | 0.0  | 0.0       | 254.83 | 254.83 | 0.0        | 
0.0  | 0.0         |
+      | 4  | 30   | 01 May 2024      | 01 May 2024      | 0.0             | 
252.8         | 2.05     | 0.0  | 0.0       | 254.85 | 254.85 | 0.0        | 
0.0  | 0.0         |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late | Outstanding |
+      | 1000.0        | 19.34    | 0.0  | 0.0       | 1019.34 | 1019.34 | 0.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 | Replayed |
+      | 01 January 2024  | Disbursement     | 250.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 250.0        | false    | false    |
+      | 07 January 2024  | Disbursement     | 750.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+      | 01 February 2024 | Repayment        | 254.83 | 247.66    | 7.17     | 
0.0  | 0.0       | 752.34       | false    | false    |
+      | 01 March 2024    | Repayment        | 254.83 | 248.93    | 5.9      | 
0.0  | 0.0       | 503.41       | false    | false    |
+      | 01 April 2024    | Repayment        | 254.83 | 250.61    | 4.22     | 
0.0  | 0.0       | 252.8        | false    | false    |
+      | 01 May 2024      | Repayment        | 254.85 | 252.8     | 2.05     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 10 May 2024      | Payout Refund    | 500.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 10 May 2024      | Interest Refund  | 14.01  | 0.0       | 0.0      | 
0.0  | 0.0       | 0.0          | false    | false    |
+    When Admin sets the business date to "11 May 2024"
+    When Admin makes Credit Balance Refund transaction on "11 May 2024" with 
514.01 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  |                  | 250.0           |    
           |          | 0.0  |           | 0.0    | 0.0    |            |      
|             |
+      |    |      | 07 January 2024  |                  | 750.0           |    
           |          | 0.0  |           | 0.0    | 0.0    |            |      
|             |
+      | 1  | 31   | 01 February 2024 | 01 February 2024 | 752.34          | 
247.66        | 7.17     | 0.0  | 0.0       | 254.83 | 254.83 | 0.0        | 
0.0  | 0.0         |
+      | 2  | 29   | 01 March 2024    | 01 March 2024    | 503.41          | 
248.93        | 5.9      | 0.0  | 0.0       | 254.83 | 254.83 | 0.0        | 
0.0  | 0.0         |
+      | 3  | 31   | 01 April 2024    | 01 April 2024    | 252.8           | 
250.61        | 4.22     | 0.0  | 0.0       | 254.83 | 254.83 | 0.0        | 
0.0  | 0.0         |
+      | 4  | 30   | 01 May 2024      | 01 May 2024      | 0.0             | 
252.8         | 2.05     | 0.0  | 0.0       | 254.85 | 254.85 | 0.0        | 
0.0  | 0.0         |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late | Outstanding |
+      | 1000.0        | 19.34    | 0.0  | 0.0       | 1019.34 | 1019.34 | 0.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 | Replayed |
+      | 01 January 2024  | Disbursement          | 250.0  | 0.0       | 0.0    
  | 0.0  | 0.0       | 250.0        | false    | false    |
+      | 07 January 2024  | Disbursement          | 750.0  | 0.0       | 0.0    
  | 0.0  | 0.0       | 1000.0       | false    | false    |
+      | 01 February 2024 | Repayment             | 254.83 | 247.66    | 7.17   
  | 0.0  | 0.0       | 752.34       | false    | false    |
+      | 01 March 2024    | Repayment             | 254.83 | 248.93    | 5.9    
  | 0.0  | 0.0       | 503.41       | false    | false    |
+      | 01 April 2024    | Repayment             | 254.83 | 250.61    | 4.22   
  | 0.0  | 0.0       | 252.8        | false    | false    |
+      | 01 May 2024      | Repayment             | 254.85 | 252.8     | 2.05   
  | 0.0  | 0.0       | 0.0          | false    | false    |
+      | 10 May 2024      | Payout Refund         | 500.0  | 0.0       | 0.0    
  | 0.0  | 0.0       | 0.0          | false    | false    |
+      | 10 May 2024      | Interest Refund       | 14.01  | 0.0       | 0.0    
  | 0.0  | 0.0       | 0.0          | false    | false    |
+      | 11 May 2024      | Credit Balance Refund | 514.01 | 0.0       | 0.0    
  | 0.0  | 0.0       | 0.0          | false    | false    |
+      | 11 May 2024      | Accrual               | 19.34  | 0.0       | 19.34  
  | 0.0  | 0.0       | 0.0          | false    | false    |
+    Then Loan status will be "CLOSED_OBLIGATIONS_MET"
+
+  @TestRailId:C3288
+  Scenario: Verify the recalculated EMI after interest rate change on the 
repayment schedule
+    Given Admin puts "LOAN_INTEREST_RECALCULATION" business step into 
LOAN_CLOSE_OF_BUSINESS workflow
+    When Admin sets the business date to "01 January 2024"
+    When Admin creates a client with random data
+    When Admin set 
"LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE"
 loan product "DEFAULT" transaction type to "NEXT_INSTALLMENT" future 
installment allocation rule
+    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_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_TILL_PRECLOSE
 | 01 January 2024   | 100            | 7                      | 
DECLINING_BALANCE | DAILY                       | EQUAL_INSTALLMENTS | 6        
         | MONTHS                | 1              | MONTHS                 | 6  
                | 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"
+    When Admin successfully disburse the loan on "01 January 2024" with "100" 
EUR transaction amount
+    When Admin runs inline COB job for Loan
+    When Admin sets the business date to "15 January 2024"
+    When Admin runs inline COB job for Loan
+    When Admin sets the business date to "01 February 2024"
+    When Admin runs inline COB job for Loan
+    And Customer makes "AUTOPAY" repayment on "01 February 2024" with 33.91 
EUR transaction amount
+    When Admin creates and approves Loan reschedule with the following data:
+      | rescheduleFromDate | submittedOnDate  | adjustedDueDate | 
graceOnPrincipal | graceOnInterest | extraTerms | newInterestRate |
+      | 02 February 2024   | 01 February 2024 |                 |              
    |                 |            | 4               |
+    When Admin runs inline COB job for Loan
+    When Admin sets the business date to "02 February 2024"
+    When Admin runs inline COB job for Loan
+    Then Admin sets back LOAN_CLOSE_OF_BUSINESS workflow to its initial state
+    Then Loan Repayment schedule has 6 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 | 01 February 2024 | 83.57           | 
16.43         | 0.58     | 0.0  | 0.0       | 17.01 | 17.01 | 0.0        | 0.0  
| 0.0         |
+      | 2  | 29   | 01 March 2024    |                  | 66.56           | 
17.01         | 0.0      | 0.0  | 0.0       | 17.01 | 16.9  | 16.9       | 0.0  
| 0.11        |
+      | 3  | 31   | 01 April 2024    |                  | 50.17           | 
16.39         | 0.44     | 0.0  | 0.0       | 16.83 | 0.0   | 0.0        | 0.0  
| 16.83       |
+      | 4  | 30   | 01 May 2024      |                  | 33.51           | 
16.66         | 0.17     | 0.0  | 0.0       | 16.83 | 0.0   | 0.0        | 0.0  
| 16.83       |
+      | 5  | 31   | 01 June 2024     |                  | 16.79           | 
16.72         | 0.11     | 0.0  | 0.0       | 16.83 | 0.0   | 0.0        | 0.0  
| 16.83       |
+      | 6  | 30   | 01 July 2024     |                  | 0.0             | 
16.79         | 0.06     | 0.0  | 0.0       | 16.85 | 0.0   | 0.0        | 0.0  
| 16.85       |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due    | Paid  | In 
advance | Late | Outstanding |
+      | 100.0         | 1.36     | 0.0  | 0.0       | 101.36 | 33.91 | 16.90   
   | 0.0  | 67.45       |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 100.0  | 0.0       | 0.0      | 
0.0  | 0.0       | 100.0        | false    | false    |
+      | 02 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 03 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 04 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 05 January 2024  | Accrual          | 0.01   | 0.0       | 0.01     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 06 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 07 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 08 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 09 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 10 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 11 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 12 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 13 January 2024  | Accrual          | 0.01   | 0.0       | 0.01     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 14 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 15 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 16 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 17 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 18 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 19 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 20 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 21 January 2024  | Accrual          | 0.01   | 0.0       | 0.01     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 22 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 23 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 24 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 25 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 26 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 27 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 28 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 29 January 2024  | Accrual          | 0.01   | 0.0       | 0.01     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 30 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 31 January 2024  | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
+      | 01 February 2024 | Repayment        | 33.91  | 33.33     | 0.58     | 
0.0  | 0.0       | 66.67        | false    | false    |
+      | 01 February 2024 | Accrual          | 0.02   | 0.0       | 0.02     | 
0.0  | 0.0       | 0.0          | false    | false    |
diff --git a/fineract-e2e-tests-runner/src/test/resources/features/Loan.feature 
b/fineract-e2e-tests-runner/src/test/resources/features/Loan.feature
index aff9b73b6..f3453e6d1 100644
--- a/fineract-e2e-tests-runner/src/test/resources/features/Loan.feature
+++ b/fineract-e2e-tests-runner/src/test/resources/features/Loan.feature
@@ -5842,6 +5842,94 @@ Feature: Loan
       | 10 September 2024 | Credit Balance Refund  | 91.21  | 91.21     | 0.0  
    | 0.0  | 0.0       | 91.21        |
     Then In Loan Transactions the "2"th Transaction has Transaction 
type="Repayment" and is reverted
 
+  @TestRailId:C3282
+  Scenario: Verify reversal of related interest refund transaction after 
merchant issued refund transactions is reversed
+    When Admin sets the business date to "01 January 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_ADV_PYMNT_INTEREST_DAILY_EMI_ACTUAL_ACTUAL_INTEREST_REFUND_FULL | 
01 January 2024   | 1000           | 9.9                    | DECLINING_BALANCE 
| DAILY                       | EQUAL_INSTALLMENTS | 4                 | MONTHS 
               | 1              | MONTHS                 | 4                  | 
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"
+    When Admin successfully disburse the loan on "01 January 2024" with "1000" 
EUR transaction amount
+    When Admin sets the business date to "22 January 2024"
+    When Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" 
payment type on "22 January 2024" with 100 EUR transaction amount and 
system-generated Idempotency key
+    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  | 31   | 01 February 2024 |                 | 752.97          | 
247.03        | 8.11     | 0.0  | 0.0       | 255.14 | 100.57 | 100.57     | 
0.0  | 154.57      |
+      | 2  | 29   | 01 March 2024    |                 | 503.74          | 
249.23        | 5.91     | 0.0  | 0.0       | 255.14 | 0.0    | 0.0        | 
0.0  | 255.14      |
+      | 3  | 31   | 01 April 2024    |                 | 252.82          | 
250.92        | 4.22     | 0.0  | 0.0       | 255.14        | 0.0    | 0.0      
  | 0.0  | 255.14      |
+      | 4  | 30   | 01 May 2024      |                 | 0.0             | 
252.82        | 2.05     | 0.0  | 0.0       | 254.87 | 0.0    | 0.0        | 
0.0  | 254.87      |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late | Outstanding |
+      | 1000.0        | 20.29    | 0.0  | 0.0       | 1020.29 | 100.57  | 
100.57     | 0.0  | 919.72      |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type       | Amount | Principal | 
Interest | Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement           | 1000.0 | 0.0       | 0.0   
   | 0.0  | 0.0       | 1000.0       | false    | false    |
+      | 22 January 2024  | Merchant Issued Refund | 100.0  | 100.0     | 0.0   
   | 0.0  | 0.0       | 900.0        | false    | false    |
+      | 22 January 2024  | Interest Refund        | 0.57   | 0.57      | 0.0   
   | 0.0  | 0.0       | 899.43       | false    | false    |
+    When Customer undo "1"th transaction made on "22 January 2024"
+    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  | 31   | 01 February 2024 |                 | 753.25          | 
246.75        | 8.39     | 0.0  | 0.0       | 255.14 | 0.0    | 0.0        | 
0.0  | 255.14      |
+      | 2  | 29   | 01 March 2024    |                 | 504.02          | 
249.23        | 5.91     | 0.0  | 0.0       | 255.14 | 0.0    | 0.0        | 
0.0  | 255.14      |
+      | 3  | 31   | 01 April 2024    |                 | 253.11          | 
250.91        | 4.23     | 0.0  | 0.0       | 255.14        | 0.0    | 0.0      
  | 0.0  | 255.14      |
+      | 4  | 30   | 01 May 2024      |                 | 0.0             | 
253.11        | 2.05     | 0.0  | 0.0       | 255.16 | 0.0    | 0.0        | 
0.0  | 255.16      |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late | Outstanding |
+      | 1000.0        | 20.58    | 0.0  | 0.0       | 1020.58 | 0.0     | 0.0  
      | 0.0  | 1020.58     |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type       | Amount | Principal | 
Interest | Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement           | 1000.0 | 0.0       | 0.0   
   | 0.0  | 0.0       | 1000.0       | false    | false    |
+      | 22 January 2024  | Merchant Issued Refund | 100.0  | 100.0     | 0.0   
   | 0.0  | 0.0       | 900.0        | true     | false    |
+      | 22 January 2024  | Interest Refund        | 0.57   | 0.57      | 0.0   
   | 0.0  | 0.0       | 899.43       | true     | false    |
+    Then In Loan Transactions the "3"th Transaction has Transaction 
type="Interest Refund" and is reverted
+
+  @TestRailId:C3283
+  Scenario: Verify reversal of related interest refund transaction after 
payout refund transactions is reversed
+    When Admin sets the business date to "01 January 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_ADV_PYMNT_INTEREST_DAILY_EMI_ACTUAL_ACTUAL_INTEREST_REFUND_FULL | 
01 January 2024   | 1000           | 9.9                    | DECLINING_BALANCE 
| DAILY                       | EQUAL_INSTALLMENTS | 4                 | MONTHS 
               | 1              | MONTHS                 | 4                  | 
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"
+    When Admin successfully disburse the loan on "01 January 2024" with "1000" 
EUR transaction amount
+    When Admin sets the business date to "22 January 2024"
+    When Admin makes "PAYOUT_REFUND" transaction with "AUTOPAY" payment type 
on "22 January 2024" with 100 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  | 31   | 01 February 2024 |                 | 752.97          | 
247.03        | 8.11     | 0.0  | 0.0       | 255.14 | 100.57 | 100.57     | 
0.0  | 154.57      |
+      | 2  | 29   | 01 March 2024    |                 | 503.74          | 
249.23        | 5.91     | 0.0  | 0.0       | 255.14 | 0.0    | 0.0        | 
0.0  | 255.14      |
+      | 3  | 31   | 01 April 2024    |                 | 252.82          | 
250.92        | 4.22     | 0.0  | 0.0       | 255.14        | 0.0    | 0.0      
  | 0.0  | 255.14      |
+      | 4  | 30   | 01 May 2024      |                 | 0.0             | 
252.82        | 2.05     | 0.0  | 0.0       | 254.87 | 0.0    | 0.0        | 
0.0  | 254.87      |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late | Outstanding |
+      | 1000.0        | 20.29    | 0.0  | 0.0       | 1020.29 | 100.57  | 
100.57     | 0.0  | 919.72      |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 1000.0 | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+      | 22 January 2024  | Payout Refund    | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 900.0        | false    | false    |
+      | 22 January 2024  | Interest Refund  | 0.57   | 0.57      | 0.0      | 
0.0  | 0.0       | 899.43       | false    | false    |
+    When Customer undo "1"th transaction made on "22 January 2024"
+    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  | 31   | 01 February 2024 |                 | 753.25          | 
246.75        | 8.39     | 0.0  | 0.0       | 255.14 | 0.0    | 0.0        | 
0.0  | 255.14      |
+      | 2  | 29   | 01 March 2024    |                 | 504.02          | 
249.23        | 5.91     | 0.0  | 0.0       | 255.14 | 0.0    | 0.0        | 
0.0  | 255.14      |
+      | 3  | 31   | 01 April 2024    |                 | 253.11          | 
250.91        | 4.23     | 0.0  | 0.0       | 255.14        | 0.0    | 0.0      
  | 0.0  | 255.14      |
+      | 4  | 30   | 01 May 2024      |                 | 0.0             | 
253.11        | 2.05     | 0.0  | 0.0       | 255.16 | 0.0    | 0.0        | 
0.0  | 255.16      |
+    Then Loan Repayment schedule has the following data in Total row:
+      | Principal due | Interest | Fees | Penalties | Due     | Paid    | In 
advance | Late | Outstanding |
+      | 1000.0        | 20.58    | 0.0  | 0.0       | 1020.58 | 0.0     | 0.0  
      | 0.0  | 1020.58     |
+    Then Loan Transactions tab has the following data:
+      | Transaction date | Transaction Type | Amount | Principal | Interest | 
Fees | Penalties | Loan Balance | Reverted | Replayed |
+      | 01 January 2024  | Disbursement     | 1000.0 | 0.0       | 0.0      | 
0.0  | 0.0       | 1000.0       | false    | false    |
+      | 22 January 2024  | Payout Refund    | 100.0  | 100.0     | 0.0      | 
0.0  | 0.0       | 900.0        | true     | false    |
+      | 22 January 2024  | Interest Refund  | 0.57   | 0.57      | 0.0      | 
0.0  | 0.0       | 899.43       | true     | false    |
+    Then In Loan Transactions the "3"th Transaction has Transaction 
type="Interest Refund" and is reverted
+
   Scenario: Early pay-off loan with interest, TILL_PRECLOSE product
     When Admin sets the business date to "01 January 2024"
     When Admin creates a client with random data

Reply via email to