This is an automated email from the ASF dual-hosted git repository. adamsaghy pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/fineract.git
commit ef1e2e10955a8d27593199458a5aad3e6212d1ad Author: MarianaDmytrivBinariks <[email protected]> AuthorDate: Tue Sep 2 17:36:15 2025 +0300 FINERACT-2355: e2e tests for merchant issued refunds allocation with paid installments --- .../test/data/loanproduct/DefaultLoanProduct.java | 1 + .../global/LoanProductGlobalInitializerStep.java | 34 +++ .../test/stepdef/loan/LoanChargeBackStepDef.java | 21 ++ .../fineract/test/support/TestContextKey.java | 1 + .../src/test/resources/features/LoanCharge.feature | 163 +++++++++- .../test/resources/features/LoanChargeOff.feature | 335 +++++++++++++++++++++ .../test/resources/features/LoanChargeback.feature | 158 ++++++++++ 7 files changed, 711 insertions(+), 2 deletions(-) diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/data/loanproduct/DefaultLoanProduct.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/data/loanproduct/DefaultLoanProduct.java index 1cf977245a..e5cb647e6d 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/data/loanproduct/DefaultLoanProduct.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/data/loanproduct/DefaultLoanProduct.java @@ -97,6 +97,7 @@ public enum DefaultLoanProduct implements LoanProduct { LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ZERO_INTEREST_CHARGE_OFF, // LP2_ADV_PYMNT_ZERO_INTEREST_CHARGE_OFF_BEHAVIOUR, // LP2_ADV_PYMNT_ZERO_INTEREST_CHARGE_OFF, // + LP2_ADV_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL_ZERO_CHARGE_OFF, // LP2_ADV_PYMNT_INTEREST_DAILY_INTEREST_RECALCULATION_ACCELERATE_MATURITY_CHARGE_OFF_BEHAVIOUR, // LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_ALLOW_PARTIAL_PERIOD, // LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_ACCRUAL_ACTIVITY_POSTING, // diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/LoanProductGlobalInitializerStep.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/LoanProductGlobalInitializerStep.java index 8dcb56362e..e4c901c2fa 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/LoanProductGlobalInitializerStep.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/LoanProductGlobalInitializerStep.java @@ -3694,6 +3694,40 @@ public class LoanProductGlobalInitializerStep implements FineractGlobalInitializ TestContext.INSTANCE.set( TestContextKey.DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_INT_DAILY_EMI_360_30_INT_RECALC_DAILY_MULTIDISB_EXPECT_TRANCHE_APPROVED_OVER_APPLIED, responseLoanProductsRequestLP2AdvEmi36030IntRecalcDailyMultiDisbApprovedOverApplied); + + // LP2 + interest recalculation + advanced custom payment allocation + progressive loan schedule + horizontal + // charge-off behaviour - zero interest + // LP2_ADV_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL_ZERO_CHARGE_OFF + String name139 = DefaultLoanProduct.LP2_ADV_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL_ZERO_CHARGE_OFF.getName(); + + PostLoanProductsRequest loanProductsRequestAdvCustomPaymentAllocationProgressiveLoanScheduleZeroChargeOff = loanProductsRequestFactory + .defaultLoanProductsRequestLP2InterestDailyRecalculation()// + .name(name139)// + .supportedInterestRefundTypes(Arrays.asList("MERCHANT_ISSUED_REFUND", "PAYOUT_REFUND"))// + .enableAccrualActivityPosting(true) // + .paymentAllocation(List.of(// + createPaymentAllocation("DEFAULT", "NEXT_INSTALLMENT", + LoanProductPaymentAllocationRule.AllocationTypesEnum.PAST_DUE_INTEREST, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.PAST_DUE_PRINCIPAL, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.PAST_DUE_PENALTY, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.PAST_DUE_FEE, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.DUE_INTEREST, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.DUE_PRINCIPAL, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.DUE_PENALTY, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.DUE_FEE, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.IN_ADVANCE_INTEREST, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.IN_ADVANCE_PRINCIPAL, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.IN_ADVANCE_PENALTY, // + LoanProductPaymentAllocationRule.AllocationTypesEnum.IN_ADVANCE_FEE), // + createPaymentAllocation("GOODWILL_CREDIT", "REAMORTIZATION"), // + createPaymentAllocation("MERCHANT_ISSUED_REFUND", "LAST_INSTALLMENT"), // + createPaymentAllocation("PAYOUT_REFUND", "NEXT_INSTALLMENT"))) // + .chargeOffBehaviour("ZERO_INTEREST");// + Response<PostLoanProductsResponse> responseLoanProductsRequestAdvCustomPaymentAllocationProgressiveLoanScheduleZeroChargeOff = loanProductsApi + .createLoanProduct(loanProductsRequestAdvCustomPaymentAllocationProgressiveLoanScheduleZeroChargeOff).execute(); + TestContext.INSTANCE.set( + TestContextKey.DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADVANCED_CUSTOM_PAYMENT_ALLOCATION_PROGRESSIVE_LOAN_SCHEDULE_ZERO_CHARGE_OFF, + responseLoanProductsRequestAdvCustomPaymentAllocationProgressiveLoanScheduleZeroChargeOff); } public static AdvancedPaymentData createPaymentAllocation(String transactionType, String futureInstallmentAllocationRule, diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanChargeBackStepDef.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanChargeBackStepDef.java index 458cd9aa94..a601e3fff3 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanChargeBackStepDef.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/loan/LoanChargeBackStepDef.java @@ -122,6 +122,27 @@ public class LoanChargeBackStepDef extends AbstractStepDef { makeChargebackCall(loanId, transactionId, repaymentType, transactionAmount); } + @When("Admin makes {string} chargeback with {double} EUR transaction amount for MIR nr. {double}") + public void makeLoanChargebackForMIR(String repaymentType, double transactionAmount, double paymentNr) throws IOException { + Response<PostLoansResponse> loanResponse = testContext().get(TestContextKey.LOAN_CREATE_RESPONSE); + long loanId = loanResponse.body().getLoanId(); + + Response<GetLoansLoanIdResponse> loanDetails = loansApi.retrieveLoan(loanId, false, "transactions", "", "").execute(); + List<GetLoansLoanIdTransactions> transactions = loanDetails.body().getTransactions(); + + List<Long> transactionIdList = new ArrayList<>(); + for (GetLoansLoanIdTransactions f : transactions) { + String code = f.getType().getCode(); + if (code.equals("loanTransactionType.merchantIssuedRefund")) { + transactionIdList.add(f.getId()); + } + } + Collections.sort(transactionIdList); + Long transactionId = transactionIdList.get((int) paymentNr - 1); + + makeChargebackCall(loanId, transactionId, repaymentType, transactionAmount); + } + private void makeChargebackCall(Long loanId, Long transactionId, String repaymentType, double transactionAmount) throws IOException { eventStore.reset(); DefaultPaymentType paymentType = DefaultPaymentType.valueOf(repaymentType); diff --git a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java index 7aa2e832d2..c27b20a8ea 100644 --- a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java +++ b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/support/TestContextKey.java @@ -133,6 +133,7 @@ public abstract class TestContextKey { public static final String DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_ZERO_INTEREST_CHARGE_OFF = "loanProductCreateResponseLP2AdvancedPaymentZeroInterestChargeOff"; public static final String DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_ZERO_INTEREST_CHARGE_OFF_DELINQUENT_REASON = "loanProductCreateResponseLP2AdvancedPaymentZeroInterestChargeOffDelinquentReason"; public static final String DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_ZERO_INTEREST_CHARGE_OFF_DELINQUENT_REASON_INTEREST_RECALC = "loanProductCreateResponseLP2AdvancedPaymentZeroInterestChargeOffDelinquentReasonInterestRecalculation"; + public static final String DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADVANCED_CUSTOM_PAYMENT_ALLOCATION_PROGRESSIVE_LOAN_SCHEDULE_ZERO_CHARGE_OFF = "loanProductCreateResponseLP2AdvancedPaymentHorizontalZeroInterestChargeOff"; public static final String DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADVANCED_DP_CUSTOM_PAYMENT_ALLOCATION_PROGRESSIVE_LOAN_SCHEDULE = "loanProductCreateResponseLP2ProgressiveLoanScheduleDPCustomPaymentAllocation"; public static final String DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADVANCED_DP_IR_CUSTOM_PAYMENT_ALLOCATION_PROGRESSIVE_LOAN_SCHEDULE = "loanProductCreateResponseLP2ProgressiveLoanScheduleDPIRCustomPaymentAllocation"; public static final String DEFAULT_LOAN_PRODUCT_CREATE_RESPONSE_LP2_ADV_PYMNT_INTEREST_DAILY_EMI_360_30_INTEREST_RECALCULATION_DAILY_ALLOW_PARTIAL_PERIOD = "loanProductCreateResponseLP2AdvancedPaymentInterestDailyEmi36030InterestRecalculationDailyAllowPartialPeriod"; diff --git a/fineract-e2e-tests-runner/src/test/resources/features/LoanCharge.feature b/fineract-e2e-tests-runner/src/test/resources/features/LoanCharge.feature index b4ddda4c2c..3ca801fb57 100644 --- a/fineract-e2e-tests-runner/src/test/resources/features/LoanCharge.feature +++ b/fineract-e2e-tests-runner/src/test/resources/features/LoanCharge.feature @@ -7778,7 +7778,8 @@ Feature: LoanCharge | Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding | | Installment flat fee | false | Installment Fee | | Flat | 30.0 | 0.0 | 0.0 | 30.0 | - Scenario: Verify Loan Charge together with paid installments with amounts zero + @TestRailId:C4014 + Scenario: Verify Loan Charge together with paid installments with amounts zero - UC1 When Admin sets the business date to "11 April 2025" And Admin creates a client with random data And Admin creates a fully customized loan with the following data: @@ -7823,4 +7824,162 @@ Feature: LoanCharge | 23 | 28 | 11 March 2027 | 13 August 2025 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | | 24 | 31 | 11 April 2027 | 13 August 2025 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | When Admin sets the business date to "15 August 2025" - When Admin adds "LOAN_NSF_FEE" due date charge with "15 August 2025" due date and 35 EUR transaction amount \ No newline at end of file + When Admin adds "LOAN_NSF_FEE" due date charge with "15 August 2025" due date and 35 EUR transaction amount + + @TestRailId:C4018 + Scenario: Verify early repayment with MIR and charge afterwards for 24m progressive loan - UC2 + When Admin sets the business date to "11 April 2025" + 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_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL | 11 April 2025 | 209.72 | 12.25 | DECLINING_BALANCE | DAILY | EQUAL_INSTALLMENTS | 24 | MONTHS | 1 | MONTHS | 24 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION | + And Admin successfully approves the loan on "11 April 2025" with "209.72" amount and expected disbursement date on "11 April 2025" + Then Loan Repayment schedule has 24 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 | + | | | 11 April 2025 | | 209.72 | | | 0.0 | | 0.0 | | | | 0.0 | + | 1 | 30 | 11 May 2025 | | 201.96 | 7.76 | 2.14 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 2 | 31 | 11 June 2025 | | 194.12 | 7.84 | 2.06 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 3 | 30 | 11 July 2025 | | 186.2 | 7.92 | 1.98 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 4 | 31 | 11 August 2025 | | 178.2 | 8.0 | 1.9 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 5 | 31 | 11 September 2025 | | 170.12 | 8.08 | 1.82 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 6 | 30 | 11 October 2025 | | 161.96 | 8.16 | 1.74 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 7 | 31 | 11 November 2025 | | 153.71 | 8.25 | 1.65 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 8 | 30 | 11 December 2025 | | 145.38 | 8.33 | 1.57 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 9 | 31 | 11 January 2026 | | 136.96 | 8.42 | 1.48 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 10 | 31 | 11 February 2026 | | 128.46 | 8.5 | 1.4 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 11 | 28 | 11 March 2026 | | 119.87 | 8.59 | 1.31 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 12 | 31 | 11 April 2026 | | 111.19 | 8.68 | 1.22 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 13 | 30 | 11 May 2026 | | 102.43 | 8.76 | 1.14 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 14 | 31 | 11 June 2026 | | 93.58 | 8.85 | 1.05 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 15 | 30 | 11 July 2026 | | 84.64 | 8.94 | 0.96 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 16 | 31 | 11 August 2026 | | 75.6 | 9.04 | 0.86 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 17 | 31 | 11 September 2026 | | 66.47 | 9.13 | 0.77 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 18 | 30 | 11 October 2026 | | 57.25 | 9.22 | 0.68 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 19 | 31 | 11 November 2026 | | 47.93 | 9.32 | 0.58 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 20 | 30 | 11 December 2026 | | 38.52 | 9.41 | 0.49 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 21 | 31 | 11 January 2027 | | 29.01 | 9.51 | 0.39 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 22 | 31 | 11 February 2027 | | 19.41 | 9.6 | 0.3 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 23 | 28 | 11 March 2027 | | 9.71 | 9.7 | 0.2 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 24 | 31 | 11 April 2027 | | 0.0 | 9.71 | 0.1 | 0.0 | 0.0 | 9.81 | 0.0 | 0.0 | 0.0 | 9.81 | + Then Loan Repayment schedule has the following data in Total row: + | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | 209.72 | 27.79 | 0.0 | 0.0 | 237.51 | 0.0 | 0.0 | 0.0 | 237.51 | + + When Admin successfully disburse the loan on "11 April 2025" with "209.72" EUR transaction amount + When Admin sets the business date to "11 May 2025" + And Customer makes "AUTOPAY" repayment on "11 May 2025" with 9.9 EUR transaction amount + When Admin sets the business date to "11 June 2025" + And Customer makes "AUTOPAY" repayment on "11 June 2025" with 9.9 EUR transaction amount + When Admin sets the business date to "11 July 2025" + And Customer makes "AUTOPAY" repayment on "11 July 2025" with 9.9 EUR transaction amount + When Admin sets the business date to "11 August 2025" + When Admin runs inline COB job for Loan + And Customer makes "AUTOPAY" repayment on "11 August 2025" with 9.9 EUR transaction amount + When Admin sets the business date to "13 August 2025" + When Admin runs inline COB job for Loan + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "13 August 2025" with 188.8 EUR transaction amount and system-generated Idempotency key + When Admin sets the business date to "15 August 2025" + When Admin runs inline COB job for Loan + Then Loan Repayment schedule has 24 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 | + | | | 11 April 2025 | | 209.72 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 30 | 11 May 2025 | 11 May 2025 | 201.96 | 7.76 | 2.14 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 2 | 31 | 11 June 2025 | 11 June 2025 | 194.12 | 7.84 | 2.06 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 3 | 30 | 11 July 2025 | 11 July 2025 | 186.2 | 7.92 | 1.98 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 4 | 31 | 11 August 2025 | 11 August 2025 | 178.2 | 8.0 | 1.9 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 5 | 31 | 11 September 2025 | 13 August 2025 | 178.2 | 0.0 | 0.12 | 0.0 | 0.0 | 0.12 | 0.12 | 0.12 | 0.0 | 0.0 | + | 6 | 30 | 11 October 2025 | 13 August 2025 | 178.2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 7 | 31 | 11 November 2025 | 13 August 2025 | 168.3 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 8 | 30 | 11 December 2025 | 13 August 2025 | 158.4 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 9 | 31 | 11 January 2026 | 13 August 2025 | 148.5 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 10 | 31 | 11 February 2026 | 13 August 2025 | 138.6 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 11 | 28 | 11 March 2026 | 13 August 2025 | 128.7 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 12 | 31 | 11 April 2026 | 13 August 2025 | 118.8 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 13 | 30 | 11 May 2026 | 13 August 2025 | 108.9 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 14 | 31 | 11 June 2026 | 13 August 2025 | 99.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 15 | 30 | 11 July 2026 | 13 August 2025 | 89.1 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 16 | 31 | 11 August 2026 | 13 August 2025 | 79.2 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 17 | 31 | 11 September 2026 | 13 August 2025 | 69.3 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 18 | 30 | 11 October 2026 | 13 August 2025 | 59.4 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 19 | 31 | 11 November 2026 | 13 August 2025 | 49.5 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 20 | 30 | 11 December 2026 | 13 August 2025 | 39.6 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 21 | 31 | 11 January 2027 | 13 August 2025 | 29.7 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 22 | 31 | 11 February 2027 | 13 August 2025 | 19.8 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 23 | 28 | 11 March 2027 | 13 August 2025 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 24 | 31 | 11 April 2027 | 13 August 2025 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 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 | + | 209.72 | 8.2 | 0.0 | 0.0 | 217.92 | 217.92 | 178.32 | 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 | + | 11 April 2025 | Disbursement | 209.72 | 0.0 | 0.0 | 0.0 | 0.0 | 209.72 | false | false | + | 11 May 2025 | Repayment | 9.9 | 7.76 | 2.14 | 0.0 | 0.0 | 201.96 | false | false | + | 11 May 2025 | Accrual Activity | 2.14 | 0.0 | 2.14 | 0.0 | 0.0 | 0.0 | false | false | + | 11 June 2025 | Repayment | 9.9 | 7.84 | 2.06 | 0.0 | 0.0 | 194.12 | false | false | + | 11 June 2025 | Accrual Activity | 2.06 | 0.0 | 2.06 | 0.0 | 0.0 | 0.0 | false | false | + | 11 July 2025 | Repayment | 9.9 | 7.92 | 1.98 | 0.0 | 0.0 | 186.2 | false | false | + | 11 July 2025 | Accrual Activity | 1.98 | 0.0 | 1.98 | 0.0 | 0.0 | 0.0 | false | false | + | 10 August 2025 | Accrual | 8.02 | 0.0 | 8.02 | 0.0 | 0.0 | 0.0 | false | false | + | 11 August 2025 | Repayment | 9.9 | 8.0 | 1.9 | 0.0 | 0.0 | 178.2 | false | false | + | 11 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 11 August 2025 | Accrual Activity | 1.9 | 0.0 | 1.9 | 0.0 | 0.0 | 0.0 | false | false | + | 12 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Merchant Issued Refund | 188.8 | 178.2 | 0.12 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Interest Refund | 7.87 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Accrual Activity | 0.12 | 0.0 | 0.12 | 0.0 | 0.0 | 0.0 | false | false | + +# --- make this reversal of repayment --- # + When Customer undo "1"th "Repayment" transaction made on "11 August 2025" + And Admin adds "LOAN_NSF_FEE" due date charge with "15 August 2025" due date and 10 EUR transaction amount + When Admin sets the business date to "16 August 2025" + When Admin runs inline COB job for Loan + Then Loan Repayment schedule has 24 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 | + | | | 11 April 2025 | | 209.72 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 30 | 11 May 2025 | 11 May 2025 | 201.96 | 7.76 | 2.14 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 2 | 31 | 11 June 2025 | 11 June 2025 | 194.12 | 7.84 | 2.06 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 3 | 30 | 11 July 2025 | 11 July 2025 | 186.2 | 7.92 | 1.98 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 4 | 31 | 11 August 2025 | 13 August 2025 | 178.2 | 8.0 | 1.9 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 9.9 | 0.0 | + | 5 | 31 | 11 September 2025 | | 178.2 | 0.0 | 0.12 | 0.0 | 10.0 | 10.12 | 8.57 | 8.57 | 0.0 | 1.55 | + | 6 | 30 | 11 October 2025 | 13 August 2025 | 178.2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 7 | 31 | 11 November 2025 | 13 August 2025 | 168.3 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 8 | 30 | 11 December 2025 | 13 August 2025 | 158.4 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 9 | 31 | 11 January 2026 | 13 August 2025 | 148.5 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 10 | 31 | 11 February 2026 | 13 August 2025 | 138.6 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 11 | 28 | 11 March 2026 | 13 August 2025 | 128.7 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 12 | 31 | 11 April 2026 | 13 August 2025 | 118.8 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 13 | 30 | 11 May 2026 | 13 August 2025 | 108.9 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 14 | 31 | 11 June 2026 | 13 August 2025 | 99.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 15 | 30 | 11 July 2026 | 13 August 2025 | 89.1 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 16 | 31 | 11 August 2026 | 13 August 2025 | 79.2 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 17 | 31 | 11 September 2026 | 13 August 2025 | 69.3 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 18 | 30 | 11 October 2026 | 13 August 2025 | 59.4 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 19 | 31 | 11 November 2026 | 13 August 2025 | 49.5 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 20 | 30 | 11 December 2026 | 13 August 2025 | 39.6 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 21 | 31 | 11 January 2027 | 13 August 2025 | 29.7 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 22 | 31 | 11 February 2027 | 13 August 2025 | 19.8 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 23 | 28 | 11 March 2027 | 13 August 2025 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 24 | 31 | 11 April 2027 | 13 August 2025 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 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 | + | 209.72 | 8.2 | 0.0 | 10.0 | 227.92 | 226.37 | 186.77 | 9.9 | 1.55 | + Then Loan Transactions tab has the following data: + | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | Reverted | Replayed | + | 11 April 2025 | Disbursement | 209.72 | 0.0 | 0.0 | 0.0 | 0.0 | 209.72 | false | false | + | 11 May 2025 | Repayment | 9.9 | 7.76 | 2.14 | 0.0 | 0.0 | 201.96 | false | false | + | 11 May 2025 | Accrual Activity | 2.14 | 0.0 | 2.14 | 0.0 | 0.0 | 0.0 | false | false | + | 11 June 2025 | Repayment | 9.9 | 7.84 | 2.06 | 0.0 | 0.0 | 194.12 | false | false | + | 11 June 2025 | Accrual Activity | 2.06 | 0.0 | 2.06 | 0.0 | 0.0 | 0.0 | false | false | + | 11 July 2025 | Repayment | 9.9 | 7.92 | 1.98 | 0.0 | 0.0 | 186.2 | false | false | + | 11 July 2025 | Accrual Activity | 1.98 | 0.0 | 1.98 | 0.0 | 0.0 | 0.0 | false | false | + | 10 August 2025 | Accrual | 8.02 | 0.0 | 8.02 | 0.0 | 0.0 | 0.0 | false | false | + | 11 August 2025 | Repayment | 9.9 | 8.0 | 1.9 | 0.0 | 0.0 | 178.2 | true | false | + | 11 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 11 August 2025 | Accrual Activity | 1.9 | 0.0 | 1.9 | 0.0 | 0.0 | 0.0 | false | false | + | 12 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Merchant Issued Refund | 188.8 | 186.2 | 2.02 | 0.0 | 0.58 | 0.0 | false | true | + | 13 August 2025 | Interest Refund | 7.87 | 0.0 | 0.0 | 0.0 | 7.87 | 0.0 | false | true | + | 15 August 2025 | Accrual | 10.0 | 0.0 | 0.0 | 0.0 | 10.0 | 0.0 | false | false | + diff --git a/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeOff.feature b/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeOff.feature index 7b907b579d..cbc4f9d336 100644 --- a/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeOff.feature +++ b/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeOff.feature @@ -9614,3 +9614,338 @@ Feature: Charge-off | 20 July 2025 | Charge-off | 1142.48 | 1000.0 | 142.48 | 0.0 | 0.0 | 0.0 | false | false | When Loan Pay-off is made on "20 July 2025" Then Loan's all installments have obligations met + + @TestRailId:C4016 + Scenario: Verify early repayment with MIRs and change-off afterwards for 24m progressive loan - UC1 + When Admin sets the business date to "07 May 2025" + 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_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL_ZERO_CHARGE_OFF | 07 May 2025 | 1001 | 35.99 | DECLINING_BALANCE | DAILY | EQUAL_INSTALLMENTS | 24 | MONTHS | 1 | MONTHS | 24 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION | + And Admin successfully approves the loan on "07 May 2025" with "1001" amount and expected disbursement date on "07 May 2025" + Then Loan Repayment schedule has 24 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 | + | | | 07 May 2025 | | 1001.0 | | | 0.0 | | 0.0 | | | | 0.0 | + | 1 | 31 | 07 June 2025 | | 971.92 | 29.08 | 30.02 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 2 | 30 | 07 July 2025 | | 941.97 | 29.95 | 29.15 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 3 | 31 | 07 August 2025 | | 911.12 | 30.85 | 28.25 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 4 | 31 | 07 September 2025 | | 879.35 | 31.77 | 27.33 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 5 | 30 | 07 October 2025 | | 846.62 | 32.73 | 26.37 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 6 | 31 | 07 November 2025 | | 812.91 | 33.71 | 25.39 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 7 | 30 | 07 December 2025 | | 778.19 | 34.72 | 24.38 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 8 | 31 | 07 January 2026 | | 742.43 | 35.76 | 23.34 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 9 | 31 | 07 February 2026 | | 705.6 | 36.83 | 22.27 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 10 | 28 | 07 March 2026 | | 667.66 | 37.94 | 21.16 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 11 | 31 | 07 April 2026 | | 628.58 | 39.08 | 20.02 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 12 | 30 | 07 May 2026 | | 588.33 | 40.25 | 18.85 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 13 | 31 | 07 June 2026 | | 546.87 | 41.46 | 17.64 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 14 | 30 | 07 July 2026 | | 504.17 | 42.7 | 16.4 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 15 | 31 | 07 August 2026 | | 460.19 | 43.98 | 15.12 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 16 | 31 | 07 September 2026 | | 414.89 | 45.3 | 13.8 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 17 | 30 | 07 October 2026 | | 368.23 | 46.66 | 12.44 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 18 | 31 | 07 November 2026 | | 320.17 | 48.06 | 11.04 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 19 | 30 | 07 December 2026 | | 270.67 | 49.5 | 9.6 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 20 | 31 | 07 January 2027 | | 219.69 | 50.98 | 8.12 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 21 | 31 | 07 February 2027 | | 167.18 | 52.51 | 6.59 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 22 | 28 | 07 March 2027 | | 113.09 | 54.09 | 5.01 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 23 | 31 | 07 April 2027 | | 57.38 | 55.71 | 3.39 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 24 | 30 | 07 May 2027 | | 0.0 | 57.38 | 1.72 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + Then Loan Repayment schedule has the following data in Total row: + | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | 1001.0 | 417.4 | 0.0 | 0.0 | 1418.4 | 0.0 | 0.0 | 0.0 | 1418.4 | + + When Admin successfully disburse the loan on "07 May 2025" with "179.04" EUR transaction amount + When Admin sets the business date to "08 May 2025" + When Admin successfully disburse the loan on "08 May 2025" with "52.07" EUR transaction amount + When Admin successfully disburse the loan on "08 May 2025" with "171.31" EUR transaction amount + When Admin sets the business date to "10 May 2025" + When Admin runs inline COB job for Loan + + When Admin sets the business date to "11 May 2025" + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "11 May 2025" with 61.19 EUR transaction amount and system-generated Idempotency key + When Admin sets the business date to "12 May 2025" + When Admin runs inline COB job for Loan + + When Admin sets the business date to "14 May 2025" + When Admin successfully disburse the loan on "13 May 2025" with "81.67" EUR transaction amount + When Admin successfully disburse the loan on "14 May 2025" with "62.05" EUR transaction amount + When Admin sets the business date to "15 May 2025" + When Admin runs inline COB job for Loan + + When Admin sets the business date to "16 May 2025" + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "16 May 2025" with 52.07 EUR transaction amount and system-generated Idempotency key + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "16 May 2025" with 49.36 EUR transaction amount and system-generated Idempotency key + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "16 May 2025" with 81.67 EUR transaction amount and system-generated Idempotency key + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "16 May 2025" with 62.05 EUR transaction amount and system-generated Idempotency key + + Then Loan Repayment schedule has 24 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 | + | | | 07 May 2025 | | 179.04 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 08 May 2025 | | 52.07 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 08 May 2025 | | 171.31 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 13 May 2025 | | 81.67 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 14 May 2025 | | 62.05 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 31 | 07 June 2025 | | 522.41 | 23.73 | 8.45 | 0.0 | 0.0 | 32.18 | 2.25 | 2.25 | 0.0 | 29.93 | + | 2 | 30 | 07 July 2025 | | 496.71 | 25.7 | 6.48 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 3 | 31 | 07 August 2025 | | 470.24 | 26.47 | 5.71 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 4 | 31 | 07 September 2025 | | 442.98 | 27.26 | 4.92 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 5 | 30 | 07 October 2025 | | 414.9 | 28.08 | 4.1 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 6 | 31 | 07 November 2025 | | 385.98 | 28.92 | 3.26 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 7 | 30 | 07 December 2025 | | 356.19 | 29.79 | 2.39 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 8 | 31 | 07 January 2026 | | 325.51 | 30.68 | 1.5 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 9 | 31 | 07 February 2026 | | 306.34 | 19.17 | 0.57 | 0.0 | 0.0 | 19.74 | 0.0 | 0.0 | 0.0 | 19.74 | + | 10 | 28 | 07 March 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 11 | 31 | 07 April 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 12 | 30 | 07 May 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 13 | 31 | 07 June 2026 | 16 May 2025 | 276.47 | 29.87 | 0.0 | 0.0 | 0.0 | 29.87 | 29.87 | 29.87 | 0.0 | 0.0 | + | 14 | 30 | 07 July 2026 | 16 May 2025 | 244.29 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 15 | 31 | 07 August 2026 | 16 May 2025 | 226.98 | 17.31 | 0.0 | 0.0 | 0.0 | 17.31 | 17.31 | 17.31 | 0.0 | 0.0 | + | 16 | 31 | 07 September 2026 | 16 May 2025 | 194.8 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 17 | 30 | 07 October 2026 | 16 May 2025 | 162.62 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 18 | 31 | 07 November 2026 | 16 May 2025 | 145.44 | 17.18 | 0.0 | 0.0 | 0.0 | 17.18 | 17.18 | 17.18 | 0.0 | 0.0 | + | 19 | 30 | 07 December 2026 | 16 May 2025 | 113.26 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 20 | 31 | 07 January 2027 | 16 May 2025 | 93.37 | 19.89 | 0.0 | 0.0 | 0.0 | 19.89 | 19.89 | 19.89 | 0.0 | 0.0 | + | 21 | 31 | 07 February 2027 | 16 May 2025 | 61.19 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 22 | 28 | 07 March 2027 | 11 May 2025 | 47.41 | 13.78 | 0.0 | 0.0 | 0.0 | 13.78 | 13.78 | 13.78 | 0.0 | 0.0 | + | 23 | 31 | 07 April 2027 | 11 May 2025 | 23.66 | 23.75 | 0.0 | 0.0 | 0.0 | 23.75 | 23.75 | 23.75 | 0.0 | 0.0 | + | 24 | 30 | 07 May 2027 | 11 May 2025 | 0.0 | 23.66 | 0.0 | 0.0 | 0.0 | 23.66 | 23.66 | 23.66 | 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 | + | 546.14 | 37.38 | 0.0 | 0.0 | 583.52 | 308.59 | 308.59 | 0.0 | 274.93 | + Then Loan Transactions tab has the following data: + | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | Reverted | Replayed | + | 07 May 2025 | Disbursement | 179.04 | 0.0 | 0.0 | 0.0 | 0.0 | 179.04 | false | false | + | 08 May 2025 | Disbursement | 52.07 | 0.0 | 0.0 | 0.0 | 0.0 | 231.11 | false | false | + | 08 May 2025 | Disbursement | 171.31 | 0.0 | 0.0 | 0.0 | 0.0 | 402.42 | false | false | + | 09 May 2025 | Accrual | 0.56 | 0.0 | 0.56 | 0.0 | 0.0 | 0.0 | false | false | + | 10 May 2025 | Accrual | 0.39 | 0.0 | 0.39 | 0.0 | 0.0 | 0.0 | false | false | + | 11 May 2025 | Merchant Issued Refund | 61.19 | 61.19 | 0.0 | 0.0 | 0.0 | 341.23 | false | false | + | 11 May 2025 | Interest Refund | 0.24 | 0.0 | 0.24 | 0.0 | 0.0 | 341.23 | false | false | + | 11 May 2025 | Accrual | 0.39 | 0.0 | 0.39 | 0.0 | 0.0 | 0.0 | false | false | + | 12 May 2025 | Accrual | 0.33 | 0.0 | 0.33 | 0.0 | 0.0 | 0.0 | false | false | + | 13 May 2025 | Disbursement | 81.67 | 0.0 | 0.0 | 0.0 | 0.0 | 422.9 | false | false | + | 13 May 2025 | Accrual | 0.33 | 0.0 | 0.33 | 0.0 | 0.0 | 0.0 | false | false | + | 14 May 2025 | Disbursement | 62.05 | 0.0 | 0.0 | 0.0 | 0.0 | 484.95 | false | false | + | 14 May 2025 | Accrual | 0.41 | 0.0 | 0.41 | 0.0 | 0.0 | 0.0 | false | false | + | 16 May 2025 | Merchant Issued Refund | 52.07 | 52.07 | 0.0 | 0.0 | 0.0 | 432.88 | false | false | + | 16 May 2025 | Interest Refund | 0.45 | 0.0 | 0.45 | 0.0 | 0.0 | 432.88 | false | false | + | 16 May 2025 | Merchant Issued Refund | 49.36 | 49.36 | 0.0 | 0.0 | 0.0 | 383.52 | false | false | + | 16 May 2025 | Interest Refund | 0.43 | 0.0 | 0.43 | 0.0 | 0.0 | 383.52 | false | false | + | 16 May 2025 | Merchant Issued Refund | 81.67 | 81.67 | 0.0 | 0.0 | 0.0 | 301.85 | false | false | + | 16 May 2025 | Interest Refund | 0.65 | 0.0 | 0.65 | 0.0 | 0.0 | 301.85 | false | false | + | 16 May 2025 | Merchant Issued Refund | 62.05 | 62.05 | 0.0 | 0.0 | 0.0 | 239.8 | false | false | + | 16 May 2025 | Interest Refund | 0.48 | 0.0 | 0.48 | 0.0 | 0.0 | 239.8 | false | false | + + When Admin sets the business date to "14 June 2025" + When Admin runs inline COB job for Loan + When Admin sets the business date to "14 July 2025" + When Admin runs inline COB job for Loan + + When Admin sets the business date to "14 August 2025" + When Admin runs inline COB job for Loan + And Admin does charge-off the loan on "14 August 2025" + When Admin sets the business date to "15 August 2025" + When Admin runs inline COB job for Loan + Then Loan Repayment schedule has 24 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 | + | | | 07 May 2025 | | 179.04 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 08 May 2025 | | 52.07 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 08 May 2025 | | 171.31 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 13 May 2025 | | 81.67 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 14 May 2025 | | 62.05 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 31 | 07 June 2025 | | 522.41 | 23.73 | 8.45 | 0.0 | 0.0 | 32.18 | 2.25 | 2.25 | 0.0 | 29.93 | + | 2 | 30 | 07 July 2025 | | 497.42 | 24.99 | 7.19 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 3 | 31 | 07 August 2025 | | 472.43 | 24.99 | 7.19 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 4 | 31 | 07 September 2025 | | 441.87 | 30.56 | 1.62 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 5 | 30 | 07 October 2025 | | 409.69 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 6 | 31 | 07 November 2025 | | 377.51 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 7 | 30 | 07 December 2025 | | 345.33 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 8 | 31 | 07 January 2026 | | 313.15 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 9 | 31 | 07 February 2026 | | 306.34 | 6.81 | 0.0 | 0.0 | 0.0 | 6.81 | 0.0 | 0.0 | 0.0 | 6.81 | + | 10 | 28 | 07 March 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 11 | 31 | 07 April 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 12 | 30 | 07 May 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 13 | 31 | 07 June 2026 | 16 May 2025 | 276.47 | 29.87 | 0.0 | 0.0 | 0.0 | 29.87 | 29.87 | 29.87 | 0.0 | 0.0 | + | 14 | 30 | 07 July 2026 | 16 May 2025 | 244.29 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 15 | 31 | 07 August 2026 | 16 May 2025 | 226.98 | 17.31 | 0.0 | 0.0 | 0.0 | 17.31 | 17.31 | 17.31 | 0.0 | 0.0 | + | 16 | 31 | 07 September 2026 | 16 May 2025 | 194.8 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 17 | 30 | 07 October 2026 | 16 May 2025 | 162.62 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 18 | 31 | 07 November 2026 | 16 May 2025 | 145.44 | 17.18 | 0.0 | 0.0 | 0.0 | 17.18 | 17.18 | 17.18 | 0.0 | 0.0 | + | 19 | 30 | 07 December 2026 | 16 May 2025 | 113.26 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 20 | 31 | 07 January 2027 | 16 May 2025 | 93.37 | 19.89 | 0.0 | 0.0 | 0.0 | 19.89 | 19.89 | 19.89 | 0.0 | 0.0 | + | 21 | 31 | 07 February 2027 | 16 May 2025 | 61.19 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 22 | 28 | 07 March 2027 | 11 May 2025 | 47.41 | 13.78 | 0.0 | 0.0 | 0.0 | 13.78 | 13.78 | 13.78 | 0.0 | 0.0 | + | 23 | 31 | 07 April 2027 | 11 May 2025 | 23.66 | 23.75 | 0.0 | 0.0 | 0.0 | 23.75 | 23.75 | 23.75 | 0.0 | 0.0 | + | 24 | 30 | 07 May 2027 | 11 May 2025 | 0.0 | 23.66 | 0.0 | 0.0 | 0.0 | 23.66 | 23.66 | 23.66 | 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 | + | 546.14 | 24.45 | 0.0 | 0.0 | 570.59 | 308.59 | 308.59 | 0.0 | 262.0 | + + @TestRailId:C4017 + Scenario: Verify early repayment with MIRs and charge with change-off afterwards for 24m progressive loan - UC2 + When Admin sets the business date to "07 May 2025" + 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_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL_ZERO_CHARGE_OFF | 07 May 2025 | 1001 | 35.99 | DECLINING_BALANCE | DAILY | EQUAL_INSTALLMENTS | 24 | MONTHS | 1 | MONTHS | 24 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION | + And Admin successfully approves the loan on "07 May 2025" with "1001" amount and expected disbursement date on "07 May 2025" + Then Loan Repayment schedule has 24 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 | + | | | 07 May 2025 | | 1001.0 | | | 0.0 | | 0.0 | | | | 0.0 | + | 1 | 31 | 07 June 2025 | | 971.92 | 29.08 | 30.02 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 2 | 30 | 07 July 2025 | | 941.97 | 29.95 | 29.15 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 3 | 31 | 07 August 2025 | | 911.12 | 30.85 | 28.25 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 4 | 31 | 07 September 2025 | | 879.35 | 31.77 | 27.33 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 5 | 30 | 07 October 2025 | | 846.62 | 32.73 | 26.37 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 6 | 31 | 07 November 2025 | | 812.91 | 33.71 | 25.39 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 7 | 30 | 07 December 2025 | | 778.19 | 34.72 | 24.38 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 8 | 31 | 07 January 2026 | | 742.43 | 35.76 | 23.34 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 9 | 31 | 07 February 2026 | | 705.6 | 36.83 | 22.27 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 10 | 28 | 07 March 2026 | | 667.66 | 37.94 | 21.16 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 11 | 31 | 07 April 2026 | | 628.58 | 39.08 | 20.02 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 12 | 30 | 07 May 2026 | | 588.33 | 40.25 | 18.85 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 13 | 31 | 07 June 2026 | | 546.87 | 41.46 | 17.64 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 14 | 30 | 07 July 2026 | | 504.17 | 42.7 | 16.4 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 15 | 31 | 07 August 2026 | | 460.19 | 43.98 | 15.12 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 16 | 31 | 07 September 2026 | | 414.89 | 45.3 | 13.8 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 17 | 30 | 07 October 2026 | | 368.23 | 46.66 | 12.44 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 18 | 31 | 07 November 2026 | | 320.17 | 48.06 | 11.04 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 19 | 30 | 07 December 2026 | | 270.67 | 49.5 | 9.6 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 20 | 31 | 07 January 2027 | | 219.69 | 50.98 | 8.12 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 21 | 31 | 07 February 2027 | | 167.18 | 52.51 | 6.59 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 22 | 28 | 07 March 2027 | | 113.09 | 54.09 | 5.01 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 23 | 31 | 07 April 2027 | | 57.38 | 55.71 | 3.39 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + | 24 | 30 | 07 May 2027 | | 0.0 | 57.38 | 1.72 | 0.0 | 0.0 | 59.1 | 0.0 | 0.0 | 0.0 | 59.1 | + Then Loan Repayment schedule has the following data in Total row: + | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | 1001.0 | 417.4 | 0.0 | 0.0 | 1418.4 | 0.0 | 0.0 | 0.0 | 1418.4 | + + When Admin successfully disburse the loan on "07 May 2025" with "179.04" EUR transaction amount + When Admin sets the business date to "08 May 2025" + When Admin successfully disburse the loan on "08 May 2025" with "52.07" EUR transaction amount + When Admin successfully disburse the loan on "08 May 2025" with "171.31" EUR transaction amount + When Admin sets the business date to "10 May 2025" + When Admin runs inline COB job for Loan + + When Admin sets the business date to "11 May 2025" + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "11 May 2025" with 61.19 EUR transaction amount and system-generated Idempotency key + When Admin sets the business date to "12 May 2025" + When Admin runs inline COB job for Loan + + When Admin sets the business date to "14 May 2025" + When Admin successfully disburse the loan on "13 May 2025" with "81.67" EUR transaction amount + When Admin successfully disburse the loan on "14 May 2025" with "62.05" EUR transaction amount + When Admin sets the business date to "15 May 2025" + When Admin runs inline COB job for Loan + + When Admin sets the business date to "16 May 2025" + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "16 May 2025" with 52.07 EUR transaction amount and system-generated Idempotency key + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "16 May 2025" with 49.36 EUR transaction amount and system-generated Idempotency key + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "16 May 2025" with 81.67 EUR transaction amount and system-generated Idempotency key + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "16 May 2025" with 62.05 EUR transaction amount and system-generated Idempotency key + + Then Loan Repayment schedule has 24 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 | + | | | 07 May 2025 | | 179.04 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 08 May 2025 | | 52.07 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 08 May 2025 | | 171.31 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 13 May 2025 | | 81.67 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 14 May 2025 | | 62.05 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 31 | 07 June 2025 | | 522.41 | 23.73 | 8.45 | 0.0 | 0.0 | 32.18 | 2.25 | 2.25 | 0.0 | 29.93 | + | 2 | 30 | 07 July 2025 | | 496.71 | 25.7 | 6.48 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 3 | 31 | 07 August 2025 | | 470.24 | 26.47 | 5.71 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 4 | 31 | 07 September 2025 | | 442.98 | 27.26 | 4.92 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 5 | 30 | 07 October 2025 | | 414.9 | 28.08 | 4.1 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 6 | 31 | 07 November 2025 | | 385.98 | 28.92 | 3.26 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 7 | 30 | 07 December 2025 | | 356.19 | 29.79 | 2.39 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 8 | 31 | 07 January 2026 | | 325.51 | 30.68 | 1.5 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 9 | 31 | 07 February 2026 | | 306.34 | 19.17 | 0.57 | 0.0 | 0.0 | 19.74 | 0.0 | 0.0 | 0.0 | 19.74 | + | 10 | 28 | 07 March 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 11 | 31 | 07 April 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 12 | 30 | 07 May 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 13 | 31 | 07 June 2026 | 16 May 2025 | 276.47 | 29.87 | 0.0 | 0.0 | 0.0 | 29.87 | 29.87 | 29.87 | 0.0 | 0.0 | + | 14 | 30 | 07 July 2026 | 16 May 2025 | 244.29 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 15 | 31 | 07 August 2026 | 16 May 2025 | 226.98 | 17.31 | 0.0 | 0.0 | 0.0 | 17.31 | 17.31 | 17.31 | 0.0 | 0.0 | + | 16 | 31 | 07 September 2026 | 16 May 2025 | 194.8 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 17 | 30 | 07 October 2026 | 16 May 2025 | 162.62 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 18 | 31 | 07 November 2026 | 16 May 2025 | 145.44 | 17.18 | 0.0 | 0.0 | 0.0 | 17.18 | 17.18 | 17.18 | 0.0 | 0.0 | + | 19 | 30 | 07 December 2026 | 16 May 2025 | 113.26 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 20 | 31 | 07 January 2027 | 16 May 2025 | 93.37 | 19.89 | 0.0 | 0.0 | 0.0 | 19.89 | 19.89 | 19.89 | 0.0 | 0.0 | + | 21 | 31 | 07 February 2027 | 16 May 2025 | 61.19 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 22 | 28 | 07 March 2027 | 11 May 2025 | 47.41 | 13.78 | 0.0 | 0.0 | 0.0 | 13.78 | 13.78 | 13.78 | 0.0 | 0.0 | + | 23 | 31 | 07 April 2027 | 11 May 2025 | 23.66 | 23.75 | 0.0 | 0.0 | 0.0 | 23.75 | 23.75 | 23.75 | 0.0 | 0.0 | + | 24 | 30 | 07 May 2027 | 11 May 2025 | 0.0 | 23.66 | 0.0 | 0.0 | 0.0 | 23.66 | 23.66 | 23.66 | 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 | + | 546.14 | 37.38 | 0.0 | 0.0 | 583.52 | 308.59 | 308.59 | 0.0 | 274.93 | + Then Loan Transactions tab has the following data: + | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | Reverted | Replayed | + | 07 May 2025 | Disbursement | 179.04 | 0.0 | 0.0 | 0.0 | 0.0 | 179.04 | false | false | + | 08 May 2025 | Disbursement | 52.07 | 0.0 | 0.0 | 0.0 | 0.0 | 231.11 | false | false | + | 08 May 2025 | Disbursement | 171.31 | 0.0 | 0.0 | 0.0 | 0.0 | 402.42 | false | false | + | 09 May 2025 | Accrual | 0.56 | 0.0 | 0.56 | 0.0 | 0.0 | 0.0 | false | false | + | 10 May 2025 | Accrual | 0.39 | 0.0 | 0.39 | 0.0 | 0.0 | 0.0 | false | false | + | 11 May 2025 | Merchant Issued Refund | 61.19 | 61.19 | 0.0 | 0.0 | 0.0 | 341.23 | false | false | + | 11 May 2025 | Interest Refund | 0.24 | 0.0 | 0.24 | 0.0 | 0.0 | 341.23 | false | false | + | 11 May 2025 | Accrual | 0.39 | 0.0 | 0.39 | 0.0 | 0.0 | 0.0 | false | false | + | 12 May 2025 | Accrual | 0.33 | 0.0 | 0.33 | 0.0 | 0.0 | 0.0 | false | false | + | 13 May 2025 | Disbursement | 81.67 | 0.0 | 0.0 | 0.0 | 0.0 | 422.9 | false | false | + | 13 May 2025 | Accrual | 0.33 | 0.0 | 0.33 | 0.0 | 0.0 | 0.0 | false | false | + | 14 May 2025 | Disbursement | 62.05 | 0.0 | 0.0 | 0.0 | 0.0 | 484.95 | false | false | + | 14 May 2025 | Accrual | 0.41 | 0.0 | 0.41 | 0.0 | 0.0 | 0.0 | false | false | + | 16 May 2025 | Merchant Issued Refund | 52.07 | 52.07 | 0.0 | 0.0 | 0.0 | 432.88 | false | false | + | 16 May 2025 | Interest Refund | 0.45 | 0.0 | 0.45 | 0.0 | 0.0 | 432.88 | false | false | + | 16 May 2025 | Merchant Issued Refund | 49.36 | 49.36 | 0.0 | 0.0 | 0.0 | 383.52 | false | false | + | 16 May 2025 | Interest Refund | 0.43 | 0.0 | 0.43 | 0.0 | 0.0 | 383.52 | false | false | + | 16 May 2025 | Merchant Issued Refund | 81.67 | 81.67 | 0.0 | 0.0 | 0.0 | 301.85 | false | false | + | 16 May 2025 | Interest Refund | 0.65 | 0.0 | 0.65 | 0.0 | 0.0 | 301.85 | false | false | + | 16 May 2025 | Merchant Issued Refund | 62.05 | 62.05 | 0.0 | 0.0 | 0.0 | 239.8 | false | false | + | 16 May 2025 | Interest Refund | 0.48 | 0.0 | 0.48 | 0.0 | 0.0 | 239.8 | false | false | + + When Admin sets the business date to "14 June 2025" + When Admin runs inline COB job for Loan + When Admin sets the business date to "14 July 2025" + When Admin runs inline COB job for Loan +# --- add charge on Aug, 14 --- # + When Admin sets the business date to "14 August 2025" + When Admin runs inline COB job for Loan + And Admin adds "LOAN_NSF_FEE" due date charge with "15 August 2025" due date and 10 EUR transaction amount + When Admin sets the business date to "15 August 2025" +# --- make charge-off on Aug, 15 --- # + And Admin does charge-off the loan on "15 August 2025" + When Admin sets the business date to "16 August 2025" + When Admin runs inline COB job for Loan + Then Loan Repayment schedule has 24 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 | + | | | 07 May 2025 | | 179.04 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 08 May 2025 | | 52.07 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 08 May 2025 | | 171.31 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 13 May 2025 | | 81.67 | | | 0.0 | | 0.0 | 0.0 | | | | + | | | 14 May 2025 | | 62.05 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 31 | 07 June 2025 | | 522.41 | 23.73 | 8.45 | 0.0 | 0.0 | 32.18 | 2.25 | 2.25 | 0.0 | 29.93 | + | 2 | 30 | 07 July 2025 | | 497.42 | 24.99 | 7.19 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 3 | 31 | 07 August 2025 | | 472.43 | 24.99 | 7.19 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 4 | 31 | 07 September 2025 | | 442.11 | 30.32 | 1.86 | 0.0 | 10.0 | 42.18 | 0.0 | 0.0 | 0.0 | 42.18 | + | 5 | 30 | 07 October 2025 | | 409.93 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 6 | 31 | 07 November 2025 | | 377.75 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 7 | 30 | 07 December 2025 | | 345.57 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 8 | 31 | 07 January 2026 | | 313.39 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | + | 9 | 31 | 07 February 2026 | | 306.34 | 7.05 | 0.0 | 0.0 | 0.0 | 7.05 | 0.0 | 0.0 | 0.0 | 7.05 | + | 10 | 28 | 07 March 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 11 | 31 | 07 April 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 12 | 30 | 07 May 2026 | 16 May 2025 | 306.34 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 13 | 31 | 07 June 2026 | 16 May 2025 | 276.47 | 29.87 | 0.0 | 0.0 | 0.0 | 29.87 | 29.87 | 29.87 | 0.0 | 0.0 | + | 14 | 30 | 07 July 2026 | 16 May 2025 | 244.29 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 15 | 31 | 07 August 2026 | 16 May 2025 | 226.98 | 17.31 | 0.0 | 0.0 | 0.0 | 17.31 | 17.31 | 17.31 | 0.0 | 0.0 | + | 16 | 31 | 07 September 2026 | 16 May 2025 | 194.8 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 17 | 30 | 07 October 2026 | 16 May 2025 | 162.62 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 18 | 31 | 07 November 2026 | 16 May 2025 | 145.44 | 17.18 | 0.0 | 0.0 | 0.0 | 17.18 | 17.18 | 17.18 | 0.0 | 0.0 | + | 19 | 30 | 07 December 2026 | 16 May 2025 | 113.26 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 20 | 31 | 07 January 2027 | 16 May 2025 | 93.37 | 19.89 | 0.0 | 0.0 | 0.0 | 19.89 | 19.89 | 19.89 | 0.0 | 0.0 | + | 21 | 31 | 07 February 2027 | 16 May 2025 | 61.19 | 32.18 | 0.0 | 0.0 | 0.0 | 32.18 | 32.18 | 32.18 | 0.0 | 0.0 | + | 22 | 28 | 07 March 2027 | 11 May 2025 | 47.41 | 13.78 | 0.0 | 0.0 | 0.0 | 13.78 | 13.78 | 13.78 | 0.0 | 0.0 | + | 23 | 31 | 07 April 2027 | 11 May 2025 | 23.66 | 23.75 | 0.0 | 0.0 | 0.0 | 23.75 | 23.75 | 23.75 | 0.0 | 0.0 | + | 24 | 30 | 07 May 2027 | 11 May 2025 | 0.0 | 23.66 | 0.0 | 0.0 | 0.0 | 23.66 | 23.66 | 23.66 | 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 | + | 546.14 | 24.69 | 0.0 | 10.0 | 580.83 | 308.59 | 308.59 | 0.0 | 272.24 | diff --git a/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeback.feature b/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeback.feature index 28873852ee..308b1f93f8 100644 --- a/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeback.feature +++ b/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeback.feature @@ -5655,3 +5655,161 @@ Feature: LoanChargeback | 01 February 2024 | Repayment | 17.01 | 16.43 | 0.58 | 0.0 | 0.0 | 83.57 | false | false | | 01 February 2024 | Chargeback | 17.01 | 16.43 | 0.58 | 0.0 | 0.0 | 100.0 | false | false | | 01 February 2024 | Accrual | 0.02 | 0.0 | 0.02 | 0.0 | 0.0 | 0.0 | false | false | + + @TestRailId:C4015 + Scenario: Verify early repayment with MIR and chargeback afterwards for 24m progressive loan + When Admin sets the business date to "11 April 2025" + 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_CUSTOM_PMT_ALLOC_PROGRESSIVE_LOAN_SCHEDULE_HORIZONTAL_ZERO_CHARGE_OFF | 11 April 2025 | 209.72 | 12.25 | DECLINING_BALANCE | DAILY | EQUAL_INSTALLMENTS | 24 | MONTHS | 1 | MONTHS | 24 | 0 | 0 | 0 | ADVANCED_PAYMENT_ALLOCATION | + And Admin successfully approves the loan on "11 April 2025" with "209.72" amount and expected disbursement date on "11 April 2025" + Then Loan Repayment schedule has 24 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 | + | | | 11 April 2025 | | 209.72 | | | 0.0 | | 0.0 | | | | 0.0 | + | 1 | 30 | 11 May 2025 | | 201.96 | 7.76 | 2.14 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 2 | 31 | 11 June 2025 | | 194.12 | 7.84 | 2.06 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 3 | 30 | 11 July 2025 | | 186.2 | 7.92 | 1.98 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 4 | 31 | 11 August 2025 | | 178.2 | 8.0 | 1.9 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 5 | 31 | 11 September 2025 | | 170.12 | 8.08 | 1.82 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 6 | 30 | 11 October 2025 | | 161.96 | 8.16 | 1.74 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 7 | 31 | 11 November 2025 | | 153.71 | 8.25 | 1.65 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 8 | 30 | 11 December 2025 | | 145.38 | 8.33 | 1.57 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 9 | 31 | 11 January 2026 | | 136.96 | 8.42 | 1.48 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 10 | 31 | 11 February 2026 | | 128.46 | 8.5 | 1.4 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 11 | 28 | 11 March 2026 | | 119.87 | 8.59 | 1.31 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 12 | 31 | 11 April 2026 | | 111.19 | 8.68 | 1.22 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 13 | 30 | 11 May 2026 | | 102.43 | 8.76 | 1.14 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 14 | 31 | 11 June 2026 | | 93.58 | 8.85 | 1.05 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 15 | 30 | 11 July 2026 | | 84.64 | 8.94 | 0.96 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 16 | 31 | 11 August 2026 | | 75.6 | 9.04 | 0.86 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 17 | 31 | 11 September 2026 | | 66.47 | 9.13 | 0.77 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 18 | 30 | 11 October 2026 | | 57.25 | 9.22 | 0.68 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 19 | 31 | 11 November 2026 | | 47.93 | 9.32 | 0.58 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 20 | 30 | 11 December 2026 | | 38.52 | 9.41 | 0.49 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 21 | 31 | 11 January 2027 | | 29.01 | 9.51 | 0.39 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 22 | 31 | 11 February 2027 | | 19.41 | 9.6 | 0.3 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 23 | 28 | 11 March 2027 | | 9.71 | 9.7 | 0.2 | 0.0 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | + | 24 | 31 | 11 April 2027 | | 0.0 | 9.71 | 0.1 | 0.0 | 0.0 | 9.81 | 0.0 | 0.0 | 0.0 | 9.81 | + Then Loan Repayment schedule has the following data in Total row: + | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding | + | 209.72 | 27.79 | 0.0 | 0.0 | 237.51 | 0.0 | 0.0 | 0.0 | 237.51 | + + When Admin successfully disburse the loan on "11 April 2025" with "209.72" EUR transaction amount + When Admin sets the business date to "11 May 2025" + And Customer makes "AUTOPAY" repayment on "11 May 2025" with 9.9 EUR transaction amount + When Admin sets the business date to "11 June 2025" + And Customer makes "AUTOPAY" repayment on "11 June 2025" with 9.9 EUR transaction amount + When Admin sets the business date to "11 July 2025" + And Customer makes "AUTOPAY" repayment on "11 July 2025" with 9.9 EUR transaction amount + When Admin sets the business date to "11 August 2025" + When Admin runs inline COB job for Loan + And Customer makes "AUTOPAY" repayment on "11 August 2025" with 9.9 EUR transaction amount + When Admin sets the business date to "13 August 2025" + When Admin runs inline COB job for Loan + And Customer makes "MERCHANT_ISSUED_REFUND" transaction with "AUTOPAY" payment type on "13 August 2025" with 188.8 EUR transaction amount and system-generated Idempotency key + When Admin sets the business date to "15 August 2025" + When Admin runs inline COB job for Loan + Then Loan Repayment schedule has 24 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 | + | | | 11 April 2025 | | 209.72 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 30 | 11 May 2025 | 11 May 2025 | 201.96 | 7.76 | 2.14 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 2 | 31 | 11 June 2025 | 11 June 2025 | 194.12 | 7.84 | 2.06 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 3 | 30 | 11 July 2025 | 11 July 2025 | 186.2 | 7.92 | 1.98 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 4 | 31 | 11 August 2025 | 11 August 2025 | 178.2 | 8.0 | 1.9 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 5 | 31 | 11 September 2025 | 13 August 2025 | 178.2 | 0.0 | 0.12 | 0.0 | 0.0 | 0.12 | 0.12 | 0.12 | 0.0 | 0.0 | + | 6 | 30 | 11 October 2025 | 13 August 2025 | 178.2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 7 | 31 | 11 November 2025 | 13 August 2025 | 168.3 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 8 | 30 | 11 December 2025 | 13 August 2025 | 158.4 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 9 | 31 | 11 January 2026 | 13 August 2025 | 148.5 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 10 | 31 | 11 February 2026 | 13 August 2025 | 138.6 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 11 | 28 | 11 March 2026 | 13 August 2025 | 128.7 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 12 | 31 | 11 April 2026 | 13 August 2025 | 118.8 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 13 | 30 | 11 May 2026 | 13 August 2025 | 108.9 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 14 | 31 | 11 June 2026 | 13 August 2025 | 99.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 15 | 30 | 11 July 2026 | 13 August 2025 | 89.1 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 16 | 31 | 11 August 2026 | 13 August 2025 | 79.2 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 17 | 31 | 11 September 2026 | 13 August 2025 | 69.3 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 18 | 30 | 11 October 2026 | 13 August 2025 | 59.4 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 19 | 31 | 11 November 2026 | 13 August 2025 | 49.5 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 20 | 30 | 11 December 2026 | 13 August 2025 | 39.6 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 21 | 31 | 11 January 2027 | 13 August 2025 | 29.7 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 22 | 31 | 11 February 2027 | 13 August 2025 | 19.8 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 23 | 28 | 11 March 2027 | 13 August 2025 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 24 | 31 | 11 April 2027 | 13 August 2025 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 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 | + | 209.72 | 8.2 | 0.0 | 0.0 | 217.92 | 217.92 | 178.32 | 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 | + | 11 April 2025 | Disbursement | 209.72 | 0.0 | 0.0 | 0.0 | 0.0 | 209.72 | false | false | + | 11 May 2025 | Repayment | 9.9 | 7.76 | 2.14 | 0.0 | 0.0 | 201.96 | false | false | + | 11 May 2025 | Accrual Activity | 2.14 | 0.0 | 2.14 | 0.0 | 0.0 | 0.0 | false | false | + | 11 June 2025 | Repayment | 9.9 | 7.84 | 2.06 | 0.0 | 0.0 | 194.12 | false | false | + | 11 June 2025 | Accrual Activity | 2.06 | 0.0 | 2.06 | 0.0 | 0.0 | 0.0 | false | false | + | 11 July 2025 | Repayment | 9.9 | 7.92 | 1.98 | 0.0 | 0.0 | 186.2 | false | false | + | 11 July 2025 | Accrual Activity | 1.98 | 0.0 | 1.98 | 0.0 | 0.0 | 0.0 | false | false | + | 10 August 2025 | Accrual | 8.02 | 0.0 | 8.02 | 0.0 | 0.0 | 0.0 | false | false | + | 11 August 2025 | Repayment | 9.9 | 8.0 | 1.9 | 0.0 | 0.0 | 178.2 | false | false | + | 11 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 11 August 2025 | Accrual Activity | 1.9 | 0.0 | 1.9 | 0.0 | 0.0 | 0.0 | false | false | + | 12 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Merchant Issued Refund | 188.8 | 178.2 | 0.12 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Interest Refund | 7.87 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Accrual Activity | 0.12 | 0.0 | 0.12 | 0.0 | 0.0 | 0.0 | false | false | + +# --- make this reversal of repayment --- # + When Customer undo "1"th "Repayment" transaction made on "11 August 2025" + When Admin makes "REPAYMENT_ADJUSTMENT_CHARGEBACK" chargeback with 15 EUR transaction amount for MIR nr. 1 + When Admin sets the business date to "16 August 2025" + When Admin runs inline COB job for Loan + Then Loan Repayment schedule has 24 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 | + | | | 11 April 2025 | | 209.72 | | | 0.0 | | 0.0 | 0.0 | | | | + | 1 | 30 | 11 May 2025 | 11 May 2025 | 201.96 | 7.76 | 2.14 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 2 | 31 | 11 June 2025 | 11 June 2025 | 194.12 | 7.84 | 2.06 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 3 | 30 | 11 July 2025 | 11 July 2025 | 186.2 | 7.92 | 1.98 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | + | 4 | 31 | 11 August 2025 | 13 August 2025 | 178.2 | 8.0 | 1.9 | 0.0 | 0.0 | 9.9 | 9.9 | 0.0 | 9.9 | 0.0 | + | 5 | 31 | 11 September 2025 | | 178.2 | 15.0 | 0.18 | 0.0 | 0.0 | 15.18 | 8.57 | 8.57 | 0.0 | 6.61 | + | 6 | 30 | 11 October 2025 | 13 August 2025 | 178.2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | + | 7 | 31 | 11 November 2025 | 13 August 2025 | 168.3 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 8 | 30 | 11 December 2025 | 13 August 2025 | 158.4 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 9 | 31 | 11 January 2026 | 13 August 2025 | 148.5 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 10 | 31 | 11 February 2026 | 13 August 2025 | 138.6 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 11 | 28 | 11 March 2026 | 13 August 2025 | 128.7 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 12 | 31 | 11 April 2026 | 13 August 2025 | 118.8 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 13 | 30 | 11 May 2026 | 13 August 2025 | 108.9 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 14 | 31 | 11 June 2026 | 13 August 2025 | 99.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 15 | 30 | 11 July 2026 | 13 August 2025 | 89.1 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 16 | 31 | 11 August 2026 | 13 August 2025 | 79.2 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 17 | 31 | 11 September 2026 | 13 August 2025 | 69.3 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 18 | 30 | 11 October 2026 | 13 August 2025 | 59.4 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 19 | 31 | 11 November 2026 | 13 August 2025 | 49.5 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 20 | 30 | 11 December 2026 | 13 August 2025 | 39.6 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 21 | 31 | 11 January 2027 | 13 August 2025 | 29.7 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 22 | 31 | 11 February 2027 | 13 August 2025 | 19.8 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 23 | 28 | 11 March 2027 | 13 August 2025 | 9.9 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 0.0 | 0.0 | + | 24 | 31 | 11 April 2027 | 13 August 2025 | 0.0 | 9.9 | 0.0 | 0.0 | 0.0 | 9.9 | 9.9 | 9.9 | 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 | + | 224.72 | 8.26 | 0.0 | 0.0 | 232.98 | 226.37 | 186.77 | 9.9 | 6.61 | + Then Loan Transactions tab has the following data: + | Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance | Reverted | Replayed | + | 11 April 2025 | Disbursement | 209.72 | 0.0 | 0.0 | 0.0 | 0.0 | 209.72 | false | false | + | 11 May 2025 | Repayment | 9.9 | 7.76 | 2.14 | 0.0 | 0.0 | 201.96 | false | false | + | 11 May 2025 | Accrual Activity | 2.14 | 0.0 | 2.14 | 0.0 | 0.0 | 0.0 | false | false | + | 11 June 2025 | Repayment | 9.9 | 7.84 | 2.06 | 0.0 | 0.0 | 194.12 | false | false | + | 11 June 2025 | Accrual Activity | 2.06 | 0.0 | 2.06 | 0.0 | 0.0 | 0.0 | false | false | + | 11 July 2025 | Repayment | 9.9 | 7.92 | 1.98 | 0.0 | 0.0 | 186.2 | false | false | + | 11 July 2025 | Accrual Activity | 1.98 | 0.0 | 1.98 | 0.0 | 0.0 | 0.0 | false | false | + | 10 August 2025 | Accrual | 8.02 | 0.0 | 8.02 | 0.0 | 0.0 | 0.0 | false | false | + | 11 August 2025 | Repayment | 9.9 | 8.0 | 1.9 | 0.0 | 0.0 | 178.2 | true | false | + | 11 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 11 August 2025 | Accrual Activity | 1.9 | 0.0 | 1.9 | 0.0 | 0.0 | 0.0 | false | false | + | 12 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Accrual | 0.06 | 0.0 | 0.06 | 0.0 | 0.0 | 0.0 | false | false | + | 13 August 2025 | Merchant Issued Refund | 188.8 | 186.2 | 2.02 | 0.0 | 0.0 | 0.0 | false | true | + | 13 August 2025 | Interest Refund | 7.87 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | false | true | + | 15 August 2025 | Chargeback | 15.0 | 15.0 | 0.0 | 0.0 | 0.0 | 6.55 | false | false | +
