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);

Reply via email to