diff --git a/app/Helpers/Csv/Converter/AssetAccountIban.php b/app/Helpers/Csv/Converter/AssetAccountIban.php index 2da18150a5..e10ceb344f 100644 --- a/app/Helpers/Csv/Converter/AssetAccountIban.php +++ b/app/Helpers/Csv/Converter/AssetAccountIban.php @@ -32,7 +32,7 @@ class AssetAccountIban extends BasicConverter implements ConverterInterface if (is_null($account)) { // create it if doesn't exist. - $account = Account::firstOrCreateEncrypted( + $account = Account::firstOrCreateEncrypted( // TODO use repository [ 'name' => $this->value, 'iban' => $this->value, diff --git a/app/Helpers/Csv/Converter/AssetAccountName.php b/app/Helpers/Csv/Converter/AssetAccountName.php index ead84e19a6..14eb37d1c3 100644 --- a/app/Helpers/Csv/Converter/AssetAccountName.php +++ b/app/Helpers/Csv/Converter/AssetAccountName.php @@ -36,7 +36,7 @@ class AssetAccountName extends BasicConverter implements ConverterInterface } // create it if doesnt exist. - $account = Account::firstOrCreateEncrypted( + $account = Account::firstOrCreateEncrypted( // TODO use repository [ 'name' => $this->value, 'iban' => '', diff --git a/app/Helpers/Csv/Converter/BudgetName.php b/app/Helpers/Csv/Converter/BudgetName.php index a5e87490b3..e2a017d483 100644 --- a/app/Helpers/Csv/Converter/BudgetName.php +++ b/app/Helpers/Csv/Converter/BudgetName.php @@ -22,7 +22,7 @@ class BudgetName extends BasicConverter implements ConverterInterface if (isset($this->mapped[$this->index][$this->value])) { $budget = Auth::user()->budgets()->find($this->mapped[$this->index][$this->value]); } else { - $budget = Budget::firstOrCreateEncrypted( + $budget = Budget::firstOrCreateEncrypted( // TODO use repository [ 'name' => $this->value, 'user_id' => Auth::user()->id, diff --git a/app/Helpers/Csv/Converter/CategoryName.php b/app/Helpers/Csv/Converter/CategoryName.php index aff385378c..0f1fcc9ccb 100644 --- a/app/Helpers/Csv/Converter/CategoryName.php +++ b/app/Helpers/Csv/Converter/CategoryName.php @@ -22,7 +22,7 @@ class CategoryName extends BasicConverter implements ConverterInterface if (isset($this->mapped[$this->index][$this->value])) { $category = Auth::user()->categories()->find($this->mapped[$this->index][$this->value]); } else { - $category = Category::firstOrCreateEncrypted( + $category = Category::firstOrCreateEncrypted( // TODO use repository [ 'name' => $this->value, 'user_id' => Auth::user()->id, diff --git a/app/Helpers/Csv/Converter/Description.php b/app/Helpers/Csv/Converter/Description.php index 8de2a48ece..98cfd1b4bf 100644 --- a/app/Helpers/Csv/Converter/Description.php +++ b/app/Helpers/Csv/Converter/Description.php @@ -16,6 +16,8 @@ class Description extends BasicConverter implements ConverterInterface */ public function convert() { - return trim($this->data['description'] . ' ' . $this->value); + $description = $this->data['description'] ?? ''; + + return trim($description . ' ' . $this->value); } } diff --git a/app/Helpers/Csv/Converter/TagsComma.php b/app/Helpers/Csv/Converter/TagsComma.php index 65c420e1d2..fe1550036a 100644 --- a/app/Helpers/Csv/Converter/TagsComma.php +++ b/app/Helpers/Csv/Converter/TagsComma.php @@ -23,7 +23,7 @@ class TagsComma extends BasicConverter implements ConverterInterface $strings = explode(',', $this->value); foreach ($strings as $string) { - $tag = Tag::firstOrCreateEncrypted( + $tag = Tag::firstOrCreateEncrypted( // TODO use repository [ 'tag' => $string, 'tagMode' => 'nothing', diff --git a/app/Helpers/Csv/Converter/TagsSpace.php b/app/Helpers/Csv/Converter/TagsSpace.php index 278277eed2..d371073679 100644 --- a/app/Helpers/Csv/Converter/TagsSpace.php +++ b/app/Helpers/Csv/Converter/TagsSpace.php @@ -23,7 +23,7 @@ class TagsSpace extends BasicConverter implements ConverterInterface $strings = explode(' ', $this->value); foreach ($strings as $string) { - $tag = Tag::firstOrCreateEncrypted( + $tag = Tag::firstOrCreateEncrypted( // TODO use repository [ 'tag' => $string, 'tagMode' => 'nothing', diff --git a/app/Helpers/Csv/Importer.php b/app/Helpers/Csv/Importer.php index 7126eddefb..0df9e8656a 100644 --- a/app/Helpers/Csv/Importer.php +++ b/app/Helpers/Csv/Importer.php @@ -169,7 +169,7 @@ class Importer // second transaction $accountId = $this->importData['opposing-account-object']->id; // create second transaction: - $amount = bcmul($this->importData['amount'], -1); + $amount = bcmul($this->importData['amount'], '-1'); $transaction = Transaction::create(['transaction_journal_id' => $journal->id, 'account_id' => $accountId, 'amount' => $amount]); $errors = $transaction->getErrors()->merge($errors); } @@ -195,7 +195,7 @@ class Importer Log::info('Created journal #' . $journalId . ' of type ' . $type . '!'); Log::info('Asset account #' . $asset->id . ' lost/gained: ' . $this->importData['amount']); - Log::info($opposing->accountType->type . ' #' . $opposing->id . ' lost/gained: ' . bcmul($this->importData['amount'], -1)); + Log::info($opposing->accountType->type . ' #' . $opposing->id . ' lost/gained: ' . bcmul($this->importData['amount'], '-1')); return $journal; } @@ -296,7 +296,8 @@ class Importer foreach ($set as $className) { /** @var PostProcessorInterface $postProcessor */ $postProcessor = app('FireflyIII\Helpers\Csv\PostProcessing\\' . $className); - $postProcessor->setData($this->importData); + $array = $this->importData ?? []; + $postProcessor->setData($array); Log::debug('Now post-process processor named ' . $className . ':'); $this->importData = $postProcessor->process(); } @@ -343,7 +344,9 @@ class Importer */ protected function validateData() { - if (is_null($this->importData['date']) && is_null($this->importData['date-rent'])) { + $date = $this->importData['date'] ?? null; + $rentDate = $this->importData['date-rent'] ?? null; + if (is_null($date) && is_null($rentDate)) { return 'No date value for this row.'; } if (is_null($this->importData['opposing-account-object'])) { diff --git a/app/Helpers/Csv/PostProcessing/Amount.php b/app/Helpers/Csv/PostProcessing/Amount.php index c542139542..336c69dfb9 100644 --- a/app/Helpers/Csv/PostProcessing/Amount.php +++ b/app/Helpers/Csv/PostProcessing/Amount.php @@ -20,7 +20,9 @@ class Amount implements PostProcessorInterface public function process() { bcscale(2); - $this->data['amount'] = bcmul($this->data['amount'], $this->data['amount-modifier']); + $amount = $this->data['amount'] ?? '0'; + $modifier = strval($this->data['amount-modifier']); + $this->data['amount'] = bcmul($amount, $modifier); return $this->data; } diff --git a/app/Helpers/Csv/PostProcessing/Description.php b/app/Helpers/Csv/PostProcessing/Description.php index 15a0a649d8..64c0e8ed8b 100644 --- a/app/Helpers/Csv/PostProcessing/Description.php +++ b/app/Helpers/Csv/PostProcessing/Description.php @@ -18,7 +18,8 @@ class Description implements PostProcessorInterface */ public function process() { - $this->data['description'] = trim($this->data['description']); + $description = $this->data['description'] ?? ''; + $this->data['description'] = trim($description); if (strlen($this->data['description']) == 0) { $this->data['description'] = trans('firefly.csv_empty_description'); } diff --git a/app/Helpers/Csv/PostProcessing/OpposingAccount.php b/app/Helpers/Csv/PostProcessing/OpposingAccount.php index cbce96f679..969289a636 100644 --- a/app/Helpers/Csv/PostProcessing/OpposingAccount.php +++ b/app/Helpers/Csv/PostProcessing/OpposingAccount.php @@ -125,7 +125,7 @@ class OpposingAccount implements PostProcessorInterface // create if not exists: $name = is_string($this->data['opposing-account-name']) && strlen($this->data['opposing-account-name']) > 0 ? $this->data['opposing-account-name'] : $this->data['opposing-account-iban']; - $account = Account::firstOrCreateEncrypted( + $account = Account::firstOrCreateEncrypted( // TODO use repository [ 'user_id' => Auth::user()->id, 'account_type_id' => $accountType->id, @@ -195,7 +195,7 @@ class OpposingAccount implements PostProcessorInterface } } // create if not exists: - $account = Account::firstOrCreateEncrypted( + $account = Account::firstOrCreateEncrypted( // TODO use repository [ 'user_id' => Auth::user()->id, 'account_type_id' => $accountType->id, diff --git a/app/Helpers/Csv/Wizard.php b/app/Helpers/Csv/Wizard.php index 2ee7efdacc..540f51a3c7 100644 --- a/app/Helpers/Csv/Wizard.php +++ b/app/Helpers/Csv/Wizard.php @@ -141,7 +141,7 @@ class Wizard implements WizardInterface /** @var MapperInterface $mapObject */ $mapObject = app($class); } catch (ReflectionException $e) { - throw new FireflyException('Column "' . $columnRole . '" cannot be mapped because class ' . $mapper . ' does not exist.'); + throw new FireflyException('Column "' . $columnRole . '" cannot be mapped because mapper class ' . $mapper . ' does not exist.'); } $set = $mapObject->getMap(); $options[$index] = $set; diff --git a/app/Http/Controllers/CsvController.php b/app/Http/Controllers/CsvController.php index 9084eb39a0..261496d7de 100644 --- a/app/Http/Controllers/CsvController.php +++ b/app/Http/Controllers/CsvController.php @@ -219,8 +219,9 @@ class CsvController extends Controller } // process given roles and mapping: + $inputMap = Input::get('map') ?? []; $roles = $this->wizard->processSelectedRoles(Input::get('role')); - $maps = $this->wizard->processSelectedMapping($roles, Input::get('map')); + $maps = $this->wizard->processSelectedMapping($roles, $inputMap); Session::put('csv-map', $maps); Session::put('csv-roles', $roles);