This commit is contained in:
James Cole
2020-10-13 06:28:07 +02:00
parent d7b872eeaa
commit 3bd5ac21c9
2 changed files with 29 additions and 26 deletions

View File

@@ -68,11 +68,8 @@ class CurrencyController extends Controller
{ {
use AccountFilter, TransactionFilter; use AccountFilter, TransactionFilter;
/** @var CurrencyRepositoryInterface The currency repository */ private CurrencyRepositoryInterface $repository;
private $repository; private UserRepositoryInterface $userRepository;
/** @var UserRepositoryInterface The user repository */
private $userRepository;
/** /**
@@ -161,22 +158,14 @@ class CurrencyController extends Controller
*/ */
public function availableBudgets(TransactionCurrency $currency): JsonResponse public function availableBudgets(TransactionCurrency $currency): JsonResponse
{ {
/** @var User $admin */
$admin = auth()->user();
$manager = $this->getManager(); $manager = $this->getManager();
// types to get, page size: // types to get, page size:
$pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data;
// get list of available budgets. Count it and split it. // get list of available budgets. Count it and split it.
/** @var BudgetRepositoryInterface $repository */
$repository = app(BudgetRepositoryInterface::class);
/** @var AvailableBudgetRepositoryInterface $abRepository */ /** @var AvailableBudgetRepositoryInterface $abRepository */
$abRepository = app(AvailableBudgetRepositoryInterface::class); $abRepository = app(AvailableBudgetRepositoryInterface::class);
$repository->setUser($admin);
$collection = $abRepository->getAvailableBudgetsByCurrency($currency); $collection = $abRepository->getAvailableBudgetsByCurrency($currency);
$count = $collection->count(); $count = $collection->count();
$availableBudgets = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); $availableBudgets = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
@@ -208,10 +197,10 @@ class CurrencyController extends Controller
{ {
$manager = $this->getManager(); $manager = $this->getManager();
/** @var BillRepositoryInterface $repository */ /** @var BillRepositoryInterface $billRepos */
$repository = app(BillRepositoryInterface::class); $billRepos = app(BillRepositoryInterface::class);
$pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data;
$unfiltered = $repository->getBills(); $unfiltered = $billRepos->getBills();
// filter and paginate list: // filter and paginate list:
$collection = $unfiltered->filter( $collection = $unfiltered->filter(
@@ -303,9 +292,9 @@ class CurrencyController extends Controller
* *
* @param TransactionCurrency $currency * @param TransactionCurrency $currency
* *
* @return JsonResponse
* @throws FireflyException * @throws FireflyException
* @codeCoverageIgnore * @codeCoverageIgnore
* @return JsonResponse
*/ */
public function delete(TransactionCurrency $currency): JsonResponse public function delete(TransactionCurrency $currency): JsonResponse
{ {
@@ -459,9 +448,9 @@ class CurrencyController extends Controller
$pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data;
// get list of budgets. Count it and split it. // get list of budgets. Count it and split it.
/** @var RecurringRepositoryInterface $repository */ /** @var RecurringRepositoryInterface $recurringRepos */
$repository = app(RecurringRepositoryInterface::class); $recurringRepos = app(RecurringRepositoryInterface::class);
$unfiltered = $repository->getAll(); $unfiltered = $recurringRepos->getAll();
// filter selection // filter selection
$collection = $unfiltered->filter( $collection = $unfiltered->filter(
@@ -510,9 +499,9 @@ class CurrencyController extends Controller
$pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; $pageSize = (int) app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data;
// get list of budgets. Count it and split it. // get list of budgets. Count it and split it.
/** @var RuleRepositoryInterface $repository */ /** @var RuleRepositoryInterface $ruleRepos */
$repository = app(RuleRepositoryInterface::class); $ruleRepos = app(RuleRepositoryInterface::class);
$unfiltered = $repository->getAll(); $unfiltered = $ruleRepos->getAll();
$collection = $unfiltered->filter( $collection = $unfiltered->filter(
static function (Rule $rule) use ($currency) { static function (Rule $rule) use ($currency) {
@@ -594,8 +583,8 @@ class CurrencyController extends Controller
* *
* @param CurrencyRequest $request * @param CurrencyRequest $request
* *
* @throws FireflyException
* @return JsonResponse * @return JsonResponse
* @throws FireflyException
*/ */
public function store(CurrencyRequest $request): JsonResponse public function store(CurrencyRequest $request): JsonResponse
{ {

View File

@@ -506,7 +506,14 @@ class RuleRepository implements RuleRepositoryInterface
*/ */
public function getStoreRules(): Collection public function getStoreRules(): Collection
{ {
$collection = $this->user->rules()->where('rules.active', 1)->with(['ruleGroup', 'ruleTriggers'])->get(); $collection = $this->user->rules()
->leftJoin('rule_groups', 'rule_groups.id', '=', 'rules.rule_group_id')
->where('rules.active', 1)
->where('rule_groups.active', 1)
->orderBy('rule_groups.order', 'ASC')
->orderBy('rules.order', 'ASC')
->orderBy('rules.id', 'ASC')
->with(['ruleGroup', 'ruleTriggers'])->get(['rules.*']);
$filtered = new Collection; $filtered = new Collection;
/** @var Rule $rule */ /** @var Rule $rule */
foreach ($collection as $rule) { foreach ($collection as $rule) {
@@ -525,7 +532,14 @@ class RuleRepository implements RuleRepositoryInterface
*/ */
public function getUpdateRules(): Collection public function getUpdateRules(): Collection
{ {
$collection = $this->user->rules()->where('rules.active', 1)->with(['ruleGroup', 'ruleTriggers'])->get(); $collection = $this->user->rules()
->leftJoin('rule_groups', 'rule_groups.id', '=', 'rules.rule_group_id')
->where('rules.active', 1)
->where('rule_groups.active', 1)
->orderBy('rule_groups.order', 'ASC')
->orderBy('rules.order', 'ASC')
->orderBy('rules.id', 'ASC')
->with(['ruleGroup', 'ruleTriggers'])->get();
$filtered = new Collection; $filtered = new Collection;
/** @var Rule $rule */ /** @var Rule $rule */
foreach ($collection as $rule) { foreach ($collection as $rule) {