BigDecimal getRollbackBalance(Operation src) throws OperationServiceException {
        Operation repositoryOperation = find(src.getId());
        BigDecimal rollbackAmount = repositoryOperation.getCost();
        Account account = repositoryOperation.getAccount();
        BigDecimal balance = account.getBalance();
        BigDecimal updatedBalance = null;
        OperationType type = repositoryOperation.getOperationType();
        if (type == OperationType.expense || type == OperationType.transferFrom) {
            updatedBalance = balance.add(rollbackAmount);
        }
        if (type == OperationType.income || type == OperationType.transferTo) {
            updatedBalance = balance.subtract(rollbackAmount);
        }
        if (updatedBalance == null) {
            throw new OperationServiceException(INVALID_OPERATION_TYPE);
        }
        return updatedBalance;
    }