From 4377627332c9b366be31a73ea0381b9cb53759e0 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 13 Sep 2018 20:23:17 +0200 Subject: [PATCH] Some extra logging + a fix for #1683 --- app/Helpers/Filter/TransferFilter.php | 4 +++- app/Http/Controllers/Rule/SelectController.php | 2 +- app/TransactionRules/TransactionMatcher.php | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/Helpers/Filter/TransferFilter.php b/app/Helpers/Filter/TransferFilter.php index 26037700a8..159096792b 100644 --- a/app/Helpers/Filter/TransferFilter.php +++ b/app/Helpers/Filter/TransferFilter.php @@ -25,7 +25,7 @@ namespace FireflyIII\Helpers\Filter; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionType; use Illuminate\Support\Collection; - +use Log; /** * Class TransferFilter. * @@ -49,6 +49,7 @@ class TransferFilter implements FilterInterface /** @var Transaction $transaction */ foreach ($set as $transaction) { if (TransactionType::TRANSFER !== $transaction->transaction_type_type) { + Log::debug(sprintf('Transaction #%d is not a transfer, add it.', $transaction->id)); $new->push($transaction); continue; } @@ -60,6 +61,7 @@ class TransferFilter implements FilterInterface sort($accountIds); sort($transactionIds); $key = $journalId . '-' . implode(',', $transactionIds) . '-' . implode(',', $accountIds) . '-' . $amount; + Log::debug(sprintf('Current transaction key is "%s"', $key)); if (!isset($count[$key])) { // not yet counted? add to new set and count it: $new->push($transaction); diff --git a/app/Http/Controllers/Rule/SelectController.php b/app/Http/Controllers/Rule/SelectController.php index 04e30eb455..a9471ea3cf 100644 --- a/app/Http/Controllers/Rule/SelectController.php +++ b/app/Http/Controllers/Rule/SelectController.php @@ -152,7 +152,7 @@ class SelectController extends Controller $limit = (int)config('firefly.test-triggers.limit'); $range = (int)config('firefly.test-triggers.range'); $matchingTransactions = new Collection; - $strict = $request->get('strict') === '1'; + $strict = '1' === $request->get('strict'); /** @var TransactionMatcher $matcher */ $matcher = app(TransactionMatcher::class); $matcher->setLimit($limit); diff --git a/app/TransactionRules/TransactionMatcher.php b/app/TransactionRules/TransactionMatcher.php index cd901335ae..a115f2095e 100644 --- a/app/TransactionRules/TransactionMatcher.php +++ b/app/TransactionRules/TransactionMatcher.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules; use FireflyIII\Helpers\Collector\TransactionCollectorInterface; +use FireflyIII\Helpers\Filter\InternalTransferFilter; use FireflyIII\Models\Rule; use FireflyIII\Models\RuleTrigger; use FireflyIII\Models\Transaction; @@ -267,6 +268,7 @@ class TransactionMatcher /** @var TransactionCollectorInterface $collector */ $collector = app(TransactionCollectorInterface::class); $collector->setUser(auth()->user()); + $collector->withOpposingAccount(); $collector->setAllAssetAccounts()->setLimit($pageSize)->setPage($page)->setTypes($this->transactionTypes); if (null !== $this->maxAmount) { Log::debug(sprintf('Amount must be less than %s', $this->maxAmount)); @@ -280,7 +282,7 @@ class TransactionMatcher Log::debug(sprintf('Amount must be exactly %s', $this->exactAmount)); $collector->amountIs($this->exactAmount); } - + $collector->removeFilter(InternalTransferFilter::class); $set = $collector->getPaginatedTransactions(); Log::debug(sprintf('Found %d journals to check. ', $set->count()));