mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 10:47:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			180 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Twig
		
	
	
	
	
	
			
		
		
	
	
			180 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Twig
		
	
	
	
	
	
| {% extends "./layout/default" %}
 | |
| 
 | |
| {% block breadcrumbs %}
 | |
|     {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, budget, budgetLimit) }}
 | |
| {% endblock %}
 | |
| 
 | |
| {% block content %}
 | |
|     <div class="row">
 | |
|         <div class="col-lg-12 col-md-12 col-sm-12">
 | |
|             <div class="box">
 | |
|                 <div class="box-header with-border">
 | |
|                     <h3 class="box-title">
 | |
|                         {% if budgetLimit %}
 | |
|                             {{ trans('firefly.chart_budget_in_period', {name: budget.name, start: budgetLimit.start_date.formatLocalized(monthAndDayFormat), end: budgetLimit.end_date.formatLocalized(monthAndDayFormat) }) }}
 | |
|                         {% else %}
 | |
|                             {{ trans('firefly.chart_all_journals_for_budget', {name:budget.name}) }}
 | |
|                         {% endif %}
 | |
|                     </h3>
 | |
| 
 | |
|                     <!-- ACTIONS MENU -->
 | |
|                     <div class="box-tools pull-right">
 | |
|                         <div class="btn-group">
 | |
|                             <button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><i class="fa fa-ellipsis-v"></i></button>
 | |
|                             <ul class="dropdown-menu" role="menu">
 | |
|                                 <li><a href="{{ route('budgets.edit',budget.id) }}"><i class="fa fa-pencil fa-fw"></i> {{ 'edit'|_ }}</a></li>
 | |
|                                 <li><a href="{{ route('budgets.delete',budget.id) }}"><i class="fa fa-trash fa-fw"></i> {{ 'delete'|_ }}</a></li>
 | |
|                             </ul>
 | |
|                         </div>
 | |
|                     </div>
 | |
|                 </div>
 | |
|                 <div class="box-body">
 | |
|                     <canvas id="budgetOverview" style="width:100%;" height="400"></canvas>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|     </div>
 | |
| 
 | |
|     <div class="row">
 | |
|         <div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
 | |
|             <div class="box">
 | |
|                 <div class="box-header with-border">
 | |
|                     <h3 class="box-title">{{ 'expenses_by_category'|_ }}</h3>
 | |
|                 </div>
 | |
|                 <div class="box-body">
 | |
|                     <div style="width:60%;margin:0 auto;">
 | |
|                         <canvas id="budget-cat-out" style="margin:0 auto;"></canvas>
 | |
|                     </div>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|         <div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
 | |
|             <div class="box">
 | |
|                 <div class="box-header with-border">
 | |
|                     <h3 class="box-title">{{ 'expenses_by_asset_account'|_ }}</h3>
 | |
|                 </div>
 | |
|                 <div class="box-body">
 | |
|                     <div style="width:60%;margin:0 auto;">
 | |
|                         <canvas id="budget-asset-out" style="margin:0 auto;"></canvas>
 | |
|                     </div>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|         <div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
 | |
|             <div class="box">
 | |
|                 <div class="box-header with-border">
 | |
|                     <h3 class="box-title">{{ 'expenses_by_expense_account'|_ }}</h3>
 | |
|                 </div>
 | |
|                 <div class="box-body">
 | |
|                     <div style="width:60%;margin:0 auto;">
 | |
|                         <canvas id="budget-expense-out" style="margin:0 auto;"></canvas>
 | |
|                     </div>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|     </div>
 | |
| 
 | |
|     <div class="row">
 | |
|         <div class="col-lg-offset-9 col-lg-3 col-md-offset-9 col-md-3 col-sm-12 col-xs-12">
 | |
|             <p class="small text-center"><a href="{{ route('budgets.show',budget.id) }}">{{ 'showEverything'|_ }}</a></p>
 | |
|         </div>
 | |
|     </div>
 | |
| 
 | |
|     <div class="row">
 | |
|         <div class="col-lg-9 col-md-9 col-sm-12 col-xs-12">
 | |
| 
 | |
|             <div class="box">
 | |
|                 <div class="box-header with-border">
 | |
|                     <h3 class="box-title">{{ 'transactions'|_ }}</h3>
 | |
|                 </div>
 | |
|                 <div class="box-body">
 | |
|                     {% include 'list.journals-tasker' with {hideBudgets:true, hideBills:true} %}
 | |
|                     {% if budgetLimit %}
 | |
|                         <p>
 | |
|                             <i class="fa fa-calendar" aria-hidden="true"></i>
 | |
|                             <a href="{{ route('budgets.show', [budget.id]) }}">
 | |
|                                 {{ 'show_all_no_filter'|_ }}
 | |
|                             </a>
 | |
|                         </p>
 | |
|                     {% endif %}
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|         <div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
 | |
|             {% for limit in limits %}
 | |
|                 <div class="box {% if limit.start_date == budgetLimit.start_date %}box-primary box-solid{% endif %}">
 | |
|                     <div class="box-header with-border">
 | |
|                         <h3 class="box-title"><a
 | |
|                                     href="{{ route('budgets.show.limit',[budget.id,limit.id]) }}">
 | |
|                                 {{ limit.start_date.formatLocalized(monthAndDayFormat) }} —
 | |
|                                 {{ limit.end_date.formatLocalized(monthAndDayFormat) }}
 | |
|                             </a>
 | |
|                         </h3>
 | |
|                     </div>
 | |
|                     <div class="box-body no-padding">
 | |
|                         <table class="table table-hover">
 | |
|                             <tr>
 | |
|                                 <td style="width:33%;">{{ 'amount'|_ }}</td>
 | |
|                                 <td>{{ limit.amount|formatAmount }}</td>
 | |
|                             </tr>
 | |
|                             <tr>
 | |
|                                 <td style="width:33%;">{{ 'spent'|_ }}</td>
 | |
|                                 <td>{{ limit.spent|formatAmount }}</td>
 | |
|                             </tr>
 | |
|                             <tr>
 | |
|                                 <td colspan="2">
 | |
|                                     {% set overspent = limit.amount + limit.spent < 0 %}
 | |
| 
 | |
|                                     {% if overspent %}
 | |
|                                         {% set pct = (limit.spent != 0 ? (limit.amount / (limit.spent*-1))*100 : 0) %} <!-- must have -1 here -->
 | |
|                                         <div class="progress progress-striped">
 | |
|                                             <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="{{ pct|round }}" aria-valuemin="0"
 | |
|                                                  aria-valuemax="100" style="width: {{ pct|round }}%;"></div>
 | |
|                                             <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="{{ (100-pct)|round }}"
 | |
|                                                  aria-valuemin="0" aria-valuemax="100" style="width: {{ (100-pct)|round }}%;"></div>
 | |
|                                         </div>
 | |
|                                     {% else %}
 | |
|                                         {% set pct = (limit.amount != 0 ? (((limit.spent*-1) / limit.amount)*100) : 0) %} <!-- must have -1 here -->
 | |
|                                         <div class="progress progress-striped">
 | |
|                                             <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="{{ pct|round }}" aria-valuemin="0"
 | |
|                                                  aria-valuemax="100" style="width: {{ pct|round }}%;"></div>
 | |
|                                         </div>
 | |
|                                     {% endif %}
 | |
|                                 </td>
 | |
|                             </tr>
 | |
|                         </table>
 | |
|                     </div>
 | |
|                 </div>
 | |
|             {% endfor %}
 | |
|             <p class="small text-center"><a href="{{ route('budgets.show',budget.id) }}">{{ 'showEverything'|_ }}</a></p>
 | |
|         </div>
 | |
|     </div>
 | |
| 
 | |
| {% endblock %}
 | |
| {% block scripts %}
 | |
|     <script type="text/javascript">
 | |
|         var budgetID = {{ budget.id }};
 | |
|         var budgetLimitID = 0;
 | |
|         {% if budgetLimit.id %}
 | |
|             budgetLimitID = {{ budgetLimit.id }};
 | |
|             var budgetChartUri = '{{ route('chart.budget.budget-limit', [budget.id, budgetLimit.id] ) }}';
 | |
| 
 | |
|             var expenseCategoryUri = '{{ route('chart.budget.expense-category', [budget.id, budgetLimit.id]) }}';
 | |
|             var expenseAssetUri = '{{ route('chart.budget.expense-asset', [budget.id, budgetLimit.id]) }}';
 | |
|             var expenseExpenseUri = '{{ route('chart.budget.expense-expense', [budget.id, budgetLimit.id]) }}';
 | |
|         {% else %}
 | |
|             var budgetChartUri = '{{ route('chart.budget.budget', [budget.id] ) }}';
 | |
| 
 | |
|         var expenseCategoryUri = '{{ route('chart.budget.expense-category', [budget.id]) }}';
 | |
|         var expenseAssetUri = '{{ route('chart.budget.expense-asset', [budget.id]) }}';
 | |
|         var expenseExpenseUri = '{{ route('chart.budget.expense-expense', [budget.id]) }}';
 | |
|         {% endif %}
 | |
|     </script>
 | |
| 
 | |
|     <script type="text/javascript" src="js/lib/Chart.bundle.min.js"></script>
 | |
|     <script type="text/javascript" src="js/ff/charts.defaults.js"></script>
 | |
|     <script type="text/javascript" src="js/ff/charts.js"></script>
 | |
|     <script type="text/javascript" src="js/ff/budgets/show.js"></script>
 | |
|     <script type="text/javascript" src="js/ff/transactions/list.js"></script>
 | |
| {% endblock %}
 |