diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index ded94b2943..0aafa57c49 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -153,10 +153,10 @@ class HomeController extends Controller { // these routes are not relevant for the help pages: $ignore = [ - 'logout', 'register', 'bills.rescan', 'attachments.download', 'attachments.preview', - 'budgets.income', 'csv.download-config', 'currency.default', 'export.status', 'export.download', - 'json.', 'help.', 'piggy-banks.addMoney', 'piggy-banks.removeMoney', 'rules.rule.up', 'rules.rule.down', - 'rules.rule-group.up', 'rules.rule-group.down', 'debugbar', +// 'logout', 'register', 'bills.rescan', 'attachments.download', 'attachments.preview', +// 'budgets.income', 'csv.download-config', 'currency.default', 'export.status', 'export.download', +// 'json.', 'help.', 'piggy-banks.addMoney', 'piggy-banks.removeMoney', 'rules.rule.up', 'rules.rule.down', +// 'rules.rule-group.up', 'rules.rule-group.down', 'debugbar', ]; $routes = Route::getRoutes(); /** @var \Illuminate\Routing\Route $route */ @@ -166,9 +166,7 @@ class HomeController extends Controller $methods = $route->getMethods(); if (!is_null($name) && in_array('GET', $methods) && !$this->startsWithAny($ignore, $name)) { - foreach (array_keys(config('firefly.languages')) as $lang) { - echo 'touch ' . $lang . '/' . $name . '.md
'; - } + echo $name . '
'; } } diff --git a/app/Http/Controllers/Transaction/SplitController.php b/app/Http/Controllers/Transaction/SplitController.php index 62870495d3..53edce6490 100644 --- a/app/Http/Controllers/Transaction/SplitController.php +++ b/app/Http/Controllers/Transaction/SplitController.php @@ -15,6 +15,7 @@ use FireflyIII\Crud\Split\JournalInterface; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\SplitJournalFormRequest; +use FireflyIII\Models\TransactionJournal; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; @@ -41,6 +42,13 @@ class SplitController extends Controller View::share('title', trans('firefly.split-transactions')); } + public function edit(TransactionJournal $journal) + { + $count = $journal->transactions()->count(); + if ($count === 2) { + return redirect(route('transactions.edit', [$journal->id])); + } + } /** * @param Request $request @@ -88,7 +96,8 @@ class SplitController extends Controller * @param SplitJournalFormRequest $request * @param JournalInterface $repository * - * @return mixed + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + * @throws FireflyException */ public function postJournalFromStore(SplitJournalFormRequest $request, JournalInterface $repository) { diff --git a/app/Http/Controllers/TransactionController.php b/app/Http/Controllers/TransactionController.php index 71871aabaa..a03d971893 100644 --- a/app/Http/Controllers/TransactionController.php +++ b/app/Http/Controllers/TransactionController.php @@ -12,6 +12,7 @@ namespace FireflyIII\Http\Controllers; use Amount; use Auth; use Carbon\Carbon; +use DB; use ExpandedForm; use FireflyIII\Events\TransactionJournalStored; use FireflyIII\Events\TransactionJournalUpdated; @@ -21,7 +22,6 @@ 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; @@ -147,6 +147,10 @@ class TransactionController extends Controller */ public function edit(TransactionJournal $journal) { + $count = $journal->transactions()->count(); + if ($count > 2) { + return redirect(route('split.journal.edit', [$journal->id])); + } /** @var ARI $accountRepository */ $accountRepository = app(ARI::class); /** @var BudgetRepositoryInterface $budgetRepository */ @@ -400,12 +404,11 @@ class TransactionController extends Controller } /** - * @param JournalRepositoryInterface $repository - * @param TransactionJournal $journal + * @param TransactionJournal $journal * * @return \Illuminate\View\View */ - public function show(JournalRepositoryInterface $repository, TransactionJournal $journal) + public function show(TransactionJournal $journal) { /** @var Collection $set */ @@ -415,17 +418,13 @@ class TransactionController extends Controller $event->piggyBank = $event->piggyBank()->withTrashed()->first(); } ); - - $journal->transactions->each( - function (Transaction $t) use ($journal, $repository) { - $t->before = $repository->getAmountBefore($journal, $t); - $t->after = bcadd($t->before, $t->amount); - } + $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) . '"'; + $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')); + return view('transactions.show', compact('journal', 'events', 'subTitle', 'what', 'transactions')); } /** diff --git a/resources/views/transactions/show.twig b/resources/views/transactions/show.twig index c139094dde..610d21acff 100644 --- a/resources/views/transactions/show.twig +++ b/resources/views/transactions/show.twig @@ -132,7 +132,7 @@ {% endif %} - + {% endfor %} @@ -154,54 +154,103 @@ {% endif %}
- - {% for t in journal.transactions %} -
-
-

{{ t.account.name }}

+ {% if transactions.count == 2 %} + {% for t in transactions %} +
+
+

{{ t.account.name }}

+
+ + + + + + + + + + + + + + + + + + {% if t.description %} + + + + + {% endif %} + {% if t.categories[0] %} + + + + + {% endif %} + {% if t.budgets[0] %} + + + + + {% endif %} +
{{ 'account'|_ }}{{ t.account.name }}
{{ 'account_type'|_ }}{{ t.account.accounttype.type|_ }}
{{ 'amount'|_ }}{{ t|formatTransaction }}
{{ 'newBalance'|_ }}null
{{ trans('form.description') }}{{ t.description }}
{{ 'category'|_ }} + {{ t.categories[0].name }} +
{{ 'budget'|_ }} + {{ t.budgets[0].name }} +
- - - - - - - - - - - - - - - - - - {% if t.description %} - - - - - {% endif %} - {% if t.categories[0] %} - - - - - {% endif %} - {% if t.budgets[0] %} - - - - - {% endif %} -
{{ 'account'|_ }}{{ t.account.name }}
{{ 'account_type'|_ }}{{ t.account.accounttype.type|_ }}
{{ 'amount'|_ }}{{ t|formatTransaction }}
{{ 'newBalance'|_ }}{{ t.before|formatAmount }} → {{ t.after|formatAmount }}
{{ trans('form.description') }}{{ t.description }}
{{ 'category'|_ }} - {{ t.categories[0].name }} -
{{ 'budget'|_ }} - {{ t.budgets[0].name }} -
-
- {% endfor %} + {% endfor %} + {% endif %}
+ + + {% if transactions.count > 2 %} +
+
+ +
+
+

Transactions

+
+ + + + + + + + + + + + + + {% for t in transactions %} + + + + + + + + + {% endfor %} + +
{{ trans('list.account') }}{{ trans('list.account_type') }}{{ trans('list.amount') }}{{ trans('list.new_balance') }}{{ trans('list.description') }}{{ trans('list.category') }}{{ trans('list.budget') }}
{{ t.account.name }}{{ t.account.accounttype.type|_ }}{{ t.sum|formatAmount }}null{{ t.description }} + {% if t.categories[0] %} + {{ t.categories[0].name }} + {% endif %} + + {% if t.budgets[0] %} + {{ t.budgets[0].name }} + {% endif %} +
+
+
+
+ {% endif %} + {% endblock %}