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 0358921d0 FINERACT-2103: refactor the boilerplate code for
`ChargeData` class and its affiliate code
0358921d0 is described below
commit 0358921d02fe264aab02f9006a67d77b8bb74899
Author: zeyad2003 <[email protected]>
AuthorDate: Sat Jun 29 09:13:45 2024 +0300
FINERACT-2103: refactor the boilerplate code for `ChargeData` class and its
affiliate code
---
...tToGLAccountMappingReadPlatformServiceImpl.java | 2 +-
.../fineract/portfolio/charge/domain/Charge.java | 12 +-
.../fineract/portfolio/charge/data/ChargeData.java | 232 +++------------------
.../service/ChargeReadPlatformServiceImpl.java | 30 ++-
.../service/LoanChargeReadPlatformServiceImpl.java | 26 +--
...avingsAccountChargeReadPlatformServiceImpl.java | 25 +--
6 files changed, 73 insertions(+), 254 deletions(-)
diff --git
a/fineract-accounting/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingReadPlatformServiceImpl.java
b/fineract-accounting/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingReadPlatformServiceImpl.java
index 075bdd2b0..d32d02d56 100644
---
a/fineract-accounting/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingReadPlatformServiceImpl.java
+++
b/fineract-accounting/src/main/java/org/apache/fineract/accounting/producttoaccountmapping/service/ProductToGLAccountMappingReadPlatformServiceImpl.java
@@ -334,7 +334,7 @@ public class
ProductToGLAccountMappingReadPlatformServiceImpl implements Product
final Long chargeId = (Long)
chargeToIncomeAccountMap.get("chargeId");
final String chargeName = (String)
chargeToIncomeAccountMap.get("chargeName");
final Boolean penalty1 = (Boolean)
chargeToIncomeAccountMap.get("penalty");
- final ChargeData chargeData = ChargeData.lookup(chargeId,
chargeName, penalty1);
+ final ChargeData chargeData =
ChargeData.builder().id(chargeId).name(chargeName).penalty(penalty1).build();
final ChargeToGLAccountMapper chargeToGLAccountMapper = new
ChargeToGLAccountMapper().setCharge(chargeData)
.setIncomeAccount(gLAccountData);
chargeToGLAccountMappers.add(chargeToGLAccountMapper);
diff --git
a/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java
b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java
index 86e330243..9a7269c35 100644
---
a/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java
+++
b/fineract-charge/src/main/java/org/apache/fineract/portfolio/charge/domain/Charge.java
@@ -677,10 +677,14 @@ public class Charge extends
AbstractPersistableCustom<Long> {
}
final CurrencyData currency = new CurrencyData(this.currencyCode,
null, 0, 0, null, null);
- return ChargeData.instance(getId(), this.name, this.amount, currency,
chargeTimeType, chargeAppliesTo, chargeCalculationType,
- chargePaymentMode, getFeeOnMonthDay(), this.feeInterval,
this.penalty, this.active, this.enableFreeWithdrawal,
- this.freeWithdrawalFrequency, this.restartFrequency,
this.restartFrequencyEnum, this.enablePaymentType, paymentTypeData,
- this.minCap, this.maxCap, feeFrequencyType, accountData,
taxGroupData);
+ return
ChargeData.builder().id(getId()).name(this.name).amount(this.amount).currency(currency).chargeTimeType(chargeTimeType)
+
.chargeAppliesTo(chargeAppliesTo).chargeCalculationType(chargeCalculationType).chargePaymentMode(chargePaymentMode)
+
.feeOnMonthDay(getFeeOnMonthDay()).feeInterval(this.feeInterval).penalty(this.penalty).active(this.active)
+
.freeWithdrawal(this.enableFreeWithdrawal).freeWithdrawalChargeFrequency(this.freeWithdrawalFrequency)
+
.restartFrequency(this.restartFrequency).restartFrequencyEnum(this.restartFrequencyEnum)
+
.isPaymentType(this.enablePaymentType).paymentTypeOptions(paymentTypeData).minCap(this.minCap).maxCap(this.maxCap)
+
.feeFrequency(feeFrequencyType).incomeOrLiabilityAccount(accountData).taxGroup(taxGroupData).build();
+
}
public Integer getChargePaymentMode() {
diff --git
a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java
b/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java
index 8696e2d6a..789c15491 100644
---
a/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java
+++
b/fineract-core/src/main/java/org/apache/fineract/portfolio/charge/data/ChargeData.java
@@ -24,6 +24,8 @@ import java.time.MonthDay;
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import lombok.Builder;
+import lombok.EqualsAndHashCode;
import lombok.Getter;
import org.apache.fineract.accounting.glaccount.data.GLAccountData;
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
@@ -36,17 +38,25 @@ import org.apache.fineract.portfolio.tax.data.TaxGroupData;
* Immutable data object for charge data.
*/
@Getter
+@EqualsAndHashCode(of = "id")
+@Builder(toBuilder = true)
public final class ChargeData implements Comparable<ChargeData>, Serializable {
private final Long id;
private final String name;
- private final boolean active;
- private final boolean penalty;
- private final boolean freeWithdrawal;
+
+ @Builder.Default
+ private final boolean active = Boolean.FALSE;
+ @Builder.Default
+ private final boolean penalty = Boolean.FALSE;
+ @Builder.Default
+ private final boolean freeWithdrawal = Boolean.FALSE;
+ @Builder.Default
+ private final boolean isPaymentType = Boolean.FALSE;
+
private final Integer freeWithdrawalChargeFrequency;
private final Integer restartFrequency;
private final Integer restartFrequencyEnum;
- private final boolean isPaymentType;
private final PaymentTypeData paymentTypeOptions;
private final CurrencyData currency;
private final BigDecimal amount;
@@ -87,204 +97,24 @@ public final class ChargeData implements
Comparable<ChargeData>, Serializable {
private final List<GLAccountData> expenseAccountOptions;
private final List<GLAccountData> assetAccountOptions;
- public static ChargeData template(final Collection<CurrencyData>
currencyOptions,
- final List<EnumOptionData> chargeCalculationTypeOptions, final
List<EnumOptionData> chargeAppliesToOptions,
- final List<EnumOptionData> chargeTimeTypeOptions, final
List<EnumOptionData> chargePaymentModeOptions,
- final List<EnumOptionData> loansChargeCalculationTypeOptions,
final List<EnumOptionData> loansChargeTimeTypeOptions,
- final List<EnumOptionData> savingsChargeCalculationTypeOptions,
final List<EnumOptionData> savingsChargeTimeTypeOptions,
- final List<EnumOptionData> clientChargeCalculationTypeOptions,
final List<EnumOptionData> clientChargeTimeTypeOptions,
- final List<EnumOptionData> feeFrequencyOptions, final Map<String,
List<GLAccountData>> incomeOrLiabilityAccountOptions,
- final Collection<TaxGroupData> taxGroupOptions, final
List<EnumOptionData> shareChargeCalculationTypeOptions,
- final List<EnumOptionData> shareChargeTimeTypeOptions, String
accountMappingForChargeConfig,
- List<GLAccountData> expenseAccountOptions, List<GLAccountData>
assetAccountOptions) {
- final GLAccountData account = null;
- final TaxGroupData taxGroupData = null;
-
- return new ChargeData(null, null, null, null, null, null, null, null,
false, false, false, null, null, null, false, null,
- taxGroupData, currencyOptions, chargeCalculationTypeOptions,
chargeAppliesToOptions, chargeTimeTypeOptions,
- chargePaymentModeOptions, loansChargeCalculationTypeOptions,
loansChargeTimeTypeOptions,
- savingsChargeCalculationTypeOptions,
savingsChargeTimeTypeOptions, clientChargeCalculationTypeOptions,
- clientChargeTimeTypeOptions, null, null, null, null, null,
feeFrequencyOptions, account, incomeOrLiabilityAccountOptions,
- taxGroupOptions, shareChargeCalculationTypeOptions,
shareChargeTimeTypeOptions, accountMappingForChargeConfig,
- expenseAccountOptions, assetAccountOptions);
- }
-
public static ChargeData withTemplate(final ChargeData charge, final
ChargeData template) {
- return new ChargeData(charge.id, charge.name, charge.amount,
charge.currency, charge.chargeTimeType, charge.chargeAppliesTo,
- charge.chargeCalculationType, charge.chargePaymentMode,
charge.penalty, charge.active, charge.freeWithdrawal,
- charge.freeWithdrawalChargeFrequency, charge.restartFrequency,
charge.restartFrequencyEnum, charge.isPaymentType,
- charge.paymentTypeOptions, charge.taxGroup,
template.currencyOptions, template.chargeCalculationTypeOptions,
- template.chargeAppliesToOptions,
template.chargeTimeTypeOptions, template.chargePaymetModeOptions,
- template.loanChargeCalculationTypeOptions,
template.loanChargeTimeTypeOptions,
template.savingsChargeCalculationTypeOptions,
- template.savingsChargeTimeTypeOptions,
template.clientChargeCalculationTypeOptions,
template.clientChargeTimeTypeOptions,
- charge.feeOnMonthDay, charge.feeInterval, charge.minCap,
charge.maxCap, charge.feeFrequency, template.feeFrequencyOptions,
- charge.incomeOrLiabilityAccount,
template.incomeOrLiabilityAccountOptions, template.taxGroupOptions,
- template.shareChargeCalculationTypeOptions,
template.shareChargeTimeTypeOptions, template.accountMappingForChargeConfig,
- template.expenseAccountOptions, template.assetAccountOptions);
- }
-
- public static ChargeData instance(final Long id, final String name, final
BigDecimal amount, final CurrencyData currency,
- final EnumOptionData chargeTimeType, final EnumOptionData
chargeAppliesTo, final EnumOptionData chargeCalculationType,
- final EnumOptionData chargePaymentMode, final MonthDay
feeOnMonthDay, final Integer feeInterval, final boolean penalty,
- final boolean active, final boolean freeWithdrawal, final Integer
freeWithdrawalChargeFrequency, final Integer restartFrequency,
- final Integer restartFrequencyEnum, final boolean isPaymentType,
final PaymentTypeData paymentTypeOptions,
- final BigDecimal minCap, final BigDecimal maxCap, final
EnumOptionData feeFrequency, final GLAccountData accountData,
- TaxGroupData taxGroupData) {
-
- final Collection<CurrencyData> currencyOptions = null;
- final List<EnumOptionData> chargeCalculationTypeOptions = null;
- final List<EnumOptionData> chargeAppliesToOptions = null;
- final List<EnumOptionData> chargeTimeTypeOptions = null;
- final List<EnumOptionData> chargePaymentModeOptions = null;
- final List<EnumOptionData> loansChargeCalculationTypeOptions = null;
- final List<EnumOptionData> loansChargeTimeTypeOptions = null;
- final List<EnumOptionData> savingsChargeCalculationTypeOptions = null;
- final List<EnumOptionData> savingsChargeTimeTypeOptions = null;
- final List<EnumOptionData> feeFrequencyOptions = null;
- final List<EnumOptionData> clientChargeCalculationTypeOptions = null;
- final List<EnumOptionData> clientChargeTimeTypeOptions = null;
- final Map<String, List<GLAccountData>> incomeOrLiabilityAccountOptions
= null;
- final List<EnumOptionData> shareChargeCalculationTypeOptions = null;
- final List<EnumOptionData> shareChargeTimeTypeOptions = null;
- final Collection<TaxGroupData> taxGroupOptions = null;
- final String accountMappingForChargeConfig = null;
- final List<GLAccountData> expenseAccountOptions = null;
- final List<GLAccountData> assetAccountOptions = null;
- return new ChargeData(id, name, amount, currency, chargeTimeType,
chargeAppliesTo, chargeCalculationType, chargePaymentMode,
- penalty, active, freeWithdrawal,
freeWithdrawalChargeFrequency, restartFrequency, restartFrequencyEnum,
isPaymentType,
- paymentTypeOptions, taxGroupData, currencyOptions,
chargeCalculationTypeOptions, chargeAppliesToOptions,
- chargeTimeTypeOptions, chargePaymentModeOptions,
loansChargeCalculationTypeOptions, loansChargeTimeTypeOptions,
- savingsChargeCalculationTypeOptions,
savingsChargeTimeTypeOptions, clientChargeCalculationTypeOptions,
- clientChargeTimeTypeOptions, feeOnMonthDay, feeInterval,
minCap, maxCap, feeFrequency, feeFrequencyOptions, accountData,
- incomeOrLiabilityAccountOptions, taxGroupOptions,
shareChargeCalculationTypeOptions, shareChargeTimeTypeOptions,
- accountMappingForChargeConfig, expenseAccountOptions,
assetAccountOptions);
- }
-
- public static ChargeData lookup(final Long id, final String name, final
boolean isPenalty) {
- final BigDecimal amount = null;
- final CurrencyData currency = null;
- final EnumOptionData chargeTimeType = null;
- final EnumOptionData chargeAppliesTo = null;
- final EnumOptionData chargeCalculationType = null;
- final EnumOptionData chargePaymentMode = null;
- final MonthDay feeOnMonthDay = null;
- final Integer feeInterval = null;
- final Boolean penalty = isPenalty;
- final Boolean active = false;
- final Boolean freeWithdrawal = false;
- final Integer freeWithdrawalChargeFrequency = null;
- final Integer restartFrequency = null;
- final Integer restartFrequencyEnum = null;
- final Boolean isPaymentType = false;
- final PaymentTypeData paymentTypeOptions = null;
- final BigDecimal minCap = null;
- final BigDecimal maxCap = null;
- final Collection<CurrencyData> currencyOptions = null;
- final List<EnumOptionData> chargeCalculationTypeOptions = null;
- final List<EnumOptionData> chargeAppliesToOptions = null;
- final List<EnumOptionData> chargeTimeTypeOptions = null;
- final List<EnumOptionData> chargePaymentModeOptions = null;
- final List<EnumOptionData> loansChargeCalculationTypeOptions = null;
- final List<EnumOptionData> loansChargeTimeTypeOptions = null;
- final List<EnumOptionData> savingsChargeCalculationTypeOptions = null;
- final List<EnumOptionData> savingsChargeTimeTypeOptions = null;
- final List<EnumOptionData> clientChargeCalculationTypeOptions = null;
- final List<EnumOptionData> clientChargeTimeTypeOptions = null;
- final EnumOptionData feeFrequency = null;
- final List<EnumOptionData> feeFrequencyOptions = null;
- final GLAccountData account = null;
- final Map<String, List<GLAccountData>> incomeOrLiabilityAccountOptions
= null;
- final List<EnumOptionData> shareChargeCalculationTypeOptions = null;
- final List<EnumOptionData> shareChargeTimeTypeOptions = null;
- final TaxGroupData taxGroupData = null;
- final Collection<TaxGroupData> taxGroupOptions = null;
- final String accountMappingForChargeConfig = null;
- final List<GLAccountData> expenseAccountOptions = null;
- final List<GLAccountData> assetAccountOptions = null;
-
- return new ChargeData(id, name, amount, currency, chargeTimeType,
chargeAppliesTo, chargeCalculationType, chargePaymentMode,
- penalty, active, freeWithdrawal,
freeWithdrawalChargeFrequency, restartFrequency, restartFrequencyEnum,
isPaymentType,
- paymentTypeOptions, taxGroupData, currencyOptions,
chargeCalculationTypeOptions, chargeAppliesToOptions,
- chargeTimeTypeOptions, chargePaymentModeOptions,
loansChargeCalculationTypeOptions, loansChargeTimeTypeOptions,
- savingsChargeCalculationTypeOptions,
savingsChargeTimeTypeOptions, clientChargeCalculationTypeOptions,
- clientChargeTimeTypeOptions, feeOnMonthDay, feeInterval,
minCap, maxCap, feeFrequency, feeFrequencyOptions, account,
- incomeOrLiabilityAccountOptions, taxGroupOptions,
shareChargeCalculationTypeOptions, shareChargeTimeTypeOptions,
- accountMappingForChargeConfig, expenseAccountOptions,
assetAccountOptions);
- }
-
- private ChargeData(final Long id, final String name, final BigDecimal
amount, final CurrencyData currency,
- final EnumOptionData chargeTimeType, final EnumOptionData
chargeAppliesTo, final EnumOptionData chargeCalculationType,
- final EnumOptionData chargePaymentMode, final boolean penalty,
final boolean active, final boolean freeWithdrawal,
- final Integer freeWithdrawalChargeFrequency, final Integer
restartFrequency, final Integer restartFrequencyEnum,
- final boolean isPaymentType, final PaymentTypeData
paymentTypeOptions, final TaxGroupData taxGroupData,
- final Collection<CurrencyData> currencyOptions, final
List<EnumOptionData> chargeCalculationTypeOptions,
- final List<EnumOptionData> chargeAppliesToOptions, final
List<EnumOptionData> chargeTimeTypeOptions,
- final List<EnumOptionData> chargePaymentModeOptions, final
List<EnumOptionData> loansChargeCalculationTypeOptions,
- final List<EnumOptionData> loansChargeTimeTypeOptions, final
List<EnumOptionData> savingsChargeCalculationTypeOptions,
- final List<EnumOptionData> savingsChargeTimeTypeOptions, final
List<EnumOptionData> clientChargeCalculationTypeOptions,
- final List<EnumOptionData> clientChargeTimeTypeOptions, final
MonthDay feeOnMonthDay, final Integer feeInterval,
- final BigDecimal minCap, final BigDecimal maxCap, final
EnumOptionData feeFrequency,
- final List<EnumOptionData> feeFrequencyOptions, final
GLAccountData account,
- final Map<String, List<GLAccountData>>
incomeOrLiabilityAccountOptions, final Collection<TaxGroupData> taxGroupOptions,
- final List<EnumOptionData> shareChargeCalculationTypeOptions,
final List<EnumOptionData> shareChargeTimeTypeOptions,
- final String accountMappingForChargeConfig, final
List<GLAccountData> expenseAccountOptions,
- final List<GLAccountData> assetAccountOptions) {
- this.id = id;
- this.name = name;
- this.amount = amount;
- this.currency = currency;
- this.chargeTimeType = chargeTimeType;
- this.chargeAppliesTo = chargeAppliesTo;
- this.chargeCalculationType = chargeCalculationType;
- this.chargePaymentMode = chargePaymentMode;
- this.feeInterval = feeInterval;
- this.feeOnMonthDay = feeOnMonthDay;
- this.penalty = penalty;
- this.active = active;
- this.freeWithdrawal = freeWithdrawal;
- this.freeWithdrawalChargeFrequency = freeWithdrawalChargeFrequency;
- this.restartFrequency = restartFrequency;
- this.restartFrequencyEnum = restartFrequencyEnum;
- this.isPaymentType = isPaymentType;
- this.paymentTypeOptions = paymentTypeOptions;
- this.minCap = minCap;
- this.maxCap = maxCap;
- this.currencyOptions = currencyOptions;
- this.chargeCalculationTypeOptions = chargeCalculationTypeOptions;
- this.chargeAppliesToOptions = chargeAppliesToOptions;
- this.chargeTimeTypeOptions = chargeTimeTypeOptions;
- this.chargePaymetModeOptions = chargePaymentModeOptions;
- this.savingsChargeCalculationTypeOptions =
savingsChargeCalculationTypeOptions;
- this.savingsChargeTimeTypeOptions = savingsChargeTimeTypeOptions;
- this.clientChargeCalculationTypeOptions =
clientChargeCalculationTypeOptions;
- this.clientChargeTimeTypeOptions = clientChargeTimeTypeOptions;
- this.loanChargeCalculationTypeOptions =
loansChargeCalculationTypeOptions;
- this.loanChargeTimeTypeOptions = loansChargeTimeTypeOptions;
- this.feeFrequency = feeFrequency;
- this.feeFrequencyOptions = feeFrequencyOptions;
- this.incomeOrLiabilityAccount = account;
- this.incomeOrLiabilityAccountOptions = incomeOrLiabilityAccountOptions;
- this.taxGroup = taxGroupData;
- this.taxGroupOptions = taxGroupOptions;
- this.shareChargeCalculationTypeOptions =
shareChargeCalculationTypeOptions;
- this.shareChargeTimeTypeOptions = shareChargeTimeTypeOptions;
- this.accountMappingForChargeConfig = accountMappingForChargeConfig;
- this.assetAccountOptions = assetAccountOptions;
- this.expenseAccountOptions = expenseAccountOptions;
- }
-
- @Override
- public boolean equals(final Object obj) {
- if (!(obj instanceof ChargeData)) {
- return false;
- }
- final ChargeData chargeData = (ChargeData) obj;
- return this.id.equals(chargeData.id);
- }
-
- @Override
- public int hashCode() {
- return this.id.hashCode();
+ return
charge.toBuilder().currencyOptions(template.getCurrencyOptions())
+
.chargeCalculationTypeOptions(template.getChargeCalculationTypeOptions())
+
.chargeAppliesToOptions(template.getChargeAppliesToOptions()).chargeTimeTypeOptions(template.getChargeTimeTypeOptions())
+ .chargePaymetModeOptions(template.getChargePaymetModeOptions())
+
.loanChargeCalculationTypeOptions(template.getLoanChargeCalculationTypeOptions())
+
.loanChargeTimeTypeOptions(template.getLoanChargeTimeTypeOptions())
+
.savingsChargeCalculationTypeOptions(template.getSavingsChargeCalculationTypeOptions())
+
.savingsChargeTimeTypeOptions(template.getSavingsChargeTimeTypeOptions())
+
.clientChargeCalculationTypeOptions(template.getClientChargeCalculationTypeOptions())
+
.clientChargeTimeTypeOptions(template.getClientChargeTimeTypeOptions())
+ .feeFrequencyOptions(template.getFeeFrequencyOptions())
+
.incomeOrLiabilityAccountOptions(template.getIncomeOrLiabilityAccountOptions())
+ .taxGroupOptions(template.getTaxGroupOptions())
+
.shareChargeCalculationTypeOptions(template.getShareChargeCalculationTypeOptions())
+
.shareChargeTimeTypeOptions(template.getShareChargeTimeTypeOptions())
+
.accountMappingForChargeConfig(template.getAccountMappingForChargeConfig())
+
.expenseAccountOptions(template.getExpenseAccountOptions()).assetAccountOptions(template.getAssetAccountOptions()).build();
}
@Override
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeReadPlatformServiceImpl.java
index ca0e7df46..35fb7e5e4 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/charge/service/ChargeReadPlatformServiceImpl.java
@@ -140,12 +140,18 @@ public class ChargeReadPlatformServiceImpl implements
ChargeReadPlatformService
final List<GLAccountData> expenseAccountOptions =
this.accountingDropdownReadPlatformService.retrieveExpenseAccountOptions();
final List<GLAccountData> assetAccountOptions =
this.accountingDropdownReadPlatformService.retrieveAssetAccountOptions();
- return ChargeData.template(currencyOptions,
allowedChargeCalculationTypeOptions, allowedChargeAppliesToOptions,
- allowedChargeTimeOptions, chargePaymentOptions,
loansChargeCalculationTypeOptions, loansChargeTimeTypeOptions,
- savingsChargeCalculationTypeOptions,
savingsChargeTimeTypeOptions, clientChargeCalculationTypeOptions,
- clientChargeTimeTypeOptions, feeFrequencyOptions,
incomeOrLiabilityAccountOptions, taxGroupOptions,
- shareChargeCalculationTypeOptions, shareChargeTimeTypeOptions,
accountMappingForChargeConfig, expenseAccountOptions,
- assetAccountOptions);
+ return
ChargeData.builder().currencyOptions(currencyOptions).chargeCalculationTypeOptions(allowedChargeCalculationTypeOptions)
+
.chargeAppliesToOptions(allowedChargeAppliesToOptions).chargeTimeTypeOptions(allowedChargeTimeOptions)
+
.chargePaymetModeOptions(chargePaymentOptions).loanChargeCalculationTypeOptions(loansChargeCalculationTypeOptions)
+ .loanChargeTimeTypeOptions(loansChargeTimeTypeOptions)
+
.savingsChargeCalculationTypeOptions(savingsChargeCalculationTypeOptions)
+ .savingsChargeTimeTypeOptions(savingsChargeTimeTypeOptions)
+
.clientChargeCalculationTypeOptions(clientChargeCalculationTypeOptions)
+
.clientChargeTimeTypeOptions(clientChargeTimeTypeOptions).feeFrequencyOptions(feeFrequencyOptions)
+
.incomeOrLiabilityAccountOptions(incomeOrLiabilityAccountOptions).taxGroupOptions(taxGroupOptions)
+
.shareChargeCalculationTypeOptions(shareChargeCalculationTypeOptions).shareChargeTimeTypeOptions(shareChargeTimeTypeOptions)
+
.accountMappingForChargeConfig(accountMappingForChargeConfig).expenseAccountOptions(expenseAccountOptions)
+ .assetAccountOptions(assetAccountOptions).build();
}
@Override
@@ -368,10 +374,14 @@ public class ChargeReadPlatformServiceImpl implements
ChargeReadPlatformService
paymentTypeData = PaymentTypeData.instance(paymentTypeId,
paymentTypeName);
}
- return ChargeData.instance(id, name, amount, currency,
chargeTimeType, chargeAppliesToType, chargeCalculationType,
- chargePaymentMode, feeOnMonthDay, feeInterval, penalty,
active, isFreeWithdrawal, freeWithdrawalChargeFrequency,
- restartFrequency, restartFrequencyEnum, isPaymentType,
paymentTypeData, minCap, maxCap, feeFrequencyType, glAccountData,
- taxGroupData);
+ return
ChargeData.builder().id(id).name(name).amount(amount).currency(currency).chargeTimeType(chargeTimeType)
+
.chargeAppliesTo(chargeAppliesToType).chargeCalculationType(chargeCalculationType).chargePaymentMode(chargePaymentMode)
+
.feeOnMonthDay(feeOnMonthDay).feeInterval(feeInterval).penalty(penalty).active(active).freeWithdrawal(isFreeWithdrawal)
+
.freeWithdrawalChargeFrequency(freeWithdrawalChargeFrequency).restartFrequency(restartFrequency)
+
.restartFrequencyEnum(restartFrequencyEnum).isPaymentType(isPaymentType).paymentTypeOptions(paymentTypeData)
+
.minCap(minCap).maxCap(maxCap).feeFrequency(feeFrequencyType).incomeOrLiabilityAccount(glAccountData)
+ .taxGroup(taxGroupData).build();
+
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeReadPlatformServiceImpl.java
index 79d2e4532..2ebaaf1f8 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanChargeReadPlatformServiceImpl.java
@@ -28,7 +28,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor;
-import org.apache.fineract.accounting.glaccount.data.GLAccountData;
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
import org.apache.fineract.infrastructure.core.domain.ExternalId;
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
@@ -47,7 +46,6 @@ import org.apache.fineract.portfolio.loanaccount.domain.Loan;
import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
import org.apache.fineract.portfolio.loanaccount.domain.LoanChargeRepository;
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionType;
-import org.apache.fineract.portfolio.tax.data.TaxGroupData;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
@@ -149,25 +147,15 @@ public class LoanChargeReadPlatformServiceImpl implements
LoanChargeReadPlatform
.retrieveSavingsCalculationTypes();
final List<EnumOptionData> savingsChargeTimeTypeOptions =
this.chargeDropdownReadPlatformService
.retrieveSavingsCollectionTimeTypes();
- final List<EnumOptionData> clientChargeCalculationTypeOptions = null;
- final List<EnumOptionData> clientChargeTimeTypeOptions = null;
final List<EnumOptionData> feeFrequencyOptions =
this.dropdownReadPlatformService.retrievePeriodFrequencyTypeOptions();
- // this field is applicable only for client charges
- final Map<String, List<GLAccountData>> incomeOrLiabilityAccountOptions
= null;
- final List<EnumOptionData> shareChargeCalculationTypeOptions = null;
- final List<EnumOptionData> shareChargeTimeTypeOptions = null;
- final Collection<TaxGroupData> taxGroupOptions = null;
-
- final String accountMappingForChargeConfig = null;
- final List<GLAccountData> expenseAccountOptions = null;
- final List<GLAccountData> assetAccountOptions = null;
-
- return ChargeData.template(null, allowedChargeCalculationTypeOptions,
null, allowedChargeTimeOptions, null,
- loansChargeCalculationTypeOptions, loansChargeTimeTypeOptions,
savingsChargeCalculationTypeOptions,
- savingsChargeTimeTypeOptions,
clientChargeCalculationTypeOptions, clientChargeTimeTypeOptions,
feeFrequencyOptions,
- incomeOrLiabilityAccountOptions, taxGroupOptions,
shareChargeCalculationTypeOptions, shareChargeTimeTypeOptions,
- accountMappingForChargeConfig, expenseAccountOptions,
assetAccountOptions);
+ // other fields is applicable only for client charges
+
+ return
ChargeData.builder().chargeCalculationTypeOptions(allowedChargeCalculationTypeOptions)
+
.chargeTimeTypeOptions(allowedChargeTimeOptions).loanChargeCalculationTypeOptions(loansChargeCalculationTypeOptions)
+ .loanChargeTimeTypeOptions(loansChargeTimeTypeOptions)
+
.savingsChargeCalculationTypeOptions(savingsChargeCalculationTypeOptions)
+
.savingsChargeTimeTypeOptions(savingsChargeTimeTypeOptions).feeFrequencyOptions(feeFrequencyOptions).build();
}
@Override
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformServiceImpl.java
index cae4b15d0..b28b2ec92 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountChargeReadPlatformServiceImpl.java
@@ -25,8 +25,6 @@ import java.time.LocalDate;
import java.time.MonthDay;
import java.util.Collection;
import java.util.List;
-import java.util.Map;
-import org.apache.fineract.accounting.glaccount.data.GLAccountData;
import org.apache.fineract.infrastructure.core.data.EnumOptionData;
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
import org.apache.fineract.infrastructure.core.service.DateUtils;
@@ -42,7 +40,6 @@ import
org.apache.fineract.portfolio.common.service.DropdownReadPlatformService;
import org.apache.fineract.portfolio.savings.data.SavingsAccountAnnualFeeData;
import org.apache.fineract.portfolio.savings.data.SavingsAccountChargeData;
import org.apache.fineract.portfolio.savings.domain.SavingsAccountStatusType;
-import org.apache.fineract.portfolio.tax.data.TaxGroupData;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
@@ -158,26 +155,16 @@ public class SavingsAccountChargeReadPlatformServiceImpl
implements SavingsAccou
.retrieveSavingsCalculationTypes();
final List<EnumOptionData> savingsChargeTimeTypeOptions =
this.chargeDropdownReadPlatformService
.retrieveSavingsCollectionTimeTypes();
- final List<EnumOptionData> clientChargeCalculationTypeOptions = null;
- final List<EnumOptionData> clientChargeTimeTypeOptions = null;
final List<EnumOptionData> feeFrequencyOptions =
this.dropdownReadPlatformService.retrievePeriodFrequencyTypeOptions();
- // this field is applicable only for client charges
- final Map<String, List<GLAccountData>> incomeOrLiabilityAccountOptions
= null;
- final List<EnumOptionData> shareChargeCalculationTypeOptions = null;
- final List<EnumOptionData> shareChargeTimeTypeOptions = null;
- final Collection<TaxGroupData> taxGroupOptions = null;
-
- final String accountMappingForChargeConfig = null;
- final List<GLAccountData> expenseAccountOptions = null;
- final List<GLAccountData> assetAccountOptions = null;
+ // other fields is applicable only for client charges
// TODO AA : revisit for merge conflict - Not sure method signature
- return ChargeData.template(null, allowedChargeCalculationTypeOptions,
null, allowedChargeTimeOptions, null,
- loansChargeCalculationTypeOptions, loansChargeTimeTypeOptions,
savingsChargeCalculationTypeOptions,
- savingsChargeTimeTypeOptions,
clientChargeCalculationTypeOptions, clientChargeTimeTypeOptions,
feeFrequencyOptions,
- incomeOrLiabilityAccountOptions, taxGroupOptions,
shareChargeCalculationTypeOptions, shareChargeTimeTypeOptions,
- accountMappingForChargeConfig, expenseAccountOptions,
assetAccountOptions);
+ return
ChargeData.builder().chargeCalculationTypeOptions(allowedChargeCalculationTypeOptions)
+
.chargeTimeTypeOptions(allowedChargeTimeOptions).loanChargeCalculationTypeOptions(loansChargeCalculationTypeOptions)
+ .loanChargeTimeTypeOptions(loansChargeTimeTypeOptions)
+
.savingsChargeCalculationTypeOptions(savingsChargeCalculationTypeOptions)
+
.savingsChargeTimeTypeOptions(savingsChargeTimeTypeOptions).feeFrequencyOptions(feeFrequencyOptions).build();
}
@Override