Expand code for #384

This commit is contained in:
James Cole
2017-12-10 12:00:08 +01:00
parent 06683c57dd
commit b93a96db23
2 changed files with 63 additions and 4 deletions

View File

@@ -23,7 +23,12 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Report;
use Carbon\Carbon;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use Illuminate\Support\Collection;
/**
@@ -31,5 +36,58 @@ use FireflyIII\Http\Controllers\Controller;
*/
class ExpenseController extends Controller
{
/** @var AccountRepositoryInterface */
protected $accountRepository;
/**
*
*/
public function __construct()
{
parent::__construct();
// translations:
$this->middleware(
function ($request, $next) {
$this->accountRepository = app(AccountRepositoryInterface::class);
return $next($request);
}
);
}
/**
* @param Collection $accounts
* @param Collection $expense
* @param Carbon $start
* @param Carbon $end
*/
public function spentGrouped(Collection $accounts, Collection $expense, Carbon $start, Carbon $end)
{
$combined = $this->combineAccounts($expense);
// for period, get spent and earned for each account (by name)
/**
* @var string $name
* @var Collection $combi
*/
foreach($combined as $name => $combi) {
}
}
protected function combineAccounts(Collection $accounts): array
{
$combined = [];
/** @var Account $expenseAccount */
foreach ($accounts as $expenseAccount) {
$combined[$expenseAccount->name] = [$expenseAccount];
$revenue = $this->accountRepository->findByName($expenseAccount->name, [AccountType::REVENUE]);
if (!is_null($revenue->id)) {
$combined[$expenseAccount->name][] = $revenue;
}
}
return $combined;
}
}