FINERACT-2326: Tax component and group issue serialization

This commit is contained in:
Jose Alberto Hernandez
2025-08-13 13:57:09 +02:00
committed by Adam Saghy
parent 6b7df527de
commit c55cfe9d08
5 changed files with 17 additions and 74 deletions
@@ -24,11 +24,13 @@ import java.time.LocalDate;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import org.apache.fineract.accounting.glaccount.data.GLAccountData; import org.apache.fineract.accounting.glaccount.data.GLAccountData;
import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.infrastructure.core.data.EnumOptionData;
import org.apache.fineract.infrastructure.core.service.DateUtils; import org.apache.fineract.infrastructure.core.service.DateUtils;
@AllArgsConstructor
@Getter @Getter
public final class TaxComponentData implements Serializable { public final class TaxComponentData implements Serializable {
@@ -84,23 +86,6 @@ public final class TaxComponentData implements Serializable {
taxComponentHistories, glAccountOptions, glAccountTypeOptions); 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<TaxComponentHistoryData> taxComponentHistories,
final Map<String, List<GLAccountData>> glAccountOptions, final Collection<EnumOptionData> 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, private TaxComponentData(final Long id, final BigDecimal percentage, final GLAccountData debitAcount,
final GLAccountData creditAcount) { final GLAccountData creditAcount) {
this.id = id; this.id = id;
@@ -137,14 +122,7 @@ public final class TaxComponentData implements Serializable {
} }
private boolean occursOnDayFrom(final LocalDate target) { 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;
}
} }
@@ -21,8 +21,10 @@ package org.apache.fineract.portfolio.tax.data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import lombok.Getter;
import org.apache.fineract.infrastructure.core.service.DateUtils; import org.apache.fineract.infrastructure.core.service.DateUtils;
@Getter
public class TaxComponentHistoryData implements Serializable { public class TaxComponentHistoryData implements Serializable {
@SuppressWarnings("unused") @SuppressWarnings("unused")
@@ -39,26 +41,7 @@ public class TaxComponentHistoryData implements Serializable {
} }
public boolean occursOnDayFromAndUpToAndIncluding(final LocalDate target) { 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;
}
} }
@@ -20,7 +20,11 @@ package org.apache.fineract.portfolio.tax.data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collection; import java.util.Collection;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public final class TaxGroupData implements Serializable { public final class TaxGroupData implements Serializable {
private final Long id; private final Long id;
@@ -31,11 +35,6 @@ public final class TaxGroupData implements Serializable {
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final Collection<TaxComponentData> taxComponents; private final Collection<TaxComponentData> taxComponents;
public static TaxGroupData instance(final Long id, final String name, final Collection<TaxGroupMappingsData> taxAssociations) {
final Collection<TaxComponentData> taxComponents = null;
return new TaxGroupData(id, name, taxAssociations, taxComponents);
}
public static TaxGroupData lookup(final Long id, final String name) { public static TaxGroupData lookup(final Long id, final String name) {
final Collection<TaxComponentData> taxComponents = null; final Collection<TaxComponentData> taxComponents = null;
final Collection<TaxGroupMappingsData> taxAssociations = null; final Collection<TaxGroupMappingsData> taxAssociations = null;
@@ -53,16 +52,4 @@ public final class TaxGroupData implements Serializable {
return new TaxGroupData(taxGroupData.id, taxGroupData.name, taxGroupData.taxAssociations, taxComponents); return new TaxGroupData(taxGroupData.id, taxGroupData.name, taxGroupData.taxAssociations, taxComponents);
} }
private TaxGroupData(final Long id, final String name, final Collection<TaxGroupMappingsData> taxAssociations,
final Collection<TaxComponentData> taxComponents) {
this.id = id;
this.name = name;
this.taxAssociations = taxAssociations;
this.taxComponents = taxComponents;
}
public Collection<TaxGroupMappingsData> getTaxAssociations() {
return this.taxAssociations;
}
} }
@@ -20,8 +20,14 @@ package org.apache.fineract.portfolio.tax.data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import org.apache.fineract.infrastructure.core.service.DateUtils; import org.apache.fineract.infrastructure.core.service.DateUtils;
@AllArgsConstructor
@Getter
@Setter
public class TaxGroupMappingsData implements Serializable { public class TaxGroupMappingsData implements Serializable {
@SuppressWarnings("unused") @SuppressWarnings("unused")
@@ -33,17 +39,6 @@ public class TaxGroupMappingsData implements Serializable {
@SuppressWarnings("unused") @SuppressWarnings("unused")
private final LocalDate endDate; 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) { public boolean occursOnDayFromAndUpToAndIncluding(final LocalDate target) {
return DateUtils.isAfter(target, startDate()) && (endDate == null || !DateUtils.isAfter(target, endDate())); return DateUtils.isAfter(target, startDate()) && (endDate == null || !DateUtils.isAfter(target, endDate()));
} }
@@ -220,7 +220,7 @@ public class TaxReadPlatformServiceImpl implements TaxReadPlatformService {
break; break;
} }
} }
return TaxGroupData.instance(id, name, taxAssociations); return new TaxGroupData(id, name, taxAssociations, null);
} }
public String getSchema() { public String getSchema() {