errors = new Collection; $this->asset = new ImportAccount; $this->opposing = new ImportAccount; $this->bill = new ImportBill; $this->category = new ImportCategory; $this->budget = new ImportBudget; } /** * @param array $modifier */ public function addToModifier(array $modifier) { $this->modifiers[] = $modifier; } /** * @return TransactionJournal * @throws FireflyException */ public function createTransactionJournal(): TransactionJournal { exit('does not work yet'); } /** * @param User $user */ public function setUser(User $user) { $this->user = $user; // set user for related objects: $this->asset->setUser($user); $this->opposing->setUser($user); } /** * @param array $array * * @throws FireflyException */ public function setValue(array $array) { switch ($array['role']) { default: throw new FireflyException(sprintf('ImportJournal cannot handle "%s" with value "%s".', $array['role'], $array['value'])); case 'account-id': $this->asset->setAccountId($array); break; case 'amount': $this->amount = $array['value']; break; case 'account-iban': $this->asset->setAccountIban($array); break; case 'account-name': $this->asset->setAccountName($array); break; case 'account-number': $this->asset->setAccountNumber($array); break; case 'bill-id': $this->bill->setId($array); break; case 'bill-name': $this->bill->setName($array); break; case 'budget-id': $this->budget->setId($array); break; case 'budget-name': $this->budget->setName($array); break; case 'category-id': $this->category->setId($array); break; case 'category-name': $this->category->setName($array); break; case 'currency-code': $this->currency->setCode($array); break; case 'currency-id': $this->currency->setId($array); break; case 'currency-name': $this->currency->setName($array); break; case 'currency-symbol': $this->currency->setSymbol($array); break; case 'date-transaction': $this->date = $array['value']; break; case 'description': $this->description = $array['value']; break; case 'external-id': $this->externalId = $array['value']; break; case '_ignore': break; case 'ing-debet-credit': case 'rabo-debet-credit': $this->addToModifier($array); break; case 'opposing-iban': $this->opposing->setAccountIban($array); break; case 'opposing-name': $this->opposing->setAccountName($array); break; case 'opposing-number': $this->opposing->setAccountNumber($array); break; case 'opposing-id': $this->opposing->setAccountId($array); break; case 'tags-comma': case 'tags-space': $this->tags[] = $array; break; } } }