SDF01 executor

This commit is contained in:
ialbert 2023-05-26 18:51:17 +03:00
parent 3a36df08eb
commit 2c268d84fa

View file

@ -150,14 +150,15 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
registryImdg.insert(registry); registryImdg.insert(registry);
return registry; return registry;
}; };
Optional<Registry> reg = findReg(stmt); Optional<Registry> reg = findReg(stmt);
Registry regFinal; Registry rgs;
if (reg.isPresent()) { if (reg.isPresent()) {
update.accept(reg.get()); rgs = reg.get();
regFinal = reg.get(); updateReg(stmt, rgs);
registryImdg.update(rgs);
} else { } else {
regFinal = create.get(); rgs = createRegistryByStatement(stmt, company, account);
registryImdg.insert(rgs);
} }
//todo //todo
//1. stmt.setOperationStatus в зависимости от diffBalance = 0 //1. stmt.setOperationStatus в зависимости от diffBalance = 0
@ -292,7 +293,7 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
} }
} }
rgs.setCheckBalance(BigDecimalUtil.safeBD(statement.getAmount())); rgs.setCheckBalance(BigDecimalUtil.safeBD(statement.getAmount()));
rgs.setCheckBalance(rgs.getCheckBalance().negate()); rgs.setDiffBalance(rgs.getCheckBalance().negate());
rgs.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme ! смотри описание и ссылка на начало html'ки rgs.setBalanceDimension(BalanceDimension.MONY.getKey()); //fixme ! смотри описание и ссылка на начало html'ки
//fixme !rgs.setSettlementCode(); //fixme !rgs.setSettlementCode();
rgs.setTradingDate(statement.getSettlementDate()); //fixme ! today ? rgs.setTradingDate(statement.getSettlementDate()); //fixme ! today ?
@ -311,6 +312,10 @@ public class Sdf01Executor extends AbstractExecutor<SDf01> {
case in -> r.setBalance(r.getBalance().add(s.getAmount())); case in -> r.setBalance(r.getBalance().add(s.getAmount()));
case out -> r.setBalance(r.getBalance().subtract(s.getAmount())); case out -> r.setBalance(r.getBalance().subtract(s.getAmount()));
} }
r.setCheckBalance(s.getAmount());
BigDecimal balance = BigDecimalUtil.safeBD(r.getBalance());
BigDecimal checkBalance = BigDecimalUtil.safeBD(r.getCheckBalance());
r.setDiffBalance(balance.subtract(checkBalance));
r.setUpdated(Instant.now()); r.setUpdated(Instant.now());
} }