ialbert 2023-02-02 15:44:35 +03:00
parent 8e78759713
commit 21d5fd0004

View file

@ -104,7 +104,6 @@ public class AccountBalanceService {
} else if (category.equals(ClearingCategory.B)) { } else if (category.equals(ClearingCategory.B)) {
updateAccountCategoryBClrn(req.getAccountId(), req.getCompanyId(), req.getFirstLegAmount()); updateAccountCategoryBClrn(req.getAccountId(), req.getCompanyId(), req.getFirstLegAmount());
} }
//todo send message success to Kafka
} }
private ClearingCategory getClearingCategoryByCompanyId(Long companyId) { private ClearingCategory getClearingCategoryByCompanyId(Long companyId) {
@ -117,18 +116,19 @@ public class AccountBalanceService {
private void updateAccountCategoryIClrn(Long accountId, Long companyId, BigDecimal firstLegAmount) { private void updateAccountCategoryIClrn(Long accountId, Long companyId, BigDecimal firstLegAmount) {
AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Clrn); AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Clrn);
BigDecimal previousFreeBalanceAmount = accountBalance.getFreeBalanceAmount(); BigDecimal previousFreeBalanceAmount = accountBalance.getFreeBalanceAmount();
BigDecimal resultFreeBalanceAmount = previousFreeBalanceAmount.subtract(firstLegAmount); BigDecimal previousChangeBalanceAmount = accountBalance.getChangeBalanceAmount();
accountBalance.setFreeBalanceAmount(resultFreeBalanceAmount); BigDecimal previousBalanceAmount = accountBalance.getBalanceAmount();
accountBalance.setChangeBalanceAmount(resultFreeBalanceAmount); accountBalance.setFreeBalanceAmount(previousFreeBalanceAmount.subtract(firstLegAmount));
accountBalance.setBalanceAmount(resultFreeBalanceAmount); accountBalance.setChangeBalanceAmount(previousChangeBalanceAmount.subtract(firstLegAmount));
accountBalance.setBalanceAmount(previousBalanceAmount.subtract(firstLegAmount));
accountBalance.setUpdated(Instant.now()); accountBalance.setUpdated(Instant.now());
accountBalanceImdg.update(accountBalance); accountBalanceImdg.update(accountBalance);
} }
private void updateAccountCategoryITran(BigDecimal firstLegAmount) { private void updateAccountCategoryITran(BigDecimal firstLegAmount) {
AccountBalance accountBalance = loadAccountBalance(AccountType.Tran); AccountBalance accountBalance = loadAccountBalance(AccountType.Tran);
BigDecimal freeBalanceAmount = accountBalance.getFreeBalanceAmount(); BigDecimal previousDebitAmount = accountBalance.getDebitAmount();
accountBalance.setFreeBalanceAmount(freeBalanceAmount.add(firstLegAmount.abs())); accountBalance.setDebitAmount(previousDebitAmount.add(firstLegAmount.abs()));
accountBalance.setUpdated(Instant.now()); accountBalance.setUpdated(Instant.now());
accountBalanceImdg.update(accountBalance); accountBalanceImdg.update(accountBalance);
} }
@ -136,10 +136,11 @@ public class AccountBalanceService {
private void updateAccountCategoryVInfo(Long accountId, Long companyId, BigDecimal firstLegAmount) { private void updateAccountCategoryVInfo(Long accountId, Long companyId, BigDecimal firstLegAmount) {
AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Info); AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Info);
BigDecimal previousFreeBalanceAmount = accountBalance.getFreeBalanceAmount(); BigDecimal previousFreeBalanceAmount = accountBalance.getFreeBalanceAmount();
BigDecimal resultFreeBalanceAmount = previousFreeBalanceAmount.subtract(firstLegAmount); BigDecimal changeBalanceAmount = accountBalance.getChangeBalanceAmount();
accountBalance.setFreeBalanceAmount(resultFreeBalanceAmount); BigDecimal balanceAmount = accountBalance.getBalanceAmount();
accountBalance.setChangeBalanceAmount(resultFreeBalanceAmount); accountBalance.setFreeBalanceAmount(previousFreeBalanceAmount.subtract(firstLegAmount));
accountBalance.setBalanceAmount(resultFreeBalanceAmount); accountBalance.setChangeBalanceAmount(changeBalanceAmount.subtract(firstLegAmount));
accountBalance.setBalanceAmount(balanceAmount.subtract(firstLegAmount));
accountBalance.setUpdated(Instant.now()); accountBalance.setUpdated(Instant.now());
accountBalanceImdg.update(accountBalance); accountBalanceImdg.update(accountBalance);
} }
@ -147,18 +148,19 @@ public class AccountBalanceService {
private void updateAccountCategoryVAnlt(BigDecimal firstLegAmount) { private void updateAccountCategoryVAnlt(BigDecimal firstLegAmount) {
AccountBalance accountBalance = loadAccountBalance(AccountType.Anlt); AccountBalance accountBalance = loadAccountBalance(AccountType.Anlt);
BigDecimal previousFreeBalanceAmount = accountBalance.getFreeBalanceAmount(); BigDecimal previousFreeBalanceAmount = accountBalance.getFreeBalanceAmount();
BigDecimal resultFreeBalanceAmount = previousFreeBalanceAmount.subtract(firstLegAmount); BigDecimal previousChangeBalanceAmount = accountBalance.getChangeBalanceAmount();
accountBalance.setFreeBalanceAmount(resultFreeBalanceAmount); BigDecimal previousBalanceAmount = accountBalance.getBalanceAmount();
accountBalance.setChangeBalanceAmount(resultFreeBalanceAmount); accountBalance.setFreeBalanceAmount(previousFreeBalanceAmount.subtract(firstLegAmount));
accountBalance.setBalanceAmount(resultFreeBalanceAmount); accountBalance.setChangeBalanceAmount(previousChangeBalanceAmount.subtract(firstLegAmount));
accountBalance.setBalanceAmount(previousBalanceAmount.subtract(firstLegAmount));
accountBalance.setUpdated(Instant.now()); accountBalance.setUpdated(Instant.now());
accountBalanceImdg.update(accountBalance); accountBalanceImdg.update(accountBalance);
} }
private void updateAccountCategoryBClrn(Long accountId, Long companyId, BigDecimal firstLegAmount) { private void updateAccountCategoryBClrn(Long accountId, Long companyId, BigDecimal firstLegAmount) {
AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Clrn); AccountBalance accountBalance = loadAccountBalance(accountId, companyId, AccountType.Clrn);
BigDecimal freeBalanceAmount = accountBalance.getFreeBalanceAmount(); BigDecimal debitAmount = accountBalance.getDebitAmount();
accountBalance.setDebitAmount(plus(freeBalanceAmount, firstLegAmount.abs())); accountBalance.setDebitAmount(plus(debitAmount, firstLegAmount.abs()));
accountBalance.setUpdated(Instant.now()); accountBalance.setUpdated(Instant.now());
accountBalanceImdg.update(accountBalance); accountBalanceImdg.update(accountBalance);
} }