More moving stuff around.

This commit is contained in:
James Cole 2016-05-20 11:02:07 +02:00
parent 724f423692
commit 3c3a83330d
30 changed files with 197 additions and 195 deletions

View File

@ -19,6 +19,8 @@ use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType;
use FireflyIII\User;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Collection;
use Log;
@ -78,6 +80,63 @@ class AccountCrud implements AccountCrudInterface
return $account;
}
/**
* @param array $accountIds
*
* @return Collection
*/
public function getAccountsById(array $accountIds): Collection
{
/** @var Collection $result */
$query = $this->user->accounts()->with(
['accountmeta' => function (HasMany $query) {
$query->where('name', 'accountRole');
}]
);
if (count($accountIds) > 0) {
$query->whereIn('accounts.id', $accountIds);
}
$result = $query->get(['accounts.*']);
$result = $result->sortBy(
function (Account $account) {
return strtolower($account->name);
}
);
return $result;
}
/**
* @param array $types
*
* @return Collection
*/
public function getAccountsByType(array $types): Collection
{
/** @var Collection $result */
$query = $this->user->accounts()->with(
['accountmeta' => function (HasMany $query) {
$query->where('name', 'accountRole');
}]
);
if (count($types) > 0) {
$query->accountTypeIn($types);
}
$result = $query->get(['accounts.*']);
$result = $result->sortBy(
function (Account $account) {
return strtolower($account->name);
}
);
return $result;
}
/**
* @param array $data
*

View File

@ -13,6 +13,7 @@ namespace FireflyIII\Crud\Account;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountMeta;
use Illuminate\Support\Collection;
/**
* Interface AccountCrudInterface
@ -36,6 +37,20 @@ interface AccountCrudInterface
*/
public function find(int $accountId): Account;
/**
* @param array $accountIds
*
* @return Collection
*/
public function getAccountsById(array $accountIds): Collection;
/**
* @param array $types
*
* @return Collection
*/
public function getAccountsByType(array $types): Collection;
/**
* @param array $data
*

View File

@ -12,7 +12,6 @@ declare(strict_types = 1);
namespace FireflyIII\Handlers\Events;
use FireflyIII\Events\TransactionJournalStored;
use FireflyIII\Events\TransactionStored;
use FireflyIII\Models\PiggyBankEvent;
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;

View File

@ -6,7 +6,7 @@ use Auth;
use Carbon\Carbon;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Models\Account;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Models\AccountType;
/**
* Class AssetAccountIban
@ -21,9 +21,7 @@ class AssetAccountIban extends BasicConverter implements ConverterInterface
*/
public function convert(): Account
{
/** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class);
$crud = app('FireflyIII\Crud\Account\AccountCrudInterface');
$crud = app('FireflyIII\Crud\Account\AccountCrudInterface');
// is mapped? Then it's easy!
if (isset($this->mapped[$this->index][$this->value])) {
@ -34,7 +32,7 @@ class AssetAccountIban extends BasicConverter implements ConverterInterface
if (strlen($this->value) > 0) {
$account = $this->searchOrCreate($repository, $crud);
$account = $this->searchOrCreate($crud);
return $account;
}
@ -43,15 +41,14 @@ class AssetAccountIban extends BasicConverter implements ConverterInterface
}
/**
* @param AccountRepositoryInterface $repository
* @param AccountCrudInterface $crud
* @param AccountCrudInterface $crud
*
* @return Account
*/
private function searchOrCreate(AccountRepositoryInterface $repository, AccountCrudInterface $crud)
private function searchOrCreate(AccountCrudInterface $crud)
{
// find or create new account:
$set = $repository->getAccountsByType(['Default account', 'Asset account']);
$set = $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]);
/** @var Account $entry */
foreach ($set as $entry) {
if ($entry->iban == $this->value) {

View File

@ -5,7 +5,7 @@ namespace FireflyIII\Helpers\Csv\Converter;
use Auth;
use Carbon\Carbon;
use FireflyIII\Models\Account;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Models\AccountType;
/**
* Class AssetAccountName
@ -20,9 +20,7 @@ class AssetAccountName extends BasicConverter implements ConverterInterface
*/
public function convert(): Account
{
/** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class);
$crud = app('FireflyIII\Crud\Account\AccountCrudInterface');
$crud = app('FireflyIII\Crud\Account\AccountCrudInterface');
if (isset($this->mapped[$this->index][$this->value])) {
$account = $crud->find(intval($this->mapped[$this->index][$this->value]));
@ -30,7 +28,7 @@ class AssetAccountName extends BasicConverter implements ConverterInterface
return $account;
}
$set = $repository->getAccountsByType(['Default account', 'Asset account']);
$set = $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]);
/** @var Account $entry */
foreach ($set as $entry) {
if ($entry->name == $this->value) {

View File

@ -14,7 +14,7 @@ namespace FireflyIII\Helpers\Csv\Converter;
use Auth;
use Carbon\Carbon;
use FireflyIII\Models\Account;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Models\AccountType;
/**
* Class AssetAccountNumber
@ -29,9 +29,7 @@ class AssetAccountNumber extends BasicConverter implements ConverterInterface
*/
public function convert(): Account
{
/** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class);
$crud = app('FireflyIII\Crud\Account\AccountCrudInterface');
$crud = app('FireflyIII\Crud\Account\AccountCrudInterface');
// is mapped? Then it's easy!
if (isset($this->mapped[$this->index][$this->value])) {
@ -43,7 +41,7 @@ class AssetAccountNumber extends BasicConverter implements ConverterInterface
$value = $this->value ?? '';
if (strlen($value) > 0) {
// find or create new account:
$set = $repository->getAccountsByType(['Default account', 'Asset account']);
$set = $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]);
/** @var Account $entry */
foreach ($set as $entry) {
$accountNumber = $entry->getMeta('accountNumber');

View File

@ -2,6 +2,7 @@
declare(strict_types = 1);
namespace FireflyIII\Helpers\Csv\Converter;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Models\Account;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
@ -30,19 +31,19 @@ class OpposingAccountIban extends BasicConverter implements ConverterInterface
return $account;
}
return $this->findAccount($repository);
return $this->findAccount($crud);
}
/**
* @param AccountRepositoryInterface $repository
* @param AccountCrudInterface $crud
*
* @return Account|string
*/
private function findAccount(AccountRepositoryInterface $repository)
private function findAccount(AccountCrudInterface $crud)
{
if (strlen($this->value) > 0) {
$set = $repository->getAccountsByType([]);
$set = $crud->getAccountsByType([]);
/** @var Account $account */
foreach ($set as $account) {
if ($account->iban == $this->value) {

View File

@ -14,7 +14,6 @@ use FireflyIII\Models\Bill;
use FireflyIII\Models\Category;
use FireflyIII\Models\Tag;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
@ -23,7 +22,6 @@ use FireflyIII\Repositories\Tag\TagRepositoryInterface;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Query\JoinClause;
use Illuminate\Support\Collection;
use Log;
/**
* Class ReportHelper

View File

@ -63,16 +63,16 @@ class AccountController extends Controller
}
/**
* @param ARI $repository
* @param Account $account
* @param AccountCrudInterface $crud
* @param Account $account
*
* @return \Illuminate\View\View
* @return View
*/
public function delete(ARI $repository, Account $account)
public function delete(AccountCrudInterface $crud, Account $account)
{
$typeName = config('firefly.shortNamesByFullName.' . $account->accountType->type);
$subTitle = trans('firefly.delete_' . $typeName . '_account', ['name' => $account->name]);
$accountList = ExpandedForm::makeSelectListWithEmpty($repository->getAccountsByType([$account->accountType->type]));
$accountList = ExpandedForm::makeSelectListWithEmpty($crud->getAccountsByType([$account->accountType->type]));
unset($accountList[$account->id]);
// put previous url in session
@ -151,19 +151,19 @@ class AccountController extends Controller
}
/**
* @param ARI $repository
* @param $what
* @param AccountCrudInterface $crud
* @param string $what
*
* @return \Illuminate\View\View
* @return View
*/
public function index(ARI $repository, string $what)
public function index(AccountCrudInterface $crud, string $what)
{
$what = $what ?? 'asset';
$subTitle = trans('firefly.' . $what . '_accounts');
$subTitleIcon = config('firefly.subIconsByIdentifier.' . $what);
$types = config('firefly.accountTypesByIdentifier.' . $what);
$accounts = $repository->getAccountsByType($types);
$accounts = $crud->getAccountsByType($types);
$start = clone session('start', Carbon::now()->startOfMonth());
$end = clone session('end', Carbon::now()->endOfMonth());
$start->subDay();

View File

@ -7,11 +7,12 @@ use Amount;
use Auth;
use Carbon\Carbon;
use Config;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Http\Requests\BudgetFormRequest;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\Budget;
use FireflyIII\Models\LimitRepetition;
use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
@ -149,12 +150,11 @@ class BudgetController extends Controller
/**
* @param BudgetRepositoryInterface $repository
* @param AccountCrudInterface $crud
*
* @param ARI $accountRepository
*
* @return \Illuminate\View\View
* @return View
*/
public function index(BudgetRepositoryInterface $repository, ARI $accountRepository)
public function index(BudgetRepositoryInterface $repository, AccountCrudInterface $crud)
{
$budgets = $repository->getActiveBudgets();
$inactive = $repository->getInactiveBudgets();
@ -176,10 +176,10 @@ class BudgetController extends Controller
$period = Navigation::periodShow($start, $range);
$periodStart = $start->formatLocalized($this->monthAndDayFormat);
$periodEnd = $end->formatLocalized($this->monthAndDayFormat);
$accounts = $accountRepository->getAccountsByType(['Default account', 'Asset account', 'Cash account']);
$accounts = $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET, AccountType::CASH]);
$startAsString = $start->format('Y-m-d');
$endAsString = $end->format('Y-m-d');
// loop the budgets:
/** @var Budget $budget */
foreach ($budgets as $budget) {

View File

@ -4,11 +4,11 @@ declare(strict_types = 1);
namespace FireflyIII\Http\Controllers\Chart;
use Carbon\Carbon;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Generator\Chart\Account\AccountChartGeneratorInterface;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI;
use FireflyIII\Support\CacheProperties;
use Illuminate\Support\Collection;
use Preferences;
@ -39,11 +39,11 @@ class AccountController extends Controller
/**
* Shows the balances for all the user's expense accounts.
*
* @param ARI $repository
* @param AccountCrudInterface $crud
*
* @return \Symfony\Component\HttpFoundation\Response
* @return \Illuminate\Http\JsonResponse
*/
public function expenseAccounts(ARI $repository)
public function expenseAccounts(AccountCrudInterface $crud)
{
$start = clone session('start', Carbon::now()->startOfMonth());
$end = clone session('end', Carbon::now()->endOfMonth());
@ -55,7 +55,7 @@ class AccountController extends Controller
if ($cache->has()) {
return Response::json($cache->get());
}
$accounts = $repository->getAccountsByType(['Expense account', 'Beneficiary account']);
$accounts = $crud->getAccountsByType([AccountType::EXPENSE, AccountType::BENEFICIARY]);
$start->subDay();
$ids = $accounts->pluck('id')->toArray();
@ -88,11 +88,11 @@ class AccountController extends Controller
/**
* Shows the balances for all the user's frontpage accounts.
*
* @param ARI $repository
* @param AccountCrudInterface $crud
*
* @return \Symfony\Component\HttpFoundation\Response
* @return \Illuminate\Http\JsonResponse
*/
public function frontpage(ARI $repository)
public function frontpage(AccountCrudInterface $crud)
{
$start = clone session('start', Carbon::now()->startOfMonth());
$end = clone session('end', Carbon::now()->endOfMonth());
@ -108,8 +108,8 @@ class AccountController extends Controller
return Response::json($cache->get());
}
$frontPage = Preferences::get('frontPageAccounts', $repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET])->pluck('id')->toArray());
$accounts = $repository->getAccountsById($frontPage->data);
$frontPage = Preferences::get('frontPageAccounts', $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET])->pluck('id')->toArray());
$accounts = $crud->getAccountsById($frontPage->data);
foreach ($accounts as $account) {
$balances = [];

View File

@ -4,11 +4,12 @@ declare(strict_types = 1);
namespace FireflyIII\Http\Controllers;
use ExpandedForm;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Csv\Data;
use FireflyIII\Helpers\Csv\Importer;
use FireflyIII\Helpers\Csv\WizardInterface;
use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI;
use FireflyIII\Models\AccountType;
use Illuminate\Http\Request;
use Input;
use Log;
@ -158,11 +159,11 @@ class CsvController extends Controller
*
* STEP ONE
*
* @param ARI $repository
* @param AccountCrudInterface $crud
*
* @return \Illuminate\View\View
*/
public function index(ARI $repository)
public function index(AccountCrudInterface $crud)
{
$subTitle = trans('firefly.csv_import');
@ -190,7 +191,7 @@ class CsvController extends Controller
];
// get a list of asset accounts:
$accounts = ExpandedForm::makeSelectList($repository->getAccountsByType(['Asset account', 'Default account']));
$accounts = ExpandedForm::makeSelectList($crud->getAccountsByType([AccountType::ASSET, AccountType::DEFAULT]));
// can actually upload?
$uploadPossible = is_writable(storage_path('upload'));

View File

@ -12,10 +12,12 @@ namespace FireflyIII\Http\Controllers;
use Carbon\Carbon;
use ExpandedForm;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Export\Processor;
use FireflyIII\Http\Requests;
use FireflyIII\Http\Requests\ExportFormRequest;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\ExportJob;
use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI;
use FireflyIII\Repositories\ExportJob\ExportJobRepositoryInterface as EJRI;
@ -86,13 +88,12 @@ class ExportController extends Controller
}
/**
* @param ARI $repository
*
* @param EJRI $jobs
* @param AccountCrudInterface $crud
* @param EJRI $jobs
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function index(ARI $repository, EJRI $jobs)
public function index(AccountCrudInterface $crud, EJRI $jobs)
{
// create new export job.
$job = $jobs->create();
@ -100,7 +101,7 @@ class ExportController extends Controller
$jobs->cleanup();
// does the user have shared accounts?
$accounts = $repository->getAccountsByType(['Default account', 'Asset account']);
$accounts = $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]);
$accountList = ExpandedForm::makeSelectList($accounts);
$checked = array_keys($accountList);
$formats = array_keys(config('firefly.export_formats'));

View File

@ -4,6 +4,7 @@ namespace FireflyIII\Http\Controllers;
use Artisan;
use Carbon\Carbon;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\Tag;
@ -96,11 +97,12 @@ class HomeController extends Controller
}
/**
* @param ARI $repository
* @param ARI $repository
* @param AccountCrudInterface $crud
*
* @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View
* @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View
*/
public function index(ARI $repository)
public function index(ARI $repository, AccountCrudInterface $crud)
{
$types = config('firefly.accountTypesByIdentifier.asset');
$count = $repository->countAccounts($types);
@ -114,14 +116,14 @@ class HomeController extends Controller
$mainTitleIcon = 'fa-fire';
$transactions = [];
$frontPage = Preferences::get(
'frontPageAccounts', $repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET])->pluck('id')->toArray()
'frontPageAccounts', $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET])->pluck('id')->toArray()
);
/** @var Carbon $start */
$start = session('start', Carbon::now()->startOfMonth());
/** @var Carbon $end */
$end = session('end', Carbon::now()->endOfMonth());
$showTour = Preferences::get('tour', true)->data;
$accounts = $repository->getAccountsById($frontPage->data);
$accounts = $crud->getAccountsById($frontPage->data);
$savings = $repository->getSavingsAccounts($start, $end);
$piggyBankAccounts = $repository->getPiggyBankAccounts($start, $end);

View File

@ -4,7 +4,9 @@ namespace FireflyIII\Http\Controllers;
use Amount;
use Carbon\Carbon;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\AccountType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI;
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface as CRI;
@ -85,11 +87,12 @@ class JsonController extends Controller
}
/**
* @param ARI $accountRepository
* @param ARI $accountRepository
* @param AccountCrudInterface $crud
*
* @return \Symfony\Component\HttpFoundation\Response
* @return \Illuminate\Http\JsonResponse
*/
public function boxIn(ARI $accountRepository)
public function boxIn(ARI $accountRepository, AccountCrudInterface $crud)
{
$start = session('start', Carbon::now()->startOfMonth());
$end = session('end', Carbon::now()->endOfMonth());
@ -102,7 +105,7 @@ class JsonController extends Controller
if ($cache->has()) {
return Response::json($cache->get());
}
$accounts = $accountRepository->getAccountsByType(['Default account', 'Asset account', 'Cash account']);
$accounts = $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET, AccountType::CASH]);
$amount = $accountRepository->earnedInPeriod($accounts, $start, $end);
$data = ['box' => 'in', 'amount' => Amount::format($amount, false), 'amount_raw' => $amount];
$cache->store($data);
@ -111,11 +114,12 @@ class JsonController extends Controller
}
/**
* @param ARI $accountRepository
* @param ARI $accountRepository
* @param AccountCrudInterface $crud
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function boxOut(ARI $accountRepository)
public function boxOut(ARI $accountRepository, AccountCrudInterface $crud)
{
$start = session('start', Carbon::now()->startOfMonth());
$end = session('end', Carbon::now()->endOfMonth());
@ -129,7 +133,7 @@ class JsonController extends Controller
return Response::json($cache->get());
}
$accounts = $accountRepository->getAccountsByType(['Default account', 'Asset account', 'Cash account']);
$accounts = $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET, AccountType::CASH]);
$amount = $accountRepository->spentInPeriod($accounts, $start, $end);
$data = ['box' => 'out', 'amount' => Amount::format($amount, false), 'amount_raw' => $amount];
@ -169,13 +173,13 @@ class JsonController extends Controller
/**
* Returns a JSON list of all beneficiaries.
*
* @param ARI $accountRepository
* @param AccountCrudInterface $crud
*
* @return \Illuminate\Http\JsonResponse
*/
public function expenseAccounts(ARI $accountRepository)
public function expenseAccounts(AccountCrudInterface $crud)
{
$list = $accountRepository->getAccountsByType(['Expense account', 'Beneficiary account']);
$list = $crud->getAccountsByType([AccountType::EXPENSE, AccountType::BENEFICIARY]);
$return = [];
foreach ($list as $entry) {
$return[] = $entry->name;
@ -186,13 +190,13 @@ class JsonController extends Controller
}
/**
* @param ARI $accountRepository
* @param AccountCrudInterface $crud
*
* @return \Illuminate\Http\JsonResponse
*/
public function revenueAccounts(ARI $accountRepository)
public function revenueAccounts(AccountCrudInterface $crud)
{
$list = $accountRepository->getAccountsByType(['Revenue account']);
$list = $crud->getAccountsByType([AccountType::REVENUE]);
$return = [];
foreach ($list as $entry) {
$return[] = $entry->name;

View File

@ -5,7 +5,9 @@ namespace FireflyIII\Http\Controllers;
use Amount;
use Carbon\Carbon;
use ExpandedForm;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Http\Requests\PiggyBankFormRequest;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI;
use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface;
@ -59,15 +61,15 @@ class PiggyBankController extends Controller
}
/**
* @param ARI $repository
* @param AccountCrudInterface $crud
*
* @return mixed
* @return View
*/
public function create(ARI $repository)
public function create(AccountCrudInterface $crud)
{
$periods = config('firefly.piggy_bank_periods');
$accounts = ExpandedForm::makeSelectList($repository->getAccountsByType(['Default account', 'Asset account']));
$accounts = ExpandedForm::makeSelectList($crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]));
$subTitle = trans('firefly.new_piggy_bank');
$subTitleIcon = 'fa-plus';
@ -117,16 +119,16 @@ class PiggyBankController extends Controller
}
/**
* @param ARI $repository
* @param PiggyBank $piggyBank
* @param AccountCrudInterface $crud
* @param PiggyBank $piggyBank
*
* @return View
*/
public function edit(ARI $repository, PiggyBank $piggyBank)
public function edit(AccountCrudInterface $crud, PiggyBank $piggyBank)
{
$periods = config('firefly.piggy_bank_periods');
$accounts = ExpandedForm::makeSelectList($repository->getAccountsByType(['Default account', 'Asset account']));
$accounts = ExpandedForm::makeSelectList($crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]));
$subTitle = trans('firefly.update_piggy_title', ['name' => $piggyBank->name]);
$subTitleIcon = 'fa-pencil';
$targetDate = null;

View File

@ -3,8 +3,9 @@ declare(strict_types = 1);
namespace FireflyIII\Http\Controllers;
use Auth;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Http\Requests\TokenFormRequest;
use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI;
use FireflyIII\Models\AccountType;
use Input;
use PragmaRX\Google2FA\Contracts\Google2FA;
use Preferences;
@ -59,13 +60,13 @@ class PreferencesController extends Controller
}
/**
* @param ARI $repository
* @param AccountCrudInterface $crud
*
* @return $this|\Illuminate\View\View
* @return View
*/
public function index(ARI $repository)
public function index(AccountCrudInterface $crud)
{
$accounts = $repository->getAccountsByType(['Default account', 'Asset account']);
$accounts = $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]);
$viewRangePref = Preferences::get('viewRange', '1M');
$viewRange = $viewRangePref->data;
$frontPageAccounts = Preferences::get('frontPageAccounts', []);

View File

@ -4,12 +4,14 @@ declare(strict_types = 1);
namespace FireflyIII\Http\Controllers;
use Carbon\Carbon;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Report\AccountReportHelperInterface;
use FireflyIII\Helpers\Report\BalanceReportHelperInterface;
use FireflyIII\Helpers\Report\BudgetReportHelperInterface;
use FireflyIII\Helpers\Report\ReportHelperInterface;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface as ARI;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
@ -58,12 +60,11 @@ class ReportController extends Controller
}
/**
* @param ARI $repository
* @param AccountCrudInterface $crud
*
* @return View
* @internal param ReportHelperInterface $helper
*/
public function index(ARI $repository)
public function index(AccountCrudInterface $crud)
{
/** @var Carbon $start */
$start = clone session('first');
@ -71,7 +72,7 @@ class ReportController extends Controller
$customFiscalYear = Preferences::get('customFiscalYear', 0)->data;
// does the user have shared accounts?
$accounts = $repository->getAccountsByType(['Default account', 'Asset account']);
$accounts = $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]);
// get id's for quick links:
$accountIds = [];
/** @var Account $account */

View File

@ -6,9 +6,11 @@ namespace FireflyIII\Http\Controllers;
use Auth;
use Carbon\Carbon;
use ExpandedForm;
use FireflyIII\Crud\Account\AccountCrudInterface;
use FireflyIII\Http\Requests\RuleGroupFormRequest;
use FireflyIII\Http\Requests\SelectTransactionsRequest;
use FireflyIII\Jobs\ExecuteRuleGroupOnExistingTransactions;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface;
@ -168,17 +170,15 @@ class RuleGroupController extends Controller
}
/**
* Shows a form for the user to select a range of transactions to execute this rulegroup for
*
* @param AccountRepositoryInterface $repository
* @param RuleGroup $ruleGroup
* @param AccountCrudInterface $crud
* @param RuleGroup $ruleGroup
*
* @return View
*/
public function selectTransactions(AccountRepositoryInterface $repository, RuleGroup $ruleGroup)
public function selectTransactions(AccountCrudInterface $crud, RuleGroup $ruleGroup)
{
// does the user have shared accounts?
$accounts = $repository->getAccountsByType(['Default account', 'Asset account']);
$accounts = $crud->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]);
$accountList = ExpandedForm::makeSelectList($accounts);
$checkedAccounts = array_keys($accountList);
$first = session('first')->format('Y-m-d');

View File

@ -11,7 +11,6 @@ declare(strict_types = 1);
*/
declare(strict_types = 1);
namespace FireflyIII\Http\Middleware;

View File

@ -31,29 +31,29 @@ class EventServiceProvider extends ServiceProvider
],
'FireflyIII\Events\BudgetLimitStored' => [
'FireflyIII\Events\BudgetLimitStored' => [
'FireflyIII\Handlers\Events\BudgetLimitEventHandler@store',
],
'FireflyIII\Events\BudgetLimitUpdated' => [
'FireflyIII\Events\BudgetLimitUpdated' => [
'FireflyIII\Handlers\Events\BudgetLimitEventHandler@update',
],
'FireflyIII\Events\TransactionStored' => [
'FireflyIII\Events\TransactionStored' => [
'FireflyIII\Handlers\Events\ConnectTransactionToPiggyBank',
],
'FireflyIII\Events\TransactionJournalStored' => [
'FireflyIII\Events\TransactionJournalStored' => [
'FireflyIII\Handlers\Events\ScanForBillsAfterStore',
'FireflyIII\Handlers\Events\ConnectJournalToPiggyBank',
'FireflyIII\Handlers\Events\FireRulesForStore',
],
'Illuminate\Auth\Events\Logout' => [
'Illuminate\Auth\Events\Logout' => [
'FireflyIII\Handlers\Events\UserEventListener@onUserLogout',
],
'FireflyIII\Events\UserRegistration' => [
'FireflyIII\Events\UserRegistration' => [
'FireflyIII\Handlers\Events\SendRegistrationMail',
'FireflyIII\Handlers\Events\AttachUserRole',
'FireflyIII\Handlers\Events\UserConfirmation@sendConfirmation',
],
'FireflyIII\Events\ResendConfirmation' => [
'FireflyIII\Events\ResendConfirmation' => [
'FireflyIII\Handlers\Events\UserConfirmation@resendConfirmation',
],
];

View File

@ -2,7 +2,6 @@
declare(strict_types = 1);
namespace FireflyIII\Providers;
use FireflyIII\Exceptions\FireflyException;

View File

@ -205,63 +205,6 @@ class AccountRepository implements AccountRepositoryInterface
return $this->user->accounts()->whereIn('id', $ids)->get(['accounts.*']);
}
/**
* @param array $accountIds
*
* @return Collection
*/
public function getAccountsById(array $accountIds): Collection
{
/** @var Collection $result */
$query = $this->user->accounts()->with(
['accountmeta' => function (HasMany $query) {
$query->where('name', 'accountRole');
}]
);
if (count($accountIds) > 0) {
$query->whereIn('accounts.id', $accountIds);
}
$result = $query->get(['accounts.*']);
$result = $result->sortBy(
function (Account $account) {
return strtolower($account->name);
}
);
return $result;
}
/**
* @param array $types
*
* @return Collection
*/
public function getAccountsByType(array $types): Collection
{
/** @var Collection $result */
$query = $this->user->accounts()->with(
['accountmeta' => function (HasMany $query) {
$query->where('name', 'accountRole');
}]
);
if (count($types) > 0) {
$query->accountTypeIn($types);
}
$result = $query->get(['accounts.*']);
$result = $result->sortBy(
function (Account $account) {
return strtolower($account->name);
}
);
return $result;
}
/**
* @param TransactionJournal $journal
* @param Account $account

View File

@ -5,7 +5,6 @@ namespace FireflyIII\Repositories\Account;
use Carbon\Carbon;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountMeta;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use Illuminate\Support\Collection;
@ -79,20 +78,6 @@ interface AccountRepositoryInterface
*/
public function get(array $ids): Collection;
/**
* @param array $accountIds
*
* @return Collection
*/
public function getAccountsById(array $accountIds): Collection;
/**
* @param array $types
*
* @return Collection
*/
public function getAccountsByType(array $types): Collection;
/**
* @param TransactionJournal $journal
* @param Account $account
@ -203,5 +188,5 @@ interface AccountRepositoryInterface
* @return string
*/
public function spentInPeriod(Collection $accounts, Carbon $start, Carbon $end): string;
}

View File

@ -241,11 +241,11 @@ class CategoryRepository implements CategoryRepositoryInterface
// that should do it:
$first = $query->get(TransactionJournal::queryFields());
// then collection transactions (harder)
$query = $this->user->transactionjournals()->distinct()
->leftJoin('transactions', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
->leftJoin('category_transaction', 'category_transaction.transaction_id', '=', 'transactions.id');
$query = $this->user->transactionjournals()->distinct()
->leftJoin('transactions', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
->leftJoin('category_transaction', 'category_transaction.transaction_id', '=', 'transactions.id');
if (count($types) > 0) {
$query->leftJoin('transaction_types', 'transaction_types.id', '=', 'transaction_journals.transaction_type_id');

View File

@ -56,7 +56,7 @@ class SetBudget implements ActionInterface
if (!is_null($budget)) {
$journal->budgets()->sync([$budget->id]);
}
return true;
}
}

View File

@ -59,7 +59,7 @@ final class FromAccountContains extends AbstractTrigger implements TriggerInterf
foreach (TransactionJournal::sourceAccountList($journal) as $account) {
$fromAccountName .= strtolower($account->name);
}
$search = strtolower($this->triggerValue);
$strpos = strpos($fromAccountName, $search);

View File

@ -59,7 +59,7 @@ final class FromAccountIs extends AbstractTrigger implements TriggerInterface
foreach (TransactionJournal::sourceAccountList($journal) as $account) {
$name .= strtolower($account->name);
}
$search = strtolower($this->triggerValue);
if ($name == $search) {

View File

@ -59,8 +59,8 @@ final class ToAccountIs extends AbstractTrigger implements TriggerInterface
foreach (TransactionJournal::destinationAccountList($journal) as $account) {
$toAccountName .= strtolower($account->name);
}
$search = strtolower($this->triggerValue);
$search = strtolower($this->triggerValue);
if ($toAccountName == $search) {
return true;

View File

@ -13,7 +13,6 @@ namespace FireflyIII\Support\Models;
use Carbon\Carbon;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Support\CacheProperties;