Some extra logging + a fix for #1683

This commit is contained in:
James Cole 2018-09-13 20:23:17 +02:00
parent 71d3f452ed
commit 4377627332
3 changed files with 7 additions and 3 deletions

View File

@ -25,7 +25,7 @@ namespace FireflyIII\Helpers\Filter;
use FireflyIII\Models\Transaction; use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionType; use FireflyIII\Models\TransactionType;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Log;
/** /**
* Class TransferFilter. * Class TransferFilter.
* *
@ -49,6 +49,7 @@ class TransferFilter implements FilterInterface
/** @var Transaction $transaction */ /** @var Transaction $transaction */
foreach ($set as $transaction) { foreach ($set as $transaction) {
if (TransactionType::TRANSFER !== $transaction->transaction_type_type) { if (TransactionType::TRANSFER !== $transaction->transaction_type_type) {
Log::debug(sprintf('Transaction #%d is not a transfer, add it.', $transaction->id));
$new->push($transaction); $new->push($transaction);
continue; continue;
} }
@ -60,6 +61,7 @@ class TransferFilter implements FilterInterface
sort($accountIds); sort($accountIds);
sort($transactionIds); sort($transactionIds);
$key = $journalId . '-' . implode(',', $transactionIds) . '-' . implode(',', $accountIds) . '-' . $amount; $key = $journalId . '-' . implode(',', $transactionIds) . '-' . implode(',', $accountIds) . '-' . $amount;
Log::debug(sprintf('Current transaction key is "%s"', $key));
if (!isset($count[$key])) { if (!isset($count[$key])) {
// not yet counted? add to new set and count it: // not yet counted? add to new set and count it:
$new->push($transaction); $new->push($transaction);

View File

@ -152,7 +152,7 @@ class SelectController extends Controller
$limit = (int)config('firefly.test-triggers.limit'); $limit = (int)config('firefly.test-triggers.limit');
$range = (int)config('firefly.test-triggers.range'); $range = (int)config('firefly.test-triggers.range');
$matchingTransactions = new Collection; $matchingTransactions = new Collection;
$strict = $request->get('strict') === '1'; $strict = '1' === $request->get('strict');
/** @var TransactionMatcher $matcher */ /** @var TransactionMatcher $matcher */
$matcher = app(TransactionMatcher::class); $matcher = app(TransactionMatcher::class);
$matcher->setLimit($limit); $matcher->setLimit($limit);

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\TransactionRules; namespace FireflyIII\TransactionRules;
use FireflyIII\Helpers\Collector\TransactionCollectorInterface; use FireflyIII\Helpers\Collector\TransactionCollectorInterface;
use FireflyIII\Helpers\Filter\InternalTransferFilter;
use FireflyIII\Models\Rule; use FireflyIII\Models\Rule;
use FireflyIII\Models\RuleTrigger; use FireflyIII\Models\RuleTrigger;
use FireflyIII\Models\Transaction; use FireflyIII\Models\Transaction;
@ -267,6 +268,7 @@ class TransactionMatcher
/** @var TransactionCollectorInterface $collector */ /** @var TransactionCollectorInterface $collector */
$collector = app(TransactionCollectorInterface::class); $collector = app(TransactionCollectorInterface::class);
$collector->setUser(auth()->user()); $collector->setUser(auth()->user());
$collector->withOpposingAccount();
$collector->setAllAssetAccounts()->setLimit($pageSize)->setPage($page)->setTypes($this->transactionTypes); $collector->setAllAssetAccounts()->setLimit($pageSize)->setPage($page)->setTypes($this->transactionTypes);
if (null !== $this->maxAmount) { if (null !== $this->maxAmount) {
Log::debug(sprintf('Amount must be less than %s', $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)); Log::debug(sprintf('Amount must be exactly %s', $this->exactAmount));
$collector->amountIs($this->exactAmount); $collector->amountIs($this->exactAmount);
} }
$collector->removeFilter(InternalTransferFilter::class);
$set = $collector->getPaginatedTransactions(); $set = $collector->getPaginatedTransactions();
Log::debug(sprintf('Found %d journals to check. ', $set->count())); Log::debug(sprintf('Found %d journals to check. ', $set->count()));