2015-05-02 18:26:55 +02:00
|
|
|
{% extends "./layout/default.twig" %}
|
|
|
|
|
{% block content %}
|
2015-05-16 13:06:38 +02:00
|
|
|
{{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, start, shared) }}
|
2015-05-15 20:38:39 +02:00
|
|
|
|
2015-05-15 22:00:00 +02:00
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-lg-10 col-md-8 col-sm-12">
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">
|
|
|
|
|
<i class="fa fa-line-chart"></i>
|
|
|
|
|
{{ 'incomeVsExpenses'|_ }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="panel-body">
|
|
|
|
|
<div id="income-expenses-chart"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2015-05-02 18:26:55 +02:00
|
|
|
</div>
|
2015-05-15 22:00:00 +02:00
|
|
|
<div class="col-lg-2 col-md-4 col-sm-12">
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">
|
|
|
|
|
<i class="fa fa-calendar"></i>
|
|
|
|
|
{{ 'incomeVsExpenses'|_ }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="panel-body">
|
|
|
|
|
<div id="income-expenses-sum-chart"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2015-05-02 18:26:55 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2015-05-15 22:00:00 +02:00
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-lg-6 col-md-6 col-sm-6">
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">
|
|
|
|
|
<i class="fa fa-credit-card fa-fw"></i>
|
|
|
|
|
{{ 'accountBalances'|_ }}
|
|
|
|
|
</div>
|
|
|
|
|
<table class="table table-bordered table-striped">
|
|
|
|
|
<tr>
|
|
|
|
|
<th>{{ 'name'|_ }}</th>
|
|
|
|
|
<th>{{ 'balanceStartOfYear'|_ }}</th>
|
|
|
|
|
<th>{{ 'balanceStartOfYear'|_ }}</th>
|
|
|
|
|
<th>{{ 'difference'|_ }}</th>
|
|
|
|
|
</tr>
|
2015-05-16 13:06:38 +02:00
|
|
|
{% for account in accounts.getAccounts %}
|
2015-05-02 18:26:55 +02:00
|
|
|
<tr>
|
|
|
|
|
<td>
|
2015-05-15 22:00:00 +02:00
|
|
|
<a href="{{ route('accounts.show',account.id) }}" title="{{ account.name }}">{{ account.name }}</a>
|
2015-05-02 18:26:55 +02:00
|
|
|
</td>
|
2015-05-15 22:00:00 +02:00
|
|
|
<td>{{ account.startBalance|formatAmount }}</td>
|
|
|
|
|
<td>{{ account.endBalance|formatAmount }}</td>
|
|
|
|
|
<td>{{ (account.endBalance - account.startBalance)|formatAmount }}</td>
|
2015-05-02 18:26:55 +02:00
|
|
|
</tr>
|
2015-05-15 22:00:00 +02:00
|
|
|
{% endfor %}
|
|
|
|
|
<tr>
|
|
|
|
|
<td><em>Sum of sums</em></td>
|
2015-05-16 13:06:38 +02:00
|
|
|
<td>{{ accounts.getStart|formatAmount }}</td>
|
|
|
|
|
<td>{{ accounts.getEnd|formatAmount }}</td>
|
|
|
|
|
<td>{{ accounts.getDifference|formatAmount }}</td>
|
2015-05-15 22:00:00 +02:00
|
|
|
</tr>
|
|
|
|
|
</table>
|
2015-05-02 18:26:55 +02:00
|
|
|
</div>
|
|
|
|
|
|
2015-05-15 22:00:00 +02:00
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">
|
2015-05-16 07:28:58 +02:00
|
|
|
<i class="fa fa-fw fa-exchange"></i>
|
2015-05-15 22:00:00 +02:00
|
|
|
{{ 'incomeVsExpenses'|_ }}
|
|
|
|
|
</div>
|
2015-05-02 18:26:55 +02:00
|
|
|
<table class="table table-bordered table-striped">
|
|
|
|
|
<tr>
|
2015-05-15 22:00:00 +02:00
|
|
|
<td>{{ 'in'|_ }}</td>
|
|
|
|
|
<td>{{ totalIncome|formatAmount }}</td>
|
2015-05-02 18:26:55 +02:00
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2015-05-15 22:00:00 +02:00
|
|
|
<td>{{ 'out'|_ }}</td>
|
|
|
|
|
<td><span class="text-danger">{{ totalExpense|formatAmountPlain }}</span></td>
|
2015-05-02 18:26:55 +02:00
|
|
|
</tr>
|
|
|
|
|
<tr>
|
2015-05-15 22:00:00 +02:00
|
|
|
<td>{{ 'difference'|_ }}</td>
|
|
|
|
|
<td>{{ (totalIncome - totalExpense)|formatAmount }}</td>
|
2015-05-02 18:26:55 +02:00
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
2015-05-15 22:00:00 +02:00
|
|
|
</div>
|
|
|
|
|
<div class="col-lg-3 col-md-3 col-sm-3">
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">
|
|
|
|
|
<i class="fa fa-long-arrow-right fa-fw"></i>
|
2015-05-16 07:28:58 +02:00
|
|
|
{{ 'income'|_ }} ({{ trans('firefly.topX',{number: incomeTopLength}) }})
|
2015-05-15 22:00:00 +02:00
|
|
|
</div>
|
|
|
|
|
<table class="table">
|
2015-05-16 13:06:38 +02:00
|
|
|
{% for income in incomes.getIncomes %}
|
2015-05-16 07:28:58 +02:00
|
|
|
{% if loop.index > incomeTopLength %}
|
|
|
|
|
<tr class="collapse out incomesCollapsed">
|
|
|
|
|
{% else %}
|
2015-05-15 22:00:00 +02:00
|
|
|
<tr>
|
2015-05-16 07:28:58 +02:00
|
|
|
{% endif %}
|
2015-05-15 22:00:00 +02:00
|
|
|
<td>
|
2015-05-16 13:06:38 +02:00
|
|
|
<a href="{{ route('accounts.show',income.id) }}" title="{{ income.name }}">{{ income.name }}</a>
|
|
|
|
|
{% if income.count > 1 %}
|
|
|
|
|
<br /><small>{{ income.count }} {{ 'transactions'|_|lower }}</small>
|
2015-05-15 22:00:00 +02:00
|
|
|
{% endif %}
|
|
|
|
|
</td>
|
2015-05-16 13:06:38 +02:00
|
|
|
<td>{{ income.amount|formatAmount }}</td>
|
2015-05-15 22:00:00 +02:00
|
|
|
</tr>
|
|
|
|
|
{% endfor %}
|
2015-05-16 13:06:38 +02:00
|
|
|
{% if incomes.getIncomes|length > incomeTopLength %}
|
2015-05-16 07:28:58 +02:00
|
|
|
<tr>
|
|
|
|
|
<td colspan="2" class="active">
|
|
|
|
|
<a href="#" id="showIncomes">{{ trans('firefly.showTheRest',{number:incomeTopLength}) }}</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
{% endif %}
|
2015-05-02 18:26:55 +02:00
|
|
|
<tr>
|
2015-05-15 22:00:00 +02:00
|
|
|
<td><em>{{ 'sum'|_ }}</em></td>
|
2015-05-16 13:06:38 +02:00
|
|
|
<td>{{ incomes.getTotal|formatAmount }}</td>
|
2015-05-02 18:26:55 +02:00
|
|
|
</tr>
|
2015-05-15 22:00:00 +02:00
|
|
|
</table>
|
|
|
|
|
</div>
|
2015-05-02 18:26:55 +02:00
|
|
|
</div>
|
2015-05-15 22:00:00 +02:00
|
|
|
<div class="col-lg-3 col-md-3 col-sm-3">
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">
|
|
|
|
|
<i class="fa fa-long-arrow-left fa-fw"></i>
|
2015-05-16 07:28:58 +02:00
|
|
|
{{ 'expenses'|_ }} ({{ trans('firefly.topX',{number: expenseTopLength}) }})
|
2015-05-15 22:00:00 +02:00
|
|
|
</div>
|
|
|
|
|
<table class="table">
|
2015-05-16 13:06:38 +02:00
|
|
|
{% for expense in expenses.getExpenses %}
|
2015-05-16 07:28:58 +02:00
|
|
|
{% if loop.index > expenseTopLength %}
|
|
|
|
|
<tr class="collapse out expenseCollapsed">
|
|
|
|
|
{% else %}
|
|
|
|
|
<tr>
|
|
|
|
|
{% endif %}
|
2015-05-16 08:05:04 +02:00
|
|
|
<td>
|
2015-05-16 13:06:38 +02:00
|
|
|
<a href="{{ route('accounts.show',expense.id) }}">{{ expense.name }}</a>
|
|
|
|
|
{% if expense.count > 1 %}
|
|
|
|
|
<br /><small>{{ expense.count }} {{ 'transactions'|_|lower }}</small>
|
2015-05-16 08:05:04 +02:00
|
|
|
{% endif %}
|
|
|
|
|
</td>
|
2015-05-16 13:06:38 +02:00
|
|
|
<td><span class="text-danger">{{ (expense.amount*-1)|formatAmountPlain }}</span></td>
|
2015-05-15 22:00:00 +02:00
|
|
|
</tr>
|
|
|
|
|
{% endfor %}
|
2015-05-16 13:06:38 +02:00
|
|
|
{% if expenses.getExpenses|length > expenseTopLength %}
|
2015-05-16 07:28:58 +02:00
|
|
|
<tr>
|
|
|
|
|
<td colspan="2" class="active">
|
|
|
|
|
<a href="#" id="showExpenses">{{ trans('firefly.showTheRest',{number:incomeTopLength}) }}</a>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
{% endif %}
|
2015-05-15 22:00:00 +02:00
|
|
|
<tr>
|
|
|
|
|
<td><em>{{ 'sum'|_ }}</em></td>
|
2015-05-16 13:06:38 +02:00
|
|
|
<td><span class="text-danger">{{ (expenses.getTotal * -1)|formatAmountPlain }}</span></td>
|
2015-05-15 22:00:00 +02:00
|
|
|
</tr>
|
|
|
|
|
</table>
|
2015-05-02 18:26:55 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2015-05-16 07:28:58 +02:00
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-lg-12 col-md-12 col-sm-12">
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">
|
|
|
|
|
<i class="fa fa-tasks fa-fw"></i>
|
|
|
|
|
{{ 'categories'|_ }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="panel-body">
|
2015-05-16 10:05:22 +02:00
|
|
|
<div id="categories"></div>
|
2015-05-16 07:28:58 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2015-05-15 22:00:00 +02:00
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-lg-12 col-md-12 col-sm-12">
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">
|
|
|
|
|
<i class="fa fa-tasks fa-fw"></i>
|
|
|
|
|
{{ 'budgets'|_ }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="panel-body">
|
|
|
|
|
<div id="budgets"></div>
|
|
|
|
|
</div>
|
2015-05-02 18:26:55 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{% endblock %}
|
|
|
|
|
{% block scripts %}
|
2015-05-15 22:00:00 +02:00
|
|
|
<!-- load the libraries and scripts necessary for Google Charts: -->
|
|
|
|
|
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
|
|
|
|
|
<script type="text/javascript" src="js/gcharts.options.js"></script>
|
|
|
|
|
<script type="text/javascript" src="js/gcharts.js"></script>
|
2015-05-02 18:26:55 +02:00
|
|
|
|
2015-05-15 22:00:00 +02:00
|
|
|
<script type="text/javascript">
|
2015-05-16 13:06:38 +02:00
|
|
|
var year = '{{start.year}}';
|
2015-05-16 07:28:58 +02:00
|
|
|
var shared = {% if shared %}'/shared'{% else %}''{% endif %};
|
|
|
|
|
var incomeTopLength = {{ incomeTopLength }};
|
|
|
|
|
var expenseTopLength = {{ expenseTopLength }};
|
|
|
|
|
var incomeRestShow = false; // starts hidden.
|
|
|
|
|
var expenseRestShow = false; // starts hidden.
|
|
|
|
|
var showTheRest = '{{ trans('firefly.showTheRest',{number:incomeTopLength}) }}';
|
|
|
|
|
var hideTheRest = '{{ trans('firefly.hideTheRest',{number:incomeTopLength}) }}';
|
|
|
|
|
var showTheRestExpense = '{{ trans('firefly.showTheRest',{number:expenseTopLength}) }}';
|
|
|
|
|
var hideTheRestExpense = '{{ trans('firefly.hideTheRest',{number:expenseTopLength}) }}';
|
2015-05-15 22:00:00 +02:00
|
|
|
</script>
|
2015-05-02 18:26:55 +02:00
|
|
|
|
2015-05-15 22:00:00 +02:00
|
|
|
<script type="text/javascript" src="js/reports.js"></script>
|
2015-05-02 18:26:55 +02:00
|
|
|
|
|
|
|
|
{% endblock %}
|