From b09504d0f79e9f5b5ec9b02ba171cbb4bf7fc4a0 Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 9 Aug 2019 18:35:34 +0200 Subject: [PATCH] Fix broken duplication test routine. --- app/Factory/TransactionJournalFactory.php | 9 +++++---- app/Import/Storage/ImportArrayStorage.php | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/app/Factory/TransactionJournalFactory.php b/app/Factory/TransactionJournalFactory.php index dcbb85111d..76c382c9cc 100644 --- a/app/Factory/TransactionJournalFactory.php +++ b/app/Factory/TransactionJournalFactory.php @@ -384,13 +384,14 @@ class TransactionJournalFactory */ private function hashArray(NullArrayObject $row): string { - $row['import_hash_v2'] = null; - $row['original_source'] = null; - $json = json_encode($row); + $dataRow = $row->getArrayCopy(); + + unset($dataRow['import_hash_v2'], $dataRow['original_source']); + $json = json_encode($dataRow); if (false === $json) { // @codeCoverageIgnoreStart $json = json_encode((string)microtime()); - Log::error(sprintf('Could not hash the original row! %s', json_last_error_msg()), $row->getArrayCopy()); + Log::error(sprintf('Could not hash the original row! %s', json_last_error_msg()), $dataRow); // @codeCoverageIgnoreEnd } $hash = hash('sha256', $json); diff --git a/app/Import/Storage/ImportArrayStorage.php b/app/Import/Storage/ImportArrayStorage.php index 6eb084657b..4963d35039 100644 --- a/app/Import/Storage/ImportArrayStorage.php +++ b/app/Import/Storage/ImportArrayStorage.php @@ -234,6 +234,16 @@ class ImportArrayStorage private function storeGroup(int $index, array $group): ?TransactionGroup { + + + Log::debug(sprintf('Going to store entry #%d', $index + 1)); + + // do some basic error catching. + foreach ($group['transactions'] as $groupIndex => $transaction) { + $group['transactions'][$groupIndex]['date'] = Carbon::parse($transaction['date'], config('app.timezone')); + $group['transactions'][$groupIndex]['description'] = '' === $transaction['description'] ? '(empty description)' : $transaction['description']; + } + // do duplicate detection! if ($this->duplicateDetected($index, $group)) { Log::warning(sprintf('Row #%d seems to be a imported already and will be ignored.', $index)); @@ -241,14 +251,6 @@ class ImportArrayStorage return null; } - Log::debug(sprintf('Going to store entry #%d', $index + 1)); - - // do some basic error catching. - foreach ($group['transactions'] as $index => $transaction) { - $group['transactions'][$index]['date'] = Carbon::parse($transaction['date'], config('app.timezone')); - $group['transactions'][$index]['description'] = '' === $transaction['description'] ? '(empty description)' : $transaction['description']; - } - // store the group try { $newGroup = $this->groupRepos->store($group);