http://jira.mfd.msk:8088/browse/CLS-189 account balance bug fix NLPs
This commit is contained in:
parent
af192d5a32
commit
da5d08e1d8
1 changed files with 21 additions and 11 deletions
|
|
@ -98,6 +98,7 @@ public class AccountBalanceService {
|
|||
|
||||
public void updateAccountBalanceByClearing(AccountBalanceClearingRequest req) {
|
||||
ClearingCategory category = getClearingCategoryByCompanyId(req.getCompanyId());
|
||||
req.setFirstLegAmount(safeBD(req.getFirstLegAmount()));
|
||||
if (category.equals(ClearingCategory.I)) {
|
||||
updateAccountCategoryIClrn(req.getAccountId(), req.getCompanyId(), req.getFirstLegAmount());
|
||||
updateAccountCategoryITran(req.getFirstLegAmount());
|
||||
|
|
@ -118,9 +119,10 @@ public class AccountBalanceService {
|
|||
|
||||
private void updateAccountCategoryIClrn(Long accountId, Long companyId, BigDecimal firstLegAmount) {
|
||||
AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Clrn);
|
||||
BigDecimal previousFreeBalanceAmount = accountBalance.getFreeBalanceAmount();
|
||||
BigDecimal previousChangeBalanceAmount = accountBalance.getChangeBalanceAmount();
|
||||
BigDecimal previousBalanceAmount = accountBalance.getBalanceAmount();
|
||||
log.trace("updating AccountBalance {} I CLRN", accountBalance.getId());
|
||||
BigDecimal previousFreeBalanceAmount = safeBD(accountBalance.getFreeBalanceAmount());
|
||||
BigDecimal previousChangeBalanceAmount = safeBD(accountBalance.getChangeBalanceAmount());
|
||||
BigDecimal previousBalanceAmount = safeBD(accountBalance.getBalanceAmount());
|
||||
accountBalance.setFreeBalanceAmount(previousFreeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setChangeBalanceAmount(previousChangeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setBalanceAmount(previousBalanceAmount.subtract(firstLegAmount));
|
||||
|
|
@ -131,7 +133,8 @@ public class AccountBalanceService {
|
|||
|
||||
private void updateAccountCategoryITran(BigDecimal firstLegAmount) {
|
||||
AccountBalance accountBalance = loadAccountBalance(AccountType.Tran);
|
||||
BigDecimal previousDebitAmount = accountBalance.getDebitAmount();
|
||||
log.trace("updating AccountBalance {} I TRAN", accountBalance.getId());
|
||||
BigDecimal previousDebitAmount = safeBD(accountBalance.getDebitAmount());
|
||||
accountBalance.setDebitAmount(previousDebitAmount.add(firstLegAmount.abs()));
|
||||
accountBalance.setUpdated(Instant.now());
|
||||
log.trace("updateAccountCategoryITran: {}", accountBalance.getId());
|
||||
|
|
@ -140,9 +143,10 @@ public class AccountBalanceService {
|
|||
|
||||
private void updateAccountCategoryVInfo(Long accountId, Long companyId, BigDecimal firstLegAmount) {
|
||||
AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Info);
|
||||
BigDecimal previousFreeBalanceAmount = accountBalance.getFreeBalanceAmount();
|
||||
BigDecimal changeBalanceAmount = accountBalance.getChangeBalanceAmount();
|
||||
BigDecimal balanceAmount = accountBalance.getBalanceAmount();
|
||||
log.trace("updating AccountBalance {} V INFO", accountBalance.getId());
|
||||
BigDecimal previousFreeBalanceAmount = safeBD(accountBalance.getFreeBalanceAmount());
|
||||
BigDecimal changeBalanceAmount = safeBD(accountBalance.getChangeBalanceAmount());
|
||||
BigDecimal balanceAmount = safeBD(accountBalance.getBalanceAmount());
|
||||
accountBalance.setFreeBalanceAmount(previousFreeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setChangeBalanceAmount(changeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setBalanceAmount(balanceAmount.subtract(firstLegAmount));
|
||||
|
|
@ -153,9 +157,10 @@ public class AccountBalanceService {
|
|||
|
||||
private void updateAccountCategoryVAnlt(BigDecimal firstLegAmount) {
|
||||
AccountBalance accountBalance = loadAccountBalance(AccountType.Anlt);
|
||||
BigDecimal previousFreeBalanceAmount = accountBalance.getFreeBalanceAmount();
|
||||
BigDecimal previousChangeBalanceAmount = accountBalance.getChangeBalanceAmount();
|
||||
BigDecimal previousBalanceAmount = accountBalance.getBalanceAmount();
|
||||
log.trace("updating AccountBalance {} V ANLT", accountBalance.getId());
|
||||
BigDecimal previousFreeBalanceAmount = safeBD(accountBalance.getFreeBalanceAmount());
|
||||
BigDecimal previousChangeBalanceAmount = safeBD(accountBalance.getChangeBalanceAmount());
|
||||
BigDecimal previousBalanceAmount = safeBD(accountBalance.getBalanceAmount());
|
||||
accountBalance.setFreeBalanceAmount(previousFreeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setChangeBalanceAmount(previousChangeBalanceAmount.subtract(firstLegAmount));
|
||||
accountBalance.setBalanceAmount(previousBalanceAmount.subtract(firstLegAmount));
|
||||
|
|
@ -166,7 +171,8 @@ public class AccountBalanceService {
|
|||
|
||||
private void updateAccountCategoryBClrn(Long accountId, Long companyId, BigDecimal firstLegAmount) {
|
||||
AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Clrn);
|
||||
BigDecimal debitAmount = accountBalance.getDebitAmount();
|
||||
log.trace("updating AccountBalance {} B CLRN", accountBalance.getId());
|
||||
BigDecimal debitAmount = safeBD(accountBalance.getDebitAmount());
|
||||
accountBalance.setDebitAmount(plus(debitAmount, firstLegAmount.abs()));
|
||||
accountBalance.setUpdated(Instant.now());
|
||||
log.trace("updateAccountCategoryBClrn: {}", accountBalance.getId());
|
||||
|
|
@ -186,4 +192,8 @@ public class AccountBalanceService {
|
|||
"accountType", type.getKey())
|
||||
);
|
||||
}
|
||||
|
||||
private BigDecimal safeBD(BigDecimal bd) {
|
||||
return bd == null ? BigDecimal.ZERO : bd;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue