mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2024-12-27 01:11:37 -06:00
Small fixes and updates. [skip ci]
This commit is contained in:
parent
1a9c44f7f9
commit
30553ed7a3
@ -2,6 +2,8 @@
|
||||
use Firefly\Helper\Preferences\PreferencesHelperInterface as PHI;
|
||||
use Firefly\Storage\Account\AccountRepositoryInterface as ARI;
|
||||
use Firefly\Storage\TransactionJournal\TransactionJournalRepositoryInterface as TJRI;
|
||||
use Firefly\Helper\Toolkit\ToolkitInterface as Toolkit;
|
||||
use Firefly\Storage\Budget\BudgetRepositoryInterface as BRI;
|
||||
|
||||
/**
|
||||
* Class HomeController
|
||||
@ -11,21 +13,24 @@ class HomeController extends BaseController
|
||||
protected $_accounts;
|
||||
protected $_preferences;
|
||||
protected $_journal;
|
||||
protected $_budgets;
|
||||
protected $_tk;
|
||||
|
||||
/**
|
||||
* @param ARI $accounts
|
||||
* @param PHI $preferences
|
||||
* @param TJRI $journal
|
||||
*/
|
||||
public function __construct(ARI $accounts, PHI $preferences, TJRI $journal)
|
||||
public function __construct(ARI $accounts, PHI $preferences, TJRI $journal, Toolkit $toolkit, BRI $budgets)
|
||||
{
|
||||
$this->_accounts = $accounts;
|
||||
$this->_preferences = $preferences;
|
||||
$this->_journal = $journal;
|
||||
$this->_tk = $toolkit;
|
||||
$this->_budgets = $budgets;
|
||||
View::share('menu', 'home');
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -33,33 +38,36 @@ class HomeController extends BaseController
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
// count, maybe we need some introductionary text to show:
|
||||
// count, maybe we need some introducing text to show:
|
||||
$count = $this->_accounts->count();
|
||||
|
||||
|
||||
// get the preference for the home accounts to show:
|
||||
$frontpage = $this->_preferences->get('frontpageAccounts', []);
|
||||
if($frontpage->data == []) {
|
||||
if ($frontpage->data == []) {
|
||||
$accounts = $this->_accounts->getActiveDefault();
|
||||
} else {
|
||||
$accounts = $this->_accounts->getByIds($frontpage->data);
|
||||
}
|
||||
|
||||
|
||||
// get the budgets for this period:
|
||||
$dates = $this->_tk->getDateRange();
|
||||
$budgets = $this->_budgets->getWithRepetitionsInPeriod($dates[0],\Session::get('range'));
|
||||
|
||||
$transactions = [];
|
||||
foreach($accounts as $account) {
|
||||
$transactions[] = [$this->_journal->getByAccount($account,15),$account];
|
||||
foreach ($accounts as $account) {
|
||||
$transactions[] = [$this->_journal->getByAccount($account, 15), $account];
|
||||
}
|
||||
|
||||
if(count($transactions) % 2 == 0) {
|
||||
if (count($transactions) % 2 == 0) {
|
||||
$transactions = array_chunk($transactions, 2);
|
||||
} elseif(count($transactions) == 1) {
|
||||
} elseif (count($transactions) == 1) {
|
||||
$transactions = array_chunk($transactions, 3);
|
||||
} else {
|
||||
$transactions = array_chunk($transactions, 3);
|
||||
}
|
||||
// build the home screen:
|
||||
return View::make('index')->with('count', $count)->with('transactions',$transactions);
|
||||
return View::make('index')->with('count', $count)->with('transactions', $transactions)->with('budgets',$budgets);
|
||||
}
|
||||
}
|
@ -22,6 +22,8 @@ class CreateLimitsTable extends Migration {
|
||||
$table->boolean('repeats');
|
||||
$table->enum('repeat_freq', ['daily', 'weekly','monthly','quarterly','half-year','yearly']);
|
||||
|
||||
$table->unique(['component_id','startdate','repeat_freq']);
|
||||
|
||||
// connect component
|
||||
$table->foreign('component_id')
|
||||
->references('id')->on('components')
|
||||
|
@ -173,9 +173,9 @@ class MigrationHelper implements MigrationHelperInterface
|
||||
$limit->amount = floatval($entry->amount);
|
||||
$limit->repeats = 0;
|
||||
$limit->repeat_freq = 'monthly';
|
||||
if (!$limit->save()) {
|
||||
\Log::error('MigrationException!');
|
||||
throw new MigrationException('Importing limits failed: ' . $limit->errors()->first());
|
||||
try {
|
||||
$limit->save();
|
||||
} catch (\Exception $e) {
|
||||
}
|
||||
} else {
|
||||
\Log::warning('No budget for this limit!');
|
||||
|
@ -12,4 +12,6 @@ interface BudgetRepositoryInterface
|
||||
|
||||
public function find($id);
|
||||
|
||||
public function getWithRepetitionsInPeriod(\Carbon\Carbon $date, $range);
|
||||
|
||||
}
|
@ -18,6 +18,35 @@ class EloquentBudgetRepository implements BudgetRepositoryInterface
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function getWithRepetitionsInPeriod(\Carbon\Carbon $date, $range)
|
||||
{
|
||||
|
||||
/** @var \Firefly\Helper\Toolkit\ToolkitInterface $toolkit */
|
||||
$toolkit = \App::make('Firefly\Helper\Toolkit\ToolkitInterface');
|
||||
$dates = $toolkit->getDateRange();
|
||||
$start = $dates[0];
|
||||
$result = [];
|
||||
|
||||
|
||||
$set = \Auth::user()->budgets()->with(
|
||||
['limits' => function ($q) use ($date) {
|
||||
$q->orderBy('limits.startdate', 'ASC');
|
||||
// $q->where('startdate',$date->format('Y-m-d'));
|
||||
}, 'limits.limitrepetitions' => function ($q) use ($date) {
|
||||
$q->orderBy('limit_repetitions.startdate', 'ASC');
|
||||
$q->where('startdate',$date->format('Y-m-d'));
|
||||
}]
|
||||
)->orderBy('name', 'ASC')->get();
|
||||
|
||||
foreach ($set as $budget) {
|
||||
$budget->count = 0;
|
||||
foreach($budget->limits as $limit) {
|
||||
$budget->count += count($limit->limitrepetitions);
|
||||
}
|
||||
}
|
||||
return $set;
|
||||
}
|
||||
|
||||
public function store($data)
|
||||
{
|
||||
$budget = new \Budget;
|
||||
@ -67,10 +96,10 @@ class EloquentBudgetRepository implements BudgetRepositoryInterface
|
||||
public function get()
|
||||
{
|
||||
return \Auth::user()->budgets()->with(
|
||||
['limits' => function ($q) {
|
||||
$q->orderBy('limits.startdate','ASC');
|
||||
['limits' => function ($q) {
|
||||
$q->orderBy('limits.startdate', 'ASC');
|
||||
}, 'limits.limitrepetitions' => function ($q) {
|
||||
$q->orderBy('limit_repetitions.startdate','ASC');
|
||||
$q->orderBy('limit_repetitions.startdate', 'ASC');
|
||||
}]
|
||||
)->orderBy('name', 'ASC')->get();
|
||||
}
|
||||
|
@ -77,9 +77,36 @@
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12">
|
||||
|
||||
<h4>Budgets</h4>
|
||||
<table class="table table-bordered">
|
||||
@foreach($budgets as $budget)
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{route('budgets.show',$budget->id)}}">{{{$budget->name}}}</a>
|
||||
</td>
|
||||
@if($budget->count == 0)
|
||||
<td colspan="2">
|
||||
<em>No budget set for this period.</em>
|
||||
</td>
|
||||
@else
|
||||
@foreach($budget->limits as $limit)
|
||||
@foreach($limit->limitrepetitions as $rep)
|
||||
<td>
|
||||
{{mf($rep->amount)}}
|
||||
</td>
|
||||
<td>
|
||||
{{mf($rep->left())}}
|
||||
</td>
|
||||
@endforeach
|
||||
@endforeach
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user