Refactor references to budget repository.

This commit is contained in:
James Cole
2019-08-29 21:42:55 +02:00
parent 48f0aa842e
commit a6b1fcb609
9 changed files with 173 additions and 119 deletions

View File

@@ -98,7 +98,7 @@ class AmountController extends Controller
$budgetLimit = $this->repository->updateLimitAmount($budget, $start, $end, $amount);
// calculate what the user has spent in current period.
$spent = $this->repository->spentInPeriod(new Collection([$budget]), new Collection, $start, $end);
$spent = $this->opsRepository->spentInPeriod(new Collection([$budget]), new Collection, $start, $end);
// given the new budget, this is what they have left (and left per day?)
$left = app('amount')->formatAnything($currency, bcadd($amount, $spent), true);

View File

@@ -27,6 +27,7 @@ namespace FireflyIII\Http\Controllers\Budget;
use Carbon\Carbon;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Budget\OperationsRepositoryInterface;
use FireflyIII\Support\Http\Controllers\DateCalculation;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -40,11 +41,14 @@ class IndexController extends Controller
{
use DateCalculation;
/** @var OperationsRepositoryInterface */
private $opsRepository;
/** @var BudgetRepositoryInterface The budget repository */
private $repository;
/**
* IndexController constructor.
*
* @codeCoverageIgnore
*/
public function __construct()
@@ -57,7 +61,8 @@ class IndexController extends Controller
function ($request, $next) {
app('view')->share('title', (string)trans('firefly.budgets'));
app('view')->share('mainTitleIcon', 'fa-tasks');
$this->repository = app(BudgetRepositoryInterface::class);
$this->repository = app(BudgetRepositoryInterface::class);
$this->opsRepository = app(OperationsRepositoryInterface::class);
$this->repository->cleanupBudgets();
return $next($request);
@@ -110,7 +115,7 @@ class IndexController extends Controller
$inactive = $this->repository->getInactiveBudgets();
// collect budget info to fill bars and so on.
$budgetInformation = $this->repository->collectBudgetInformation($collection, $start, $end);
$budgetInformation = $this->opsRepository->collectBudgetInformation($collection, $start, $end);
// to display available budget:
$available = $this->repository->getAvailableBudget($defaultCurrency, $start, $end);

View File

@@ -31,6 +31,7 @@ use FireflyIII\Models\Budget;
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Budget\OperationsRepositoryInterface;
use FireflyIII\Support\CacheProperties;
use FireflyIII\Support\Http\Controllers\AugumentData;
use FireflyIII\Support\Http\Controllers\DateCalculation;
@@ -46,12 +47,14 @@ class BudgetController extends Controller
use DateCalculation, AugumentData;
/** @var GeneratorInterface Chart generation methods. */
protected $generator;
/** @var OperationsRepositoryInterface */
protected $opsRepository;
/** @var BudgetRepositoryInterface The budget repository */
protected $repository;
/**
* BudgetController constructor.
*
* @codeCoverageIgnore
*/
public function __construct()
@@ -60,8 +63,9 @@ class BudgetController extends Controller
$this->middleware(
function ($request, $next) {
$this->generator = app(GeneratorInterface::class);
$this->repository = app(BudgetRepositoryInterface::class);
$this->generator = app(GeneratorInterface::class);
$this->repository = app(BudgetRepositoryInterface::class);
$this->opsRepository = app(OperationsRepositoryInterface::class);
return $next($request);
}
@@ -105,7 +109,7 @@ class BudgetController extends Controller
if ('1Y' === $step) {
$currentEnd->subDay(); // @codeCoverageIgnore
}
$spent = $this->repository->spentInPeriod($budgetCollection, new Collection, $current, $currentEnd);
$spent = $this->opsRepository->spentInPeriod($budgetCollection, new Collection, $current, $currentEnd);
$label = app('navigation')->periodShow($current, $step);
$chartData[$label] = (float)bcmul($spent, '-1');
$current = clone $currentEnd;
@@ -125,7 +129,7 @@ class BudgetController extends Controller
*
* TODO this chart is not multi-currency aware.
*
* @param Budget $budget
* @param Budget $budget
* @param BudgetLimit $budgetLimit
*
* @return JsonResponse
@@ -155,7 +159,7 @@ class BudgetController extends Controller
$amount = $budgetLimit->amount;
$budgetCollection = new Collection([$budget]);
while ($start <= $end) {
$spent = $this->repository->spentInPeriod($budgetCollection, new Collection, $start, $start);
$spent = $this->opsRepository->spentInPeriod($budgetCollection, new Collection, $start, $start);
$amount = bcadd($amount, $spent);
$format = $start->formatLocalized((string)trans('config.month_and_day'));
$entries[$format] = $amount;
@@ -174,7 +178,7 @@ class BudgetController extends Controller
*
* TODO this chart is not multi-currency aware.
*
* @param Budget $budget
* @param Budget $budget
* @param BudgetLimit|null $budgetLimit
*
* @return JsonResponse
@@ -223,7 +227,7 @@ class BudgetController extends Controller
*
* TODO this chart is not multi-currency aware.
*
* @param Budget $budget
* @param Budget $budget
* @param BudgetLimit|null $budgetLimit
*
* @return JsonResponse
@@ -271,7 +275,7 @@ class BudgetController extends Controller
*
* TODO this chart is not multi-currency aware.
*
* @param Budget $budget
* @param Budget $budget
* @param BudgetLimit|null $budgetLimit
*
* @return JsonResponse
@@ -377,9 +381,9 @@ class BudgetController extends Controller
*
* TODO this chart is not multi-currency aware.
*
* @param Budget $budget
* @param Carbon $start
* @param Carbon $end
* @param Budget $budget
* @param Carbon $start
* @param Carbon $end
* @param Collection $accounts
*
* @return JsonResponse
@@ -426,8 +430,8 @@ class BudgetController extends Controller
* TODO this chart is not multi-currency aware.
*
* @param Collection $accounts
* @param Carbon $start
* @param Carbon $end
* @param Carbon $start
* @param Carbon $end
*
* @return JsonResponse
*/

View File

@@ -33,6 +33,7 @@ use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Budget\OperationsRepositoryInterface;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Support\CacheProperties;
use FireflyIII\Support\Http\Controllers\RequestInformation;
@@ -49,12 +50,16 @@ class BoxController extends Controller
/**
* How much money user has available.
*
* @param BudgetRepositoryInterface $repository
*
* @return JsonResponse
*/
public function available(BudgetRepositoryInterface $repository): JsonResponse
public function available(): JsonResponse
{
/** @var BudgetRepositoryInterface $repository */
$repository = app(BudgetRepositoryInterface::class);
/** @var OperationsRepositoryInterface $opsRepository */
$opsRepository = app(OperationsRepositoryInterface::class);
/** @var Carbon $start */
$start = session('start', Carbon::now()->startOfMonth());
/** @var Carbon $end */
@@ -74,7 +79,7 @@ class BoxController extends Controller
// get spent amount:
$budgets = $repository->getActiveBudgets();
$budgetInformation = $repository->collectBudgetInformation($budgets, $start, $end);
$budgetInformation = $opsRepository->collectBudgetInformation($budgets, $start, $end);
$spent = (string)array_sum(array_column($budgetInformation, 'spent'));
$left = bcadd($available, $spent);
$days = $today->diffInDays($end) + 1;
@@ -121,7 +126,7 @@ class BoxController extends Controller
$cache->addProperty($end);
$cache->addProperty('box-balance');
if ($cache->has()) {
return response()->json($cache->get()); // @codeCoverageIgnore
return response()->json($cache->get()); // @codeCoverageIgnore
}
// prep some arrays:
$incomes = [];