Fix some tests for account API

This commit is contained in:
James Cole
2021-03-13 12:01:01 +01:00
parent 668b169a5e
commit 7118abe28d
29 changed files with 992 additions and 315 deletions

View File

@@ -586,16 +586,25 @@ class AccountRepository implements AccountRepositoryInterface
/**
* @inheritDoc
*/
public function resetAccountOrder(array $types): void
public function resetAccountOrder(): void
{
$list = $this->getAccountsByType($types);
/**
* @var int $index
* @var Account $account
*/
foreach ($list as $index => $account) {
$account->order = $index + 1;
$account->save();
$sets = [
[AccountType::DEFAULT, AccountType::ASSET],
[AccountType::EXPENSE, AccountType::BENEFICIARY],
[AccountType::REVENUE],
[AccountType::LOAN, AccountType::DEBT, AccountType::CREDITCARD, AccountType::MORTGAGE],
[AccountType::CASH, AccountType::INITIAL_BALANCE, AccountType::IMPORT, AccountType::RECONCILIATION],
];
foreach ($sets as $set) {
$list = $this->getAccountsByType($set);
$index = 1;
foreach ($list as $account) {
if ($index !== $account->order) {
$account->order = $index;
$account->save();
}
$index++;
}
}
}
@@ -753,4 +762,12 @@ class AccountRepository implements AccountRepositoryInterface
return $service->update($account, $data);
}
/**
* @inheritDoc
*/
public function maxOrder(array $types): int
{
return (int)$this->getAccountsByType($types)->max('order');
}
}

View File

@@ -47,6 +47,13 @@ interface AccountRepositoryInterface
*/
public function count(array $types): int;
/**
* @param array $types
*
* @return int
*/
public function maxOrder(array $types): int;
/**
* Moved here from account CRUD.
*
@@ -256,10 +263,8 @@ interface AccountRepositoryInterface
/**
* Reset order types of the mentioned accounts.
*
* @param array $types
*/
public function resetAccountOrder(array $types): void;
public function resetAccountOrder(): void;
/**
* @param string $query

View File

@@ -461,7 +461,8 @@ trait ModifiesPiggyBanks
$user = $this->user;
$user->piggyBanks()->where('piggy_banks.order', '<=', $newOrder)->where('piggy_banks.order', '>', $oldOrder)
->where('piggy_banks.id', '!=', $piggyBank->id)
->update(['piggy_banks.order' => DB::raw('piggy_banks.order-1')]);
->decrement('piggybanks.order',1);
$piggyBank->order = $newOrder;
$piggyBank->save();
}
@@ -474,7 +475,8 @@ trait ModifiesPiggyBanks
$user = $this->user;
$user->piggyBanks()->where('piggy_banks.order', '>=', $newOrder)->where('piggy_banks.order', '<', $oldOrder)
->where('piggy_banks.id', '!=', $piggyBank->id)
->update(['piggy_banks.order' => DB::raw('piggy_banks.order+1')]);
->increment('piggybanks.order',1);
$piggyBank->order = $newOrder;
$piggyBank->save();
}

View File

@@ -22,7 +22,6 @@ declare(strict_types=1);
namespace FireflyIII\Repositories\RuleGroup;
use DB;
use Exception;
use FireflyIII\Models\Rule;
use FireflyIII\Models\RuleGroup;
@@ -458,14 +457,14 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface
if ($newOrder > $oldOrder) {
$this->user->ruleGroups()->where('order', '<=', $newOrder)->where('order', '>', $oldOrder)
->where('rule_groups.id', '!=', $ruleGroup->id)
->update(['order' => DB::raw('rule_groups.order-1')]);
->decrement('rule_groups.order', 1);
$ruleGroup->order = $newOrder;
$ruleGroup->save();
}
if ($newOrder < $oldOrder) {
$this->user->ruleGroups()->where('order', '>=', $newOrder)->where('order', '<', $oldOrder)
->where('rule_groups.id', '!=', $ruleGroup->id)
->update(['order' => DB::raw('rule_groups.order+1')]);
->increment('rule_groups.order', 1);
$ruleGroup->order = $newOrder;
$ruleGroup->save();
}