firefly-iii/app/controllers/HomeController.php

148 lines
4.7 KiB
PHP
Raw Normal View History

2014-06-28 02:41:44 -05:00
<?php
use Carbon\Carbon;
2014-07-15 15:16:29 -05:00
/**
* Class HomeController
*
2014-07-15 15:16:29 -05:00
*/
class HomeController extends BaseController
{
2014-08-09 01:18:07 -05:00
/**
* @return \Illuminate\Http\RedirectResponse
*/
public function flush()
{
Cache::flush();
return Redirect::route('index');
}
2014-12-17 13:54:33 -06:00
public function repair() {
Component::where('class', 'Budget')->get()->each(
function (Component $c) {
$entry = [
'user_id' => $c->user_id,
'name' => $c->name
];
$budget = Budget::firstOrCreate($entry);
Log::debug('Migrated budget #' . $budget->id . ': ' . $budget->name);
// create entry in budget_transaction_journal
$connections = DB::table('component_transaction_journal')->where('component_id', $c->id)->get();
foreach ($connections as $connection) {
DB::table('budget_transaction_journal')->insert(
[
'budget_id' => $budget->id,
'transaction_journal_id' => $connection->transaction_journal_id
]
);
}
}
);
Component::where('class', 'Category')->get()->each(
function (Component $c) {
$entry = [
'user_id' => $c->user_id,
'name' => $c->name
];
$category = Category::firstOrCreate($entry);
Log::debug('Migrated category #' . $category->id . ': ' . $category->name);
// create entry in category_transaction_journal
$connections = DB::table('component_transaction_journal')->where('component_id', $c->id)->get();
foreach ($connections as $connection) {
DB::table('category_transaction_journal')->insert(
[
'category_id' => $category->id,
'transaction_journal_id' => $connection->transaction_journal_id
]
);
}
}
);
}
2014-07-15 15:16:29 -05:00
/**
* @return $this|\Illuminate\View\View
*/
public function index()
{
// count, maybe Firefly needs some introducing text to show:
2014-12-13 15:54:52 -06:00
/** @var \FireflyIII\Database\Account\Account $acct */
$acct = App::make('FireflyIII\Database\Account\Account');
2014-12-13 15:54:52 -06:00
/** @var \FireflyIII\Database\TransactionJournal\TransactionJournal $jrnls */
$jrnls = App::make('FireflyIII\Database\TransactionJournal\TransactionJournal');
/** @var \FireflyIII\Shared\Preferences\PreferencesInterface $preferences */
$preferences = App::make('FireflyIII\Shared\Preferences\PreferencesInterface');
$count = $acct->countAssetAccounts();
$start = Session::get('start', Carbon::now()->startOfMonth());
$end = Session::get('end', Carbon::now()->endOfMonth());
// get the preference for the home accounts to show:
$frontpage = $preferences->get('frontpageAccounts', []);
2014-07-23 09:44:20 -05:00
if ($frontpage->data == []) {
$accounts = $acct->getAssetAccounts();
2014-07-21 00:40:38 -05:00
} else {
$accounts = $acct->getByIds($frontpage->data);
2014-07-21 00:40:38 -05:00
}
$transactions = [];
2014-07-23 09:44:20 -05:00
foreach ($accounts as $account) {
$set = $jrnls->getInDateRangeAccount($account, $start, $end, 10);
if (count($set) > 0) {
$transactions[] = [$set, $account];
}
}
// build the home screen:
2014-11-12 15:36:02 -06:00
return View::make('index')->with('count', $count)->with('transactions', $transactions)->with('title', 'Firefly')->with('subTitle', 'What\'s playing?')
->with('mainTitleIcon', 'fa-fire');
}
/**
* @param $range
*
* @return \Illuminate\Http\RedirectResponse
*/
public function rangeJump($range)
{
$valid = ['1D', '1W', '1M', '3M', '6M', '1Y',];
/** @var \FireflyIII\Shared\Preferences\PreferencesInterface $preferences */
$preferences = App::make('FireflyIII\Shared\Preferences\PreferencesInterface');
if (in_array($range, $valid)) {
$preferences->set('viewRange', $range);
Session::forget('range');
}
return Redirect::back();
}
/**
* @return \Illuminate\Http\RedirectResponse
*/
public function sessionNext()
{
2014-11-21 04:12:22 -06:00
Navigation::next();
2014-11-12 15:36:02 -06:00
return Redirect::back();
}
/**
* @return \Illuminate\Http\RedirectResponse
*/
public function sessionPrev()
{
2014-11-21 04:12:22 -06:00
Navigation::prev();
2014-11-12 15:36:02 -06:00
return Redirect::back();
}
2014-07-04 04:39:21 -05:00
}