Clean up code.

This commit is contained in:
James Cole 2015-12-28 07:38:02 +01:00
parent a34516932b
commit 52a0d7cf7b
4 changed files with 2 additions and 95 deletions

View File

@ -54,5 +54,5 @@ interface CategoryChartGenerator
*
* @return array
*/
public function spentInYear(Collection $categories, Collection $entries);
public function spentInPeriod(Collection $categories, Collection $entries);
}

View File

@ -159,39 +159,6 @@ class ChartJsCategoryChartGenerator implements CategoryChartGenerator
}
/**
* @param Collection $categories
* @param Collection $entries
*
* @return array
*/
public function spentInYear(Collection $categories, Collection $entries)
{
// language:
$format = trans('config.month');
$data = [
'count' => 0,
'labels' => [],
'datasets' => [],
];
foreach ($categories as $category) {
$data['labels'][] = $category->name;
}
foreach ($entries as $entry) {
$date = $entry[0]->formatLocalized($format);
array_shift($entry);
$data['count']++;
$data['datasets'][] = ['label' => $date, 'data' => $entry];
}
return $data;
}
/**
* @param Collection $categories
* @param Collection $entries

View File

@ -36,7 +36,7 @@ class AccountController extends Controller
/**
* Shows the balances for a given set of dates and accounts.
*
*
* @param $report_type
* @param Carbon $start
* @param Carbon $end

View File

@ -287,66 +287,6 @@ class CategoryController extends Controller
}
/**
* This chart will only show expenses.
*
* @param CategoryRepositoryInterface $repository
* @param $report_type
* @param Carbon $start
* @param Carbon $end
* @param Collection $accounts
*
* @return \Illuminate\Http\JsonResponse
*/
public function spentInYear(CategoryRepositoryInterface $repository, $report_type, Carbon $start, Carbon $end, Collection $accounts)
{
$cache = new CacheProperties; // chart properties for cache:
$cache->addProperty($start);
$cache->addProperty($report_type);
$cache->addProperty($end);
$cache->addProperty($accounts);
$cache->addProperty('category');
$cache->addProperty('spent-in-year');
if ($cache->has()) {
return Response::json($cache->get()); // @codeCoverageIgnore
}
$allCategories = $repository->getCategories();
$entries = new Collection;
$categories = $allCategories->filter(
function (Category $category) use ($repository, $start, $end, $accounts) {
$spent = $repository->balanceInPeriod($category, $start, $end, $accounts);
if ($spent < 0) {
return $category;
}
return null;
}
);
while ($start < $end) {
$month = clone $start; // month is the current end of the period
$month->endOfMonth();
$row = [clone $start]; // make a row:
foreach ($categories as $category) { // each budget, fill the row
$spent = $repository->balanceInPeriod($category, $start, $month, $accounts);
if ($spent < 0) {
$row[] = $spent * -1;
} else {
$row[] = 0;
}
}
$entries->push($row);
$start->addMonth();
}
$data = $this->generator->spentInYear($categories, $entries);
$cache->store($data);
return Response::json($data);
}
/**
* Returns a chart of what has been earned in this period in each category
* grouped by month.