firefly-iii/app/controllers/HomeController.php

78 lines
2.3 KiB
PHP
Raw Normal View History

2014-06-28 02:41:44 -05:00
<?php
use Firefly\Helper\Preferences\PreferencesHelperInterface as PHI;
use Firefly\Storage\Account\AccountRepositoryInterface as ARI;
2014-08-28 00:53:54 -05:00
use Firefly\Storage\Reminder\ReminderRepositoryInterface as RRI;
use Firefly\Storage\TransactionJournal\TransactionJournalRepositoryInterface as TJRI;
2014-07-15 15:16:29 -05:00
/**
* Class HomeController
*
* @SuppressWarnings(PHPMD.CamelCasePropertyName)
2014-07-15 15:16:29 -05:00
*/
class HomeController extends BaseController
{
2014-07-15 15:16:29 -05:00
protected $_accounts;
protected $_preferences;
protected $_journal;
2014-08-28 00:53:54 -05:00
protected $_reminders;
2014-07-15 15:16:29 -05:00
/**
* @param ARI $accounts
* @param PHI $preferences
* @param TJRI $journal
* @param RRI $reminders
*/
2014-08-28 00:53:54 -05:00
public function __construct(ARI $accounts, PHI $preferences, TJRI $journal, RRI $reminders)
{
$this->_accounts = $accounts;
2014-07-15 15:16:29 -05:00
$this->_preferences = $preferences;
$this->_journal = $journal;
$this->_reminders = $reminders;
}
2014-08-09 01:18:07 -05:00
/**
* @return \Illuminate\Http\RedirectResponse
*/
public function flush()
{
Cache::flush();
return Redirect::route('index');
}
2014-07-15 15:16:29 -05:00
/**
* @return $this|\Illuminate\View\View
*/
public function index()
{
Event::fire('limits.check');
Event::fire('piggybanks.check');
Event::fire('recurring.check');
// count, maybe Firefly needs some introducing text to show:
2014-07-15 15:16:29 -05:00
$count = $this->_accounts->count();
2014-08-09 01:18:07 -05:00
$start = Session::get('start');
$end = Session::get('end');
// get the preference for the home accounts to show:
$frontpage = $this->_preferences->get('frontpageAccounts', []);
2014-07-23 09:44:20 -05:00
if ($frontpage->data == []) {
2014-07-21 00:40:38 -05:00
$accounts = $this->_accounts->getActiveDefault();
} else {
$accounts = $this->_accounts->getByIds($frontpage->data);
}
$transactions = [];
2014-07-23 09:44:20 -05:00
foreach ($accounts as $account) {
2014-08-28 00:53:54 -05:00
$set = $this->_journal->getByAccountInDateRange($account, 10, $start, $end);
if (count($set) > 0) {
$transactions[] = [$set, $account];
}
}
// build the home screen:
2014-09-10 07:39:38 -05:00
return View::make('index')->with('count', $count)->with('transactions', $transactions)->with('title', 'Firefly')
->with('subTitle', 'What\'s playing?');
}
2014-07-04 04:39:21 -05:00
}