mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-20 11:48:27 -06:00
Fixed split journals views.
This commit is contained in:
parent
65ecea3b1c
commit
4cbb0d9716
@ -41,8 +41,6 @@ class AccountController extends Controller
|
||||
*/
|
||||
public function create(string $what = 'asset')
|
||||
{
|
||||
|
||||
|
||||
$subTitleIcon = config('firefly.subIconsByIdentifier.' . $what);
|
||||
$subTitle = trans('firefly.make_new_' . $what . '_account');
|
||||
Session::flash('preFilled', []);
|
||||
@ -190,16 +188,18 @@ class AccountController extends Controller
|
||||
public function show(ARI $repository, Account $account)
|
||||
{
|
||||
// show journals from current period only:
|
||||
$range = Preferences::get('viewRange', '1M')->data;
|
||||
$start = session('start', Navigation::startOfPeriod(new Carbon, $range));
|
||||
$end = session('end', Navigation::endOfPeriod(new Carbon, $range));
|
||||
$page = intval(Input::get('page'));
|
||||
$pageSize = Preferences::get('transactionPageSize', 50)->data;
|
||||
$offset = ($page - 1) * $pageSize;
|
||||
$set = $repository->journalsInPeriod(new Collection([$account]), [], $start, $end);
|
||||
$count = $set->count();
|
||||
$subSet = $set->splice($offset, $pageSize);
|
||||
$journals = new LengthAwarePaginator($subSet, $count, $pageSize, $page);
|
||||
$subTitleIcon = config('firefly.subIconsByIdentifier.' . $account->accountType->type);
|
||||
$subTitle = $account->name;
|
||||
$range = Preferences::get('viewRange', '1M')->data;
|
||||
$start = session('start', Navigation::startOfPeriod(new Carbon, $range));
|
||||
$end = session('end', Navigation::endOfPeriod(new Carbon, $range));
|
||||
$page = intval(Input::get('page'));
|
||||
$pageSize = Preferences::get('transactionPageSize', 50)->data;
|
||||
$offset = ($page - 1) * $pageSize;
|
||||
$set = $repository->journalsInPeriod(new Collection([$account]), [], $start, $end);
|
||||
$count = $set->count();
|
||||
$subSet = $set->splice($offset, $pageSize);
|
||||
$journals = new LengthAwarePaginator($subSet, $count, $pageSize, $page);
|
||||
$journals->setPath('accounts/show/' . $account->id);
|
||||
|
||||
// grouped other months thing:
|
||||
|
@ -163,6 +163,8 @@ class CategoryController extends Controller
|
||||
$set = $repository->journalsInPeriod(new Collection([$category]), new Collection, [], $start, $end);
|
||||
$count = $set->count();
|
||||
$subSet = $set->splice($offset, $pageSize);
|
||||
$subTitle = $category->name;
|
||||
$subTitleIcon = 'fa-bar-chart';
|
||||
$journals = new LengthAwarePaginator($subSet, $count, $pageSize, $page);
|
||||
$journals->setPath('categories/show/' . $category->id);
|
||||
|
||||
@ -187,7 +189,7 @@ class CategoryController extends Controller
|
||||
if ($cache->has()) {
|
||||
$entries = $cache->get();
|
||||
|
||||
return view('categories.show', compact('category', 'journals', 'entries', 'hideCategory', 'subTitle'));
|
||||
return view('categories.show', compact('category', 'journals', 'entries', 'subTitleIcon', 'hideCategory', 'subTitle'));
|
||||
}
|
||||
|
||||
|
||||
|
@ -241,10 +241,12 @@ class CategoryRepository implements CategoryRepositoryInterface
|
||||
// that should do it:
|
||||
$first = $query->get(TransactionJournal::queryFields());
|
||||
|
||||
|
||||
// then collection transactions (harder)
|
||||
$query = $this->user->transactions()
|
||||
->where('transaction_journals.date', '>=', $start->format('Y-m-d 00:00:00'))
|
||||
->where('transaction_journals.date', '<=', $end->format('Y-m-d 23:59:59'));
|
||||
$query = $this->user->transactionjournals()->distinct()
|
||||
->leftJoin('transactions', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||
->leftJoin('category_transaction', 'category_transaction.transaction_id', '=', 'transactions.id');
|
||||
|
||||
if (count($types) > 0) {
|
||||
$query->leftJoin('transaction_types', 'transaction_types.id', '=', 'transaction_journals.transaction_type_id');
|
||||
$query->whereIn('transaction_types.type', $types);
|
||||
@ -255,10 +257,12 @@ class CategoryRepository implements CategoryRepositoryInterface
|
||||
}
|
||||
if ($categories->count() > 0) {
|
||||
$categoryIds = $categories->pluck('id')->toArray();
|
||||
$query->leftJoin('category_transaction', 'category_transaction.transaction_id', '=', 'transactions.id');
|
||||
$query->whereIn('category_transaction.category_id', $categoryIds);
|
||||
}
|
||||
$second = $query->get(['transaction_journals.*']);
|
||||
|
||||
|
||||
$second = $query->get(['transaction_journals.*']);
|
||||
|
||||
$complete = $complete->merge($first);
|
||||
$complete = $complete->merge($second);
|
||||
|
||||
|
@ -6,6 +6,7 @@ namespace FireflyIII\Support\Twig;
|
||||
|
||||
use Amount;
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\Budget;
|
||||
use FireflyIII\Models\Transaction;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Support\CacheProperties;
|
||||
@ -21,6 +22,31 @@ use Twig_SimpleFunction;
|
||||
class Journal extends Twig_Extension
|
||||
{
|
||||
|
||||
/**
|
||||
* @return Twig_SimpleFunction
|
||||
*/
|
||||
public function formatBudgetPerspective(): Twig_SimpleFunction
|
||||
{
|
||||
return new Twig_SimpleFunction(
|
||||
'formatBudgetPerspective', function (TransactionJournal $journal, Budget $budget) {
|
||||
// get the account amount:
|
||||
$transactions = $journal->transactions()->where('transactions.amount', '<', 0)->get(['transactions.*']);
|
||||
$amount = '0';
|
||||
foreach ($transactions as $transaction) {
|
||||
$currentBudget = $transaction->budgets->first();
|
||||
if (!is_null($currentBudget) && $currentBudget->id === $budget->id) {
|
||||
$amount = bcadd($amount, strval($transaction->amount));
|
||||
}
|
||||
}
|
||||
|
||||
$formatted = Amount::format($amount, true);
|
||||
|
||||
return $formatted . ' (' . Amount::formatJournal($journal) . ')';
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return Twig_SimpleFunction
|
||||
*/
|
||||
@ -30,8 +56,12 @@ class Journal extends Twig_Extension
|
||||
'formatPerspective', function (TransactionJournal $journal, Account $account) {
|
||||
|
||||
// get the account amount:
|
||||
$transaction = $journal->transactions()->where('transactions.account_id', $account->id)->first();
|
||||
$amount = $transaction->amount;
|
||||
$transactions = $journal->transactions()->where('transactions.account_id', $account->id)->get(['transactions.*']);
|
||||
$amount = '0';
|
||||
foreach ($transactions as $transaction) {
|
||||
$amount = bcadd($amount, strval($transaction->amount));
|
||||
}
|
||||
|
||||
if ($journal->isWithdrawal()) {
|
||||
$amount = bcmul($amount, '-1');
|
||||
}
|
||||
@ -97,6 +127,7 @@ class Journal extends Twig_Extension
|
||||
$this->getSourceAccount(),
|
||||
$this->getDestinationAccount(),
|
||||
$this->formatPerspective(),
|
||||
$this->formatBudgetPerspective(),
|
||||
$this->journalBudgets(),
|
||||
$this->journalCategories(),
|
||||
$this->transactionBudgets(),
|
||||
|
@ -36,7 +36,7 @@
|
||||
<h3 class="box-title">{{ 'transactions'|_ }}</h3>
|
||||
</div>
|
||||
<div class="box-body">
|
||||
{% include 'list.journals' %}
|
||||
{% include 'list.journals' with {budgetPerspective: budget} %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
52
resources/views/emails/error-html.blade.php
Normal file
52
resources/views/emails/error-html.blade.php
Normal file
@ -0,0 +1,52 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
|
||||
Firefly III ran into an error: <span style="font-family: monospace;">{{ errorMessage }}</span>
|
||||
</p>
|
||||
|
||||
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
|
||||
The error was of type "{{ class }}".
|
||||
</p>
|
||||
|
||||
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
|
||||
The error occured on/at: {{ time }}.
|
||||
</p>
|
||||
|
||||
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
|
||||
This error occured in file <span style="font-family: monospace;">{{ file }}</span> on line {{ line }} with code {{ code }}.
|
||||
</p>
|
||||
|
||||
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
|
||||
{% if loggedIn %}
|
||||
The error was encountered by user #{{ user.id }}, <a href="mailto:{{ user.email }}">{{ user.email }}</a>.
|
||||
{% else %}
|
||||
There was no user logged in for this error or no user was detected.
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
|
||||
The IP address related to this error is: {{ ip }}
|
||||
</p>
|
||||
|
||||
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
|
||||
The full stacktrace is below. If you think this is a bug in Firefly III, you
|
||||
can forward this message to
|
||||
<a href="mailto:thegrumpydictator@gmail.com?subject=BUG!">thegrumpydictator@gmail.com</a>.
|
||||
This can help fix the bug you just encountered.
|
||||
</p>
|
||||
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
|
||||
If you prefer, you can also open a new issue on <a href="https://github.com/JC5/firefly-iii/issues/new">Github</a>.
|
||||
</p>
|
||||
|
||||
<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;">
|
||||
The full stacktrace is below:</p>
|
||||
<p style="font-family: monospace;font-size:11px;color:#aaa">
|
||||
{{ stacktrace|nl2br }}
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
@ -57,11 +57,17 @@
|
||||
|
||||
</td>
|
||||
<td>
|
||||
{% if not accountPerspective %}
|
||||
{% if not accountPerspective and not budgetPerspective %}
|
||||
{{ journal|formatJournal }}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
|
||||
{% if accountPerspective %}
|
||||
{{ formatPerspective(journal, accountPerspective)|raw }}
|
||||
{% endif %}
|
||||
|
||||
{% if budgetPerspective %}
|
||||
{{ formatBudgetPerspective(journal, budgetPerspective)|raw }}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="hidden-sm hidden-xs">
|
||||
{{ journal.date.formatLocalized(monthAndDayFormat) }}
|
||||
|
@ -274,7 +274,7 @@
|
||||
},
|
||||
{
|
||||
"user_id": 1,
|
||||
"date": "2016-03-28",
|
||||
"date": "2016-05-08",
|
||||
"description": "Uneven multi-transfer (15,34,51)",
|
||||
"source_ids": [
|
||||
1,
|
||||
|
Loading…
Reference in New Issue
Block a user