FINERACT-2103: refactor the boilerplate code for ChargeData class and its affiliate code
This commit is contained in:
+1
-1
@@ -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);
|
||||
|
||||
+8
-4
@@ -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() {
|
||||
|
||||
+31
-201
@@ -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
|
||||
|
||||
+20
-10
@@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+6
-18
@@ -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;
|
||||
// other fields is applicable only for client charges
|
||||
|
||||
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);
|
||||
return ChargeData.builder().chargeCalculationTypeOptions(allowedChargeCalculationTypeOptions)
|
||||
.chargeTimeTypeOptions(allowedChargeTimeOptions).loanChargeCalculationTypeOptions(loansChargeCalculationTypeOptions)
|
||||
.loanChargeTimeTypeOptions(loansChargeTimeTypeOptions)
|
||||
.savingsChargeCalculationTypeOptions(savingsChargeCalculationTypeOptions)
|
||||
.savingsChargeTimeTypeOptions(savingsChargeTimeTypeOptions).feeFrequencyOptions(feeFrequencyOptions).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+6
-19
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user