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 6b5641f47 FINERACT-2148: Accrual handling in case of Charged-off loan
and backdated transactions / reversals
6b5641f47 is described below
commit 6b5641f474b79e57f589cc2606cc022b9b752c76
Author: mariiaKraievska <[email protected]>
AuthorDate: Thu Feb 27 16:38:06 2025 +0200
FINERACT-2148: Accrual handling in case of Charged-off loan and backdated
transactions / reversals
---
...nAccrualAdjustmentTransactionBusinessEvent.java | 27 +
.../fineract/test/stepdef/loan/LoanStepDef.java | 18 +
.../test/resources/features/LoanChargeOff.feature | 670 +++++++++++++++++++--
...dvancedPaymentScheduleTransactionProcessor.java | 29 +-
...cedPaymentScheduleTransactionProcessorTest.java | 2 +-
.../starter/LoanAccountAutoStarter.java | 6 +-
6 files changed, 703 insertions(+), 49 deletions(-)
diff --git
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/event/loan/transaction/LoanAccrualAdjustmentTransactionBusinessEvent.java
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/event/loan/transaction/LoanAccrualAdjustmentTransactionBusinessEvent.java
new file mode 100644
index 000000000..1aecbcbf9
--- /dev/null
+++
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/messaging/event/loan/transaction/LoanAccrualAdjustmentTransactionBusinessEvent.java
@@ -0,0 +1,27 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.fineract.test.messaging.event.loan.transaction;
+
+public class LoanAccrualAdjustmentTransactionBusinessEvent extends
AbstractLoanTransactionEvent {
+
+ @Override
+ public String getEventName() {
+ return "LoanAccrualAdjustmentTransactionBusinessEvent";
+ }
+}
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 fcbc8859f..17f7e3edc 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
@@ -122,6 +122,7 @@ import
org.apache.fineract.test.messaging.config.EventProperties;
import org.apache.fineract.test.messaging.event.EventCheckHelper;
import
org.apache.fineract.test.messaging.event.loan.LoanRescheduledDueAdjustScheduleEvent;
import org.apache.fineract.test.messaging.event.loan.LoanStatusChangedEvent;
+import
org.apache.fineract.test.messaging.event.loan.transaction.LoanAccrualAdjustmentTransactionBusinessEvent;
import
org.apache.fineract.test.messaging.event.loan.transaction.LoanAccrualTransactionCreatedBusinessEvent;
import
org.apache.fineract.test.messaging.event.loan.transaction.LoanChargeAdjustmentPostBusinessEvent;
import
org.apache.fineract.test.messaging.event.loan.transaction.LoanChargeOffEvent;
@@ -2335,6 +2336,23 @@ public class LoanStepDef extends AbstractStepDef {
eventAssertion.assertEventRaised(LoanAccrualTransactionCreatedBusinessEvent.class,
accrualTransactionId);
}
+ @Then("LoanAccrualAdjustmentTransactionBusinessEvent is raised on
{string}")
+ public void checkLoanAccrualAdjustmentTransactionBusinessEvent(String
date) throws IOException {
+ Response<PostLoansResponse> loanCreateResponse =
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
+ long loanId = loanCreateResponse.body().getLoanId();
+
+ Response<GetLoansLoanIdResponse> loanDetailsResponse =
loansApi.retrieveLoan(loanId, false, "transactions", "", "").execute();
+ ErrorHelper.checkSuccessfulApiCall(loanDetailsResponse);
+
+ List<GetLoansLoanIdTransactions> transactions =
loanDetailsResponse.body().getTransactions();
+ GetLoansLoanIdTransactions accrualAdjustmentTransaction =
transactions.stream()
+ .filter(t -> date.equals(FORMATTER.format(t.getDate())) &&
"Accrual Adjustment".equals(t.getType().getValue())).findFirst()
+ .orElseThrow(() -> new IllegalStateException(String.format("No
Accrual Adjustment transaction found on %s", date)));
+ Long accrualAdjustmentTransactionId =
accrualAdjustmentTransaction.getId();
+
+
eventAssertion.assertEventRaised(LoanAccrualAdjustmentTransactionBusinessEvent.class,
accrualAdjustmentTransactionId);
+ }
+
@Then("LoanChargeAdjustmentPostBusinessEvent is raised on {string}")
public void checkLoanChargeAdjustmentPostBusinessEvent(String date) throws
IOException {
Response<PostLoansResponse> loanCreateResponse =
testContext().get(TestContextKey.LOAN_CREATE_RESPONSE);
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 4043996a9..5e181f0e5 100644
---
a/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeOff.feature
+++
b/fineract-e2e-tests-runner/src/test/resources/features/LoanChargeOff.feature
@@ -2341,12 +2341,13 @@ Feature: Charge-off
| Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
| 100 | 1.45 | 0 | 0 | 101.45 | 34.02 | 0
| 0 | 67.43 |
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 |
- | 01 February 2024 | Repayment | 17.01 | 16.43 | 0.58 |
0.0 | 0.0 | 83.57 | false | false |
- | 01 March 2024 | Repayment | 17.01 | 16.52 | 0.49 |
0.0 | 0.0 | 67.05 | false | false |
- | 31 March 2024 | Accrual | 1.54 | 0.0 | 1.54 |
0.0 | 0.0 | 0.0 | false | false |
- | 31 March 2024 | Charge-off | 67.43 | 67.05 | 0.38 |
0.0 | 0.0 | 0.0 | false | true |
+ | 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 |
+ | 01 February 2024 | Repayment | 17.01 | 16.43 | 0.58
| 0.0 | 0.0 | 83.57 | false | false |
+ | 01 March 2024 | Repayment | 17.01 | 16.52 | 0.49
| 0.0 | 0.0 | 67.05 | false | false |
+ | 31 March 2024 | Accrual | 1.54 | 0.0 | 1.54
| 0.0 | 0.0 | 0.0 | false | false |
+ | 31 March 2024 | Accrual Adjustment | 0.09 | 0.0 | 0.09
| 0.0 | 0.0 | 0.0 | false | false |
+ | 31 March 2024 | Charge-off | 67.43 | 67.05 | 0.38
| 0.0 | 0.0 | 0.0 | false | true |
@TestRailId:C3345
Scenario: Charge-off with reversal afterwards when loan behavior is
zero-interest with interestRecalculation - UC7
@@ -3449,12 +3450,13 @@ Feature: Charge-off
| Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
| 100.0 | 1.45 | 0.0 | 0.0 | 101.45 | 34.02 | 0.0
| 0.0 | 67.43 |
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 |
- | 01 February 2024 | Repayment | 17.01 | 16.43 | 0.58 |
0.0 | 0.0 | 83.57 | false | false |
- | 01 March 2024 | Repayment | 17.01 | 16.52 | 0.49 |
0.0 | 0.0 | 67.05 | false | false |
- | 31 March 2024 | Accrual | 1.54 | 0.0 | 1.54 |
0.0 | 0.0 | 0.0 | false | false |
- | 31 March 2024 | Charge-off | 67.43 | 67.05 | 0.38 |
0.0 | 0.0 | 0.0 | false | true |
+ | 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 |
+ | 01 February 2024 | Repayment | 17.01 | 16.43 | 0.58
| 0.0 | 0.0 | 83.57 | false | false |
+ | 01 March 2024 | Repayment | 17.01 | 16.52 | 0.49
| 0.0 | 0.0 | 67.05 | false | false |
+ | 31 March 2024 | Accrual | 1.54 | 0.0 | 1.54
| 0.0 | 0.0 | 0.0 | false | false |
+ | 31 March 2024 | Accrual Adjustment | 0.09 | 0.0 | 0.09
| 0.0 | 0.0 | 0.0 | false | false |
+ | 31 March 2024 | Charge-off | 67.43 | 67.05 | 0.38
| 0.0 | 0.0 | 0.0 | false | true |
And Global configuration
"is-principal-compounding-disabled-for-overdue-loans" is disabled
@TestRailId:C3358 @AdvancedPaymentAllocation
@@ -4586,11 +4588,11 @@ Feature: Charge-off
| Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Waived | Outstanding |
| 100 | 1.05 | 8.0 | 0 | 109.05 | 22.01 | 0
| 0 | 0.0 | 87.04 |
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 |
- | 01 February 2024 | Repayment | 22.01 | 16.43 | 0.58 |
5.0 | 0.0 | 83.57 | false | false |
- | 29 February 2024 | Accrual | 1.05 | 0.0 | 1.05 |
0.0 | 0.0 | 0.0 | false | false |
- | 29 February 2024 | Charge-off | 87.04 | 83.57 | 0.47 |
3.0 | 0.0 | 0.0 | false | false |
+ | 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 |
+ | 01 February 2024 | Repayment | 22.01 | 16.43 | 0.58 |
5.0 | 0.0 | 83.57 | false | false |
+ | 29 February 2024 | Accrual | 1.05 | 0.0 | 1.05 |
0.0 | 0.0 | 0.0 | false | false |
+ | 29 February 2024 | Charge-off | 87.04 | 83.57 | 0.47 |
3.0 | 0.0 | 0.0 | false | false |
@TestRailId:C3415
Scenario: Backdated charge-off with charge is added after the charge off
date when loan behavior is zero-interest with interestRecalculation disabled is
forbidden - UC9.5
@@ -6454,26 +6456,27 @@ Feature: Charge-off
Then Admin runs inline COB job for Loan
And Admin does charge-off the loan on "17 January 2024"
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 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 02 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 03 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 04 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 05 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
- | 06 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 07 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 08 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 09 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 10 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 11 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 12 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 13 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
- | 14 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
- | 15 January 2024 | Repayment | 263.69 | 253.91 | 9.78 |
0.0 | 0.0 | 746.09 | false | false |
- | 15 January 2024 | Accrual | 0.53 | 0.0 | 0.53 |
0.0 | 0.0 | 0.0 | false | false |
- | 16 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
- | 17 January 2024 | Charge-off | 787.64 | 746.09 | 41.55 |
0.0 | 0.0 | 0.0 | false | false |
+ | 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 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 02 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 03 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 04 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 05 January 2024 | Accrual | 0.69 | 0.0 | 0.69
| 0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 07 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 08 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 09 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 10 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 11 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 12 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 13 January 2024 | Accrual | 0.7 | 0.0 | 0.7
| 0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.69 | 0.0 | 0.69
| 0.0 | 0.0 | 0.0 | false | false |
+ | 15 January 2024 | Repayment | 263.69 | 253.91 | 9.78
| 0.0 | 0.0 | 746.09 | false | false |
+ | 15 January 2024 | Accrual | 0.53 | 0.0 | 0.53
| 0.0 | 0.0 | 0.0 | false | false |
+ | 16 January 2024 | Accrual | 0.52 | 0.0 | 0.52
| 0.0 | 0.0 | 0.0 | false | false |
+ | 17 January 2024 | Accrual Adjustment | 0.52 | 0.0 | 0.52
| 0.0 | 0.0 | 0.0 | false | false |
+ | 17 January 2024 | Charge-off | 787.64 | 746.09 | 41.55
| 0.0 | 0.0 | 0.0 | false | false |
@TestRailId:C3512
Scenario: Backdate charge-off reverse accruals with
isInterestRecognitionOnDisbursementDate = false
@@ -6557,11 +6560,12 @@ Feature: Charge-off
| 5 | 31 | 01 June 2024 | | 16.85 |
16.81 | 0.2 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0
| 17.01 |
| 6 | 30 | 01 July 2024 | | 0.0 |
16.85 | 0.1 | 0.0 | 0.0 | 16.95 | 0.0 | 0.0 | 0.0
| 16.95 |
And 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 |
- | 01 January 2024 | Accrual | 2.05 | 0.0 | 2.05 |
0.0 | 0.0 | 0.0 | false | false |
- | 15 January 2024 | Repayment | 17.01 | 16.75 | 0.26 |
0.0 | 0.0 | 83.25 | false | false |
- | 01 March 2024 | Charge-off | 84.99 | 83.25 | 1.74 |
0.0 | 0.0 | 0.0 | false | false |
+ | 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 |
+ | 01 January 2024 | Accrual | 2.05 | 0.0 | 2.05
| 0.0 | 0.0 | 0.0 | false | false |
+ | 15 January 2024 | Repayment | 17.01 | 16.75 | 0.26
| 0.0 | 0.0 | 83.25 | false | false |
+ | 01 March 2024 | Accrual Adjustment | 1.03 | 0.0 | 1.03
| 0.0 | 0.0 | 0.0 | false | false |
+ | 01 March 2024 | Charge-off | 84.99 | 83.25 | 1.74
| 0.0 | 0.0 | 0.0 | false | false |
@TestRailId:C3513
Scenario: Accrual handling in case of charged-off loan when loan behavior is
zero-interest with interestRecalculation enabled, interest recognition from
disbursement date = FALSE
@@ -6666,6 +6670,7 @@ Feature: Charge-off
| 30 January 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
| 31 January 2024 | Accrual | 0.01 | 0.0 | 0.01 |
0.0 | 0.0 | 0.0 | false | false |
| 31 January 2024 | Charge-off | 100.56 | 100.0 | 0.56 |
0.0 | 0.0 | 0.0 | false | false |
+ Then LoanAccrualTransactionCreatedBusinessEvent is raised on "31 January
2024"
@TestRailId:C3514
Scenario: Accrual handling in case of charged-off loan when loan behavior is
zero-interest with interestRecalculation enabled, interest recognition from
disbursement date = TRUE
@@ -6771,3 +6776,584 @@ Feature: Charge-off
| 29 January 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
| 30 January 2024 | Accrual | 0.01 | 0.0 | 0.01 |
0.0 | 0.0 | 0.0 | false | false |
| 31 January 2024 | Charge-off | 100.56 | 100.0 | 0.56 |
0.0 | 0.0 | 0.0 | false | false |
+
+ @TestRailId:C3515
+ Scenario: Accrual handling in case of charged-off loan and backdated
repayment reversal when loan behavior is zero-interest with
interestRecalculation enabled, interest recognition from disbursement date =
FALSE
+ When Admin sets the business date to "01 January 2024"
+ And Admin creates a client with random data
+ And 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_INTEREST_RECALCULATION_ZERO_INTEREST_CHARGE_OFF |
01 January 2024 | 1000 | 26 | DECLINING_BALANCE
| DAILY | EQUAL_INSTALLMENTS | 4 | MONTHS
| 1 | MONTHS | 4 |
0 | 0 | 0 |
ADVANCED_PAYMENT_ALLOCATION |
+ And Admin successfully approves the loan on "1 January 2024" with "1000"
amount and expected disbursement date on "1 January 2024"
+ And Admin successfully disburse the loan on "1 January 2024" with "1000"
EUR transaction amount
+ When Admin runs inline COB job for Loan
+ 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 | | 757.98 | 242.02
| 21.67 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 | 0.0 | 263.69
|
+ | 2 | 29 | 01 March 2024 | | 510.71 | 247.27
| 16.42 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 | 0.0 | 263.69
|
+ | 3 | 31 | 01 April 2024 | | 258.09 | 252.62
| 11.07 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 | 0.0 | 263.69
|
+ | 4 | 30 | 01 May 2024 | | 0.0 | 258.09
| 5.59 | 0.0 | 0.0 | 263.68 | 0.0 | 0.0 | 0.0 | 263.68
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 1000 | 54.75 | 0 | 0 | 1054.75 | 0 | 0
| 0 | 1054.75 |
+ When Admin sets the business date to "15 January 2024"
+ When Admin runs inline COB job for Loan
+ And Customer makes "AUTOPAY" repayment on "15 January 2024" with 263.69
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 | 15 January 2024 | 746.09 |
253.91 | 9.78 | 0.0 | 0.0 | 263.69 | 263.69 | 263.69 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 507.44 |
238.65 | 25.04 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 |
0.0 | 263.69 |
+ | 3 | 31 | 01 April 2024 | | 254.74 |
252.7 | 10.99 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 |
0.0 | 263.69 |
+ | 4 | 30 | 01 May 2024 | | 0.0 |
254.74 | 5.52 | 0.0 | 0.0 | 260.26 | 0.0 | 0.0 |
0.0 | 260.26 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 1000 | 51.33 | 0 | 0 | 1051.33 | 263.69 |
263.69 | 0 | 787.64 |
+ 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 |
+ | 02 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 03 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 04 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 05 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 07 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 08 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 09 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 10 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 11 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 12 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 13 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 15 January 2024 | Repayment | 263.69 | 253.91 | 9.78 |
0.0 | 0.0 | 746.09 | false | false |
+ When Admin sets the business date to "20 January 2024"
+ When Admin runs inline COB job for Loan
+ 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 |
+ | 02 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 03 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 04 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 05 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 07 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 08 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 09 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 10 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 11 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 12 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 13 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 15 January 2024 | Repayment | 263.69 | 253.91 | 9.78 |
0.0 | 0.0 | 746.09 | false | false |
+ | 15 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 16 January 2024 | Accrual | 0.53 | 0.0 | 0.53 |
0.0 | 0.0 | 0.0 | false | false |
+ | 17 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 18 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 19 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ And Admin does charge-off the loan on "20 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 | 15 January 2024 | 748.7 |
251.3 | 12.39 | 0.0 | 0.0 | 263.69 | 263.69 | 263.69 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 485.01 |
263.69 | 0.0 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 |
0.0 | 263.69 |
+ | 3 | 31 | 01 April 2024 | | 221.32 |
263.69 | 0.0 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 |
0.0 | 263.69 |
+ | 4 | 30 | 01 May 2024 | | 0.0 |
221.32 | 0.0 | 0.0 | 0.0 | 221.32 | 0.0 | 0.0 |
0.0 | 221.32 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 1000 | 12.39 | 0 | 0 | 1012.39 | 263.69 |
263.69 | 0 | 748.7 |
+ 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 |
+ | 02 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 03 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 04 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 05 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 07 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 08 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 09 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 10 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 11 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 12 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 13 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 15 January 2024 | Repayment | 263.69 | 253.91 | 9.78 |
0.0 | 0.0 | 746.09 | false | false |
+ | 15 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 16 January 2024 | Accrual | 0.53 | 0.0 | 0.53 |
0.0 | 0.0 | 0.0 | false | false |
+ | 17 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 18 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 19 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 20 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 20 January 2024 | Charge-off | 748.7 | 746.09 | 2.61 |
0.0 | 0.0 | 0.0 | false | false |
+ Then LoanAccrualTransactionCreatedBusinessEvent is raised on "20 January
2024"
+ When Admin sets the business date to "21 January 2024"
+ When Customer undo "1"th "Repayment" transaction made on "15 January 2024"
+ 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 |
+ | 02 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 03 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 04 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 05 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 07 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 08 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 09 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 10 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 11 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 12 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 13 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 15 January 2024 | Repayment | 263.69 | 253.91 | 9.78 |
0.0 | 0.0 | 746.09 | true | false |
+ | 15 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 16 January 2024 | Accrual | 0.53 | 0.0 | 0.53 |
0.0 | 0.0 | 0.0 | false | false |
+ | 17 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 18 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 19 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 20 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 20 January 2024 | Accrual | 0.89 | 0.0 | 0.89 |
0.0 | 0.0 | 0.0 | false | false |
+ | 20 January 2024 | Charge-off | 1013.28 | 1000.0 | 13.28 |
0.0 | 0.0 | 0.0 | false | true |
+
+ @TestRailId:C3516
+ Scenario: Accrual handling in case of charged-off loan with backdated
repayment when loan behavior is zero-interest with interestRecalculation
enabled, interest recognition from disbursement date = FALSE
+ When Admin sets the business date to "01 January 2024"
+ And Admin creates a client with random data
+ And 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_INTEREST_RECALCULATION_ZERO_INTEREST_CHARGE_OFF |
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 "1 January 2024" with "100"
amount and expected disbursement date on "1 January 2024"
+ And Admin successfully disburse the loan on "1 January 2024" with "100"
EUR transaction amount
+ When Admin runs inline COB job for Loan
+ 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 | | 83.57 | 16.43
| 0.58 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 2 | 29 | 01 March 2024 | | 67.05 | 16.52
| 0.49 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 3 | 31 | 01 April 2024 | | 50.43 | 16.62
| 0.39 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 4 | 30 | 01 May 2024 | | 33.71 | 16.72
| 0.29 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 5 | 31 | 01 June 2024 | | 16.9 | 16.81
| 0.2 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 16.9
| 0.1 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.05 | 0 | 0 | 102.05 | 0 | 0
| 0 | 102.05 |
+ When Admin sets the business date to "14 February 2024"
+ When Admin runs inline COB job for Loan
+ And Admin does charge-off the loan on "14 February 2024"
+ 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 | | 83.57 | 16.43
| 0.58 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 2 | 29 | 01 March 2024 | | 66.82 | 16.75
| 0.26 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 3 | 31 | 01 April 2024 | | 49.81 | 17.01
| 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 4 | 30 | 01 May 2024 | | 32.8 | 17.01
| 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 5 | 31 | 01 June 2024 | | 15.79 | 17.01
| 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 15.79
| 0.0 | 0.0 | 0.0 | 15.79 | 0.0 | 0.0 | 0.0 | 15.79
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 0.84 | 0 | 0 | 100.84 | 0 | 0
| 0 | 100.84 |
+ 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.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.01 | 0.0 | 0.01 |
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.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.01 | 0.0 | 0.01 |
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.02 | 0.0 | 0.02 |
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.01 | 0.0 | 0.01 |
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.02 | 0.0 | 0.02 |
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.01 | 0.0 | 0.01 |
0.0 | 0.0 | 0.0 | false | false |
+ | 01 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 02 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 03 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 04 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 05 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 07 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 08 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 09 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 10 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 11 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 12 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 13 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 February 2024 | Charge-off | 100.84 | 100.0 | 0.84 |
0.0 | 0.0 | 0.0 | false | false |
+ Then LoanAccrualTransactionCreatedBusinessEvent is raised on "14 February
2024"
+# ----- backdated repayment on 1 February made on 14 February ----- #
+ And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.01
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 | 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.78 |
16.79 | 0.22 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0
| 17.01 |
+ | 3 | 31 | 01 April 2024 | | 49.77 |
17.01 | 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0
| 17.01 |
+ | 4 | 30 | 01 May 2024 | | 32.76 |
17.01 | 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0
| 17.01 |
+ | 5 | 31 | 01 June 2024 | | 15.75 |
17.01 | 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0
| 17.01 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
15.75 | 0.0 | 0.0 | 0.0 | 15.75 | 0.0 | 0.0 | 0.0
| 15.75 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 0.8 | 0 | 0 | 100.8 | 17.01 | 0
| 0 | 83.79 |
+ 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.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.01 | 0.0 | 0.01
| 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.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.01 | 0.0 | 0.01
| 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.02 | 0.0 | 0.02
| 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.01 | 0.0 | 0.01
| 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.02 | 0.0 | 0.02
| 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.01 | 0.0 | 0.01
| 0.0 | 0.0 | 0.0 | false | false |
+ | 01 February 2024 | Repayment | 17.01 | 16.43 | 0.58
| 0.0 | 0.0 | 83.57 | false | false |
+ | 01 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 02 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 03 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 04 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 05 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 06 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 07 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 08 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 09 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 10 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 11 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 12 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 13 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 14 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 14 February 2024 | Accrual Adjustment | 0.04 | 0.0 | 0.04
| 0.0 | 0.0 | 0.0 | false | false |
+ | 14 February 2024 | Charge-off | 83.79 | 83.57 | 0.22
| 0.0 | 0.0 | 0.0 | false | true |
+ Then LoanAccrualAdjustmentTransactionBusinessEvent is raised on "14
February 2024"
+
+ @TestRailId:C3517
+ Scenario: Accrual handling in case of charged-off loan and backdated
repayment reversal when loan behavior is zero-interest with
interestRecalculation enabled, interest recognition from disbursement date =
TRUE
+ When Admin sets the business date to "2 January 2024"
+ And Admin creates a client with random data
+ And 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_INT_RECALCULATION_ZERO_INT_CHARGE_OFF_INT_RECOGNITION_FROM_DISB_DATE
| 01 January 2024 | 1000 | 26 |
DECLINING_BALANCE | DAILY | EQUAL_INSTALLMENTS | 4
| MONTHS | 1 | MONTHS | 4
| 0 | 0 | 0
| ADVANCED_PAYMENT_ALLOCATION |
+ And Admin successfully approves the loan on "1 January 2024" with "1000"
amount and expected disbursement date on "1 January 2024"
+ And Admin successfully disburse the loan on "1 January 2024" with "1000"
EUR transaction amount
+ When Admin runs inline COB job for Loan
+ 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 | | 757.98 | 242.02
| 21.67 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 | 0.0 | 263.69
|
+ | 2 | 29 | 01 March 2024 | | 510.71 | 247.27
| 16.42 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 | 0.0 | 263.69
|
+ | 3 | 31 | 01 April 2024 | | 258.09 | 252.62
| 11.07 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 | 0.0 | 263.69
|
+ | 4 | 30 | 01 May 2024 | | 0.0 | 258.09
| 5.59 | 0.0 | 0.0 | 263.68 | 0.0 | 0.0 | 0.0 | 263.68
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 1000 | 54.75 | 0 | 0 | 1054.75 | 0 | 0
| 0 | 1054.75 |
+ When Admin sets the business date to "15 January 2024"
+ When Admin runs inline COB job for Loan
+ And Customer makes "AUTOPAY" repayment on "15 January 2024" with 263.69
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 | 15 January 2024 | 746.09 |
253.91 | 9.78 | 0.0 | 0.0 | 263.69 | 263.69 | 263.69 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 507.44 |
238.65 | 25.04 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 |
0.0 | 263.69 |
+ | 3 | 31 | 01 April 2024 | | 254.74 |
252.7 | 10.99 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 |
0.0 | 263.69 |
+ | 4 | 30 | 01 May 2024 | | 0.0 |
254.74 | 5.52 | 0.0 | 0.0 | 260.26 | 0.0 | 0.0 |
0.0 | 260.26 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 1000 | 51.33 | 0 | 0 | 1051.33 | 263.69 |
263.69 | 0 | 787.64 |
+ 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 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 02 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 03 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 04 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 05 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 07 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 08 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 09 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 10 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 11 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 12 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 13 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 15 January 2024 | Repayment | 263.69 | 253.91 | 9.78 |
0.0 | 0.0 | 746.09 | false | false |
+ When Admin sets the business date to "20 January 2024"
+ When Admin runs inline COB job for Loan
+ 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 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 02 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 03 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 04 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 05 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 07 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 08 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 09 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 10 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 11 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 12 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 13 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 15 January 2024 | Repayment | 263.69 | 253.91 | 9.78 |
0.0 | 0.0 | 746.09 | false | false |
+ | 15 January 2024 | Accrual | 0.53 | 0.0 | 0.53 |
0.0 | 0.0 | 0.0 | false | false |
+ | 16 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 17 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 18 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 19 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ And Admin does charge-off the loan on "20 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 | 15 January 2024 | 748.7 |
251.3 | 12.39 | 0.0 | 0.0 | 263.69 | 263.69 | 263.69 |
0.0 | 0.0 |
+ | 2 | 29 | 01 March 2024 | | 485.01 |
263.69 | 0.0 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 |
0.0 | 263.69 |
+ | 3 | 31 | 01 April 2024 | | 221.32 |
263.69 | 0.0 | 0.0 | 0.0 | 263.69 | 0.0 | 0.0 |
0.0 | 263.69 |
+ | 4 | 30 | 01 May 2024 | | 0.0 |
221.32 | 0.0 | 0.0 | 0.0 | 221.32 | 0.0 | 0.0 |
0.0 | 221.32 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 1000 | 12.39 | 0 | 0 | 1012.39 | 263.69 |
263.69 | 0 | 748.7 |
+ 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 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 02 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 03 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 04 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 05 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 07 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 08 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 09 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 10 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 11 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 12 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 13 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 15 January 2024 | Repayment | 263.69 | 253.91 | 9.78 |
0.0 | 0.0 | 746.09 | false | false |
+ | 15 January 2024 | Accrual | 0.53 | 0.0 | 0.53 |
0.0 | 0.0 | 0.0 | false | false |
+ | 16 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 17 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 18 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 19 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 20 January 2024 | Charge-off | 748.7 | 746.09 | 2.61 |
0.0 | 0.0 | 0.0 | false | false |
+ When Admin sets the business date to "21 January 2024"
+ When Customer undo "1"th "Repayment" transaction made on "15 January 2024"
+ 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 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 02 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 03 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 04 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 05 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 07 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 08 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 09 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 10 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 11 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 12 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 13 January 2024 | Accrual | 0.7 | 0.0 | 0.7 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 January 2024 | Accrual | 0.69 | 0.0 | 0.69 |
0.0 | 0.0 | 0.0 | false | false |
+ | 15 January 2024 | Repayment | 263.69 | 253.91 | 9.78 |
0.0 | 0.0 | 746.09 | true | false |
+ | 15 January 2024 | Accrual | 0.53 | 0.0 | 0.53 |
0.0 | 0.0 | 0.0 | false | false |
+ | 16 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 17 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 18 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 19 January 2024 | Accrual | 0.52 | 0.0 | 0.52 |
0.0 | 0.0 | 0.0 | false | false |
+ | 20 January 2024 | Accrual | 0.89 | 0.0 | 0.89 |
0.0 | 0.0 | 0.0 | false | false |
+ | 20 January 2024 | Charge-off | 1013.28 | 1000.0 | 13.28 |
0.0 | 0.0 | 0.0 | false | true |
+ Then LoanAccrualTransactionCreatedBusinessEvent is raised on "20 January
2024"
+
+ @TestRailId:C3518
+ Scenario: Accrual handling in case of charged-off loan with backdated
repayment when loan behavior is zero-interest with interestRecalculation
enabled, interest recognition from disbursement date = TRUE
+ When Admin sets the business date to "1 January 2024"
+ And Admin creates a client with random data
+ And 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_INT_RECALCULATION_ZERO_INT_CHARGE_OFF_INT_RECOGNITION_FROM_DISB_DATE
| 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 "1 January 2024" with "100"
amount and expected disbursement date on "1 January 2024"
+ And Admin successfully disburse the loan on "1 January 2024" with "100"
EUR transaction amount
+ When Admin runs inline COB job for Loan
+ 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 | | 83.57 | 16.43
| 0.58 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 2 | 29 | 01 March 2024 | | 67.05 | 16.52
| 0.49 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 3 | 31 | 01 April 2024 | | 50.43 | 16.62
| 0.39 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 4 | 30 | 01 May 2024 | | 33.71 | 16.72
| 0.29 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 5 | 31 | 01 June 2024 | | 16.9 | 16.81
| 0.2 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 16.9
| 0.1 | 0.0 | 0.0 | 17.0 | 0.0 | 0.0 | 0.0 | 17.0
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 2.05 | 0 | 0 | 102.05 | 0 | 0
| 0 | 102.05 |
+ When Admin sets the business date to "14 February 2024"
+ When Admin runs inline COB job for Loan
+ And Admin does charge-off the loan on "14 February 2024"
+ 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 | | 83.57 | 16.43
| 0.58 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 2 | 29 | 01 March 2024 | | 66.82 | 16.75
| 0.26 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 3 | 31 | 01 April 2024 | | 49.81 | 17.01
| 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 4 | 30 | 01 May 2024 | | 32.8 | 17.01
| 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 5 | 31 | 01 June 2024 | | 15.79 | 17.01
| 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0 | 17.01
|
+ | 6 | 30 | 01 July 2024 | | 0.0 | 15.79
| 0.0 | 0.0 | 0.0 | 15.79 | 0.0 | 0.0 | 0.0 | 15.79
|
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 0.84 | 0 | 0 | 100.84 | 0 | 0
| 0 | 100.84 |
+ 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 |
+ | 01 January 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.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.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 22 January 2024 | Accrual | 0.01 | 0.0 | 0.01 |
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.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 30 January 2024 | Accrual | 0.01 | 0.0 | 0.01 |
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 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 02 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 03 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 04 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 05 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 06 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 07 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 08 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 09 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 10 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 11 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 12 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 13 February 2024 | Accrual | 0.02 | 0.0 | 0.02 |
0.0 | 0.0 | 0.0 | false | false |
+ | 14 February 2024 | Charge-off | 100.84 | 100.0 | 0.84 |
0.0 | 0.0 | 0.0 | false | false |
+# ----- backdated repayment on 1 February made on 14 February ----- #
+ And Customer makes "AUTOPAY" repayment on "01 February 2024" with 17.01
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 | 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.78 |
16.79 | 0.22 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0
| 17.01 |
+ | 3 | 31 | 01 April 2024 | | 49.77 |
17.01 | 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0
| 17.01 |
+ | 4 | 30 | 01 May 2024 | | 32.76 |
17.01 | 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0
| 17.01 |
+ | 5 | 31 | 01 June 2024 | | 15.75 |
17.01 | 0.0 | 0.0 | 0.0 | 17.01 | 0.0 | 0.0 | 0.0
| 17.01 |
+ | 6 | 30 | 01 July 2024 | | 0.0 |
15.75 | 0.0 | 0.0 | 0.0 | 15.75 | 0.0 | 0.0 | 0.0
| 15.75 |
+ Then Loan Repayment schedule has the following data in Total row:
+ | Principal due | Interest | Fees | Penalties | Due | Paid | In
advance | Late | Outstanding |
+ | 100 | 0.8 | 0 | 0 | 100.8 | 17.01 | 0
| 0 | 83.79 |
+ 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 |
+ | 01 January 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.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.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 22 January 2024 | Accrual | 0.01 | 0.0 | 0.01
| 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.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 30 January 2024 | Accrual | 0.01 | 0.0 | 0.01
| 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 | 17.01 | 16.43 | 0.58
| 0.0 | 0.0 | 83.57 | false | false |
+ | 01 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 02 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 03 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 04 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 05 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 06 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 07 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 08 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 09 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 10 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 11 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 12 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 13 February 2024 | Accrual | 0.02 | 0.0 | 0.02
| 0.0 | 0.0 | 0.0 | false | false |
+ | 14 February 2024 | Accrual Adjustment | 0.04 | 0.0 | 0.04
| 0.0 | 0.0 | 0.0 | false | false |
+ | 14 February 2024 | Charge-off | 83.79 | 83.57 | 0.22
| 0.0 | 0.0 | 0.0 | false | true |
+ Then LoanAccrualAdjustmentTransactionBusinessEvent is raised on "14
February 2024"
diff --git
a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
index 53adf3d5b..7c59be5c0 100644
---
a/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
+++
b/fineract-progressive-loan/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessor.java
@@ -21,6 +21,7 @@ package
org.apache.fineract.portfolio.loanaccount.domain.transactionprocessor.im
import static java.math.BigDecimal.ZERO;
import static java.util.stream.Collectors.mapping;
import static java.util.stream.Collectors.toList;
+import static
org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction.accrualAdjustment;
import static
org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction.accrueTransaction;
import static
org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRelationTypeEnum.CHARGEBACK;
import static
org.apache.fineract.portfolio.loanproduct.domain.AllocationType.FEE;
@@ -63,6 +64,9 @@ import
org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
import org.apache.fineract.infrastructure.core.service.DateUtils;
import org.apache.fineract.infrastructure.core.service.ExternalIdFactory;
import org.apache.fineract.infrastructure.core.service.MathUtil;
+import
org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanAccrualAdjustmentTransactionBusinessEvent;
+import
org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanAccrualTransactionCreatedBusinessEvent;
+import
org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
import org.apache.fineract.organisation.monetary.domain.MonetaryCurrency;
import org.apache.fineract.organisation.monetary.domain.Money;
import org.apache.fineract.organisation.monetary.domain.MoneyHelper;
@@ -117,6 +121,7 @@ public class AdvancedPaymentScheduleTransactionProcessor
extends AbstractLoanRep
private final InterestRefundService interestRefundService;
private final LoanTransactionRepository loanTransactionRepository;
private final ExternalIdFactory externalIdFactory;
+ private final BusinessEventNotifierService businessEventNotifierService;
@Override
public String getCode() {
@@ -2376,11 +2381,27 @@ public class
AdvancedPaymentScheduleTransactionProcessor extends AbstractLoanRep
final BigDecimal missingAccrualAmount =
newInterest.subtract(sumOfAccrualsTillChargeOff);
+ if (missingAccrualAmount.compareTo(BigDecimal.ZERO) == 0) {
+ return;
+ }
+
+ final LoanTransaction newAccrualTransaction;
+
if (missingAccrualAmount.compareTo(BigDecimal.ZERO) > 0) {
- final LoanTransaction newAccrualTransaction =
accrueTransaction(loan, loan.getOffice(), chargeOffDate, missingAccrualAmount,
- missingAccrualAmount, ZERO, ZERO,
externalIdFactory.create());
- loan.addLoanTransaction(newAccrualTransaction);
- loanTransactionRepository.saveAndFlush(newAccrualTransaction);
+ newAccrualTransaction = accrueTransaction(loan, loan.getOffice(),
chargeOffDate, missingAccrualAmount, missingAccrualAmount,
+ ZERO, ZERO, externalIdFactory.create());
+ } else {
+ newAccrualTransaction = accrualAdjustment(loan, loan.getOffice(),
chargeOffDate, missingAccrualAmount.abs(),
+ missingAccrualAmount.abs(), ZERO, ZERO,
externalIdFactory.create());
+ }
+
+ loan.addLoanTransaction(newAccrualTransaction);
+ loanTransactionRepository.saveAndFlush(newAccrualTransaction);
+
+ if (newAccrualTransaction.isAccrual()) {
+ businessEventNotifierService.notifyPostBusinessEvent(new
LoanAccrualTransactionCreatedBusinessEvent(newAccrualTransaction));
+ } else {
+ businessEventNotifierService.notifyPostBusinessEvent(new
LoanAccrualAdjustmentTransactionBusinessEvent(newAccrualTransaction));
}
}
}
diff --git
a/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessorTest.java
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessorTest.java
index 9a9a5ef1c..16bc868be 100644
---
a/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessorTest.java
+++
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanaccount/domain/transactionprocessor/impl/AdvancedPaymentScheduleTransactionProcessorTest.java
@@ -111,7 +111,7 @@ class AdvancedPaymentScheduleTransactionProcessorTest {
@BeforeEach
public void setUp() {
- underTest = new
AdvancedPaymentScheduleTransactionProcessor(emiCalculator,
loanRepositoryWrapper, null, null, null);
+ underTest = new
AdvancedPaymentScheduleTransactionProcessor(emiCalculator,
loanRepositoryWrapper, null, null, null, null);
ThreadLocalContextUtil.setTenant(new FineractPlatformTenant(1L,
"default", "Default", "Asia/Kolkata", null));
ThreadLocalContextUtil.setActionContext(ActionContext.DEFAULT);
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/starter/LoanAccountAutoStarter.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/starter/LoanAccountAutoStarter.java
index fa20d4eee..900daa6af 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/starter/LoanAccountAutoStarter.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/starter/LoanAccountAutoStarter.java
@@ -20,6 +20,7 @@ package org.apache.fineract.portfolio.loanaccount.starter;
import java.util.List;
import org.apache.fineract.infrastructure.core.service.ExternalIdFactory;
+import
org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
import
org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleTransactionProcessorFactory;
import org.apache.fineract.portfolio.loanaccount.domain.LoanRepositoryWrapper;
import
org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository;
@@ -112,8 +113,9 @@ public class LoanAccountAutoStarter {
public AdvancedPaymentScheduleTransactionProcessor
advancedPaymentScheduleTransactionProcessor(EMICalculator emiCalculator,
LoanRepositoryWrapper loanRepositoryWrapper,
@Lazy ProgressiveLoanInterestRefundServiceImpl
progressiveLoanInterestRefundService,
- LoanTransactionRepository loanTransactionRepository,
ExternalIdFactory externalIdFactory) {
+ LoanTransactionRepository loanTransactionRepository,
ExternalIdFactory externalIdFactory,
+ @Lazy BusinessEventNotifierService businessEventNotifierService) {
return new AdvancedPaymentScheduleTransactionProcessor(emiCalculator,
loanRepositoryWrapper, progressiveLoanInterestRefundService,
- loanTransactionRepository, externalIdFactory);
+ loanTransactionRepository, externalIdFactory,
businessEventNotifierService);
}
}