get()); $assetAccounts = ExpandedForm::makeSelectList($accountRepository->getAccounts(['Default account', 'Asset account'])); $budgets = ExpandedForm::makeSelectListWithEmpty($budgetRepository->getActiveBudgets()); $piggyBanks = ExpandedForm::makeSelectListWithEmpty($piggyBankRepository->getPiggyBanks()); if (!is_array($journalData)) { throw new FireflyException('Could not find transaction data in your session. Please go back and try again.'); // translate me. } Log::debug('Journal data', $journalData); return view('split.journals.from-store', compact('currencies', 'piggyBanks', 'assetAccounts', 'budgets'))->with('data', $journalData); } /** * @param SplitJournalFormRequest $request * @param JournalInterface $repository * * @return mixed */ public function postJournalFromStore(SplitJournalFormRequest $request, JournalInterface $repository) { $data = $request->getSplitData(); // store an empty journal first. This will be the place holder. $journal = $repository->storeJournal($data); // Then, store each transaction individually. foreach ($data['transactions'] as $transaction) { $transactions = $repository->storeTransaction($journal, $transaction); } // TODO move to repository. $journal->completed = true; $journal->save(); // forget temp journal data Session::forget('temporary_split_data'); // this is where we originally came from. return redirect(session('transactions.create.url')); } }