diff --git a/app/controllers/AccountController.php b/app/controllers/AccountController.php
index f05d11623a..0347ca71a5 100644
--- a/app/controllers/AccountController.php
+++ b/app/controllers/AccountController.php
@@ -18,38 +18,6 @@ class AccountController extends BaseController
View::share('title', 'Accounts');
}
- /**
- * @param string $what
- *
- * @return View
- * @throws FireflyException
- */
- public function index($what = 'default')
- {
- switch ($what) {
- default:
- throw new FireflyException('Cannot handle account type "' . e($what) . '".');
- break;
- case 'asset':
- $subTitleIcon = 'fa-money';
- $subTitle = 'Asset accounts';
- break;
- case 'expense':
- $subTitleIcon = 'fa-shopping-cart';
- $subTitle = 'Expense accounts';
- break;
- case 'revenue':
- $subTitleIcon = 'fa-download';
- $subTitle = 'Revenue accounts';
- break;
- }
- return View::make('accounts.index')
- ->with('what', $what)
- ->with(compact('subTitleIcon'))
- ->with(compact('subTitle'));
- }
-
-
/**
* @return \Illuminate\View\View
*/
@@ -67,10 +35,7 @@ class AccountController extends BaseController
break;
}
- return View::make('accounts.create')
- ->with('subTitle', 'Create a new ' . $what . ' account')
- ->with('what', $what)
- ->with(compact('subTitleIcon'));
+ return View::make('accounts.create')->with('subTitle', 'Create a new ' . $what . ' account')->with('what', $what)->with(compact('subTitleIcon'));
}
/**
@@ -80,10 +45,9 @@ class AccountController extends BaseController
*/
public function delete(Account $account)
{
- return View::make('accounts.delete')->with('account', $account)
- ->with(
- 'subTitle', 'Delete ' . strtolower($account->accountType->type) . ' "' . $account->name . '"'
- );
+ return View::make('accounts.delete')->with('account', $account)->with(
+ 'subTitle', 'Delete ' . strtolower($account->accountType->type) . ' "' . $account->name . '"'
+ );
}
/**
@@ -193,11 +157,40 @@ class AccountController extends BaseController
Session::flash('prefilled', $prefilled);
}
- return View::make('accounts.edit')
- ->with('account', $account)
- ->with('openingBalance', $openingBalance)
- ->with(compact('subTitleIcon'))
- ->with('subTitle', 'Edit ' . strtolower($account->accountType->type) . ' "' . $account->name . '"');
+ return View::make('accounts.edit')->with('account', $account)->with('openingBalance', $openingBalance)->with(compact('subTitleIcon'))->with(
+ 'subTitle', 'Edit ' . strtolower(
+ $account->accountType->type
+ ) . ' "' . $account->name . '"'
+ );
+ }
+
+ /**
+ * @param string $what
+ *
+ * @return View
+ * @throws FireflyException
+ */
+ public function index($what = 'default')
+ {
+ switch ($what) {
+ default:
+ throw new FireflyException('Cannot handle account type "' . e($what) . '".');
+ break;
+ case 'asset':
+ $subTitleIcon = 'fa-money';
+ $subTitle = 'Asset accounts';
+ break;
+ case 'expense':
+ $subTitleIcon = 'fa-shopping-cart';
+ $subTitle = 'Expense accounts';
+ break;
+ case 'revenue':
+ $subTitleIcon = 'fa-download';
+ $subTitle = 'Revenue accounts';
+ break;
+ }
+
+ return View::make('accounts.index')->with('what', $what)->with(compact('subTitleIcon'))->with(compact('subTitle'));
}
/**
@@ -223,10 +216,9 @@ class AccountController extends BaseController
//$data = $this->_accounts->show($account, 40);
- return View::make('accounts.show')
- ->with('account', $account)
- ->with('subTitle', 'Details for ' . strtolower($account->accountType->type) . ' "' . $account->name . '"')
- ->with(compact('subTitleIcon'));
+ return View::make('accounts.show')->with('account', $account)->with(
+ 'subTitle', 'Details for ' . strtolower($account->accountType->type) . ' "' . $account->name . '"'
+ )->with(compact('subTitleIcon'));
}
/**
@@ -236,7 +228,7 @@ class AccountController extends BaseController
public function store()
{
- $data = Input::all();
+ $data = Input::all();
$data['what'] = isset($data['what']) && $data['what'] != '' ? $data['what'] : 'asset';
/** @var \FireflyIII\Database\Account $acct */
$acct = App::make('FireflyIII\Database\Account');
@@ -253,6 +245,7 @@ class AccountController extends BaseController
Session::flash('warnings', $messages['warnings']);
Session::flash('successes', $messages['successes']);
Session::flash('error', 'Could not save account: ' . $messages['errors']->first());
+
return Redirect::route('accounts.create', $data['what'])->withInput()->withErrors($messages['errors']);
}
// store!
@@ -270,6 +263,7 @@ class AccountController extends BaseController
Session::flash('warnings', $messageBags['warnings']);
Session::flash('successes', $messageBags['successes']);
Session::flash('errors', $messageBags['errors']);
+
return Redirect::route('accounts.create', $data['what'])->withInput();
break;
}
@@ -315,6 +309,7 @@ class AccountController extends BaseController
Session::flash('warnings', $messages['warnings']);
Session::flash('successes', $messages['successes']);
Session::flash('error', 'Could not save account: ' . $messages['errors']->first());
+
return Redirect::route('accounts.edit', $account->id)->withInput()->withErrors($messages['errors']);
}
// store!
@@ -331,6 +326,7 @@ class AccountController extends BaseController
Session::flash('warnings', $messageBags['warnings']);
Session::flash('successes', $messageBags['successes']);
Session::flash('errors', $messageBags['errors']);
+
return Redirect::route('accounts.edit', $account->id)->withInput();
break;
}
diff --git a/app/controllers/BudgetController.php b/app/controllers/BudgetController.php
index 99522d1ef2..977cfcdb0d 100644
--- a/app/controllers/BudgetController.php
+++ b/app/controllers/BudgetController.php
@@ -17,20 +17,6 @@ class BudgetController extends BaseController
View::share('mainTitleIcon', 'fa-tasks');
}
- /**
- * @return \Illuminate\Http\RedirectResponse
- */
- public function postUpdateIncome()
- {
- /** @var \FireflyIII\Shared\Preferences\PreferencesInterface $preferences */
- $preferences = App::make('FireflyIII\Shared\Preferences\PreferencesInterface');
- $date = Session::get('start');
-
- $value = intval(Input::get('amount'));
- $preferences->set('budgetIncomeTotal' . $date->format('FY'), $value);
- return Redirect::route('budgets.index');
- }
-
/**
* Update the amount for a budget's limitrepetition and/or create it.
*
@@ -78,6 +64,49 @@ class BudgetController extends BaseController
}
+ /**
+ * @return $this
+ */
+ public function create()
+ {
+ return View::make('budgets.create')->with('subTitle', 'Create a new budget');
+ }
+
+ /**
+ * @param Budget $budget
+ *
+ * @return $this
+ */
+ public function delete(Budget $budget)
+ {
+ return View::make('budgets.delete')->with('budget', $budget)->with('subTitle', 'Delete budget "' . $budget->name . '"');
+ }
+
+ public function destroy(Budget $budget)
+ {
+ /** @var \FireflyIII\Database\Budget $repos */
+ $repos = App::make('FireflyIII\Database\Budget');
+ // remove budget
+ $repos->destroy($budget);
+ Session::flash('success', 'The budget was deleted.');
+
+ return Redirect::route('budgets.index');
+
+ }
+
+ /**
+ * @param Budget $budget
+ *
+ * @return $this
+ */
+ public function edit(Budget $budget)
+ {
+ Session::flash('prefilled', ['name' => $budget->name]);
+
+ return View::make('budgets.edit')->with('budget', $budget)->with('subTitle', 'Edit budget "' . $budget->name . '"');
+
+ }
+
/**
* @return $this
*/
@@ -137,15 +166,18 @@ class BudgetController extends BaseController
}
/**
- * @return $this
+ * @return \Illuminate\Http\RedirectResponse
*/
- public function updateIncome()
+ public function postUpdateIncome()
{
- $date = Session::get('start');
/** @var \FireflyIII\Shared\Preferences\PreferencesInterface $preferences */
$preferences = App::make('FireflyIII\Shared\Preferences\PreferencesInterface');
- $budgetAmount = $preferences->get('budgetIncomeTotal' . $date->format('FY'), 1000);
- return View::make('budgets.income')->with('amount', $budgetAmount)->with('date', $date);
+ $date = Session::get('start');
+
+ $value = intval(Input::get('amount'));
+ $preferences->set('budgetIncomeTotal' . $date->format('FY'), $value);
+
+ return Redirect::route('budgets.index');
}
/**
@@ -172,47 +204,6 @@ class BudgetController extends BaseController
return View::make('budgets.show', compact('limits', 'budget', 'repetition'));
}
- /**
- * @return $this
- */
- public function create()
- {
- return View::make('budgets.create')->with('subTitle', 'Create a new budget');
- }
-
- /**
- * @param Budget $budget
- *
- * @return $this
- */
- public function delete(Budget $budget)
- {
- return View::make('budgets.delete')->with('budget', $budget)->with('subTitle', 'Delete budget "' . $budget->name . '"');
- }
-
- public function destroy(Budget $budget)
- {
- /** @var \FireflyIII\Database\Budget $repos */
- $repos = App::make('FireflyIII\Database\Budget');
- // remove budget
- $repos->destroy($budget);
- Session::flash('success', 'The budget was deleted.');
- return Redirect::route('budgets.index');
-
- }
-
- /**
- * @param Budget $budget
- *
- * @return $this
- */
- public function edit(Budget $budget)
- {
- Session::flash('prefilled', ['name' => $budget->name]);
- return View::make('budgets.edit')->with('budget', $budget)->with('subTitle', 'Edit budget "' . $budget->name . '"');
-
- }
-
/**
* @return \Illuminate\Http\RedirectResponse
*/
@@ -234,6 +225,7 @@ class BudgetController extends BaseController
Session::flash('warnings', $messages['warnings']);
Session::flash('successes', $messages['successes']);
Session::flash('error', 'Could not save budget: ' . $messages['errors']->first());
+
return Redirect::route('budgets.create')->withInput()->withErrors($messages['errors']);
}
// store!
@@ -251,6 +243,7 @@ class BudgetController extends BaseController
Session::flash('warnings', $messageBags['warnings']);
Session::flash('successes', $messageBags['successes']);
Session::flash('errors', $messageBags['errors']);
+
return Redirect::route('budgets.create')->withInput();
break;
}
@@ -280,6 +273,7 @@ class BudgetController extends BaseController
Session::flash('warnings', $messages['warnings']);
Session::flash('successes', $messages['successes']);
Session::flash('error', 'Could not save budget: ' . $messages['errors']->first());
+
return Redirect::route('budgets.edit', $budget->id)->withInput()->withErrors($messages['errors']);
}
// store!
@@ -296,8 +290,22 @@ class BudgetController extends BaseController
Session::flash('warnings', $messageBags['warnings']);
Session::flash('successes', $messageBags['successes']);
Session::flash('errors', $messageBags['errors']);
+
return Redirect::route('budgets.edit', $budget->id)->withInput();
break;
}
}
+
+ /**
+ * @return $this
+ */
+ public function updateIncome()
+ {
+ $date = Session::get('start');
+ /** @var \FireflyIII\Shared\Preferences\PreferencesInterface $preferences */
+ $preferences = App::make('FireflyIII\Shared\Preferences\PreferencesInterface');
+ $budgetAmount = $preferences->get('budgetIncomeTotal' . $date->format('FY'), 1000);
+
+ return View::make('budgets.income')->with('amount', $budgetAmount)->with('date', $date);
+ }
}
\ No newline at end of file
diff --git a/app/controllers/CategoryController.php b/app/controllers/CategoryController.php
index d655245a3e..220f476dcb 100644
--- a/app/controllers/CategoryController.php
+++ b/app/controllers/CategoryController.php
@@ -46,6 +46,7 @@ class CategoryController extends BaseController
$repos->destroy($category);
Session::flash('success', 'The category was deleted.');
+
return Redirect::route('categories.index');
}
@@ -56,8 +57,7 @@ class CategoryController extends BaseController
*/
public function edit(Category $category)
{
- return View::make('categories.edit')->with('category', $category)
- ->with('subTitle', 'Edit category "' . $category->name . '"');
+ return View::make('categories.edit')->with('category', $category)->with('subTitle', 'Edit category "' . $category->name . '"');
}
/**
@@ -122,6 +122,7 @@ class CategoryController extends BaseController
Session::flash('warnings', $messages['warnings']);
Session::flash('successes', $messages['successes']);
Session::flash('error', 'Could not save category: ' . $messages['errors']->first());
+
return Redirect::route('categories.edit', $category->id)->withInput()->withErrors($messages['errors']);
}
// store!
@@ -138,6 +139,7 @@ class CategoryController extends BaseController
Session::flash('warnings', $messageBags['warnings']);
Session::flash('successes', $messageBags['successes']);
Session::flash('errors', $messageBags['errors']);
+
return Redirect::route('categories.edit', $category->id)->withInput();
break;
}
diff --git a/app/controllers/GoogleChartController.php b/app/controllers/GoogleChartController.php
index 281bc124db..61c520089b 100644
--- a/app/controllers/GoogleChartController.php
+++ b/app/controllers/GoogleChartController.php
@@ -7,6 +7,162 @@ use Carbon\Carbon;
class GoogleChartController extends BaseController
{
+ /**
+ * @param Account $account
+ */
+ public function accountBalanceChart(Account $account)
+ {
+ /** @var \Grumpydictator\Gchart\GChart $chart */
+ $chart = App::make('gchart');
+ $chart->addColumn('Day of month', 'date');
+ $chart->addColumn('Balance for ' . $account->name, 'number');
+
+ /*
+ * Loop the date, then loop the accounts, then add balance.
+ */
+ $start = Session::get('start');
+ $end = Session::get('end');
+ $current = clone $start;
+
+ while ($end >= $current) {
+ $row = [clone $current];
+ if ($current > Carbon::now()) {
+ $row[] = null;
+ } else {
+ $row[] = $account->balance($current);
+ }
+
+ $chart->addRowArray($row);
+ $current->addDay();
+ }
+
+
+ $chart->generate();
+
+ return Response::json($chart->getData());
+ }
+
+ /**
+ * @param Account $account
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function accountSankeyInChart(Account $account)
+ {
+ // collect all relevant entries.
+ $set = [];
+
+ /** @var \Grumpydictator\Gchart\GChart $chart */
+ $chart = App::make('gchart');
+ $chart->addColumn('From', 'string');
+ $chart->addColumn('To', 'string', 'domain');
+ $chart->addColumn('Weight', 'number');
+
+ $transactions = $account->transactions()->with(
+ ['transactionjournal', 'transactionjournal.transactions' => function ($q) {
+ $q->where('amount', '<', 0);
+ }, 'transactionjournal.budgets', 'transactionjournal.transactiontype', 'transactionjournal.categories']
+ )->before(Session::get('end'))->after(
+ Session::get('start')
+ )->get();
+
+ /** @var Transaction $transaction */
+ foreach ($transactions as $transaction) {
+ $amount = floatval($transaction->amount);
+ $type = $transaction->transactionJournal->transactionType->type;
+
+ if ($amount > 0 && $type != 'Transfer') {
+
+ $otherAccount = $transaction->transactionJournal->transactions[0]->account->name;
+ $categoryName = isset($transaction->transactionJournal->categories[0]) ? $transaction->transactionJournal->categories[0]->name : '(no cat)';
+ $set[] = [$otherAccount, $categoryName, $amount];
+ $set[] = [$categoryName, $account->name, $amount];
+ }
+ }
+ // loop the set, group everything together:
+ $grouped = [];
+ foreach ($set as $entry) {
+ $key = $entry[0] . $entry[1];
+ if (isset($grouped[$key])) {
+ $grouped[$key][2] += $entry[2];
+ } else {
+ $grouped[$key] = $entry;
+ }
+ }
+
+ // add rows to the chart:
+ foreach ($grouped as $entry) {
+ $chart->addRow($entry[0], $entry[1], $entry[2]);
+ }
+
+ $chart->generate();
+
+ return Response::json($chart->getData());
+
+ }
+
+ /**
+ * @param Account $account
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function accountSankeyOutChart(Account $account)
+ {
+ // collect all relevant entries.
+ $set = [];
+
+ /** @var \Grumpydictator\Gchart\GChart $chart */
+ $chart = App::make('gchart');
+ $chart->addColumn('From', 'string');
+ $chart->addColumn('To', 'string', 'domain');
+ $chart->addColumn('Weight', 'number');
+
+ $transactions = $account->transactions()->with(
+ ['transactionjournal', 'transactionjournal.transactions', 'transactionjournal.budgets', 'transactionjournal.transactiontype',
+ 'transactionjournal.categories']
+ )->before(Session::get('end'))->after(
+ Session::get('start')
+ )->get();
+
+ /** @var Transaction $transaction */
+ foreach ($transactions as $transaction) {
+ $amount = floatval($transaction->amount);
+ $type = $transaction->transactionJournal->transactionType->type;
+
+ if ($amount < 0 && $type != 'Transfer') {
+
+ // from account to a budget (if present).
+ $budgetName = isset($transaction->transactionJournal->budgets[0]) ? $transaction->transactionJournal->budgets[0]->name : '(no budget)';
+ $set[] = [$account->name, $budgetName, $amount * -1];
+
+ // from budget to category.
+ $categoryName = isset($transaction->transactionJournal->categories[0]) ? ' ' . $transaction->transactionJournal->categories[0]->name
+ : '(no cat)';
+ $set[] = [$budgetName, $categoryName, $amount * -1];
+ }
+ }
+ // loop the set, group everything together:
+ $grouped = [];
+ foreach ($set as $entry) {
+ $key = $entry[0] . $entry[1];
+ if (isset($grouped[$key])) {
+ $grouped[$key][2] += $entry[2];
+ } else {
+ $grouped[$key] = $entry;
+ }
+ }
+
+ // add rows to the chart:
+ foreach ($grouped as $entry) {
+ $chart->addRow($entry[0], $entry[1], $entry[2]);
+ }
+
+ $chart->generate();
+
+ return Response::json($chart->getData());
+
+ }
+
/**
* This method renders the b
*/
@@ -60,202 +216,11 @@ class GoogleChartController extends BaseController
}
$chart->generate();
+
return Response::json($chart->getData());
}
- /**
- * @param $year
- *
- * @return \Illuminate\Http\JsonResponse
- */
- public function yearInExp($year)
- {
- try {
- $start = new Carbon('01-01-' . $year);
- } catch (Exception $e) {
- App::abort(500);
- }
- /** @var \Grumpydictator\Gchart\GChart $chart */
- $chart = App::make('gchart');
- $chart->addColumn('Month', 'date');
- $chart->addColumn('Income', 'number');
- $chart->addColumn('Expenses', 'number');
-
- /** @var \FireflyIII\Database\TransactionJournal $tj */
- $tj = App::make('FireflyIII\Database\TransactionJournal');
-
- $end = clone $start;
- $end->endOfYear();
- while ($start < $end) {
-
- // total income:
- $income = $tj->getSumOfIncomesByMonth($start);
- $expense = $tj->getSumOfExpensesByMonth($start);
-
- $chart->addRow(clone $start, $income, $expense);
- $start->addMonth();
- }
-
-
- $chart->generate();
- return Response::json($chart->getData());
-
- }
-
- /**
- * @param $year
- *
- * @return \Illuminate\Http\JsonResponse
- */
- public function yearInExpSum($year)
- {
- try {
- $start = new Carbon('01-01-' . $year);
- } catch (Exception $e) {
- App::abort(500);
- }
- /** @var \Grumpydictator\Gchart\GChart $chart */
- $chart = App::make('gchart');
- $chart->addColumn('Summary', 'string');
- $chart->addColumn('Income', 'number');
- $chart->addColumn('Expenses', 'number');
-
- /** @var \FireflyIII\Database\TransactionJournal $tj */
- $tj = App::make('FireflyIII\Database\TransactionJournal');
-
- $end = clone $start;
- $end->endOfYear();
- $income = 0;
- $expense = 0;
- $count = 0;
- while ($start < $end) {
-
- // total income:
- $income += $tj->getSumOfIncomesByMonth($start);
- $expense += $tj->getSumOfExpensesByMonth($start);
- $count++;
-
- $start->addMonth();
- }
- $chart->addRow('Sum', $income, $expense);
- $count = $count > 0 ? $count : 1;
- $chart->addRow('Average', ($income / $count), ($expense / $count));
-
-
- $chart->generate();
- return Response::json($chart->getData());
-
- }
-
-
- /**
- * @return \Illuminate\Http\JsonResponse
- */
- public function budgetsReportChart($year)
- {
-
- try {
- $start = new Carbon('01-01-' . $year);
- } catch (Exception $e) {
- App::abort(500);
- }
-
- /** @var \Grumpydictator\Gchart\GChart $chart */
- $chart = App::make('gchart');
-
- /** @var \FireflyIII\Database\Budget $bdt */
- $bdt = App::make('FireflyIII\Database\Budget');
- $budgets = $bdt->get();
-
- $chart->addColumn('Month', 'date');
- /** @var \Budget $budget */
- foreach ($budgets as $budget) {
- $chart->addColumn($budget->name, 'number');
- }
- $chart->addColumn('No budget', 'number');
-
- /*
- * Loop budgets this year.
- */
- $end = clone $start;
- $end->endOfYear();
- while ($start <= $end) {
- $row = [clone $start];
-
- foreach ($budgets as $budget) {
- $row[] = $bdt->spentInMonth($budget, $start);
- }
-
- /*
- * Without a budget:
- */
- $endOfMonth = clone $start;
- $endOfMonth->endOfMonth();
- $set = $bdt->transactionsWithoutBudgetInDateRange($start, $endOfMonth);
- $row[] = floatval($set->sum('amount')) * -1;
-
- $chart->addRowArray($row);
- $start->addMonth();
- }
-
-
- $chart->generate();
- return Response::json($chart->getData());
- }
-
- /**
- * @param Component $component
- * @param $year
- *
- * @return \Illuminate\Http\JsonResponse
- */
- public function componentsAndSpending(Component $component, $year)
- {
- try {
- $start = new Carbon('01-01-' . $year);
- } catch (Exception $e) {
- App::abort(500);
- }
-
- if ($component->class == 'Budget') {
- /** @var \FireflyIII\Database\Budget $repos */
- $repos = App::make('FireflyIII\Database\Budget');
- } else {
- /** @var \FireflyIII\Database\Category $repos */
- $repos = App::make('FireflyIII\Database\Category');
- }
-
- /** @var \Grumpydictator\Gchart\GChart $chart */
- $chart = App::make('gchart');
- $chart->addColumn('Month', 'date');
- $chart->addColumn('Budgeted', 'number');
- $chart->addColumn('Spent', 'number');
-
- $end = clone $start;
- $end->endOfYear();
- while ($start <= $end) {
-
- $spent = $repos->spentInMonth($component, $start);
- $repetition = $repos->repetitionOnStartingOnDate($component, $start);
- if ($repetition) {
- $budgeted = floatval($repetition->amount);
- } else {
- $budgeted = null;
- }
-
- $chart->addRow(clone $start, $budgeted, $spent);
-
- $start->addMonth();
- }
-
-
- $chart->generate();
- return Response::json($chart->getData());
-
-
- }
-
/**
* @return \Illuminate\Http\JsonResponse
*/
@@ -321,6 +286,7 @@ class GoogleChartController extends BaseController
$chart->generate();
+
return Response::json($chart->getData());
}
@@ -365,10 +331,120 @@ class GoogleChartController extends BaseController
$chart->generate();
+
return Response::json($chart->getData());
}
+ /**
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function budgetsReportChart($year)
+ {
+
+ try {
+ $start = new Carbon('01-01-' . $year);
+ } catch (Exception $e) {
+ App::abort(500);
+ }
+
+ /** @var \Grumpydictator\Gchart\GChart $chart */
+ $chart = App::make('gchart');
+
+ /** @var \FireflyIII\Database\Budget $bdt */
+ $bdt = App::make('FireflyIII\Database\Budget');
+ $budgets = $bdt->get();
+
+ $chart->addColumn('Month', 'date');
+ /** @var \Budget $budget */
+ foreach ($budgets as $budget) {
+ $chart->addColumn($budget->name, 'number');
+ }
+ $chart->addColumn('No budget', 'number');
+
+ /*
+ * Loop budgets this year.
+ */
+ $end = clone $start;
+ $end->endOfYear();
+ while ($start <= $end) {
+ $row = [clone $start];
+
+ foreach ($budgets as $budget) {
+ $row[] = $bdt->spentInMonth($budget, $start);
+ }
+
+ /*
+ * Without a budget:
+ */
+ $endOfMonth = clone $start;
+ $endOfMonth->endOfMonth();
+ $set = $bdt->transactionsWithoutBudgetInDateRange($start, $endOfMonth);
+ $row[] = floatval($set->sum('amount')) * -1;
+
+ $chart->addRowArray($row);
+ $start->addMonth();
+ }
+
+
+ $chart->generate();
+
+ return Response::json($chart->getData());
+ }
+
+ /**
+ * @param Component $component
+ * @param $year
+ *
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function componentsAndSpending(Component $component, $year)
+ {
+ try {
+ $start = new Carbon('01-01-' . $year);
+ } catch (Exception $e) {
+ App::abort(500);
+ }
+
+ if ($component->class == 'Budget') {
+ /** @var \FireflyIII\Database\Budget $repos */
+ $repos = App::make('FireflyIII\Database\Budget');
+ } else {
+ /** @var \FireflyIII\Database\Category $repos */
+ $repos = App::make('FireflyIII\Database\Category');
+ }
+
+ /** @var \Grumpydictator\Gchart\GChart $chart */
+ $chart = App::make('gchart');
+ $chart->addColumn('Month', 'date');
+ $chart->addColumn('Budgeted', 'number');
+ $chart->addColumn('Spent', 'number');
+
+ $end = clone $start;
+ $end->endOfYear();
+ while ($start <= $end) {
+
+ $spent = $repos->spentInMonth($component, $start);
+ $repetition = $repos->repetitionOnStartingOnDate($component, $start);
+ if ($repetition) {
+ $budgeted = floatval($repetition->amount);
+ } else {
+ $budgeted = null;
+ }
+
+ $chart->addRow(clone $start, $budgeted, $spent);
+
+ $start->addMonth();
+ }
+
+
+ $chart->generate();
+
+ return Response::json($chart->getData());
+
+
+ }
+
/**
* @return \Illuminate\Http\JsonResponse
* @throws \FireflyIII\Exception\FireflyException
@@ -380,14 +456,8 @@ class GoogleChartController extends BaseController
* Set of paid transaction journals.
* Set of unpaid recurring transactions.
*/
- $paid = [
- 'items' => [],
- 'amount' => 0
- ];
- $unpaid = [
- 'items' => [],
- 'amount' => 0
- ];
+ $paid = ['items' => [], 'amount' => 0];
+ $unpaid = ['items' => [], 'amount' => 0];
/** @var \Grumpydictator\Gchart\GChart $chart */
$chart = App::make('gchart');
@@ -455,160 +525,93 @@ class GoogleChartController extends BaseController
$chart->addRow('Paid: ' . join(', ', $paid['items']), $paid['amount']);
$chart->generate();
+
return Response::json($chart->getData());
}
/**
- * @param Account $account
- */
- public function accountBalanceChart(Account $account)
- {
- /** @var \Grumpydictator\Gchart\GChart $chart */
- $chart = App::make('gchart');
- $chart->addColumn('Day of month', 'date');
- $chart->addColumn('Balance for ' . $account->name, 'number');
-
- /*
- * Loop the date, then loop the accounts, then add balance.
- */
- $start = Session::get('start');
- $end = Session::get('end');
- $current = clone $start;
-
- while ($end >= $current) {
- $row = [clone $current];
- if ($current > Carbon::now()) {
- $row[] = null;
- } else {
- $row[] = $account->balance($current);
- }
-
- $chart->addRowArray($row);
- $current->addDay();
- }
-
-
- $chart->generate();
- return Response::json($chart->getData());
- }
-
- /**
- * @param Account $account
+ * @param $year
*
* @return \Illuminate\Http\JsonResponse
*/
- public function accountSankeyOutChart(Account $account)
+ public function yearInExp($year)
{
- // collect all relevant entries.
- $set = [];
-
+ try {
+ $start = new Carbon('01-01-' . $year);
+ } catch (Exception $e) {
+ App::abort(500);
+ }
/** @var \Grumpydictator\Gchart\GChart $chart */
$chart = App::make('gchart');
- $chart->addColumn('From', 'string');
- $chart->addColumn('To', 'string', 'domain');
- $chart->addColumn('Weight', 'number');
+ $chart->addColumn('Month', 'date');
+ $chart->addColumn('Income', 'number');
+ $chart->addColumn('Expenses', 'number');
- $transactions = $account->transactions()->with(
- ['transactionjournal', 'transactionjournal.transactions', 'transactionjournal.budgets', 'transactionjournal.transactiontype',
- 'transactionjournal.categories']
- )->before(Session::get('end'))->after(
- Session::get('start')
- )->get();
+ /** @var \FireflyIII\Database\TransactionJournal $tj */
+ $tj = App::make('FireflyIII\Database\TransactionJournal');
- /** @var Transaction $transaction */
- foreach ($transactions as $transaction) {
- $amount = floatval($transaction->amount);
- $type = $transaction->transactionJournal->transactionType->type;
+ $end = clone $start;
+ $end->endOfYear();
+ while ($start < $end) {
- if ($amount < 0 && $type != 'Transfer') {
+ // total income:
+ $income = $tj->getSumOfIncomesByMonth($start);
+ $expense = $tj->getSumOfExpensesByMonth($start);
- // from account to a budget (if present).
- $budgetName = isset($transaction->transactionJournal->budgets[0]) ? $transaction->transactionJournal->budgets[0]->name : '(no budget)';
- $set[] = [$account->name, $budgetName, $amount * -1];
-
- // from budget to category.
- $categoryName = isset($transaction->transactionJournal->categories[0]) ? ' ' . $transaction->transactionJournal->categories[0]->name
- : '(no cat)';
- $set[] = [$budgetName, $categoryName, $amount * -1];
- }
- }
- // loop the set, group everything together:
- $grouped = [];
- foreach ($set as $entry) {
- $key = $entry[0] . $entry[1];
- if (isset($grouped[$key])) {
- $grouped[$key][2] += $entry[2];
- } else {
- $grouped[$key] = $entry;
- }
+ $chart->addRow(clone $start, $income, $expense);
+ $start->addMonth();
}
- // add rows to the chart:
- foreach ($grouped as $entry) {
- $chart->addRow($entry[0], $entry[1], $entry[2]);
- }
$chart->generate();
+
return Response::json($chart->getData());
}
/**
- * @param Account $account
+ * @param $year
*
* @return \Illuminate\Http\JsonResponse
*/
- public function accountSankeyInChart(Account $account)
+ public function yearInExpSum($year)
{
- // collect all relevant entries.
- $set = [];
-
+ try {
+ $start = new Carbon('01-01-' . $year);
+ } catch (Exception $e) {
+ App::abort(500);
+ }
/** @var \Grumpydictator\Gchart\GChart $chart */
$chart = App::make('gchart');
- $chart->addColumn('From', 'string');
- $chart->addColumn('To', 'string', 'domain');
- $chart->addColumn('Weight', 'number');
+ $chart->addColumn('Summary', 'string');
+ $chart->addColumn('Income', 'number');
+ $chart->addColumn('Expenses', 'number');
- $transactions = $account->transactions()->with(
- ['transactionjournal', 'transactionjournal.transactions' => function ($q) {
- $q->where('amount', '<', 0);
- }, 'transactionjournal.budgets', 'transactionjournal.transactiontype', 'transactionjournal.categories']
- )->before(Session::get('end'))->after(
- Session::get('start')
- )->get();
+ /** @var \FireflyIII\Database\TransactionJournal $tj */
+ $tj = App::make('FireflyIII\Database\TransactionJournal');
- /** @var Transaction $transaction */
- foreach ($transactions as $transaction) {
- $amount = floatval($transaction->amount);
- $type = $transaction->transactionJournal->transactionType->type;
+ $end = clone $start;
+ $end->endOfYear();
+ $income = 0;
+ $expense = 0;
+ $count = 0;
+ while ($start < $end) {
- if ($amount > 0 && $type != 'Transfer') {
+ // total income:
+ $income += $tj->getSumOfIncomesByMonth($start);
+ $expense += $tj->getSumOfExpensesByMonth($start);
+ $count++;
- $otherAccount = $transaction->transactionJournal->transactions[0]->account->name;
- $categoryName = isset($transaction->transactionJournal->categories[0]) ? $transaction->transactionJournal->categories[0]->name
- : '(no cat)';
- $set[] = [$otherAccount, $categoryName, $amount];
- $set[] = [$categoryName, $account->name, $amount];
- }
- }
- // loop the set, group everything together:
- $grouped = [];
- foreach ($set as $entry) {
- $key = $entry[0] . $entry[1];
- if (isset($grouped[$key])) {
- $grouped[$key][2] += $entry[2];
- } else {
- $grouped[$key] = $entry;
- }
+ $start->addMonth();
}
+ $chart->addRow('Sum', $income, $expense);
+ $count = $count > 0 ? $count : 1;
+ $chart->addRow('Average', ($income / $count), ($expense / $count));
- // add rows to the chart:
- foreach ($grouped as $entry) {
- $chart->addRow($entry[0], $entry[1], $entry[2]);
- }
$chart->generate();
+
return Response::json($chart->getData());
}
diff --git a/app/controllers/GoogleTableController.php b/app/controllers/GoogleTableController.php
index 18c45283d5..9b5cfeccba 100644
--- a/app/controllers/GoogleTableController.php
+++ b/app/controllers/GoogleTableController.php
@@ -7,38 +7,6 @@ use FireflyIII\Exception\FireflyException;
class GoogleTableController extends BaseController
{
- /**
- * @return \Illuminate\Http\JsonResponse
- */
- public function categoryList()
- {
-
- /** @var \FireflyIII\Database\Category $repos */
- $repos = App::make('FireflyIII\Database\Category');
-
- /** @var \Grumpydictator\Gchart\GChart $chart */
- $chart = App::make('gchart');
- $chart->addColumn('ID', 'number');
- $chart->addColumn('ID_Edit', 'string');
- $chart->addColumn('ID_Delete', 'string');
- $chart->addColumn('Name_URL', 'string');
- $chart->addColumn('Name', 'string');
-
- $list = $repos->get();
-
- /** @var Category $entry */
- foreach ($list as $entry) {
- $chart->addRow(
- $entry->id, route('categories.edit', $entry->id), route('categories.delete', $entry->id), route('categories.show', $entry->id), $entry->name
- );
- }
-
-
- $chart->generate();
- return Response::json($chart->getData());
-
- }
-
/**
* @param $what
*
@@ -76,20 +44,197 @@ class GoogleTableController extends BaseController
/** @var \Account $entry */
foreach ($list as $entry) {
- $edit = route('accounts.edit', $entry->id);
+ $edit = route('accounts.edit', $entry->id);
$delete = route('accounts.delete', $entry->id);
- $show = route('accounts.show', $entry->id);
+ $show = route('accounts.show', $entry->id);
$chart->addRow($entry->id, $edit, $delete, $show, $entry->name, $entry->balance());
}
$chart->generate();
+
return Response::json($chart->getData());
}
/**
- * @param Component $component
+ * @return \Illuminate\Http\JsonResponse
+ */
+ public function categoryList()
+ {
+
+ /** @var \FireflyIII\Database\Category $repos */
+ $repos = App::make('FireflyIII\Database\Category');
+
+ /** @var \Grumpydictator\Gchart\GChart $chart */
+ $chart = App::make('gchart');
+ $chart->addColumn('ID', 'number');
+ $chart->addColumn('ID_Edit', 'string');
+ $chart->addColumn('ID_Delete', 'string');
+ $chart->addColumn('Name_URL', 'string');
+ $chart->addColumn('Name', 'string');
+
+ $list = $repos->get();
+
+ /** @var Category $entry */
+ foreach ($list as $entry) {
+ $chart->addRow(
+ $entry->id, route('categories.edit', $entry->id), route('categories.delete', $entry->id), route('categories.show', $entry->id), $entry->name
+ );
+ }
+
+
+ $chart->generate();
+
+ return Response::json($chart->getData());
+
+ }
+
+ public function recurringList()
+ {
+ /** @var \Grumpydictator\Gchart\GChart $chart */
+ $chart = App::make('gchart');
+ $chart->addColumn('ID', 'number');
+ $chart->addColumn('ID_Edit', 'string');
+ $chart->addColumn('ID_Delete', 'string');
+ $chart->addColumn('Name_URL', 'string');
+ $chart->addColumn('Name', 'string');
+
+ /** @var \FireflyIII\Database\RecurringTransaction $repository */
+ $repository = App::make('FireflyIII\Database\RecurringTransaction');
+
+ $set = $repository->get();
+
+ /** @var \RecurringTransaction $entry */
+ foreach ($set as $entry) {
+ $row = [$entry->id, route('recurring.edit', $entry->id), route('recurring.delete', $entry->id), route('recurring.show', $entry->id), $entry->name];
+ $chart->addRowArray($row);
+
+ }
+
+
+ /*
+ *
name |
+ match |
+ amount_min |
+ amount_max |
+ date |
+ active |
+ automatch |
+ repeat_freq |
+ id |
+
+ */
+ $chart->generate();
+
+ return Response::json($chart->getData());
+ }
+
+ /**
+ * @param Account $account
+ */
+ public function transactionsByAccount(Account $account)
+ {
+ /** @var \Grumpydictator\Gchart\GChart $chart */
+ $chart = App::make('gchart');
+ $chart->addColumn('ID', 'number');
+ $chart->addColumn('ID_Edit', 'string');
+ $chart->addColumn('ID_Delete', 'string');
+ $chart->addColumn('Date', 'date');
+ $chart->addColumn('Description_URL', 'string');
+ $chart->addColumn('Description', 'string');
+ $chart->addColumn('Amount', 'number');
+ $chart->addColumn('From_URL', 'string');
+ $chart->addColumn('From', 'string');
+ $chart->addColumn('To_URL', 'string');
+ $chart->addColumn('To', 'string');
+ $chart->addColumn('Budget_URL', 'string');
+ $chart->addColumn('Budget', 'string');
+ $chart->addColumn('Category_URL', 'string');
+ $chart->addColumn('Category', 'string');
+
+
+ /*
+ * Find transactions:
+ */
+ $accountID = $account->id;
+ $transactions = $account->transactions()->with(
+ ['transactionjournal', 'transactionjournal.transactions' => function ($q) use ($accountID) {
+ $q->where('account_id', '!=', $accountID);
+ }, 'transactionjournal.budgets', 'transactionjournal.transactiontype', 'transactionjournal.categories']
+ )->before(Session::get('end'))->after(
+ Session::get('start')
+ )->orderBy('date', 'DESC')->get();
+
+ /** @var Transaction $transaction */
+ foreach ($transactions as $transaction) {
+ $date = $transaction->transactionJournal->date;
+ $descriptionURL = route('transactions.show', $transaction->transaction_journal_id);
+ $description = $transaction->transactionJournal->description;
+ $amount = floatval($transaction->amount);
+
+ if ($transaction->transactionJournal->transactions[0]->account->id == $account->id) {
+ $opposingAccountURI = route('accounts.show', $transaction->transactionJournal->transactions[1]->account->id);
+ $opposingAccountName = $transaction->transactionJournal->transactions[1]->account->name;
+ } else {
+ $opposingAccountURI = route('accounts.show', $transaction->transactionJournal->transactions[0]->account->id);
+ $opposingAccountName = $transaction->transactionJournal->transactions[0]->account->name;
+ }
+ if (isset($transaction->transactionJournal->budgets[0])) {
+ $budgetURL = route('budgets.show', $transaction->transactionJournal->budgets[0]->id);
+ $budget = $transaction->transactionJournal->budgets[0]->name;
+ } else {
+ $budgetURL = '';
+ $budget = '';
+ }
+
+ if (isset($transaction->transactionJournal->categories[0])) {
+ $categoryURL = route('categories.show', $transaction->transactionJournal->categories[0]->id);
+ $category = $transaction->transactionJournal->categories[0]->name;
+ } else {
+ $categoryURL = '';
+ $category = '';
+ }
+
+
+ if ($amount < 0) {
+ $from = $account->name;
+ $fromURL = route('accounts.show', $account->id);
+
+ $to = $opposingAccountName;
+ $toURL = $opposingAccountURI;
+ } else {
+ $to = $account->name;
+ $toURL = route('accounts.show', $account->id);
+
+ $from = $opposingAccountName;
+ $fromURL = $opposingAccountURI;
+ }
+
+ $id = $transaction->transactionJournal->id;
+ $edit = route('transactions.edit', $transaction->transactionJournal->id);
+ $delete = route('transactions.delete', $transaction->transactionJournal->id);
+ $chart->addRow(
+ $id, $edit, $delete, $date, $descriptionURL, $description, $amount, $fromURL, $from, $toURL, $to, $budgetURL, $budget, $categoryURL, $category
+ );
+ }
+
+ // Date |
+ // Description |
+ // Amount (€) |
+ // From |
+ // To |
+ // Budget / category |
+ // ID |
+
+
+ $chart->generate();
+
+ return Response::json($chart->getData());
+ }
+
+ /**
+ * @param Component $component
* @param LimitRepetition $repetition
*/
public function transactionsByComponent(Component $component, LimitRepetition $repetition = null)
@@ -114,26 +259,25 @@ class GoogleTableController extends BaseController
if (is_null($repetition)) {
$journals = $component->transactionjournals()->with(['budgets', 'categories', 'transactions', 'transactions.account'])->orderBy('date', 'DESC')
- ->get();
+ ->get();
} else {
$journals = $component->transactionjournals()->with(['budgets', 'categories', 'transactions', 'transactions.account'])->after(
$repetition->startdate
- )
- ->before($repetition->enddate)->orderBy('date', 'DESC')->get();
+ )->before($repetition->enddate)->orderBy('date', 'DESC')->get();
}
/** @var TransactionJournal $transaction */
foreach ($journals as $journal) {
- $date = $journal->date;
+ $date = $journal->date;
$descriptionURL = route('transactions.show', $journal->id);
- $description = $journal->description;
+ $description = $journal->description;
/** @var Transaction $transaction */
foreach ($journal->transactions as $transaction) {
if (floatval($transaction->amount) > 0) {
$amount = floatval($transaction->amount);
- $to = $transaction->account->name;
- $toURL = route('accounts.show', $transaction->account->id);
+ $to = $transaction->account->name;
+ $toURL = route('accounts.show', $transaction->account->id);
} else {
- $from = $transaction->account->name;
+ $from = $transaction->account->name;
$fromURL = route('accounts.show', $transaction->account->id);
}
@@ -148,15 +292,15 @@ class GoogleTableController extends BaseController
if (isset($journal->categories[0])) {
$categoryURL = route('categories.show', $journal->categories[0]->id);
- $category = $journal->categories[0]->name;
+ $category = $journal->categories[0]->name;
} else {
$categoryURL = '';
- $category = '';
+ $category = '';
}
- $id = $journal->id;
- $edit = route('transactions.edit', $journal->id);
+ $id = $journal->id;
+ $edit = route('transactions.edit', $journal->id);
$delete = route('transactions.delete', $journal->id);
$chart->addRow(
$id, $edit, $delete, $date, $descriptionURL, $description, $amount, $fromURL, $from, $toURL, $to, $budgetURL, $component, $categoryURL,
@@ -166,55 +310,11 @@ class GoogleTableController extends BaseController
$chart->generate();
+
return Response::json($chart->getData());
}
- public function recurringList()
- {
- /** @var \Grumpydictator\Gchart\GChart $chart */
- $chart = App::make('gchart');
- $chart->addColumn('ID', 'number');
- $chart->addColumn('ID_Edit', 'string');
- $chart->addColumn('ID_Delete', 'string');
- $chart->addColumn('Name_URL', 'string');
- $chart->addColumn('Name', 'string');
-
- /** @var \FireflyIII\Database\RecurringTransaction $repository */
- $repository = App::make('FireflyIII\Database\RecurringTransaction');
-
- $set = $repository->get();
-
- /** @var \RecurringTransaction $entry */
- foreach ($set as $entry) {
- $row = [
- $entry->id,
- route('recurring.edit', $entry->id),
- route('recurring.delete', $entry->id),
- route('recurring.show', $entry->id),
- $entry->name
- ];
- $chart->addRowArray($row);
-
- }
-
-
- /*
- * name |
- match |
- amount_min |
- amount_max |
- date |
- active |
- automatch |
- repeat_freq |
- id |
-
- */
- $chart->generate();
- return Response::json($chart->getData());
- }
-
/**
* @param $what
*
@@ -261,158 +361,55 @@ class GoogleTableController extends BaseController
/** @var TransactionJournal $journal */
foreach ($list as $journal) {
- $date = $journal->date;
+ $date = $journal->date;
$descriptionURL = route('transactions.show', $journal->id);
- $description = $journal->description;
- $id = $journal->id;
+ $description = $journal->description;
+ $id = $journal->id;
if ($journal->transactions[0]->amount < 0) {
- $fromURL = route('accounts.show', $journal->transactions[0]->account->id);
+ $fromURL = route('accounts.show', $journal->transactions[0]->account->id);
$fromName = $journal->transactions[0]->account->name;
- $amount = floatval($journal->transactions[0]->amount);
+ $amount = floatval($journal->transactions[0]->amount);
- $toURL = route('accounts.show', $journal->transactions[1]->account->id);
+ $toURL = route('accounts.show', $journal->transactions[1]->account->id);
$toName = $journal->transactions[1]->account->name;
} else {
- $fromURL = route('accounts.show', $journal->transactions[1]->account->id);
+ $fromURL = route('accounts.show', $journal->transactions[1]->account->id);
$fromName = $journal->transactions[1]->account->name;
- $amount = floatval($journal->transactions[1]->amount);
+ $amount = floatval($journal->transactions[1]->amount);
- $toURL = route('accounts.show', $journal->transactions[0]->account->id);
+ $toURL = route('accounts.show', $journal->transactions[0]->account->id);
$toName = $journal->transactions[0]->account->name;
}
if (isset($journal->budgets[0])) {
$budgetURL = route('budgets.show', $journal->budgets[0]->id);
- $budget = $journal->budgets[0]->name;
+ $budget = $journal->budgets[0]->name;
} else {
$budgetURL = '';
- $budget = '';
+ $budget = '';
}
if (isset($journal->categories[0])) {
$categoryURL = route('categories.show', $journal->categories[0]->id);
- $category = $journal->categories[0]->name;
+ $category = $journal->categories[0]->name;
} else {
$categoryURL = '';
- $category = '';
+ $category = '';
}
- $edit = route('transactions.edit', $journal->id);
+ $edit = route('transactions.edit', $journal->id);
$delete = route('transactions.delete', $journal->id);
$chart->addRow(
- $id, $edit, $delete, $date, $descriptionURL, $description, $amount,
- $fromURL, $fromName, $toURL, $toName,
- $budgetURL, $budget, $categoryURL, $category
+ $id, $edit, $delete, $date, $descriptionURL, $description, $amount, $fromURL, $fromName, $toURL, $toName, $budgetURL, $budget, $categoryURL,
+ $category
);
}
$chart->generate();
- return Response::json($chart->getData());
- }
- /**
- * @param Account $account
- */
- public function transactionsByAccount(Account $account)
- {
- /** @var \Grumpydictator\Gchart\GChart $chart */
- $chart = App::make('gchart');
- $chart->addColumn('ID', 'number');
- $chart->addColumn('ID_Edit', 'string');
- $chart->addColumn('ID_Delete', 'string');
- $chart->addColumn('Date', 'date');
- $chart->addColumn('Description_URL', 'string');
- $chart->addColumn('Description', 'string');
- $chart->addColumn('Amount', 'number');
- $chart->addColumn('From_URL', 'string');
- $chart->addColumn('From', 'string');
- $chart->addColumn('To_URL', 'string');
- $chart->addColumn('To', 'string');
- $chart->addColumn('Budget_URL', 'string');
- $chart->addColumn('Budget', 'string');
- $chart->addColumn('Category_URL', 'string');
- $chart->addColumn('Category', 'string');
-
-
- /*
- * Find transactions:
- */
- $accountID = $account->id;
- $transactions = $account->transactions()->with(
- ['transactionjournal', 'transactionjournal.transactions' => function ($q) use ($accountID) {
- $q->where('account_id', '!=', $accountID);
- }, 'transactionjournal.budgets', 'transactionjournal.transactiontype',
- 'transactionjournal.categories']
- )->before(Session::get('end'))->after(
- Session::get('start')
- )->orderBy('date', 'DESC')->get();
-
- /** @var Transaction $transaction */
- foreach ($transactions as $transaction) {
- $date = $transaction->transactionJournal->date;
- $descriptionURL = route('transactions.show', $transaction->transaction_journal_id);
- $description = $transaction->transactionJournal->description;
- $amount = floatval($transaction->amount);
-
- if ($transaction->transactionJournal->transactions[0]->account->id == $account->id) {
- $opposingAccountURI = route('accounts.show', $transaction->transactionJournal->transactions[1]->account->id);
- $opposingAccountName = $transaction->transactionJournal->transactions[1]->account->name;
- } else {
- $opposingAccountURI = route('accounts.show', $transaction->transactionJournal->transactions[0]->account->id);
- $opposingAccountName = $transaction->transactionJournal->transactions[0]->account->name;
- }
- if (isset($transaction->transactionJournal->budgets[0])) {
- $budgetURL = route('budgets.show', $transaction->transactionJournal->budgets[0]->id);
- $budget = $transaction->transactionJournal->budgets[0]->name;
- } else {
- $budgetURL = '';
- $budget = '';
- }
-
- if (isset($transaction->transactionJournal->categories[0])) {
- $categoryURL = route('categories.show', $transaction->transactionJournal->categories[0]->id);
- $category = $transaction->transactionJournal->categories[0]->name;
- } else {
- $categoryURL = '';
- $category = '';
- }
-
-
- if ($amount < 0) {
- $from = $account->name;
- $fromURL = route('accounts.show', $account->id);
-
- $to = $opposingAccountName;
- $toURL = $opposingAccountURI;
- } else {
- $to = $account->name;
- $toURL = route('accounts.show', $account->id);
-
- $from = $opposingAccountName;
- $fromURL = $opposingAccountURI;
- }
-
- $id = $transaction->transactionJournal->id;
- $edit = route('transactions.edit', $transaction->transactionJournal->id);
- $delete = route('transactions.delete', $transaction->transactionJournal->id);
- $chart->addRow(
- $id, $edit, $delete, $date, $descriptionURL, $description, $amount, $fromURL, $from, $toURL, $to, $budgetURL, $budget, $categoryURL, $category
- );
- }
-
-// Date |
-// Description |
-// Amount (€) |
-// From |
-// To |
-// Budget / category |
-// ID |
-
-
- $chart->generate();
return Response::json($chart->getData());
}
}
\ No newline at end of file
diff --git a/app/controllers/HomeController.php b/app/controllers/HomeController.php
index 833ea0a044..035400b976 100644
--- a/app/controllers/HomeController.php
+++ b/app/controllers/HomeController.php
@@ -1,5 +1,4 @@
prev();
- return Redirect::back();
- //return Redirect::route('index');
- }
-
- /**
- * @return \Illuminate\Http\RedirectResponse
- */
- public function sessionNext()
- {
- /** @var \FireflyIII\Shared\Toolkit\Navigation $navigation */
- $navigation = App::make('FireflyIII\Shared\Toolkit\Navigation');
- $navigation->next();
- return Redirect::back();
- //return Redirect::route('index');
- }
-
- /**
- * @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
*/
@@ -66,9 +21,9 @@ class HomeController extends BaseController
*/
public function index()
{
-// Event::fire('limits.check');
-// Event::fire('piggybanks.check');
-// Event::fire('recurring.check');
+ // Event::fire('limits.check');
+ // Event::fire('piggybanks.check');
+ // Event::fire('recurring.check');
// count, maybe Firefly needs some introducing text to show:
/** @var \FireflyIII\Database\Account $acct */
@@ -103,7 +58,54 @@ class HomeController extends BaseController
}
// build the home screen:
- return View::make('index')->with('count', $count)->with('transactions', $transactions)->with('title', 'Firefly')
- ->with('subTitle', 'What\'s playing?')->with('mainTitleIcon', 'fa-fire');
+ 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()
+ {
+ /** @var \FireflyIII\Shared\Toolkit\Navigation $navigation */
+ $navigation = App::make('FireflyIII\Shared\Toolkit\Navigation');
+ $navigation->next();
+
+ return Redirect::back();
+ //return Redirect::route('index');
+ }
+
+ /**
+ * @return \Illuminate\Http\RedirectResponse
+ */
+ public function sessionPrev()
+ {
+ /** @var \FireflyIII\Shared\Toolkit\Navigation $navigation */
+ $navigation = App::make('FireflyIII\Shared\Toolkit\Navigation');
+ $navigation->prev();
+
+ return Redirect::back();
+ //return Redirect::route('index');
}
}
\ No newline at end of file
diff --git a/app/controllers/JsonController.php b/app/controllers/JsonController.php
index 3dbe758b39..9f0512572a 100644
--- a/app/controllers/JsonController.php
+++ b/app/controllers/JsonController.php
@@ -16,8 +16,8 @@ class JsonController extends BaseController
{
/** @var \FireflyIII\Database\Category $categories */
$categories = App::make('FireflyIII\Database\Category');
- $list = $categories->get();
- $return = [];
+ $list = $categories->get();
+ $return = [];
foreach ($list as $entry) {
$return[] = $entry->name;
}
@@ -36,8 +36,8 @@ class JsonController extends BaseController
{
/** @var \FireflyIII\Database\Account $accounts */
$accounts = App::make('FireflyIII\Database\Account');
- $list = $accounts->getExpenseAccounts();
- $return = [];
+ $list = $accounts->getExpenseAccounts();
+ $return = [];
foreach ($list as $entry) {
$return[] = $entry->name;
}
@@ -53,8 +53,8 @@ class JsonController extends BaseController
{
/** @var \FireflyIII\Database\Account $accounts */
$accounts = App::make('FireflyIII\Database\Account');
- $list = $accounts->getRevenueAccounts();
- $return = [];
+ $list = $accounts->getRevenueAccounts();
+ $return = [];
foreach ($list as $entry) {
$return[] = $entry->name;
}
diff --git a/app/controllers/PiggybankController.php b/app/controllers/PiggybankController.php
index c1e728b063..8b94de89a7 100644
--- a/app/controllers/PiggybankController.php
+++ b/app/controllers/PiggybankController.php
@@ -19,6 +19,25 @@ class PiggybankController extends BaseController
{
}
+ /**
+ * @param Piggybank $piggybank
+ *
+ * @return $this
+ */
+ public function add(Piggybank $piggybank)
+ {
+ /** @var \FireflyIII\Database\Piggybank $acct */
+ $repos = App::make('FireflyIII\Database\Piggybank');
+
+ $leftOnAccount = $repos->leftOnAccount($piggybank->account);
+ $savedSoFar = $piggybank->currentRelevantRep()->currentamount;
+ $leftToSave = $piggybank->targetamount - $savedSoFar;
+ $amount = min($leftOnAccount, $leftToSave);
+
+
+ return View::make('piggybanks.add', compact('piggybank'))->with('maxAmount', $amount);
+ }
+
/**
* @throws NotImplementedException
*/
@@ -35,8 +54,10 @@ class PiggybankController extends BaseController
$accounts = $toolkit->makeSelectList($acct->getAssetAccounts());
- return View::make('piggybanks.create', compact('accounts', 'periods'))->with('title', 'Piggy banks')->with('mainTitleIcon', 'fa-sort-amount-asc')
- ->with('subTitle', 'Create new piggy bank')->with('subTitleIcon', 'fa-plus');
+
+ return View::make('piggybanks.create', compact('accounts', 'periods'))->with('title', 'Piggy banks')->with('mainTitleIcon', 'fa-sort-amount-asc')->with(
+ 'subTitle', 'Create new piggy bank'
+ )->with('subTitleIcon', 'fa-plus');
}
/**
@@ -46,11 +67,9 @@ class PiggybankController extends BaseController
*/
public function delete(Piggybank $piggybank)
{
- return View::make('piggybanks.delete')
- ->with('piggybank', $piggybank)
- ->with('subTitle', 'Delete "' . $piggybank->name . '"')
- ->with('title', 'Piggy banks')
- ->with('mainTitleIcon', 'fa-sort-amount-asc');
+ return View::make('piggybanks.delete')->with('piggybank', $piggybank)->with('subTitle', 'Delete "' . $piggybank->name . '"')->with(
+ 'title', 'Piggy banks'
+ )->with('mainTitleIcon', 'fa-sort-amount-asc');
}
/**
@@ -89,38 +108,46 @@ class PiggybankController extends BaseController
/*
* Flash some data to fill the form.
*/
- $prefilled = [
- 'name' => $piggybank->name,
- 'account_id' => $piggybank->account_id,
- 'targetamount' => $piggybank->targetamount,
- 'targetdate' => $piggybank->targetdate,
- 'remind_me' => intval($piggybank->remind_me) == 1 ? true : false
- ];
+ $prefilled = ['name' => $piggybank->name, 'account_id' => $piggybank->account_id, 'targetamount' => $piggybank->targetamount,
+ 'targetdate' => $piggybank->targetdate, 'remind_me' => intval($piggybank->remind_me) == 1 ? true : false];
Session::flash('prefilled', $prefilled);
return View::make('piggybanks.edit', compact('piggybank', 'accounts', 'periods', 'prefilled'))->with('title', 'Piggybanks')->with(
'mainTitleIcon', 'fa-sort-amount-asc'
- )
- ->with('subTitle', 'Edit piggy bank "' . e($piggybank->name) . '"')->with('subTitleIcon', 'fa-pencil');
+ )->with('subTitle', 'Edit piggy bank "' . e($piggybank->name) . '"')->with('subTitleIcon', 'fa-pencil');
}
- /**
- * @param Piggybank $piggybank
- *
- * @return $this
- */
- public function add(Piggybank $piggybank)
+ public function index()
{
- /** @var \FireflyIII\Database\Piggybank $acct */
+ /** @var \FireflyIII\Database\Piggybank $repos */
$repos = App::make('FireflyIII\Database\Piggybank');
- $leftOnAccount = $repos->leftOnAccount($piggybank->account);
- $savedSoFar = $piggybank->currentRelevantRep()->currentamount;
- $leftToSave = $piggybank->targetamount - $savedSoFar;
- $amount = min($leftOnAccount, $leftToSave);
+ /** @var Collection $piggybanks */
+ $piggybanks = $repos->get();
+ $accounts = [];
+ /** @var Piggybank $piggybank */
+ foreach ($piggybanks as $piggybank) {
+ $piggybank->savedSoFar = floatval($piggybank->currentRelevantRep()->currentamount);
+ $piggybank->percentage = intval($piggybank->savedSoFar / $piggybank->targetamount * 100);
+ $piggybank->leftToSave = $piggybank->targetamount - $piggybank->savedSoFar;
- return View::make('piggybanks.add', compact('piggybank'))->with('maxAmount', $amount);
+ /*
+ * Fill account information:
+ */
+ $account = $piggybank->account;
+ if (!isset($accounts[$account->id])) {
+ $accounts[$account->id] = ['name' => $account->name, 'balance' => $account->balance(),
+ 'leftForPiggybanks' => $repos->leftOnAccount($account), 'sumOfSaved' => $piggybank->savedSoFar,
+ 'sumOfTargets' => floatval($piggybank->targetamount), 'leftToSave' => $piggybank->leftToSave];
+ } else {
+ $accounts[$account->id]['sumOfSaved'] += $piggybank->savedSoFar;
+ $accounts[$account->id]['sumOfTargets'] += floatval($piggybank->targetamount);
+ $accounts[$account->id]['leftToSave'] += $piggybank->leftToSave;
+ }
+ }
+
+ return View::make('piggybanks.index', compact('piggybanks', 'accounts'))->with('title', 'Piggy banks')->with('mainTitleIcon', 'fa-sort-amount-asc');
}
/**
@@ -148,17 +175,8 @@ class PiggybankController extends BaseController
} else {
Session::flash('error', 'Could not add ' . mf($amount, false) . ' to "' . e($piggybank->name) . '".');
}
- return Redirect::route('piggybanks.index');
- }
- /**
- * @param Piggybank $piggybank
- *
- * @return \Illuminate\View\View
- */
- public function remove(Piggybank $piggybank)
- {
- return View::make('piggybanks.remove', compact('piggybank'));
+ return Redirect::route('piggybanks.index');
}
/**
@@ -180,47 +198,20 @@ class PiggybankController extends BaseController
} else {
Session::flash('error', 'Could not remove ' . mf($amount, false) . ' from "' . e($piggybank->name) . '".');
}
+
return Redirect::route('piggybanks.index');
}
- public function index()
+ /**
+ * @param Piggybank $piggybank
+ *
+ * @return \Illuminate\View\View
+ */
+ public function remove(Piggybank $piggybank)
{
- /** @var \FireflyIII\Database\Piggybank $repos */
- $repos = App::make('FireflyIII\Database\Piggybank');
-
- /** @var Collection $piggybanks */
- $piggybanks = $repos->get();
-
- $accounts = [];
- /** @var Piggybank $piggybank */
- foreach ($piggybanks as $piggybank) {
- $piggybank->savedSoFar = floatval($piggybank->currentRelevantRep()->currentamount);
- $piggybank->percentage = intval($piggybank->savedSoFar / $piggybank->targetamount * 100);
- $piggybank->leftToSave = $piggybank->targetamount - $piggybank->savedSoFar;
-
- /*
- * Fill account information:
- */
- $account = $piggybank->account;
- if (!isset($accounts[$account->id])) {
- $accounts[$account->id] = [
- 'name' => $account->name,
- 'balance' => $account->balance(),
- 'leftForPiggybanks' => $repos->leftOnAccount($account),
- 'sumOfSaved' => $piggybank->savedSoFar,
- 'sumOfTargets' => floatval($piggybank->targetamount),
- 'leftToSave' => $piggybank->leftToSave
- ];
- } else {
- $accounts[$account->id]['sumOfSaved'] += $piggybank->savedSoFar;
- $accounts[$account->id]['sumOfTargets'] += floatval($piggybank->targetamount);
- $accounts[$account->id]['leftToSave'] += $piggybank->leftToSave;
- }
- }
- return View::make('piggybanks.index', compact('piggybanks', 'accounts'))->with('title', 'Piggy banks')->with('mainTitleIcon', 'fa-sort-amount-asc');
+ return View::make('piggybanks.remove', compact('piggybank'));
}
-
public function show(Piggybank $piggyBank)
{
throw new NotImplementedException;
@@ -249,6 +240,7 @@ class PiggybankController extends BaseController
Session::flash('warnings', $messages['warnings']);
Session::flash('successes', $messages['successes']);
Session::flash('error', 'Could not save piggy bank: ' . $messages['errors']->first());
+
return Redirect::route('piggybanks.create')->withInput()->withErrors($messages['errors']);
}
// store!
@@ -296,6 +288,7 @@ class PiggybankController extends BaseController
Session::flash('warnings', $messages['warnings']);
Session::flash('successes', $messages['successes']);
Session::flash('error', 'Could not save piggy bank: ' . $messages['errors']->first());
+
return Redirect::route('piggybanks.edit', $piggyBank->id)->withInput()->withErrors($messages['errors']);
}
// store!
@@ -312,6 +305,7 @@ class PiggybankController extends BaseController
Session::flash('warnings', $messageBags['warnings']);
Session::flash('successes', $messageBags['successes']);
Session::flash('errors', $messageBags['errors']);
+
return Redirect::route('piggybanks.edit', $piggyBank->id)->withInput();
break;
}
diff --git a/app/controllers/PreferencesController.php b/app/controllers/PreferencesController.php
index e8e6b4b3e9..6e165af1c3 100644
--- a/app/controllers/PreferencesController.php
+++ b/app/controllers/PreferencesController.php
@@ -28,13 +28,12 @@ class PreferencesController extends BaseController
/** @var \FireflyIII\Shared\Preferences\Preferences $preferences */
$preferences = App::make('FireflyIII\Shared\Preferences\Preferences');
- $accounts = $acct->getAssetAccounts();
- $viewRange = $preferences->get('viewRange', '1M');
+ $accounts = $acct->getAssetAccounts();
+ $viewRange = $preferences->get('viewRange', '1M');
$viewRangeValue = $viewRange->data;
- $frontpage = $preferences->get('frontpageAccounts', []);
+ $frontpage = $preferences->get('frontpageAccounts', []);
- return View::make('preferences.index')->with('accounts', $accounts)->with('frontpageAccounts', $frontpage)
- ->with('viewRange', $viewRangeValue);
+ return View::make('preferences.index')->with('accounts', $accounts)->with('frontpageAccounts', $frontpage)->with('viewRange', $viewRangeValue);
}
/**
diff --git a/app/controllers/ProfileController.php b/app/controllers/ProfileController.php
index ebfbc437cd..938d41f28a 100644
--- a/app/controllers/ProfileController.php
+++ b/app/controllers/ProfileController.php
@@ -6,15 +6,6 @@
class ProfileController extends BaseController
{
- /**
- * @return \Illuminate\View\View
- *
- */
- public function index()
- {
- return View::make('profile.index')->with('title', 'Profile')->with('subTitle', Auth::user()->email)->with('mainTitleIcon', 'fa-user');
- }
-
/**
* @return \Illuminate\View\View
*/
@@ -25,6 +16,15 @@ class ProfileController extends BaseController
);
}
+ /**
+ * @return \Illuminate\View\View
+ *
+ */
+ public function index()
+ {
+ return View::make('profile.index')->with('title', 'Profile')->with('subTitle', Auth::user()->email)->with('mainTitleIcon', 'fa-user');
+ }
+
/**
* @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View
*/
diff --git a/app/controllers/RecurringController.php b/app/controllers/RecurringController.php
index b780a4822b..1569a7e9ec 100644
--- a/app/controllers/RecurringController.php
+++ b/app/controllers/RecurringController.php
@@ -1,7 +1,5 @@
with('periods', $periods)
- ->with('subTitle', 'Create new');
+ return View::make('recurring.create')->with('periods', $periods)->with('subTitle', 'Create new');
}
/**
@@ -35,9 +31,9 @@ class RecurringController extends BaseController
*/
public function delete(RecurringTransaction $recurringTransaction)
{
- return View::make('recurring.delete')
- ->with('recurringTransaction', $recurringTransaction)
- ->with('subTitle', 'Delete "' . $recurringTransaction->name . '"');
+ return View::make('recurring.delete')->with('recurringTransaction', $recurringTransaction)->with(
+ 'subTitle', 'Delete "' . $recurringTransaction->name . '"'
+ );
}
/**
@@ -72,10 +68,9 @@ class RecurringController extends BaseController
{
$periods = \Config::get('firefly.periods_to_text');
- return View::make('recurring.edit')
- ->with('periods', $periods)
- ->with('recurringTransaction', $recurringTransaction)
- ->with('subTitle', 'Edit "' . $recurringTransaction->name . '"');
+ return View::make('recurring.edit')->with('periods', $periods)->with('recurringTransaction', $recurringTransaction)->with(
+ 'subTitle', 'Edit "' . $recurringTransaction->name . '"'
+ );
}
/**
@@ -86,31 +81,32 @@ class RecurringController extends BaseController
return View::make('recurring.index');
}
- /**
- *
- */
- public function show(RecurringTransaction $recurringTransaction)
- {
- return View::make('recurring.show')
- ->with('recurring', $recurringTransaction)
- ->with('subTitle', $recurringTransaction->name);
- }
-
/**
* @param RecurringTransaction $recurringTransaction
+ *
* @return mixed
*/
public function rescan(RecurringTransaction $recurringTransaction)
{
if (intval($recurringTransaction->active) == 0) {
Session::flash('warning', 'Inactive recurring transactions cannot be scanned.');
+
return Redirect::back();
}
throw new NotImplementedException;
Session::flash('success', 'Rescanned everything.');
+
return Redirect::back();
}
+ /**
+ *
+ */
+ public function show(RecurringTransaction $recurringTransaction)
+ {
+ return View::make('recurring.show')->with('recurring', $recurringTransaction)->with('subTitle', $recurringTransaction->name);
+ }
+
public function store()
{
throw new NotImplementedException;
diff --git a/app/controllers/ReportController.php b/app/controllers/ReportController.php
index baab2c53a0..8c9f1fa021 100644
--- a/app/controllers/ReportController.php
+++ b/app/controllers/ReportController.php
@@ -49,11 +49,7 @@ class ReportController extends BaseController
$end = clone $date;
$end->endOfYear();
while ($date < $end) {
- $summary[] = [
- 'month' => $date->format('F'),
- 'income' => $tj->getSumOfIncomesByMonth($date),
- 'expense' => $tj->getSumOfExpensesByMonth($date),
- ];
+ $summary[] = ['month' => $date->format('F'), 'income' => $tj->getSumOfIncomesByMonth($date), 'expense' => $tj->getSumOfExpensesByMonth($date),];
$date->addMonth();
}
diff --git a/app/controllers/SearchController.php b/app/controllers/SearchController.php
index 49fe5ff1af..6217bdcac2 100644
--- a/app/controllers/SearchController.php
+++ b/app/controllers/SearchController.php
@@ -14,7 +14,7 @@ class SearchController extends BaseController
throw new NotImplementedException;
$subTitle = null;
$rawQuery = null;
- $result = [];
+ $result = [];
if (!is_null(Input::get('q'))) {
$rawQuery = trim(Input::get('q'));
$words = explode(' ', $rawQuery);
@@ -25,18 +25,12 @@ class SearchController extends BaseController
$categories = $this->_helper->searchCategories($words);
$budgets = $this->_helper->searchBudgets($words);
$tags = $this->_helper->searchTags($words);
- $result = [
- 'transactions' => $transactions,
- 'accounts' => $accounts,
- 'categories' => $categories,
- 'budgets' => $budgets,
- 'tags' => $tags
- ];
+ $result = ['transactions' => $transactions, 'accounts' => $accounts, 'categories' => $categories, 'budgets' => $budgets, 'tags' => $tags];
}
return View::make('search.index')->with('title', 'Search')->with('subTitle', $subTitle)->with(
'mainTitleIcon', 'fa-search'
- )->with('query', $rawQuery)->with('result',$result);
+ )->with('query', $rawQuery)->with('result', $result);
}
}
\ No newline at end of file
diff --git a/app/controllers/TransactionController.php b/app/controllers/TransactionController.php
index 32af9b1acc..2cf16b311c 100644
--- a/app/controllers/TransactionController.php
+++ b/app/controllers/TransactionController.php
@@ -23,36 +23,6 @@ class TransactionController extends BaseController
View::share('mainTitleIcon', 'fa-repeat');
}
- /**
- * @param $what
- *
- * @return $this
- */
- public function index($what)
- {
-
- switch ($what) {
- case 'expenses':
- case 'withdrawal':
- $subTitleIcon = 'fa-long-arrow-left';
- $subTitle = 'Expenses';
- break;
- case 'revenue':
- case 'deposit':
- $subTitleIcon = 'fa-long-arrow-right';
- $subTitle = 'Revenue, income and deposits';
- break;
- case 'transfer':
- case 'transfers':
- $subTitleIcon = 'fa-arrows-h';
- $subTitle = 'Transfers';
- break;
- }
-
- return View::make('transactions.index', compact('subTitle', 'subTitleIcon'))->with('what', $what);
-
- }
-
/**
* Shows the view helping the user to create a new transaction journal.
*
@@ -122,7 +92,6 @@ class TransactionController extends BaseController
}
-
/**
* @param TransactionJournal $transactionJournal
*
@@ -201,12 +170,7 @@ class TransactionController extends BaseController
/*
* Data to properly display the edit form.
*/
- $prefilled = [
- 'date' => $journal->date->format('Y-m-d'),
- 'category' => '',
- 'budget_id' => 0,
- 'piggybank_id' => $piggyBankId
- ];
+ $prefilled = ['date' => $journal->date->format('Y-m-d'), 'category' => '', 'budget_id' => 0, 'piggybank_id' => $piggyBankId];
/*
* Fill in the category.
@@ -245,6 +209,7 @@ class TransactionController extends BaseController
/*
* Show the view.
*/
+
return View::make('transactions.edit')->with('journal', $journal)->with('accounts', $accounts)->with(
'what', $what
)->with('budgets', $budgets)->with('data', $prefilled)->with('piggies', $piggies)->with(
@@ -252,6 +217,36 @@ class TransactionController extends BaseController
);
}
+ /**
+ * @param $what
+ *
+ * @return $this
+ */
+ public function index($what)
+ {
+
+ switch ($what) {
+ case 'expenses':
+ case 'withdrawal':
+ $subTitleIcon = 'fa-long-arrow-left';
+ $subTitle = 'Expenses';
+ break;
+ case 'revenue':
+ case 'deposit':
+ $subTitleIcon = 'fa-long-arrow-right';
+ $subTitle = 'Revenue, income and deposits';
+ break;
+ case 'transfer':
+ case 'transfers':
+ $subTitleIcon = 'fa-arrows-h';
+ $subTitle = 'Transfers';
+ break;
+ }
+
+ return View::make('transactions.index', compact('subTitle', 'subTitleIcon'))->with('what', $what);
+
+ }
+
/**
* @param TransactionJournal $journal
*
@@ -273,8 +268,8 @@ class TransactionController extends BaseController
*/
public function store($what)
{
- $data = Input::except('_token');
- $data['what'] = $what;
+ $data = Input::except('_token');
+ $data['what'] = $what;
$data['currency'] = 'EUR';
/** @var \FireflyIII\Database\TransactionJournal $repository */
@@ -292,6 +287,7 @@ class TransactionController extends BaseController
Session::flash('warnings', $messages['warnings']);
Session::flash('successes', $messages['successes']);
Session::flash('error', 'Could not save transaction: ' . $messages['errors']->first());
+
return Redirect::route('transactions.create', $what)->withInput()->withErrors($messages['errors']);
}
// store!
@@ -301,7 +297,7 @@ class TransactionController extends BaseController
if ($data['post_submit_action'] == 'create_another') {
return Redirect::route('transactions.create', $what);
} else {
- return Redirect::route('transactions.index',$what);
+ return Redirect::route('transactions.index', $what);
}
break;
case 'validate_only':
@@ -310,7 +306,7 @@ class TransactionController extends BaseController
Session::flash('successes', $messageBags['successes']);
Session::flash('errors', $messageBags['errors']);
- return Redirect::route('transactions.create',$what)->withInput();
+ return Redirect::route('transactions.create', $what)->withInput();
break;
}
@@ -335,6 +331,7 @@ class TransactionController extends BaseController
*/
if ($messageBag->count() > 0) {
Session::flash('error', 'Could not save transaction: ' . $messageBag->first());
+
return Redirect::route('transactions.create', [$what])->withInput()->withErrors($messageBag);
}
@@ -359,6 +356,7 @@ class TransactionController extends BaseController
Session::flash('warnings', $messageBags['warnings']);
Session::flash('successes', $messageBags['successes']);
Session::flash('errors', $messageBags['errors']);
+
return Redirect::route('transactions.create', [$what])->withInput();
break;
default:
@@ -408,6 +406,7 @@ class TransactionController extends BaseController
Session::flash('warnings', $messageBags['warnings']);
Session::flash('successes', $messageBags['successes']);
Session::flash('errors', $messageBags['errors']);
+
return Redirect::route('transactions.edit', $journal->id)->withInput();
break;
default:
diff --git a/app/controllers/UserController.php b/app/controllers/UserController.php
index 60300f52e7..18ca03429a 100644
--- a/app/controllers/UserController.php
+++ b/app/controllers/UserController.php
@@ -23,6 +23,18 @@ class UserController extends BaseController
return View::make('user.login');
}
+ /**
+ * Logout user.
+ *
+ * @return \Illuminate\Http\RedirectResponse
+ */
+ public function logout()
+ {
+ Auth::logout();
+ Session::flush();
+
+ return Redirect::route('index');
+ }
/**
* Login.
@@ -32,10 +44,7 @@ class UserController extends BaseController
public function postLogin()
{
$rememberMe = Input::get('remember_me') == '1';
- $data = [
- 'email' => Input::get('email'),
- 'password' => Input::get('password')
- ];
+ $data = ['email' => Input::get('email'), 'password' => Input::get('password')];
$result = Auth::attempt($data, $rememberMe);
if ($result) {
return Redirect::route('index');
@@ -46,20 +55,6 @@ class UserController extends BaseController
return View::make('user.login');
}
- /**
- * If allowed, show the register form.
- *
- * @return $this|\Illuminate\View\View
- */
- public function register()
- {
- if (Config::get('auth.allow_register') !== true) {
- return View::make('error')->with('message', 'Not possible');
- }
-
- return View::make('user.register');
- }
-
/**
* If allowed, register the user.
*
@@ -85,7 +80,6 @@ class UserController extends BaseController
$user = $repository->register(Input::all());
-
//$user = $this->user->register(Input::all());
if ($user) {
if (Config::get('auth.verify_mail') === true) {
@@ -101,29 +95,6 @@ class UserController extends BaseController
return View::make('user.register');
}
- /**
- * Logout user.
- *
- * @return \Illuminate\Http\RedirectResponse
- */
- public function logout()
- {
- Auth::logout();
- Session::flush();
-
- return Redirect::route('index');
- }
-
- /**
- * Show form to help user get a new password.
- *
- * @return \Illuminate\View\View
- */
- public function remindme()
- {
- return View::make('user.remindme');
- }
-
/**
* If need to verify, send new reset code.
* Otherwise, send new password.
@@ -157,6 +128,30 @@ class UserController extends BaseController
}
+ /**
+ * If allowed, show the register form.
+ *
+ * @return $this|\Illuminate\View\View
+ */
+ public function register()
+ {
+ if (Config::get('auth.allow_register') !== true) {
+ return View::make('error')->with('message', 'Not possible');
+ }
+
+ return View::make('user.register');
+ }
+
+ /**
+ * Show form to help user get a new password.
+ *
+ * @return \Illuminate\View\View
+ */
+ public function remindme()
+ {
+ return View::make('user.remindme');
+ }
+
/**
* Send a user a password based on his reset code.
*