Fix more charts.

This commit is contained in:
James Cole
2016-05-09 20:15:26 +02:00
parent a90d095609
commit cda6cfb4cd
4 changed files with 303 additions and 257 deletions

View File

@@ -378,7 +378,7 @@ class CategoryRepository implements CategoryRepositoryInterface
*/
public function earnedInPeriod(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): string
{
$types = [TransactionType::WITHDRAWAL, TransactionType::TRANSFER];
$types = [TransactionType::DEPOSIT, TransactionType::TRANSFER];
$journals = $this->journalsInPeriod($categories, $accounts, $types, $start, $end);
$sum = '0';
foreach ($journals as $journal) {
@@ -652,6 +652,13 @@ class CategoryRepository implements CategoryRepositoryInterface
$complete = $complete->merge($first);
$complete = $complete->merge($second);
// sort:
$complete = $complete->sortByDesc(
function (TransactionJournal $journal) {
return $journal->date->format('Ymd');
}
);
// create paginator
$offset = ($page - 1) * $pageSize;
$subSet = $complete->slice($offset, $pageSize);
@@ -677,7 +684,7 @@ class CategoryRepository implements CategoryRepositoryInterface
// first collect actual transaction journals (fairly easy)
$query = $this->user->transactionjournals()->expanded();
if ($end > $start) {
if ($end >= $start) {
$query->before($end)->after($start);
}
@@ -833,7 +840,7 @@ class CategoryRepository implements CategoryRepositoryInterface
*/
public function spentInPeriod(Collection $categories, Collection $accounts, Carbon $start, Carbon $end): string
{
$types = [TransactionType::DEPOSIT, TransactionType::TRANSFER];
$types = [TransactionType::WITHDRAWAL, TransactionType::TRANSFER];
$journals = $this->journalsInPeriod($categories, $accounts, $types, $start, $end);
$sum = '0';
foreach ($journals as $journal) {
@@ -843,6 +850,24 @@ class CategoryRepository implements CategoryRepositoryInterface
return $sum;
}
/**
* @param Collection $accounts
* @param Carbon $start
* @param Carbon $end
*
* @return string
*/
public function spentInPeriodWithoutCategory(Collection $accounts, Carbon $start, Carbon $end) : string
{
$journals = $this->journalsInPeriodWithoutCategory($accounts, $start, $end);
$sum = '0';
foreach ($journals as $journal) {
$sum = bcadd(TransactionJournal::amount($journal), $sum);
}
return $sum;
}
/**
* @param array $data
*

View File

@@ -188,6 +188,15 @@ interface CategoryRepositoryInterface
*/
public function journalsInPeriod(Collection $categories, Collection $accounts, array $types, Carbon $start, Carbon $end): Collection;
/**
* @param Collection $accounts
* @param Carbon $start
* @param Carbon $end
*
* @return string
*/
public function spentInPeriodWithoutCategory(Collection $accounts, Carbon $start, Carbon $end) : string;
/**
* @param Collection $accounts
* @param Carbon $start