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 Long chargeId = (Long) chargeToIncomeAccountMap.get("chargeId");
|
||||||
final String chargeName = (String) chargeToIncomeAccountMap.get("chargeName");
|
final String chargeName = (String) chargeToIncomeAccountMap.get("chargeName");
|
||||||
final Boolean penalty1 = (Boolean) chargeToIncomeAccountMap.get("penalty");
|
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)
|
final ChargeToGLAccountMapper chargeToGLAccountMapper = new ChargeToGLAccountMapper().setCharge(chargeData)
|
||||||
.setIncomeAccount(gLAccountData);
|
.setIncomeAccount(gLAccountData);
|
||||||
chargeToGLAccountMappers.add(chargeToGLAccountMapper);
|
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);
|
final CurrencyData currency = new CurrencyData(this.currencyCode, null, 0, 0, null, null);
|
||||||
return ChargeData.instance(getId(), this.name, this.amount, currency, chargeTimeType, chargeAppliesTo, chargeCalculationType,
|
return ChargeData.builder().id(getId()).name(this.name).amount(this.amount).currency(currency).chargeTimeType(chargeTimeType)
|
||||||
chargePaymentMode, getFeeOnMonthDay(), this.feeInterval, this.penalty, this.active, this.enableFreeWithdrawal,
|
.chargeAppliesTo(chargeAppliesTo).chargeCalculationType(chargeCalculationType).chargePaymentMode(chargePaymentMode)
|
||||||
this.freeWithdrawalFrequency, this.restartFrequency, this.restartFrequencyEnum, this.enablePaymentType, paymentTypeData,
|
.feeOnMonthDay(getFeeOnMonthDay()).feeInterval(this.feeInterval).penalty(this.penalty).active(this.active)
|
||||||
this.minCap, this.maxCap, feeFrequencyType, accountData, taxGroupData);
|
.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() {
|
public Integer getChargePaymentMode() {
|
||||||
|
|||||||
+31
-201
@@ -24,6 +24,8 @@ import java.time.MonthDay;
|
|||||||
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.Builder;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
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;
|
||||||
@@ -36,17 +38,25 @@ import org.apache.fineract.portfolio.tax.data.TaxGroupData;
|
|||||||
* Immutable data object for charge data.
|
* Immutable data object for charge data.
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
|
@EqualsAndHashCode(of = "id")
|
||||||
|
@Builder(toBuilder = true)
|
||||||
public final class ChargeData implements Comparable<ChargeData>, Serializable {
|
public final class ChargeData implements Comparable<ChargeData>, Serializable {
|
||||||
|
|
||||||
private final Long id;
|
private final Long id;
|
||||||
private final String name;
|
private final String name;
|
||||||
private final boolean active;
|
|
||||||
private final boolean penalty;
|
@Builder.Default
|
||||||
private final boolean freeWithdrawal;
|
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 freeWithdrawalChargeFrequency;
|
||||||
private final Integer restartFrequency;
|
private final Integer restartFrequency;
|
||||||
private final Integer restartFrequencyEnum;
|
private final Integer restartFrequencyEnum;
|
||||||
private final boolean isPaymentType;
|
|
||||||
private final PaymentTypeData paymentTypeOptions;
|
private final PaymentTypeData paymentTypeOptions;
|
||||||
private final CurrencyData currency;
|
private final CurrencyData currency;
|
||||||
private final BigDecimal amount;
|
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> expenseAccountOptions;
|
||||||
private final List<GLAccountData> assetAccountOptions;
|
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) {
|
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,
|
return charge.toBuilder().currencyOptions(template.getCurrencyOptions())
|
||||||
charge.chargeCalculationType, charge.chargePaymentMode, charge.penalty, charge.active, charge.freeWithdrawal,
|
.chargeCalculationTypeOptions(template.getChargeCalculationTypeOptions())
|
||||||
charge.freeWithdrawalChargeFrequency, charge.restartFrequency, charge.restartFrequencyEnum, charge.isPaymentType,
|
.chargeAppliesToOptions(template.getChargeAppliesToOptions()).chargeTimeTypeOptions(template.getChargeTimeTypeOptions())
|
||||||
charge.paymentTypeOptions, charge.taxGroup, template.currencyOptions, template.chargeCalculationTypeOptions,
|
.chargePaymetModeOptions(template.getChargePaymetModeOptions())
|
||||||
template.chargeAppliesToOptions, template.chargeTimeTypeOptions, template.chargePaymetModeOptions,
|
.loanChargeCalculationTypeOptions(template.getLoanChargeCalculationTypeOptions())
|
||||||
template.loanChargeCalculationTypeOptions, template.loanChargeTimeTypeOptions, template.savingsChargeCalculationTypeOptions,
|
.loanChargeTimeTypeOptions(template.getLoanChargeTimeTypeOptions())
|
||||||
template.savingsChargeTimeTypeOptions, template.clientChargeCalculationTypeOptions, template.clientChargeTimeTypeOptions,
|
.savingsChargeCalculationTypeOptions(template.getSavingsChargeCalculationTypeOptions())
|
||||||
charge.feeOnMonthDay, charge.feeInterval, charge.minCap, charge.maxCap, charge.feeFrequency, template.feeFrequencyOptions,
|
.savingsChargeTimeTypeOptions(template.getSavingsChargeTimeTypeOptions())
|
||||||
charge.incomeOrLiabilityAccount, template.incomeOrLiabilityAccountOptions, template.taxGroupOptions,
|
.clientChargeCalculationTypeOptions(template.getClientChargeCalculationTypeOptions())
|
||||||
template.shareChargeCalculationTypeOptions, template.shareChargeTimeTypeOptions, template.accountMappingForChargeConfig,
|
.clientChargeTimeTypeOptions(template.getClientChargeTimeTypeOptions())
|
||||||
template.expenseAccountOptions, template.assetAccountOptions);
|
.feeFrequencyOptions(template.getFeeFrequencyOptions())
|
||||||
}
|
.incomeOrLiabilityAccountOptions(template.getIncomeOrLiabilityAccountOptions())
|
||||||
|
.taxGroupOptions(template.getTaxGroupOptions())
|
||||||
public static ChargeData instance(final Long id, final String name, final BigDecimal amount, final CurrencyData currency,
|
.shareChargeCalculationTypeOptions(template.getShareChargeCalculationTypeOptions())
|
||||||
final EnumOptionData chargeTimeType, final EnumOptionData chargeAppliesTo, final EnumOptionData chargeCalculationType,
|
.shareChargeTimeTypeOptions(template.getShareChargeTimeTypeOptions())
|
||||||
final EnumOptionData chargePaymentMode, final MonthDay feeOnMonthDay, final Integer feeInterval, final boolean penalty,
|
.accountMappingForChargeConfig(template.getAccountMappingForChargeConfig())
|
||||||
final boolean active, final boolean freeWithdrawal, final Integer freeWithdrawalChargeFrequency, final Integer restartFrequency,
|
.expenseAccountOptions(template.getExpenseAccountOptions()).assetAccountOptions(template.getAssetAccountOptions()).build();
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+20
-10
@@ -140,12 +140,18 @@ public class ChargeReadPlatformServiceImpl implements ChargeReadPlatformService
|
|||||||
final List<GLAccountData> expenseAccountOptions = this.accountingDropdownReadPlatformService.retrieveExpenseAccountOptions();
|
final List<GLAccountData> expenseAccountOptions = this.accountingDropdownReadPlatformService.retrieveExpenseAccountOptions();
|
||||||
final List<GLAccountData> assetAccountOptions = this.accountingDropdownReadPlatformService.retrieveAssetAccountOptions();
|
final List<GLAccountData> assetAccountOptions = this.accountingDropdownReadPlatformService.retrieveAssetAccountOptions();
|
||||||
|
|
||||||
return ChargeData.template(currencyOptions, allowedChargeCalculationTypeOptions, allowedChargeAppliesToOptions,
|
return ChargeData.builder().currencyOptions(currencyOptions).chargeCalculationTypeOptions(allowedChargeCalculationTypeOptions)
|
||||||
allowedChargeTimeOptions, chargePaymentOptions, loansChargeCalculationTypeOptions, loansChargeTimeTypeOptions,
|
.chargeAppliesToOptions(allowedChargeAppliesToOptions).chargeTimeTypeOptions(allowedChargeTimeOptions)
|
||||||
savingsChargeCalculationTypeOptions, savingsChargeTimeTypeOptions, clientChargeCalculationTypeOptions,
|
.chargePaymetModeOptions(chargePaymentOptions).loanChargeCalculationTypeOptions(loansChargeCalculationTypeOptions)
|
||||||
clientChargeTimeTypeOptions, feeFrequencyOptions, incomeOrLiabilityAccountOptions, taxGroupOptions,
|
.loanChargeTimeTypeOptions(loansChargeTimeTypeOptions)
|
||||||
shareChargeCalculationTypeOptions, shareChargeTimeTypeOptions, accountMappingForChargeConfig, expenseAccountOptions,
|
.savingsChargeCalculationTypeOptions(savingsChargeCalculationTypeOptions)
|
||||||
assetAccountOptions);
|
.savingsChargeTimeTypeOptions(savingsChargeTimeTypeOptions)
|
||||||
|
.clientChargeCalculationTypeOptions(clientChargeCalculationTypeOptions)
|
||||||
|
.clientChargeTimeTypeOptions(clientChargeTimeTypeOptions).feeFrequencyOptions(feeFrequencyOptions)
|
||||||
|
.incomeOrLiabilityAccountOptions(incomeOrLiabilityAccountOptions).taxGroupOptions(taxGroupOptions)
|
||||||
|
.shareChargeCalculationTypeOptions(shareChargeCalculationTypeOptions).shareChargeTimeTypeOptions(shareChargeTimeTypeOptions)
|
||||||
|
.accountMappingForChargeConfig(accountMappingForChargeConfig).expenseAccountOptions(expenseAccountOptions)
|
||||||
|
.assetAccountOptions(assetAccountOptions).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -368,10 +374,14 @@ public class ChargeReadPlatformServiceImpl implements ChargeReadPlatformService
|
|||||||
paymentTypeData = PaymentTypeData.instance(paymentTypeId, paymentTypeName);
|
paymentTypeData = PaymentTypeData.instance(paymentTypeId, paymentTypeName);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ChargeData.instance(id, name, amount, currency, chargeTimeType, chargeAppliesToType, chargeCalculationType,
|
return ChargeData.builder().id(id).name(name).amount(amount).currency(currency).chargeTimeType(chargeTimeType)
|
||||||
chargePaymentMode, feeOnMonthDay, feeInterval, penalty, active, isFreeWithdrawal, freeWithdrawalChargeFrequency,
|
.chargeAppliesTo(chargeAppliesToType).chargeCalculationType(chargeCalculationType).chargePaymentMode(chargePaymentMode)
|
||||||
restartFrequency, restartFrequencyEnum, isPaymentType, paymentTypeData, minCap, maxCap, feeFrequencyType, glAccountData,
|
.feeOnMonthDay(feeOnMonthDay).feeInterval(feeInterval).penalty(penalty).active(active).freeWithdrawal(isFreeWithdrawal)
|
||||||
taxGroupData);
|
.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.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import lombok.RequiredArgsConstructor;
|
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.data.EnumOptionData;
|
||||||
import org.apache.fineract.infrastructure.core.domain.ExternalId;
|
import org.apache.fineract.infrastructure.core.domain.ExternalId;
|
||||||
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
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.LoanCharge;
|
||||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanChargeRepository;
|
import org.apache.fineract.portfolio.loanaccount.domain.LoanChargeRepository;
|
||||||
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionType;
|
import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionType;
|
||||||
import org.apache.fineract.portfolio.tax.data.TaxGroupData;
|
|
||||||
import org.springframework.dao.EmptyResultDataAccessException;
|
import org.springframework.dao.EmptyResultDataAccessException;
|
||||||
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
import org.springframework.jdbc.core.RowMapper;
|
import org.springframework.jdbc.core.RowMapper;
|
||||||
@@ -149,25 +147,15 @@ public class LoanChargeReadPlatformServiceImpl implements LoanChargeReadPlatform
|
|||||||
.retrieveSavingsCalculationTypes();
|
.retrieveSavingsCalculationTypes();
|
||||||
final List<EnumOptionData> savingsChargeTimeTypeOptions = this.chargeDropdownReadPlatformService
|
final List<EnumOptionData> savingsChargeTimeTypeOptions = this.chargeDropdownReadPlatformService
|
||||||
.retrieveSavingsCollectionTimeTypes();
|
.retrieveSavingsCollectionTimeTypes();
|
||||||
final List<EnumOptionData> clientChargeCalculationTypeOptions = null;
|
|
||||||
final List<EnumOptionData> clientChargeTimeTypeOptions = null;
|
|
||||||
|
|
||||||
final List<EnumOptionData> feeFrequencyOptions = this.dropdownReadPlatformService.retrievePeriodFrequencyTypeOptions();
|
final List<EnumOptionData> feeFrequencyOptions = this.dropdownReadPlatformService.retrievePeriodFrequencyTypeOptions();
|
||||||
// this field is applicable only for client charges
|
// other fields 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;
|
return ChargeData.builder().chargeCalculationTypeOptions(allowedChargeCalculationTypeOptions)
|
||||||
final List<GLAccountData> expenseAccountOptions = null;
|
.chargeTimeTypeOptions(allowedChargeTimeOptions).loanChargeCalculationTypeOptions(loansChargeCalculationTypeOptions)
|
||||||
final List<GLAccountData> assetAccountOptions = null;
|
.loanChargeTimeTypeOptions(loansChargeTimeTypeOptions)
|
||||||
|
.savingsChargeCalculationTypeOptions(savingsChargeCalculationTypeOptions)
|
||||||
return ChargeData.template(null, allowedChargeCalculationTypeOptions, null, allowedChargeTimeOptions, null,
|
.savingsChargeTimeTypeOptions(savingsChargeTimeTypeOptions).feeFrequencyOptions(feeFrequencyOptions).build();
|
||||||
loansChargeCalculationTypeOptions, loansChargeTimeTypeOptions, savingsChargeCalculationTypeOptions,
|
|
||||||
savingsChargeTimeTypeOptions, clientChargeCalculationTypeOptions, clientChargeTimeTypeOptions, feeFrequencyOptions,
|
|
||||||
incomeOrLiabilityAccountOptions, taxGroupOptions, shareChargeCalculationTypeOptions, shareChargeTimeTypeOptions,
|
|
||||||
accountMappingForChargeConfig, expenseAccountOptions, assetAccountOptions);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+6
-19
@@ -25,8 +25,6 @@ import java.time.LocalDate;
|
|||||||
import java.time.MonthDay;
|
import java.time.MonthDay;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
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.data.EnumOptionData;
|
||||||
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
|
||||||
import org.apache.fineract.infrastructure.core.service.DateUtils;
|
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.SavingsAccountAnnualFeeData;
|
||||||
import org.apache.fineract.portfolio.savings.data.SavingsAccountChargeData;
|
import org.apache.fineract.portfolio.savings.data.SavingsAccountChargeData;
|
||||||
import org.apache.fineract.portfolio.savings.domain.SavingsAccountStatusType;
|
import org.apache.fineract.portfolio.savings.domain.SavingsAccountStatusType;
|
||||||
import org.apache.fineract.portfolio.tax.data.TaxGroupData;
|
|
||||||
import org.springframework.dao.EmptyResultDataAccessException;
|
import org.springframework.dao.EmptyResultDataAccessException;
|
||||||
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
import org.springframework.jdbc.core.RowMapper;
|
import org.springframework.jdbc.core.RowMapper;
|
||||||
@@ -158,26 +155,16 @@ public class SavingsAccountChargeReadPlatformServiceImpl implements SavingsAccou
|
|||||||
.retrieveSavingsCalculationTypes();
|
.retrieveSavingsCalculationTypes();
|
||||||
final List<EnumOptionData> savingsChargeTimeTypeOptions = this.chargeDropdownReadPlatformService
|
final List<EnumOptionData> savingsChargeTimeTypeOptions = this.chargeDropdownReadPlatformService
|
||||||
.retrieveSavingsCollectionTimeTypes();
|
.retrieveSavingsCollectionTimeTypes();
|
||||||
final List<EnumOptionData> clientChargeCalculationTypeOptions = null;
|
|
||||||
final List<EnumOptionData> clientChargeTimeTypeOptions = null;
|
|
||||||
|
|
||||||
final List<EnumOptionData> feeFrequencyOptions = this.dropdownReadPlatformService.retrievePeriodFrequencyTypeOptions();
|
final List<EnumOptionData> feeFrequencyOptions = this.dropdownReadPlatformService.retrievePeriodFrequencyTypeOptions();
|
||||||
// this field is applicable only for client charges
|
// other fields 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;
|
|
||||||
|
|
||||||
// TODO AA : revisit for merge conflict - Not sure method signature
|
// TODO AA : revisit for merge conflict - Not sure method signature
|
||||||
return ChargeData.template(null, allowedChargeCalculationTypeOptions, null, allowedChargeTimeOptions, null,
|
return ChargeData.builder().chargeCalculationTypeOptions(allowedChargeCalculationTypeOptions)
|
||||||
loansChargeCalculationTypeOptions, loansChargeTimeTypeOptions, savingsChargeCalculationTypeOptions,
|
.chargeTimeTypeOptions(allowedChargeTimeOptions).loanChargeCalculationTypeOptions(loansChargeCalculationTypeOptions)
|
||||||
savingsChargeTimeTypeOptions, clientChargeCalculationTypeOptions, clientChargeTimeTypeOptions, feeFrequencyOptions,
|
.loanChargeTimeTypeOptions(loansChargeTimeTypeOptions)
|
||||||
incomeOrLiabilityAccountOptions, taxGroupOptions, shareChargeCalculationTypeOptions, shareChargeTimeTypeOptions,
|
.savingsChargeCalculationTypeOptions(savingsChargeCalculationTypeOptions)
|
||||||
accountMappingForChargeConfig, expenseAccountOptions, assetAccountOptions);
|
.savingsChargeTimeTypeOptions(savingsChargeTimeTypeOptions).feeFrequencyOptions(feeFrequencyOptions).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user