diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 6db95ea8ef..fc62db7d6a 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -2,6 +2,7 @@ use Carbon\Carbon; use Config; +use FireflyIII\Models\Tag; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use Input; use Preferences; @@ -37,6 +38,20 @@ class HomeController extends Controller */ public function flush() { + // get all tags. + // update all counts: + $tags = Tag::get(); + + /** @var Tag $tag */ + foreach ($tags as $tag) { + foreach ($tag->transactionjournals()->get() as $journal) { + $count = $journal->tags()->count(); + $journal->tag_count = $count; + $journal->save(); + } + } + + Session::clear(); return Redirect::route('index'); @@ -49,8 +64,6 @@ class HomeController extends Controller */ public function index(AccountRepositoryInterface $repository) { - - $types = Config::get('firefly.accountTypesByIdentifier.asset'); $count = $repository->countAccounts($types); diff --git a/app/Models/TransactionJournal.php b/app/Models/TransactionJournal.php index b5d8298396..8282695824 100644 --- a/app/Models/TransactionJournal.php +++ b/app/Models/TransactionJournal.php @@ -158,14 +158,13 @@ class TransactionJournal extends Model $amount = $t->amount; } } - $count = $this->tags()->count(); - if ($count === 1) { + if ($this->tag_count === 1) { // get amount for single tag: $amount = $this->amountByTag($this->tags()->first(), $amount); } - if ($count > 1) { + if ($this->tag_count > 1) { // get amount for either tag. $amount = $this->amountByTags($amount);