MIFOSX-865: fixing failing testing cases for accrual accounting

This commit is contained in:
Vishwas Babu A J
2014-04-11 17:36:38 -07:00
parent 4a0eae6fa1
commit bf04f97333
4 changed files with 21 additions and 17 deletions
@@ -15,19 +15,21 @@ public class LoanDTO {
private String currencyCode; private String currencyCode;
private boolean cashBasedAccountingEnabled; private boolean cashBasedAccountingEnabled;
private boolean accrualBasedAccountingEnabled; final boolean upfrontAccrualBasedAccountingEnabled;
final boolean periodicAccrualBasedAccountingEnabled;
private List<LoanTransactionDTO> newLoanTransactions; private List<LoanTransactionDTO> newLoanTransactions;
public LoanDTO(final Long loanId, final Long loanProductId, final Long officeId, final String currencyCode, public LoanDTO(final Long loanId, final Long loanProductId, final Long officeId, final String currencyCode,
final boolean cashBasedAccountingEnabled, final boolean accrualBasedAccountingEnabled, final boolean cashBasedAccountingEnabled, final boolean upfrontAccrualBasedAccountingEnabled,
final List<LoanTransactionDTO> newLoanTransactions) { final boolean periodicAccrualBasedAccountingEnabled, final List<LoanTransactionDTO> newLoanTransactions) {
this.loanId = loanId; this.loanId = loanId;
this.loanProductId = loanProductId; this.loanProductId = loanProductId;
this.officeId = officeId; this.officeId = officeId;
this.cashBasedAccountingEnabled = cashBasedAccountingEnabled; this.cashBasedAccountingEnabled = cashBasedAccountingEnabled;
this.accrualBasedAccountingEnabled = accrualBasedAccountingEnabled;
this.newLoanTransactions = newLoanTransactions; this.newLoanTransactions = newLoanTransactions;
this.currencyCode = currencyCode; this.currencyCode = currencyCode;
this.upfrontAccrualBasedAccountingEnabled = upfrontAccrualBasedAccountingEnabled;
this.periodicAccrualBasedAccountingEnabled = periodicAccrualBasedAccountingEnabled;
} }
public Long getLoanId() { public Long getLoanId() {
@@ -62,12 +64,12 @@ public class LoanDTO {
this.cashBasedAccountingEnabled = cashBasedAccountingEnabled; this.cashBasedAccountingEnabled = cashBasedAccountingEnabled;
} }
public boolean isAccrualBasedAccountingEnabled() { public boolean isUpfrontAccrualBasedAccountingEnabled() {
return this.accrualBasedAccountingEnabled; return this.upfrontAccrualBasedAccountingEnabled;
} }
public void setAccrualBasedAccountingEnabled(final boolean accrualBasedAccountingEnabled) { public boolean isPeriodicAccrualBasedAccountingEnabled() {
this.accrualBasedAccountingEnabled = accrualBasedAccountingEnabled; return this.periodicAccrualBasedAccountingEnabled;
} }
public List<LoanTransactionDTO> getNewLoanTransactions() { public List<LoanTransactionDTO> getNewLoanTransactions() {
@@ -27,9 +27,10 @@ public class AccountingProcessorForLoanFactory {
if (loanDTO.isCashBasedAccountingEnabled()) { if (loanDTO.isCashBasedAccountingEnabled()) {
accountingProcessorForLoan = this.applicationContext.getBean("cashBasedAccountingProcessorForLoan", accountingProcessorForLoan = this.applicationContext.getBean("cashBasedAccountingProcessorForLoan",
AccountingProcessorForLoan.class); AccountingProcessorForLoan.class);
} } else if (loanDTO.isUpfrontAccrualBasedAccountingEnabled()) {
accountingProcessorForLoan = this.applicationContext.getBean("accrualBasedAccountingProcessorForLoan",
else if (loanDTO.isAccrualBasedAccountingEnabled()) { AccountingProcessorForLoan.class);
} else if (loanDTO.isPeriodicAccrualBasedAccountingEnabled()) {
accountingProcessorForLoan = this.applicationContext.getBean("accrualBasedAccountingProcessorForLoan", accountingProcessorForLoan = this.applicationContext.getBean("accrualBasedAccountingProcessorForLoan",
AccountingProcessorForLoan.class); AccountingProcessorForLoan.class);
} }
@@ -74,7 +74,7 @@ public class AccountingProcessorHelper {
} }
public LoanDTO populateLoanDtoFromMap(final Map<String, Object> accountingBridgeData, final boolean cashBasedAccountingEnabled, public LoanDTO populateLoanDtoFromMap(final Map<String, Object> accountingBridgeData, final boolean cashBasedAccountingEnabled,
final boolean accrualBasedAccountingEnabled) { final boolean upfrontAccrualBasedAccountingEnabled, final boolean periodicAccrualBasedAccountingEnabled) {
final Long loanId = (Long) accountingBridgeData.get("loanId"); final Long loanId = (Long) accountingBridgeData.get("loanId");
final Long loanProductId = (Long) accountingBridgeData.get("loanProductId"); final Long loanProductId = (Long) accountingBridgeData.get("loanProductId");
final Long officeId = (Long) accountingBridgeData.get("officeId"); final Long officeId = (Long) accountingBridgeData.get("officeId");
@@ -127,8 +127,8 @@ public class AccountingProcessorHelper {
} }
return new LoanDTO(loanId, loanProductId, officeId, currencyData.code(), cashBasedAccountingEnabled, accrualBasedAccountingEnabled, return new LoanDTO(loanId, loanProductId, officeId, currencyData.code(), cashBasedAccountingEnabled,
newLoanTransactions); upfrontAccrualBasedAccountingEnabled, periodicAccrualBasedAccountingEnabled, newLoanTransactions);
} }
public SavingsDTO populateSavingsDtoFromMap(final Map<String, Object> accountingBridgeData, final boolean cashBasedAccountingEnabled, public SavingsDTO populateSavingsDtoFromMap(final Map<String, Object> accountingBridgeData, final boolean cashBasedAccountingEnabled,
@@ -310,11 +310,12 @@ public class JournalEntryWritePlatformServiceJpaRepositoryImpl implements Journa
public void createJournalEntriesForLoan(final Map<String, Object> accountingBridgeData) { public void createJournalEntriesForLoan(final Map<String, Object> accountingBridgeData) {
final boolean cashBasedAccountingEnabled = (Boolean) accountingBridgeData.get("cashBasedAccountingEnabled"); final boolean cashBasedAccountingEnabled = (Boolean) accountingBridgeData.get("cashBasedAccountingEnabled");
final boolean accrualBasedAccountingEnabled = (Boolean) accountingBridgeData.get("accrualBasedAccountingEnabled"); final boolean upfrontAccrualBasedAccountingEnabled = (Boolean) accountingBridgeData.get("upfrontAccrualBasedAccountingEnabled");
final boolean periodicAccrualBasedAccountingEnabled = (Boolean) accountingBridgeData.get("periodicAccrualBasedAccountingEnabled");
if (cashBasedAccountingEnabled || accrualBasedAccountingEnabled) { if (cashBasedAccountingEnabled || upfrontAccrualBasedAccountingEnabled || periodicAccrualBasedAccountingEnabled) {
final LoanDTO loanDTO = this.helper.populateLoanDtoFromMap(accountingBridgeData, cashBasedAccountingEnabled, final LoanDTO loanDTO = this.helper.populateLoanDtoFromMap(accountingBridgeData, cashBasedAccountingEnabled,
accrualBasedAccountingEnabled); upfrontAccrualBasedAccountingEnabled, periodicAccrualBasedAccountingEnabled);
final AccountingProcessorForLoan accountingProcessorForLoan = this.accountingProcessorForLoanFactory final AccountingProcessorForLoan accountingProcessorForLoan = this.accountingProcessorForLoanFactory
.determineProcessor(loanDTO); .determineProcessor(loanDTO);
accountingProcessorForLoan.createJournalEntriesForLoan(loanDTO); accountingProcessorForLoan.createJournalEntriesForLoan(loanDTO);