From c55cfe9d08262653aa23a3a60d5b0e88ac79832e Mon Sep 17 00:00:00 2001 From: Jose Alberto Hernandez Date: Wed, 6 Aug 2025 19:36:17 -0500 Subject: [PATCH] FINERACT-2326: Tax component and group issue serialization --- .../portfolio/tax/data/TaxComponentData.java | 28 ++----------------- .../tax/data/TaxComponentHistoryData.java | 23 ++------------- .../portfolio/tax/data/TaxGroupData.java | 21 +++----------- .../tax/data/TaxGroupMappingsData.java | 17 ++++------- .../service/TaxReadPlatformServiceImpl.java | 2 +- 5 files changed, 17 insertions(+), 74 deletions(-) diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentData.java index b2ea0c9f1..11450ff33 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentData.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentData.java @@ -24,11 +24,13 @@ import java.time.LocalDate; import java.util.Collection; import java.util.List; import java.util.Map; +import lombok.AllArgsConstructor; import lombok.Getter; import org.apache.fineract.accounting.glaccount.data.GLAccountData; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.infrastructure.core.service.DateUtils; +@AllArgsConstructor @Getter public final class TaxComponentData implements Serializable { @@ -84,23 +86,6 @@ public final class TaxComponentData implements Serializable { taxComponentHistories, glAccountOptions, glAccountTypeOptions); } - private TaxComponentData(final Long id, final String name, final BigDecimal percentage, final EnumOptionData debitAccountType, - final GLAccountData debitAcount, final EnumOptionData creditAccountType, final GLAccountData creditAcount, - final LocalDate startDate, final Collection taxComponentHistories, - final Map> glAccountOptions, final Collection glAccountTypeOptions) { - this.id = id; - this.percentage = percentage; - this.name = name; - this.debitAccountType = debitAccountType; - this.debitAccount = debitAcount; - this.creditAccountType = creditAccountType; - this.creditAccount = creditAcount; - this.startDate = startDate; - this.taxComponentHistories = taxComponentHistories; - this.glAccountOptions = glAccountOptions; - this.glAccountTypeOptions = glAccountTypeOptions; - } - private TaxComponentData(final Long id, final BigDecimal percentage, final GLAccountData debitAcount, final GLAccountData creditAcount) { this.id = id; @@ -137,14 +122,7 @@ public final class TaxComponentData implements Serializable { } private boolean occursOnDayFrom(final LocalDate target) { - return DateUtils.isAfter(target, startDate()); + return DateUtils.isAfter(target, getStartDate()); } - public LocalDate startDate() { - LocalDate startDate = null; - if (this.startDate != null) { - startDate = this.startDate; - } - return startDate; - } } diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentHistoryData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentHistoryData.java index 95adff636..17b9f18d0 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentHistoryData.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxComponentHistoryData.java @@ -21,8 +21,10 @@ package org.apache.fineract.portfolio.tax.data; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDate; +import lombok.Getter; import org.apache.fineract.infrastructure.core.service.DateUtils; +@Getter public class TaxComponentHistoryData implements Serializable { @SuppressWarnings("unused") @@ -39,26 +41,7 @@ public class TaxComponentHistoryData implements Serializable { } public boolean occursOnDayFromAndUpToAndIncluding(final LocalDate target) { - return DateUtils.isAfter(target, startDate()) && (endDate == null || !DateUtils.isAfter(target, endDate())); + return DateUtils.isAfter(target, getStartDate()) && (endDate == null || !DateUtils.isAfter(target, getEndDate())); } - public LocalDate startDate() { - LocalDate startDate = null; - if (this.startDate != null) { - startDate = this.startDate; - } - return startDate; - } - - public LocalDate endDate() { - LocalDate endDate = null; - if (this.endDate != null) { - endDate = this.endDate; - } - return endDate; - } - - public BigDecimal getPercentage() { - return this.percentage; - } } diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxGroupData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxGroupData.java index dfb517943..5f9804536 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxGroupData.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxGroupData.java @@ -20,7 +20,11 @@ package org.apache.fineract.portfolio.tax.data; import java.io.Serializable; import java.util.Collection; +import lombok.AllArgsConstructor; +import lombok.Getter; +@AllArgsConstructor +@Getter public final class TaxGroupData implements Serializable { private final Long id; @@ -31,11 +35,6 @@ public final class TaxGroupData implements Serializable { @SuppressWarnings("unused") private final Collection taxComponents; - public static TaxGroupData instance(final Long id, final String name, final Collection taxAssociations) { - final Collection taxComponents = null; - return new TaxGroupData(id, name, taxAssociations, taxComponents); - } - public static TaxGroupData lookup(final Long id, final String name) { final Collection taxComponents = null; final Collection taxAssociations = null; @@ -53,16 +52,4 @@ public final class TaxGroupData implements Serializable { return new TaxGroupData(taxGroupData.id, taxGroupData.name, taxGroupData.taxAssociations, taxComponents); } - private TaxGroupData(final Long id, final String name, final Collection taxAssociations, - final Collection taxComponents) { - this.id = id; - this.name = name; - this.taxAssociations = taxAssociations; - this.taxComponents = taxComponents; - } - - public Collection getTaxAssociations() { - return this.taxAssociations; - } - } diff --git a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxGroupMappingsData.java b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxGroupMappingsData.java index bc15a6670..643a89eeb 100644 --- a/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxGroupMappingsData.java +++ b/fineract-core/src/main/java/org/apache/fineract/portfolio/tax/data/TaxGroupMappingsData.java @@ -20,8 +20,14 @@ package org.apache.fineract.portfolio.tax.data; import java.io.Serializable; import java.time.LocalDate; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; import org.apache.fineract.infrastructure.core.service.DateUtils; +@AllArgsConstructor +@Getter +@Setter public class TaxGroupMappingsData implements Serializable { @SuppressWarnings("unused") @@ -33,17 +39,6 @@ public class TaxGroupMappingsData implements Serializable { @SuppressWarnings("unused") private final LocalDate endDate; - public TaxGroupMappingsData(final Long id, final TaxComponentData taxComponent, final LocalDate startDate, final LocalDate endDate) { - this.id = id; - this.taxComponent = taxComponent; - this.startDate = startDate; - this.endDate = endDate; - } - - public TaxComponentData getTaxComponent() { - return this.taxComponent; - } - public boolean occursOnDayFromAndUpToAndIncluding(final LocalDate target) { return DateUtils.isAfter(target, startDate()) && (endDate == null || !DateUtils.isAfter(target, endDate())); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/service/TaxReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/service/TaxReadPlatformServiceImpl.java index dbc5eae48..96acb70be 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/service/TaxReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/tax/service/TaxReadPlatformServiceImpl.java @@ -220,7 +220,7 @@ public class TaxReadPlatformServiceImpl implements TaxReadPlatformService { break; } } - return TaxGroupData.instance(id, name, taxAssociations); + return new TaxGroupData(id, name, taxAssociations, null); } public String getSchema() {