Fixed transactions and attachments.

This commit is contained in:
James Cole
2016-05-13 09:55:06 +02:00
parent 2d8449ed68
commit aa59227786
8 changed files with 130 additions and 13 deletions

View File

@@ -14,6 +14,7 @@ use ExpandedForm;
use FireflyIII\Crud\Split\JournalInterface;
use FireflyIII\Events\TransactionJournalUpdated;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Attachments\AttachmentHelperInterface;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\SplitJournalFormRequest;
use FireflyIII\Models\Transaction;
@@ -150,21 +151,31 @@ class SplitController extends Controller
}
/**
* @param TransactionJournal $journal
* @param SplitJournalFormRequest $request
* @param JournalInterface $repository
* @param TransactionJournal $journal
* @param SplitJournalFormRequest $request
* @param JournalInterface $repository
* @param AttachmentHelperInterface $att
*
* @return $this|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function update(TransactionJournal $journal, SplitJournalFormRequest $request, JournalInterface $repository)
public function update(TransactionJournal $journal, SplitJournalFormRequest $request, JournalInterface $repository, AttachmentHelperInterface $att)
{
$data = $request->getSplitData();
$journal = $repository->updateJournal($journal, $data);
// save attachments:
$att->saveAttachmentsForModel($journal);
event(new TransactionJournalUpdated($journal));
// update, get events by date and sort DESC
// flash messages
if (count($att->getMessages()->get('attachments')) > 0) {
Session::flash('info', $att->getMessages()->get('attachments'));
}
$type = strtolower($journal->transaction_type_type ?? TransactionJournal::transactionTypeStr($journal));
Session::flash('success', strval(trans('firefly.updated_' . $type, ['description' => e($data['journal_description'])])));
Preferences::mark();

View File

@@ -22,6 +22,7 @@ use FireflyIII\Http\Requests\MassDeleteJournalRequest;
use FireflyIII\Http\Requests\MassEditJournalRequest;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\PiggyBankEvent;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI;
@@ -408,7 +409,7 @@ class TransactionController extends Controller
*
* @return \Illuminate\View\View
*/
public function show(TransactionJournal $journal)
public function show(TransactionJournal $journal, JournalRepositoryInterface $repository)
{
/** @var Collection $set */
@@ -420,11 +421,21 @@ class TransactionController extends Controller
);
// TODO different for each transaction type!
/** @var Collection $transactions */
$transactions = $journal->transactions()->groupBy('transactions.account_id')->orderBy('amount', 'ASC')->get(
['transactions.*', DB::raw('SUM(`transactions`.`amount`) as `sum`')]
);
$what = strtolower($journal->transaction_type_type ?? $journal->transactionType->type);
$subTitle = trans('firefly.' . $what) . ' "' . e($journal->description) . '"';
// foreach do balance thing
$transactions->each(
function (Transaction $t) use ($repository) {
$t->before = $repository->balanceBeforeTransaction($t);
}
);
$what = strtolower($journal->transaction_type_type ?? $journal->transactionType->type);
$subTitle = trans('firefly.' . $what) . ' "' . e($journal->description) . '"';
return view('transactions.show', compact('journal', 'events', 'subTitle', 'what', 'transactions'));
}