Some new report data. Also, the report page now uses in excess of 3000 queries. Lol

This commit is contained in:
James Cole
2014-12-06 09:16:54 +01:00
parent 1997666196
commit f4ecf2d1aa
6 changed files with 301 additions and 22 deletions

View File

@@ -34,8 +34,9 @@ class AccountController extends BaseController
$subTitleIcon = 'fa-download';
break;
}
$subTitle = 'Create a new ' . $what . ' account';
return View::make('accounts.create')->with('subTitle', 'Create a new ' . $what . ' account')->with('what', $what)->with(compact('subTitleIcon'));
return View::make('accounts.create', compact('subTitleIcon', 'what', 'subTitle'));
}
/**
@@ -45,9 +46,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 . '"'
);
$subTitle = 'Delete ' . strtolower($account->accountType->type) . ' "' . $account->name . '"';
return View::make('accounts.delete', compact('account', 'subTitle'));
}
/**
@@ -98,29 +99,31 @@ class AccountController extends BaseController
}
/*
* Delete it
* Delete the initial balance as well.
*/
if ($initialBalance) {
$acct->destroy($initialBalance);
}
$name = $account->name;
$acct->destroy($account);
Session::flash('success', 'The account was deleted.');
$return = 'asset';
switch ($type) {
case 'Asset account':
case 'Default account':
return Redirect::route('accounts.index', 'asset');
break;
case 'Expense account':
case 'Beneficiary account':
return Redirect::route('accounts.index', 'expense');
$return = 'expense';
break;
case 'Revenue account':
return Redirect::route('accounts.index', 'revenue');
$return = 'revenue';
break;
}
Session::flash('success', 'The ' . $return . ' account "' . e($name) . '" was deleted.');
return Redirect::route('accounts.index', $return);
}

View File

@@ -221,23 +221,67 @@ class ReportController extends BaseController
*/
public function year($year)
{
Config::set('app.debug',false);
try {
$date = new Carbon('01-01-' . $year);
} catch (Exception $e) {
App::abort(500);
}
$date = new Carbon('01-01-' . $year);
/** @var \FireflyIII\Database\TransactionJournal $tj */
$tj = App::make('FireflyIII\Database\TransactionJournal');
/** @var \FireflyIII\Database\Account $accountRepository */
$accountRepository = App::make('FireflyIII\Database\Account');
/** @var \FireflyIII\Database\Report $reportRepository */
$reportRepository = App::make('FireflyIII\Database\Report');
$accounts = $accountRepository->getAssetAccounts();
// get some sums going
$summary = [];
/** @var \Account $account */
$accounts->each(
function (\Account $account) {
if ($account->getMeta('accountRole') == 'sharedExpense') {
$account->sharedExpense = true;
} else {
$account->sharedExpense = false;
}
}
);
$end = clone $date;
$end->endOfYear();
while ($date < $end) {
$summary[] = ['month' => $date->format('F'), 'income' => $tj->getSumOfIncomesByMonth($date), 'expense' => $tj->getSumOfExpensesByMonth($date),];
$month = $date->format('F');
$income = 0;
$incomeShared = 0;
$expense = 0;
$expenseShared = 0;
foreach ($accounts as $account) {
if ($account->sharedExpense === true) {
$incomeShared += $reportRepository->getIncomeByMonth($account, $date);
$expenseShared += $reportRepository->getExpenseByMonth($account, $date);
} else {
$income += $reportRepository->getIncomeByMonth($account, $date);
$expense += $reportRepository->getExpenseByMonth($account, $date);
}
}
$summary[] = [
'month' => $month,
'income' => $income,
'expense' => $expense,
'incomeShared' => $incomeShared,
'expenseShared' => $expenseShared,
];
$date->addMonth();
}