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 9208ea2fe FINERACT-2200: Add "reversed" flag to
LoanTransactionDataV1.avsc
9208ea2fe is described below
commit 9208ea2fe1be1a47784974f3500827603e89396d
Author: Adam Saghy <[email protected]>
AuthorDate: Mon Mar 3 20:50:14 2025 +0000
FINERACT-2200: Add "reversed" flag to LoanTransactionDataV1.avsc
---
.../src/main/avro/loan/v1/LoanTransactionDataV1.avsc | 8 ++++++++
.../serialization/mapper/loan/LoanTransactionDataMapper.java | 5 +++++
.../fineract/integrationtests/ExternalBusinessEventTest.java | 3 +++
3 files changed, 16 insertions(+)
diff --git
a/fineract-avro-schemas/src/main/avro/loan/v1/LoanTransactionDataV1.avsc
b/fineract-avro-schemas/src/main/avro/loan/v1/LoanTransactionDataV1.avsc
index d11de9746..d9df8b18c 100644
--- a/fineract-avro-schemas/src/main/avro/loan/v1/LoanTransactionDataV1.avsc
+++ b/fineract-avro-schemas/src/main/avro/loan/v1/LoanTransactionDataV1.avsc
@@ -255,6 +255,14 @@
"type": "map"
}
]
+ },
+ {
+ "default": null,
+ "name": "reversed",
+ "type": [
+ "null",
+ "boolean"
+ ]
}
]
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanTransactionDataMapper.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanTransactionDataMapper.java
index cf6642cbc..cf84e0e63 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanTransactionDataMapper.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/mapper/loan/LoanTransactionDataMapper.java
@@ -31,5 +31,10 @@ public interface LoanTransactionDataMapper {
@Mapping(target = "unpaidCharges", ignore = true)
@Mapping(target = "externalOwnerId", ignore = true)
@Mapping(target = "customData", ignore = true)
+ @Mapping(target = "reversed", expression = "java(isReversed(source))")
LoanTransactionDataV1 map(LoanTransactionData source);
+
+ default boolean isReversed(LoanTransactionData source) {
+ return source.isManuallyReversed() || source.getReversedOnDate() !=
null;
+ }
}
diff --git
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/ExternalBusinessEventTest.java
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/ExternalBusinessEventTest.java
index 3b2e7dbea..7f7ea4a8b 100644
---
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/ExternalBusinessEventTest.java
+++
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/ExternalBusinessEventTest.java
@@ -266,6 +266,7 @@ public class ExternalBusinessEventTest extends
BaseLoanIntegrationTest {
Assertions.assertEquals(42.0D, chargePaidBy.get("amount"));
Assertions.assertEquals(chargeId.doubleValue(),
chargePaidBy.get("chargeId"));
Assertions.assertEquals(transactionId.doubleValue(),
chargePaidBy.get("transactionId"));
+ Assertions.assertFalse((Boolean)
event.getPayLoad().get("reversed"));
// check that third part cannot post for that charge, because it
already fully adjusted
Assertions.assertThrows(RuntimeException.class, () ->
loanTransactionHelper.chargeAdjustment(loanId, chargeId,
@@ -780,6 +781,8 @@ public class ExternalBusinessEventTest extends
BaseLoanIntegrationTest {
&& x.getPayLoad().get("transactionToAdjust") !=
null) //
.toList(); //
Assertions.assertEquals(2, list.size());
+ Assertions.assertTrue((Boolean) ((Map)
list.get(0).getPayLoad().get("transactionToAdjust")).get("reversed"));
+ Assertions.assertTrue((Boolean) ((Map)
list.get(1).getPayLoad().get("transactionToAdjust")).get("reversed"));
loanDetails = loanTransactionHelper.getLoanDetails(loanId);
verifyLoanStatus(loanDetails, GetLoansLoanIdStatus::getActive);