Merge pull request #935 from pramodn02/MIFOSX-1306
MIFOSX-1306 : added check to identify account transfer
This commit is contained in:
+19
-8
@@ -42,6 +42,8 @@ import org.mifosplatform.infrastructure.core.exception.PlatformDataIntegrityExce
|
|||||||
import org.mifosplatform.organisation.monetary.data.CurrencyData;
|
import org.mifosplatform.organisation.monetary.data.CurrencyData;
|
||||||
import org.mifosplatform.organisation.office.domain.Office;
|
import org.mifosplatform.organisation.office.domain.Office;
|
||||||
import org.mifosplatform.organisation.office.domain.OfficeRepository;
|
import org.mifosplatform.organisation.office.domain.OfficeRepository;
|
||||||
|
import org.mifosplatform.portfolio.account.PortfolioAccountType;
|
||||||
|
import org.mifosplatform.portfolio.account.service.AccountTransfersReadPlatformService;
|
||||||
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionEnumData;
|
import org.mifosplatform.portfolio.loanaccount.data.LoanTransactionEnumData;
|
||||||
import org.mifosplatform.portfolio.loanaccount.domain.LoanTransaction;
|
import org.mifosplatform.portfolio.loanaccount.domain.LoanTransaction;
|
||||||
import org.mifosplatform.portfolio.loanaccount.domain.LoanTransactionRepository;
|
import org.mifosplatform.portfolio.loanaccount.domain.LoanTransactionRepository;
|
||||||
@@ -64,13 +66,15 @@ public class AccountingProcessorHelper {
|
|||||||
private final OfficeRepository officeRepository;
|
private final OfficeRepository officeRepository;
|
||||||
private final LoanTransactionRepository loanTransactionRepository;
|
private final LoanTransactionRepository loanTransactionRepository;
|
||||||
private final SavingsAccountTransactionRepository savingsAccountTransactionRepository;
|
private final SavingsAccountTransactionRepository savingsAccountTransactionRepository;
|
||||||
|
private final AccountTransfersReadPlatformService accountTransfersReadPlatformService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public AccountingProcessorHelper(final JournalEntryRepository glJournalEntryRepository,
|
public AccountingProcessorHelper(final JournalEntryRepository glJournalEntryRepository,
|
||||||
final ProductToGLAccountMappingRepository accountMappingRepository, final GLClosureRepository closureRepository,
|
final ProductToGLAccountMappingRepository accountMappingRepository, final GLClosureRepository closureRepository,
|
||||||
final OfficeRepository officeRepository, final LoanTransactionRepository loanTransactionRepository,
|
final OfficeRepository officeRepository, final LoanTransactionRepository loanTransactionRepository,
|
||||||
final SavingsAccountTransactionRepository savingsAccountTransactionRepository,
|
final SavingsAccountTransactionRepository savingsAccountTransactionRepository,
|
||||||
final OfficeToGLAccountMappingRepository officeToGLAccountMappingRepository) {
|
final OfficeToGLAccountMappingRepository officeToGLAccountMappingRepository,
|
||||||
|
final AccountTransfersReadPlatformService accountTransfersReadPlatformService) {
|
||||||
this.glJournalEntryRepository = glJournalEntryRepository;
|
this.glJournalEntryRepository = glJournalEntryRepository;
|
||||||
this.accountMappingRepository = accountMappingRepository;
|
this.accountMappingRepository = accountMappingRepository;
|
||||||
this.closureRepository = closureRepository;
|
this.closureRepository = closureRepository;
|
||||||
@@ -78,6 +82,7 @@ public class AccountingProcessorHelper {
|
|||||||
this.loanTransactionRepository = loanTransactionRepository;
|
this.loanTransactionRepository = loanTransactionRepository;
|
||||||
this.savingsAccountTransactionRepository = savingsAccountTransactionRepository;
|
this.savingsAccountTransactionRepository = savingsAccountTransactionRepository;
|
||||||
this.officeToGLAccountMappingRepository = officeToGLAccountMappingRepository;
|
this.officeToGLAccountMappingRepository = officeToGLAccountMappingRepository;
|
||||||
|
this.accountTransfersReadPlatformService = accountTransfersReadPlatformService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoanDTO populateLoanDtoFromMap(final Map<String, Object> accountingBridgeData, final boolean cashBasedAccountingEnabled,
|
public LoanDTO populateLoanDtoFromMap(final Map<String, Object> accountingBridgeData, final boolean cashBasedAccountingEnabled,
|
||||||
@@ -86,9 +91,8 @@ public class AccountingProcessorHelper {
|
|||||||
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");
|
||||||
final CurrencyData currencyData = (CurrencyData) accountingBridgeData.get("currency");
|
final CurrencyData currencyData = (CurrencyData) accountingBridgeData.get("currency");
|
||||||
final boolean isAccountTransfer = (Boolean) accountingBridgeData.get("isAccountTransfer");
|
|
||||||
|
|
||||||
final List<LoanTransactionDTO> newLoanTransactions = new ArrayList<LoanTransactionDTO>();
|
final List<LoanTransactionDTO> newLoanTransactions = new ArrayList<LoanTransactionDTO>();
|
||||||
|
boolean isAccountTransfer = (Boolean) accountingBridgeData.get("isAccountTransfer");
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
final List<Map<String, Object>> newTransactionsMap = (List<Map<String, Object>>) accountingBridgeData.get("newLoanTransactions");
|
final List<Map<String, Object>> newTransactionsMap = (List<Map<String, Object>>) accountingBridgeData.get("newLoanTransactions");
|
||||||
@@ -127,6 +131,10 @@ public class AccountingProcessorHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isAccountTransfer) {
|
||||||
|
isAccountTransfer = this.accountTransfersReadPlatformService.isAccountTransfer(Long.parseLong(transactionId),
|
||||||
|
PortfolioAccountType.LOAN);
|
||||||
|
}
|
||||||
final LoanTransactionDTO transaction = new LoanTransactionDTO(transactionOfficeId, paymentTypeId, transactionId,
|
final LoanTransactionDTO transaction = new LoanTransactionDTO(transactionOfficeId, paymentTypeId, transactionId,
|
||||||
transactionDate, transactionType, amount, principal, interest, fees, penalties, overPayments, reversed,
|
transactionDate, transactionType, amount, principal, interest, fees, penalties, overPayments, reversed,
|
||||||
feePaymentDetails, penaltyPaymentDetails, isAccountTransfer);
|
feePaymentDetails, penaltyPaymentDetails, isAccountTransfer);
|
||||||
@@ -145,8 +153,8 @@ public class AccountingProcessorHelper {
|
|||||||
final Long loanProductId = (Long) accountingBridgeData.get("savingsProductId");
|
final Long loanProductId = (Long) accountingBridgeData.get("savingsProductId");
|
||||||
final Long officeId = (Long) accountingBridgeData.get("officeId");
|
final Long officeId = (Long) accountingBridgeData.get("officeId");
|
||||||
final CurrencyData currencyData = (CurrencyData) accountingBridgeData.get("currency");
|
final CurrencyData currencyData = (CurrencyData) accountingBridgeData.get("currency");
|
||||||
final boolean isAccountTransfer = (Boolean) accountingBridgeData.get("isAccountTransfer");
|
|
||||||
final List<SavingsTransactionDTO> newSavingsTransactions = new ArrayList<SavingsTransactionDTO>();
|
final List<SavingsTransactionDTO> newSavingsTransactions = new ArrayList<SavingsTransactionDTO>();
|
||||||
|
boolean isAccountTransfer = (Boolean) accountingBridgeData.get("isAccountTransfer");
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
final List<Map<String, Object>> newTransactionsMap = (List<Map<String, Object>>) accountingBridgeData.get("newSavingsTransactions");
|
final List<Map<String, Object>> newTransactionsMap = (List<Map<String, Object>>) accountingBridgeData.get("newSavingsTransactions");
|
||||||
@@ -180,7 +188,10 @@ public class AccountingProcessorHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!isAccountTransfer) {
|
||||||
|
isAccountTransfer = this.accountTransfersReadPlatformService.isAccountTransfer(Long.parseLong(transactionId),
|
||||||
|
PortfolioAccountType.SAVINGS);
|
||||||
|
}
|
||||||
final SavingsTransactionDTO transaction = new SavingsTransactionDTO(transactionOfficeId, paymentTypeId, transactionId,
|
final SavingsTransactionDTO transaction = new SavingsTransactionDTO(transactionOfficeId, paymentTypeId, transactionId,
|
||||||
transactionDate, transactionType, amount, reversed, feePayments, penaltyPayments, overdraftAmount, isAccountTransfer);
|
transactionDate, transactionType, amount, reversed, feePayments, penaltyPayments, overdraftAmount, isAccountTransfer);
|
||||||
|
|
||||||
@@ -213,9 +224,9 @@ public class AccountingProcessorHelper {
|
|||||||
* @param isReversal
|
* @param isReversal
|
||||||
*/
|
*/
|
||||||
public void createAccrualBasedJournalEntriesAndReversalsForLoan(final Office office, final String currencyCode,
|
public void createAccrualBasedJournalEntriesAndReversalsForLoan(final Office office, final String currencyCode,
|
||||||
final Integer accountTypeToBeDebited, final Integer accountTypeToBeCredited,
|
final Integer accountTypeToBeDebited, final Integer accountTypeToBeCredited, final Long loanProductId,
|
||||||
final Long loanProductId, final Long paymentTypeId, final Long loanId, final String transactionId, final Date transactionDate,
|
final Long paymentTypeId, final Long loanId, final String transactionId, final Date transactionDate, final BigDecimal amount,
|
||||||
final BigDecimal amount, final Boolean isReversal) {
|
final Boolean isReversal) {
|
||||||
int accountTypeToDebitId = accountTypeToBeDebited;
|
int accountTypeToDebitId = accountTypeToBeDebited;
|
||||||
int accountTypeToCreditId = accountTypeToBeCredited;
|
int accountTypeToCreditId = accountTypeToBeCredited;
|
||||||
// reverse debits and credits for reversals
|
// reverse debits and credits for reversals
|
||||||
|
|||||||
Reference in New Issue
Block a user