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 boolean cashBasedAccountingEnabled;
private boolean accrualBasedAccountingEnabled;
final boolean upfrontAccrualBasedAccountingEnabled;
final boolean periodicAccrualBasedAccountingEnabled;
private List<LoanTransactionDTO> newLoanTransactions;
public LoanDTO(final Long loanId, final Long loanProductId, final Long officeId, final String currencyCode,
final boolean cashBasedAccountingEnabled, final boolean accrualBasedAccountingEnabled,
final List<LoanTransactionDTO> newLoanTransactions) {
final boolean cashBasedAccountingEnabled, final boolean upfrontAccrualBasedAccountingEnabled,
final boolean periodicAccrualBasedAccountingEnabled, final List<LoanTransactionDTO> newLoanTransactions) {
this.loanId = loanId;
this.loanProductId = loanProductId;
this.officeId = officeId;
this.cashBasedAccountingEnabled = cashBasedAccountingEnabled;
this.accrualBasedAccountingEnabled = accrualBasedAccountingEnabled;
this.newLoanTransactions = newLoanTransactions;
this.currencyCode = currencyCode;
this.upfrontAccrualBasedAccountingEnabled = upfrontAccrualBasedAccountingEnabled;
this.periodicAccrualBasedAccountingEnabled = periodicAccrualBasedAccountingEnabled;
}
public Long getLoanId() {
@@ -62,12 +64,12 @@ public class LoanDTO {
this.cashBasedAccountingEnabled = cashBasedAccountingEnabled;
}
public boolean isAccrualBasedAccountingEnabled() {
return this.accrualBasedAccountingEnabled;
public boolean isUpfrontAccrualBasedAccountingEnabled() {
return this.upfrontAccrualBasedAccountingEnabled;
}
public void setAccrualBasedAccountingEnabled(final boolean accrualBasedAccountingEnabled) {
this.accrualBasedAccountingEnabled = accrualBasedAccountingEnabled;
public boolean isPeriodicAccrualBasedAccountingEnabled() {
return this.periodicAccrualBasedAccountingEnabled;
}
public List<LoanTransactionDTO> getNewLoanTransactions() {
@@ -27,9 +27,10 @@ public class AccountingProcessorForLoanFactory {
if (loanDTO.isCashBasedAccountingEnabled()) {
accountingProcessorForLoan = this.applicationContext.getBean("cashBasedAccountingProcessorForLoan",
AccountingProcessorForLoan.class);
}
else if (loanDTO.isAccrualBasedAccountingEnabled()) {
} else if (loanDTO.isUpfrontAccrualBasedAccountingEnabled()) {
accountingProcessorForLoan = this.applicationContext.getBean("accrualBasedAccountingProcessorForLoan",
AccountingProcessorForLoan.class);
} else if (loanDTO.isPeriodicAccrualBasedAccountingEnabled()) {
accountingProcessorForLoan = this.applicationContext.getBean("accrualBasedAccountingProcessorForLoan",
AccountingProcessorForLoan.class);
}
@@ -74,7 +74,7 @@ public class AccountingProcessorHelper {
}
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 loanProductId = (Long) accountingBridgeData.get("loanProductId");
final Long officeId = (Long) accountingBridgeData.get("officeId");
@@ -127,8 +127,8 @@ public class AccountingProcessorHelper {
}
return new LoanDTO(loanId, loanProductId, officeId, currencyData.code(), cashBasedAccountingEnabled, accrualBasedAccountingEnabled,
newLoanTransactions);
return new LoanDTO(loanId, loanProductId, officeId, currencyData.code(), cashBasedAccountingEnabled,
upfrontAccrualBasedAccountingEnabled, periodicAccrualBasedAccountingEnabled, newLoanTransactions);
}
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) {
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,
accrualBasedAccountingEnabled);
upfrontAccrualBasedAccountingEnabled, periodicAccrualBasedAccountingEnabled);
final AccountingProcessorForLoan accountingProcessorForLoan = this.accountingProcessorForLoanFactory
.determineProcessor(loanDTO);
accountingProcessorForLoan.createJournalEntriesForLoan(loanDTO);