mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-11-03 12:45:20 +00:00
Fixed some yearly charts.
This commit is contained in:
@@ -197,11 +197,8 @@ class BudgetController extends Controller
|
|||||||
*
|
*
|
||||||
* @return \Symfony\Component\HttpFoundation\Response
|
* @return \Symfony\Component\HttpFoundation\Response
|
||||||
*/
|
*/
|
||||||
public function year(BudgetRepositoryInterface $repository, $year, $shared = false)
|
public function year(BudgetRepositoryInterface $repository, $report_type, Carbon $start, Carbon $end, Collection $accounts)
|
||||||
{
|
{
|
||||||
$start = new Carbon($year . '-01-01');
|
|
||||||
$end = new Carbon($year . '-12-31');
|
|
||||||
$shared = $shared == 'shared' ? true : false;
|
|
||||||
$allBudgets = $repository->getBudgets();
|
$allBudgets = $repository->getBudgets();
|
||||||
$budgets = new Collection;
|
$budgets = new Collection;
|
||||||
|
|
||||||
@@ -218,7 +215,7 @@ class BudgetController extends Controller
|
|||||||
// filter empty budgets:
|
// filter empty budgets:
|
||||||
|
|
||||||
foreach ($allBudgets as $budget) {
|
foreach ($allBudgets as $budget) {
|
||||||
$spent = $repository->balanceInPeriod($budget, $start, $end, $shared);
|
$spent = $repository->balanceInPeriodForList($budget, $start, $end, $accounts);
|
||||||
if ($spent != 0) {
|
if ($spent != 0) {
|
||||||
$budgets->push($budget);
|
$budgets->push($budget);
|
||||||
}
|
}
|
||||||
@@ -234,7 +231,7 @@ class BudgetController extends Controller
|
|||||||
|
|
||||||
// each budget, fill the row:
|
// each budget, fill the row:
|
||||||
foreach ($budgets as $budget) {
|
foreach ($budgets as $budget) {
|
||||||
$spent = $repository->balanceInPeriod($budget, $start, $month, $shared);
|
$spent = $repository->balanceInPeriodForList($budget, $start, $month, $accounts);
|
||||||
$row[] = $spent * -1;
|
$row[] = $spent * -1;
|
||||||
}
|
}
|
||||||
$entries->push($row);
|
$entries->push($row);
|
||||||
|
|||||||
@@ -213,15 +213,15 @@ class CategoryController extends Controller
|
|||||||
* This chart will only show expenses.
|
* This chart will only show expenses.
|
||||||
*
|
*
|
||||||
* @param CategoryRepositoryInterface $repository
|
* @param CategoryRepositoryInterface $repository
|
||||||
* @param $year
|
* @param $report_type
|
||||||
* @param bool $shared
|
* @param Carbon $start
|
||||||
|
* @param Carbon $end
|
||||||
|
* @param Collection $accounts
|
||||||
*
|
*
|
||||||
* @return \Symfony\Component\HttpFoundation\Response
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function spentInYear(CategoryRepositoryInterface $repository, $year, $shared = false)
|
public function spentInYear(CategoryRepositoryInterface $repository, $report_type, Carbon $start, Carbon $end, Collection $accounts)
|
||||||
{
|
{
|
||||||
$start = new Carbon($year . '-01-01');
|
|
||||||
$end = new Carbon($year . '-12-31');
|
|
||||||
|
|
||||||
$cache = new CacheProperties; // chart properties for cache:
|
$cache = new CacheProperties; // chart properties for cache:
|
||||||
$cache->addProperty($start);
|
$cache->addProperty($start);
|
||||||
@@ -232,12 +232,11 @@ class CategoryController extends Controller
|
|||||||
return Response::json($cache->get()); // @codeCoverageIgnore
|
return Response::json($cache->get()); // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
|
|
||||||
$shared = $shared == 'shared' ? true : false;
|
|
||||||
$allCategories = $repository->getCategories();
|
$allCategories = $repository->getCategories();
|
||||||
$entries = new Collection;
|
$entries = new Collection;
|
||||||
$categories = $allCategories->filter(
|
$categories = $allCategories->filter(
|
||||||
function (Category $category) use ($repository, $start, $end, $shared) {
|
function (Category $category) use ($repository, $start, $end, $accounts) {
|
||||||
$spent = $repository->balanceInPeriod($category, $start, $end, $shared);
|
$spent = $repository->balanceInPeriodForList($category, $start, $end, $accounts);
|
||||||
if ($spent < 0) {
|
if ($spent < 0) {
|
||||||
return $category;
|
return $category;
|
||||||
}
|
}
|
||||||
@@ -252,7 +251,7 @@ class CategoryController extends Controller
|
|||||||
$row = [clone $start]; // make a row:
|
$row = [clone $start]; // make a row:
|
||||||
|
|
||||||
foreach ($categories as $category) { // each budget, fill the row
|
foreach ($categories as $category) { // each budget, fill the row
|
||||||
$spent = $repository->balanceInPeriod($category, $start, $month, $shared);
|
$spent = $repository->balanceInPeriodForList($category, $start, $month, $accounts);
|
||||||
if ($spent < 0) {
|
if ($spent < 0) {
|
||||||
$row[] = $spent * -1;
|
$row[] = $spent * -1;
|
||||||
} else {
|
} else {
|
||||||
@@ -272,16 +271,15 @@ class CategoryController extends Controller
|
|||||||
* This chart will only show income.
|
* This chart will only show income.
|
||||||
*
|
*
|
||||||
* @param CategoryRepositoryInterface $repository
|
* @param CategoryRepositoryInterface $repository
|
||||||
* @param $year
|
* @param $report_type
|
||||||
* @param bool $shared
|
* @param Carbon $start
|
||||||
|
* @param Carbon $end
|
||||||
|
* @param Collection $accounts
|
||||||
*
|
*
|
||||||
* @return \Symfony\Component\HttpFoundation\Response
|
* @return \Illuminate\Http\JsonResponse
|
||||||
*/
|
*/
|
||||||
public function earnedInYear(CategoryRepositoryInterface $repository, $year, $shared = false)
|
public function earnedInYear(CategoryRepositoryInterface $repository, $report_type, Carbon $start, Carbon $end, Collection $accounts)
|
||||||
{
|
{
|
||||||
$start = new Carbon($year . '-01-01');
|
|
||||||
$end = new Carbon($year . '-12-31');
|
|
||||||
|
|
||||||
$cache = new CacheProperties; // chart properties for cache:
|
$cache = new CacheProperties; // chart properties for cache:
|
||||||
$cache->addProperty($start);
|
$cache->addProperty($start);
|
||||||
$cache->addProperty($end);
|
$cache->addProperty($end);
|
||||||
@@ -291,12 +289,11 @@ class CategoryController extends Controller
|
|||||||
return Response::json($cache->get()); // @codeCoverageIgnore
|
return Response::json($cache->get()); // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
|
|
||||||
$shared = $shared == 'shared' ? true : false;
|
|
||||||
$allCategories = $repository->getCategories();
|
$allCategories = $repository->getCategories();
|
||||||
$allEntries = new Collection;
|
$allEntries = new Collection;
|
||||||
$categories = $allCategories->filter(
|
$categories = $allCategories->filter(
|
||||||
function (Category $category) use ($repository, $start, $end, $shared) {
|
function (Category $category) use ($repository, $start, $end, $accounts) {
|
||||||
$spent = $repository->balanceInPeriod($category, $start, $end, $shared);
|
$spent = $repository->balanceInPeriodForList($category, $start, $end, $accounts);
|
||||||
if ($spent > 0) {
|
if ($spent > 0) {
|
||||||
return $category;
|
return $category;
|
||||||
}
|
}
|
||||||
@@ -311,7 +308,7 @@ class CategoryController extends Controller
|
|||||||
$row = [clone $start]; // make a row:
|
$row = [clone $start]; // make a row:
|
||||||
|
|
||||||
foreach ($categories as $category) { // each budget, fill the row
|
foreach ($categories as $category) { // each budget, fill the row
|
||||||
$spent = $repository->balanceInPeriod($category, $start, $month, $shared);
|
$spent = $repository->balanceInPeriodForList($category, $start, $month, $accounts);
|
||||||
if ($spent > 0) {
|
if ($spent > 0) {
|
||||||
$row[] = $spent;
|
$row[] = $spent;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -355,18 +355,22 @@ Route::group(
|
|||||||
|
|
||||||
// budgets:
|
// budgets:
|
||||||
Route::get('/chart/budget/frontpage', ['uses' => 'Chart\BudgetController@frontpage']);
|
Route::get('/chart/budget/frontpage', ['uses' => 'Chart\BudgetController@frontpage']);
|
||||||
Route::get('/chart/budget/year/{year}/{shared?}', ['uses' => 'Chart\BudgetController@year'])->where(['year' => '[0-9]{4}', 'shared' => 'shared']);
|
|
||||||
|
// this chart is used in reports:
|
||||||
|
Route::get('/chart/budget/year/{report_type}/{start_date}/{end_date}/{accountList}', ['uses' => 'Chart\BudgetController@year'])->where(['year' => '[0-9]{4}', 'shared' => 'shared']);
|
||||||
|
|
||||||
|
|
||||||
Route::get('/chart/budget/{budget}/{limitrepetition}', ['uses' => 'Chart\BudgetController@budgetLimit']);
|
Route::get('/chart/budget/{budget}/{limitrepetition}', ['uses' => 'Chart\BudgetController@budgetLimit']);
|
||||||
Route::get('/chart/budget/{budget}', ['uses' => 'Chart\BudgetController@budget']);
|
Route::get('/chart/budget/{budget}', ['uses' => 'Chart\BudgetController@budget']);
|
||||||
|
|
||||||
// categories:
|
// categories:
|
||||||
Route::get('/chart/category/frontpage', ['uses' => 'Chart\CategoryController@frontpage']);
|
Route::get('/chart/category/frontpage', ['uses' => 'Chart\CategoryController@frontpage']);
|
||||||
Route::get('/chart/category/spent-in-year/{year}/{shared?}', ['uses' => 'Chart\CategoryController@spentInYear'])->where(
|
|
||||||
['year' => '[0-9]{4}', 'shared' => 'shared']
|
// both charts are for reports:
|
||||||
);
|
Route::get('/chart/category/spent-in-year/{report_type}/{start_date}/{end_date}/{accountList}', ['uses' => 'Chart\CategoryController@spentInYear']);
|
||||||
Route::get('/chart/category/earned-in-year/{year}/{shared?}', ['uses' => 'Chart\CategoryController@earnedInYear'])->where(
|
Route::get('/chart/category/earned-in-year/{report_type}/{start_date}/{end_date}/{accountList}', ['uses' => 'Chart\CategoryController@earnedInYear']);
|
||||||
['year' => '[0-9]{4}', 'shared' => 'shared']
|
|
||||||
);
|
|
||||||
Route::get('/chart/category/{category}/period', ['uses' => 'Chart\CategoryController@currentPeriod']);
|
Route::get('/chart/category/{category}/period', ['uses' => 'Chart\CategoryController@currentPeriod']);
|
||||||
Route::get('/chart/category/{category}/period/{date}', ['uses' => 'Chart\CategoryController@specificPeriod']);
|
Route::get('/chart/category/{category}/period/{date}', ['uses' => 'Chart\CategoryController@specificPeriod']);
|
||||||
Route::get('/chart/category/{category}/all', ['uses' => 'Chart\CategoryController@all']);
|
Route::get('/chart/category/{category}/all', ['uses' => 'Chart\CategoryController@all']);
|
||||||
|
|||||||
@@ -109,18 +109,17 @@ function drawChart() {
|
|||||||
columnChart('chart/report/in-out/' + reportType + '/' + startDate + '/' + endDate + '/' + accountIds, 'income-expenses-chart');
|
columnChart('chart/report/in-out/' + reportType + '/' + startDate + '/' + endDate + '/' + accountIds, 'income-expenses-chart');
|
||||||
columnChart('chart/report/in-out-sum/' + reportType + '/' + startDate + '/' + endDate + '/' + accountIds, 'income-expenses-sum-chart');
|
columnChart('chart/report/in-out-sum/' + reportType + '/' + startDate + '/' + endDate + '/' + accountIds, 'income-expenses-sum-chart');
|
||||||
}
|
}
|
||||||
//if (typeof stackedColumnChart !== 'undefined' && typeof year !== 'undefined' && typeof month === 'undefined') {
|
if (typeof stackedColumnChart !== 'undefined' && typeof year !== 'undefined' && typeof month === 'undefined') {
|
||||||
// stackedColumnChart('chart/budget/year/' + year + shared, 'budgets');
|
stackedColumnChart('chart/budget/year/' + reportType + '/' + startDate + '/' + endDate + '/' + accountIds, 'budgets');
|
||||||
// stackedColumnChart('chart/category/spent-in-year/' + year + shared, 'categories-spent-in-year');
|
stackedColumnChart('chart/category/spent-in-year/' + reportType + '/' + startDate + '/' + endDate + '/' + accountIds, 'categories-spent-in-year');
|
||||||
// stackedColumnChart('chart/category/earned-in-year/' + year + shared, 'categories-earned-in-year');
|
stackedColumnChart('chart/category/earned-in-year/' + reportType + '/' + startDate + '/' + endDate + '/' + accountIds, 'categories-earned-in-year');
|
||||||
//}
|
}
|
||||||
|
|
||||||
//if (typeof lineChart !== 'undefined' && typeof month !== 'undefined' && typeof reportURL === 'undefined') {
|
//if (typeof lineChart !== 'undefined' && typeof month !== 'undefined' && typeof reportURL === 'undefined') {
|
||||||
// lineChart('/chart/account/month/' + year + '/' + month + shared, 'account-balances-chart');
|
// lineChart('/chart/account/month/' + year + '/' + month + shared, 'account-balances-chart');
|
||||||
//}
|
//}
|
||||||
|
|
||||||
if (typeof lineChart !== 'undefined' && typeof accountIds !== 'undefined') {
|
if (typeof lineChart !== 'undefined' && typeof accountIds !== 'undefined') {
|
||||||
//http://firefly.app/chart/account/report/default;20151101;20151130;2
|
|
||||||
lineChart('/chart/account/report/' + reportType + '/' + startDate + '/' + endDate + '/' + accountIds, 'account-balances-chart');
|
lineChart('/chart/account/report/' + reportType + '/' + startDate + '/' + endDate + '/' + accountIds, 'account-balances-chart');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user