James Cole 2024-01-12 18:57:38 +01:00
parent 8e2546da9d
commit 1e733f4c8b
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
2 changed files with 46 additions and 42 deletions

View File

@ -682,6 +682,7 @@ trait MetaCollection
$list = $tags->pluck('tag')->toArray(); $list = $tags->pluck('tag')->toArray();
$list = array_map('strtolower', $list); $list = array_map('strtolower', $list);
$filter = static function (array $object) use ($list): bool|array { $filter = static function (array $object) use ($list): bool|array {
$includedJournals = [];
$return = $object; $return = $object;
unset($return['transactions']); unset($return['transactions']);
$return['transactions'] = []; $return['transactions'] = [];
@ -701,10 +702,15 @@ trait MetaCollection
if (in_array(strtolower($tag['name']), $list, true)) { if (in_array(strtolower($tag['name']), $list, true)) {
app('log')->debug(sprintf('Transaction has tag "%s" so count++.', $tag['name'])); app('log')->debug(sprintf('Transaction has tag "%s" so count++.', $tag['name']));
++$foundTagCount; ++$foundTagCount;
$journalId = $transaction['transaction_journal_id'];
// #8377 prevent adding a transaction twice when multiple tag searches find this transaction
if (!in_array($journalId, $includedJournals, true)) {
$includedJournals[] = $journalId;
$return['transactions'][] = $transaction; $return['transactions'][] = $transaction;
} }
} }
} }
}
Log::debug(sprintf('Found %d tags, need at least %d.', $foundTagCount, $expectedTagCount)); Log::debug(sprintf('Found %d tags, need at least %d.', $foundTagCount, $expectedTagCount));
// found at least the expected tags. // found at least the expected tags.

View File

@ -931,7 +931,6 @@ class GroupCollector implements GroupCollectorInterface
private function postFilterCollection(Collection $collection): Collection private function postFilterCollection(Collection $collection): Collection
{ {
$currentCollection = $collection; $currentCollection = $collection;
app('log')->debug(sprintf('GroupCollector: postFilterCollection has %d filter(s) and %d transaction(s).', count($this->postFilters), count($currentCollection))); app('log')->debug(sprintf('GroupCollector: postFilterCollection has %d filter(s) and %d transaction(s).', count($this->postFilters), count($currentCollection)));
/** /**
@ -1055,7 +1054,6 @@ class GroupCollector implements GroupCollectorInterface
->orderBy('transaction_journals.order', 'ASC') ->orderBy('transaction_journals.order', 'ASC')
->orderBy('transaction_journals.id', 'DESC') ->orderBy('transaction_journals.id', 'DESC')
->orderBy('transaction_journals.description', 'DESC') ->orderBy('transaction_journals.description', 'DESC')
->orderBy('source.amount', 'DESC') ->orderBy('source.amount', 'DESC');
;
} }
} }