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 { } 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, 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, Serializable { private final List expenseAccountOptions; private final List assetAccountOptions; - public static ChargeData template(final Collection currencyOptions, - final List chargeCalculationTypeOptions, final List chargeAppliesToOptions, - final List chargeTimeTypeOptions, final List chargePaymentModeOptions, - final List loansChargeCalculationTypeOptions, final List loansChargeTimeTypeOptions, - final List savingsChargeCalculationTypeOptions, final List savingsChargeTimeTypeOptions, - final List clientChargeCalculationTypeOptions, final List clientChargeTimeTypeOptions, - final List feeFrequencyOptions, final Map> incomeOrLiabilityAccountOptions, - final Collection taxGroupOptions, final List shareChargeCalculationTypeOptions, - final List shareChargeTimeTypeOptions, String accountMappingForChargeConfig, - List expenseAccountOptions, List 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 currencyOptions = null; - final List chargeCalculationTypeOptions = null; - final List chargeAppliesToOptions = null; - final List chargeTimeTypeOptions = null; - final List chargePaymentModeOptions = null; - final List loansChargeCalculationTypeOptions = null; - final List loansChargeTimeTypeOptions = null; - final List savingsChargeCalculationTypeOptions = null; - final List savingsChargeTimeTypeOptions = null; - final List feeFrequencyOptions = null; - final List clientChargeCalculationTypeOptions = null; - final List clientChargeTimeTypeOptions = null; - final Map> incomeOrLiabilityAccountOptions = null; - final List shareChargeCalculationTypeOptions = null; - final List shareChargeTimeTypeOptions = null; - final Collection taxGroupOptions = null; - final String accountMappingForChargeConfig = null; - final List expenseAccountOptions = null; - final List 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 currencyOptions = null; - final List chargeCalculationTypeOptions = null; - final List chargeAppliesToOptions = null; - final List chargeTimeTypeOptions = null; - final List chargePaymentModeOptions = null; - final List loansChargeCalculationTypeOptions = null; - final List loansChargeTimeTypeOptions = null; - final List savingsChargeCalculationTypeOptions = null; - final List savingsChargeTimeTypeOptions = null; - final List clientChargeCalculationTypeOptions = null; - final List clientChargeTimeTypeOptions = null; - final EnumOptionData feeFrequency = null; - final List feeFrequencyOptions = null; - final GLAccountData account = null; - final Map> incomeOrLiabilityAccountOptions = null; - final List shareChargeCalculationTypeOptions = null; - final List shareChargeTimeTypeOptions = null; - final TaxGroupData taxGroupData = null; - final Collection taxGroupOptions = null; - final String accountMappingForChargeConfig = null; - final List expenseAccountOptions = null; - final List 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 currencyOptions, final List chargeCalculationTypeOptions, - final List chargeAppliesToOptions, final List chargeTimeTypeOptions, - final List chargePaymentModeOptions, final List loansChargeCalculationTypeOptions, - final List loansChargeTimeTypeOptions, final List savingsChargeCalculationTypeOptions, - final List savingsChargeTimeTypeOptions, final List clientChargeCalculationTypeOptions, - final List clientChargeTimeTypeOptions, final MonthDay feeOnMonthDay, final Integer feeInterval, - final BigDecimal minCap, final BigDecimal maxCap, final EnumOptionData feeFrequency, - final List feeFrequencyOptions, final GLAccountData account, - final Map> incomeOrLiabilityAccountOptions, final Collection taxGroupOptions, - final List shareChargeCalculationTypeOptions, final List shareChargeTimeTypeOptions, - final String accountMappingForChargeConfig, final List expenseAccountOptions, - final List 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 expenseAccountOptions = this.accountingDropdownReadPlatformService.retrieveExpenseAccountOptions(); final List 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 savingsChargeTimeTypeOptions = this.chargeDropdownReadPlatformService .retrieveSavingsCollectionTimeTypes(); - final List clientChargeCalculationTypeOptions = null; - final List clientChargeTimeTypeOptions = null; final List feeFrequencyOptions = this.dropdownReadPlatformService.retrievePeriodFrequencyTypeOptions(); - // this field is applicable only for client charges - final Map> incomeOrLiabilityAccountOptions = null; - final List shareChargeCalculationTypeOptions = null; - final List shareChargeTimeTypeOptions = null; - final Collection taxGroupOptions = null; + // other fields is applicable only for client charges - final String accountMappingForChargeConfig = null; - final List expenseAccountOptions = null; - final List assetAccountOptions = null; - - 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 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 savingsChargeTimeTypeOptions = this.chargeDropdownReadPlatformService .retrieveSavingsCollectionTimeTypes(); - final List clientChargeCalculationTypeOptions = null; - final List clientChargeTimeTypeOptions = null; final List feeFrequencyOptions = this.dropdownReadPlatformService.retrievePeriodFrequencyTypeOptions(); - // this field is applicable only for client charges - final Map> incomeOrLiabilityAccountOptions = null; - final List shareChargeCalculationTypeOptions = null; - final List shareChargeTimeTypeOptions = null; - final Collection taxGroupOptions = null; - - final String accountMappingForChargeConfig = null; - final List expenseAccountOptions = null; - final List 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