Merge pull request #11223 from firefly-iii/develop

🤖 Automatically merge the PR into the main branch.
This commit is contained in:
github-actions[bot]
2025-11-12 05:50:16 +01:00
committed by GitHub
507 changed files with 2239 additions and 2722 deletions

View File

@@ -105,7 +105,7 @@ jobs:
Thank you for running the latest version of Firefly III (or the data importer)." Thank you for running the latest version of Firefly III (or the data importer)."
gh issue comment "$NUMBER" --body "$MESSAGE" # gh issue comment "$NUMBER" --body "$MESSAGE"
echo "Triggered on fourth test" echo "Triggered on fourth test"
exit 0 exit 0
fi fi

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\AccountTypeEnum; use FireflyIII\Enums\AccountTypeEnum;
@@ -60,7 +61,7 @@ class AccountController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(AccountRepositoryInterface::class); $this->repository = app(AccountRepositoryInterface::class);
$this->repository->setUser($this->user); $this->repository->setUser($this->user);
@@ -138,7 +139,7 @@ class AccountController extends Controller
// custom order. // custom order.
usort( usort(
$return, $return,
static function (array $left, array $right) { static function (array $left, array $right): int {
$order = [AccountTypeEnum::ASSET->value, AccountTypeEnum::REVENUE->value, AccountTypeEnum::EXPENSE->value]; $order = [AccountTypeEnum::ASSET->value, AccountTypeEnum::REVENUE->value, AccountTypeEnum::EXPENSE->value];
$posA = (int)array_search($left['type'], $order, true); $posA = (int)array_search($left['type'], $order, true);
$posB = (int)array_search($right['type'], $order, true); $posB = (int)array_search($right['type'], $order, true);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -46,7 +47,7 @@ class BillController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(BillRepositoryInterface::class); $this->repository = app(BillRepositoryInterface::class);
$this->repository->setUser($this->user); $this->repository->setUser($this->user);
@@ -65,7 +66,7 @@ class BillController extends Controller
{ {
$result = $this->repository->searchBill($request->attributes->get('query'), $request->attributes->get('limit')); $result = $this->repository->searchBill($request->attributes->get('query'), $request->attributes->get('limit'));
$filtered = $result->map( $filtered = $result->map(
static fn (Bill $item) => [ static fn (Bill $item): array => [
'id' => (string) $item->id, 'id' => (string) $item->id,
'name' => $item->name, 'name' => $item->name,
'active' => $item->active, 'active' => $item->active,

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -46,7 +47,7 @@ class BudgetController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(BudgetRepositoryInterface::class); $this->repository = app(BudgetRepositoryInterface::class);
$this->repository->setUser($this->user); $this->repository->setUser($this->user);
@@ -65,7 +66,7 @@ class BudgetController extends Controller
{ {
$result = $this->repository->searchBudget($request->attributes->get('query'), $request->attributes->get('limit')); $result = $this->repository->searchBudget($request->attributes->get('query'), $request->attributes->get('limit'));
$filtered = $result->map( $filtered = $result->map(
static fn (Budget $item) => [ static fn (Budget $item): array => [
'id' => (string) $item->id, 'id' => (string) $item->id,
'name' => $item->name, 'name' => $item->name,
'active' => $item->active, 'active' => $item->active,

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -46,7 +47,7 @@ class CategoryController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(CategoryRepositoryInterface::class); $this->repository = app(CategoryRepositoryInterface::class);
$this->repository->setUser($this->user); $this->repository->setUser($this->user);
@@ -65,7 +66,7 @@ class CategoryController extends Controller
{ {
$result = $this->repository->searchCategory($request->attributes->get('query'), $request->attributes->get('limit')); $result = $this->repository->searchCategory($request->attributes->get('query'), $request->attributes->get('limit'));
$filtered = $result->map( $filtered = $result->map(
static fn (Category $item) => [ static fn (Category $item): array => [
'id' => (string) $item->id, 'id' => (string) $item->id,
'name' => $item->name, 'name' => $item->name,
] ]

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use Deprecated; use Deprecated;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
@@ -48,7 +49,7 @@ class CurrencyController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(CurrencyRepositoryInterface::class); $this->repository = app(CurrencyRepositoryInterface::class);
$this->repository->setUser($this->user); $this->repository->setUser($this->user);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -46,7 +47,7 @@ class ObjectGroupController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(ObjectGroupRepositoryInterface::class); $this->repository = app(ObjectGroupRepositoryInterface::class);
$this->repository->setUser($this->user); $this->repository->setUser($this->user);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -50,7 +51,7 @@ class PiggyBankController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->piggyRepository = app(PiggyBankRepositoryInterface::class); $this->piggyRepository = app(PiggyBankRepositoryInterface::class);
$this->accountRepository = app(AccountRepositoryInterface::class); $this->accountRepository = app(AccountRepositoryInterface::class);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -46,7 +47,7 @@ class RecurrenceController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(RecurringRepositoryInterface::class); $this->repository = app(RecurringRepositoryInterface::class);
$this->repository->setUser($this->user); $this->repository->setUser($this->user);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -46,7 +47,7 @@ class RuleController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(RuleRepositoryInterface::class); $this->repository = app(RuleRepositoryInterface::class);
$this->repository->setUser($this->user); $this->repository->setUser($this->user);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -46,7 +47,7 @@ class RuleGroupController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(RuleGroupRepositoryInterface::class); $this->repository = app(RuleGroupRepositoryInterface::class);
$this->repository->setUser($this->user); $this->repository->setUser($this->user);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -46,7 +47,7 @@ class TagController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(TagRepositoryInterface::class); $this->repository = app(TagRepositoryInterface::class);
$this->repository->setUser($this->user); $this->repository->setUser($this->user);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteTransactionApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteTransactionApiRequest;
@@ -51,7 +52,7 @@ class TransactionController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(JournalRepositoryInterface::class); $this->repository = app(JournalRepositoryInterface::class);
$this->groupRepository = app(TransactionGroupRepositoryInterface::class); $this->groupRepository = app(TransactionGroupRepositoryInterface::class);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteApiRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -46,7 +47,7 @@ class TransactionTypeController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(TransactionTypeRepositoryInterface::class); $this->repository = app(TransactionTypeRepositoryInterface::class);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Chart; namespace FireflyIII\Api\V1\Controllers\Chart;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Chart\ChartRequest; use FireflyIII\Api\V1\Requests\Chart\ChartRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -59,7 +60,7 @@ class AccountController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->repository = app(AccountRepositoryInterface::class); $this->repository = app(AccountRepositoryInterface::class);
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository->setUserGroup($this->userGroup); $this->repository->setUserGroup($this->userGroup);

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Chart; namespace FireflyIII\Api\V1\Controllers\Chart;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Chart\ChartRequest; use FireflyIII\Api\V1\Requests\Chart\ChartRequest;
use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Enums\TransactionTypeEnum;
@@ -56,7 +57,7 @@ class BalanceController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(AccountRepositoryInterface::class); $this->repository = app(AccountRepositoryInterface::class);
$this->collector = app(GroupCollectorInterface::class); $this->collector = app(GroupCollectorInterface::class);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Chart; namespace FireflyIII\Api\V1\Controllers\Chart;
use Illuminate\Http\Request;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\DateRangeRequest; use FireflyIII\Api\V1\Requests\DateRangeRequest;
@@ -61,7 +62,7 @@ class BudgetController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(BudgetRepositoryInterface::class); $this->repository = app(BudgetRepositoryInterface::class);
$this->blRepository = app(BudgetLimitRepositoryInterface::class); $this->blRepository = app(BudgetLimitRepositoryInterface::class);
@@ -140,14 +141,14 @@ class BudgetController extends Controller
} }
// convert data if necessary. // convert data if necessary.
if (true === $this->convertToPrimary && $currencyId !== $this->primaryCurrency->id) { if ($this->convertToPrimary && $currencyId !== $this->primaryCurrency->id) {
$currencies[$currencyId] ??= Amount::getTransactionCurrencyById($currencyId); $currencies[$currencyId] ??= Amount::getTransactionCurrencyById($currencyId);
$row['pc_budgeted'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['budgeted']); $row['pc_budgeted'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['budgeted']);
$row['pc_spent'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['spent']); $row['pc_spent'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['spent']);
$row['pc_left'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['left']); $row['pc_left'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['left']);
$row['pc_overspent'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['overspent']); $row['pc_overspent'] = $converter->convert($currencies[$currencyId], $this->primaryCurrency, $start, $row['overspent']);
} }
if (true === $this->convertToPrimary && $currencyId === $this->primaryCurrency->id) { if ($this->convertToPrimary && $currencyId === $this->primaryCurrency->id) {
$row['pc_budgeted'] = $row['budgeted']; $row['pc_budgeted'] = $row['budgeted'];
$row['pc_spent'] = $row['spent']; $row['pc_spent'] = $row['spent'];
$row['pc_left'] = $row['left']; $row['pc_left'] = $row['left'];
@@ -265,7 +266,7 @@ class BudgetController extends Controller
/** @var BudgetLimit $current */ /** @var BudgetLimit $current */
foreach ($limits as $current) { foreach ($limits as $current) {
if (true === $this->convertToPrimary) { if ($this->convertToPrimary) {
if ($current->transaction_currency_id === $this->primaryCurrency->id) { if ($current->transaction_currency_id === $this->primaryCurrency->id) {
// simply add it. // simply add it.
$amount = bcadd($amount, (string)$current->amount); $amount = bcadd($amount, (string)$current->amount);
@@ -283,7 +284,7 @@ class BudgetController extends Controller
$limit = $current; $limit = $current;
} }
} }
if (null !== $limit && true === $this->convertToPrimary) { if (null !== $limit && $this->convertToPrimary) {
// convert and add all amounts. // convert and add all amounts.
$limit->amount = app('steam')->positive($amount); $limit->amount = app('steam')->positive($amount);
Log::debug(sprintf('Final amount in limit with converted amount %s', $limit->amount)); Log::debug(sprintf('Final amount in limit with converted amount %s', $limit->amount));

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Chart; namespace FireflyIII\Api\V1\Controllers\Chart;
use Illuminate\Http\Request;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\DateRangeRequest; use FireflyIII\Api\V1\Requests\DateRangeRequest;
@@ -58,7 +59,7 @@ class CategoryController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->accountRepos = app(AccountRepositoryInterface::class); $this->accountRepos = app(AccountRepositoryInterface::class);
$this->currencyRepos = app(CurrencyRepositoryInterface::class); $this->currencyRepos = app(CurrencyRepositoryInterface::class);
@@ -181,7 +182,7 @@ class CategoryController extends Controller
$return = array_values($return); $return = array_values($return);
// order by amount // order by amount
usort($return, static fn (array $a, array $b) => ((float)$a['entries']['spent'] + (float)$a['entries']['earned']) < ((float)$b['entries']['spent'] + (float)$b['entries']['earned']) ? 1 : -1); usort($return, static fn (array $a, array $b): int => ((float)$a['entries']['spent'] + (float)$a['entries']['earned']) < ((float)$b['entries']['spent'] + (float)$b['entries']['earned']) ? 1 : -1);
return response()->json($this->clean($return)); return response()->json($this->clean($return));
} }

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers; namespace FireflyIII\Api\V1\Controllers;
use Deprecated;
use Carbon\Carbon; use Carbon\Carbon;
use Carbon\Exceptions\InvalidFormatException; use Carbon\Exceptions\InvalidFormatException;
use FireflyIII\Exceptions\BadHttpHeaderException; use FireflyIII\Exceptions\BadHttpHeaderException;
@@ -100,10 +101,10 @@ abstract class Controller extends BaseController
); );
} }
/** #[Deprecated(message: <<<'TXT'
* @deprecated use Request classes use Request classes
* Method to grab all parameters from the URL Method to grab all parameters from the URL
*/ TXT)]
private function getParameters(): ParameterBag private function getParameters(): ParameterBag
{ {
$bag = new ParameterBag(); $bag = new ParameterBag();

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Data\Bulk; namespace FireflyIII\Api\V1\Controllers\Data\Bulk;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Data\Bulk\TransactionRequest; use FireflyIII\Api\V1\Requests\Data\Bulk\TransactionRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -51,7 +52,7 @@ class TransactionController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->repository = app(AccountRepositoryInterface::class); $this->repository = app(AccountRepositoryInterface::class);
$this->repository->setUserGroup($this->userGroup); $this->repository->setUserGroup($this->userGroup);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Data; namespace FireflyIII\Api\V1\Controllers\Data;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Data\DestroyRequest; use FireflyIII\Api\V1\Requests\Data\DestroyRequest;
use FireflyIII\Enums\AccountTypeEnum; use FireflyIII\Enums\AccountTypeEnum;
@@ -63,7 +64,7 @@ class DestroyController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
return $next($request); return $next($request);
@@ -185,7 +186,7 @@ class DestroyController extends Controller
/** @var Account $account */ /** @var Account $account */
foreach ($collection as $account) { foreach ($collection as $account) {
$count = $account->transactions()->count(); $count = $account->transactions()->count();
if (true === $this->unused && 0 === $count) { if ($this->unused && 0 === $count) {
Log::info(sprintf('Deleted unused account #%d "%s"', $account->id, $account->name)); Log::info(sprintf('Deleted unused account #%d "%s"', $account->id, $account->name));
Log::channel('audit')->info(sprintf('Deleted unused account #%d "%s"', $account->id, $account->name)); Log::channel('audit')->info(sprintf('Deleted unused account #%d "%s"', $account->id, $account->name));
$service->destroy($account, null); $service->destroy($account, null);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Data\Export; namespace FireflyIII\Api\V1\Controllers\Data\Export;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Data\Export\ExportRequest; use FireflyIII\Api\V1\Requests\Data\Export\ExportRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -49,7 +50,7 @@ class ExportController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
$this->exporter = app(ExportDataGenerator::class); $this->exporter = app(ExportDataGenerator::class);
$this->exporter->setUserGroup($this->userGroup); $this->exporter->setUserGroup($this->userGroup);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Data; namespace FireflyIII\Api\V1\Controllers\Data;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Models\Account; use FireflyIII\Models\Account;
@@ -51,7 +52,7 @@ class PurgeController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->validateUserGroup($request); $this->validateUserGroup($request);
return $next($request); return $next($request);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use Illuminate\Http\Request;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\DestroyRequest; use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\DestroyRequest;
@@ -47,7 +48,7 @@ class DestroyController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->repository = app(ExchangeRateRepositoryInterface::class); $this->repository = app(ExchangeRateRepositoryInterface::class);
$this->repository->setUserGroup($this->validateUserGroup($request)); $this->repository->setUserGroup($this->validateUserGroup($request));

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface; use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface;
@@ -47,7 +48,7 @@ class IndexController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->repository = app(ExchangeRateRepositoryInterface::class); $this->repository = app(ExchangeRateRepositoryInterface::class);
$this->repository->setUserGroup($this->validateUserGroup($request)); $this->repository->setUserGroup($this->validateUserGroup($request));

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use Illuminate\Http\Request;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -51,7 +52,7 @@ class ShowController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->repository = app(ExchangeRateRepositoryInterface::class); $this->repository = app(ExchangeRateRepositoryInterface::class);
$this->repository->setUserGroup($this->validateUserGroup($request)); $this->repository->setUserGroup($this->validateUserGroup($request));

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use Illuminate\Http\Request;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\StoreByCurrenciesRequest; use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\StoreByCurrenciesRequest;
@@ -52,7 +53,7 @@ class StoreController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->repository = app(ExchangeRateRepositoryInterface::class); $this->repository = app(ExchangeRateRepositoryInterface::class);
$this->repository->setUserGroup($this->validateUserGroup($request)); $this->repository->setUserGroup($this->validateUserGroup($request));

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use Illuminate\Http\Request;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\UpdateRequest; use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\UpdateRequest;
@@ -48,7 +49,7 @@ class UpdateController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
$this->repository = app(ExchangeRateRepositoryInterface::class); $this->repository = app(ExchangeRateRepositoryInterface::class);
$this->repository->setUserGroup($this->validateUserGroup($request)); $this->repository->setUserGroup($this->validateUserGroup($request));

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\Transaction; namespace FireflyIII\Api\V1\Controllers\Models\Transaction;
use Illuminate\Http\Request;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\Transaction\StoreRequest; use FireflyIII\Api\V1\Requests\Models\Transaction\StoreRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -61,7 +62,7 @@ class StoreController extends Controller
{ {
parent::__construct(); parent::__construct();
$this->middleware( $this->middleware(
function ($request, $next) { function (Request $request, $next) {
/** @var User $admin */ /** @var User $admin */
$admin = auth()->user(); $admin = auth()->user();
$userGroup = $this->validateUserGroup($request); $userGroup = $this->validateUserGroup($request);

View File

@@ -90,7 +90,7 @@ class ListController extends Controller
// filter list on currency preference: // filter list on currency preference:
$collection = $unfiltered->filter( $collection = $unfiltered->filter(
static function (Account $account) use ($currency, $accountRepository) { static function (Account $account) use ($currency, $accountRepository): bool {
$currencyId = (int) $accountRepository->getMetaValue($account, 'currency_id'); $currencyId = (int) $accountRepository->getMetaValue($account, 'currency_id');
return $currencyId === $currency->id; return $currencyId === $currency->id;
@@ -178,7 +178,7 @@ class ListController extends Controller
// filter and paginate list: // filter and paginate list:
$collection = $unfiltered->filter( $collection = $unfiltered->filter(
static fn (Bill $bill) => $bill->transaction_currency_id === $currency->id static fn (Bill $bill): bool => $bill->transaction_currency_id === $currency->id
); );
$count = $collection->count(); $count = $collection->count();
$bills = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); $bills = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize);
@@ -261,8 +261,8 @@ class ListController extends Controller
// filter selection // filter selection
$collection = $unfiltered->filter( $collection = $unfiltered->filter(
static function (Recurrence $recurrence) use ($currency) { // @phpstan-ignore-line static function (Recurrence $recurrence) use ($currency): ?Recurrence { // @phpstan-ignore-line
if (array_any($recurrence->recurrenceTransactions, fn ($transaction) => $transaction->transaction_currency_id === $currency->id || $transaction->foreign_currency_id === $currency->id)) { if (array_any($recurrence->recurrenceTransactions, fn ($transaction): bool => $transaction->transaction_currency_id === $currency->id || $transaction->foreign_currency_id === $currency->id)) {
return $recurrence; return $recurrence;
} }
@@ -310,8 +310,8 @@ class ListController extends Controller
$unfiltered = $ruleRepos->getAll(); $unfiltered = $ruleRepos->getAll();
$collection = $unfiltered->filter( $collection = $unfiltered->filter(
static function (Rule $rule) use ($currency) { // @phpstan-ignore-line static function (Rule $rule) use ($currency): ?Rule { // @phpstan-ignore-line
if (array_any($rule->ruleTriggers, fn ($trigger) => 'currency_is' === $trigger->trigger_type && $currency->name === $trigger->trigger_value)) { if (array_any($rule->ruleTriggers, fn ($trigger): bool => 'currency_is' === $trigger->trigger_type && $currency->name === $trigger->trigger_value)) {
return $rule; return $rule;
} }

View File

@@ -45,18 +45,17 @@ class AccountController extends Controller
{ {
use AccountFilter; use AccountFilter;
private array $validFields; private array $validFields = [
public function __construct()
{
parent::__construct();
$this->validFields = [
AccountSearch::SEARCH_ALL, AccountSearch::SEARCH_ALL,
AccountSearch::SEARCH_ID, AccountSearch::SEARCH_ID,
AccountSearch::SEARCH_NAME, AccountSearch::SEARCH_NAME,
AccountSearch::SEARCH_IBAN, AccountSearch::SEARCH_IBAN,
AccountSearch::SEARCH_NUMBER, AccountSearch::SEARCH_NUMBER,
]; ];
public function __construct()
{
parent::__construct();
} }
/** /**

View File

@@ -591,7 +591,7 @@ class BasicController extends Controller
// filter list on preference of being included. // filter list on preference of being included.
$filtered = $allAccounts->filter( $filtered = $allAccounts->filter(
function (Account $account) { function (Account $account): bool {
$includeNetWorth = $this->accountRepository->getMetaValue($account, 'include_net_worth'); $includeNetWorth = $this->accountRepository->getMetaValue($account, 'include_net_worth');
return null === $includeNetWorth || '1' === $includeNetWorth; return null === $includeNetWorth || '1' === $includeNetWorth;
@@ -651,11 +651,8 @@ class BasicController extends Controller
if ($start->greaterThanOrEqualTo($date) && $end->greaterThanOrEqualTo($date)) { if ($start->greaterThanOrEqualTo($date) && $end->greaterThanOrEqualTo($date)) {
return true; return true;
} }
// start and end in the past? use $end
if ($start->lessThanOrEqualTo($date) && $end->lessThanOrEqualTo($date)) {
return true;
}
return false; // start and end in the past? use $end
return $start->lessThanOrEqualTo($date) && $end->lessThanOrEqualTo($date);
} }
} }

View File

@@ -23,10 +23,11 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests; namespace FireflyIII\Api\V1\Requests;
use Override;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
use RuntimeException; use RuntimeException;
abstract class AggregateFormRequest extends ApiRequest abstract class AggregateFormRequest extends ApiRequest
@@ -39,6 +40,7 @@ abstract class AggregateFormRequest extends ApiRequest
/** @return array<array|string> */ /** @return array<array|string> */
abstract protected function getRequests(): array; abstract protected function getRequests(): array;
#[Override]
public function initialize(array $query = [], array $request = [], array $attributes = [], array $cookies = [], array $files = [], array $server = [], $content = null): void public function initialize(array $query = [], array $request = [], array $attributes = [], array $cookies = [], array $files = [], array $server = [], $content = null): void
{ {
parent::initialize($query, $request, $attributes, $cookies, $files, $server, $content); parent::initialize($query, $request, $attributes, $cookies, $files, $server, $content);
@@ -76,7 +78,7 @@ abstract class AggregateFormRequest extends ApiRequest
// check all subrequests for rules and combine them // check all subrequests for rules and combine them
return array_reduce( return array_reduce(
$this->requests, $this->requests,
static fn (array $rules, FormRequest $request) => $rules static fn (array $rules, FormRequest $request): array => $rules
+ ( + (
method_exists($request, 'rules') method_exists($request, 'rules')
? $request->rules() ? $request->rules()
@@ -91,7 +93,7 @@ abstract class AggregateFormRequest extends ApiRequest
// register all subrequests' validators // register all subrequests' validators
foreach ($this->requests as $request) { foreach ($this->requests as $request) {
if (method_exists($request, 'withValidator')) { if (method_exists($request, 'withValidator')) {
Log::debug(sprintf('Process withValidator from class %s', get_class($request))); Log::debug(sprintf('Process withValidator from class %s', $request::class));
$request->withValidator($validator); $request->withValidator($validator);
} }
} }

View File

@@ -24,13 +24,13 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Chart; namespace FireflyIII\Api\V1\Requests\Chart;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class ChartRequest * Class ChartRequest

View File

@@ -24,12 +24,12 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Data\Bulk; namespace FireflyIII\Api\V1\Requests\Data\Bulk;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class MoveTransactionsRequest * Class MoveTransactionsRequest

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Data\Bulk; namespace FireflyIII\Api\V1\Requests\Data\Bulk;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Enums\ClauseType; use FireflyIII\Enums\ClauseType;
use FireflyIII\Rules\IsValidBulkClause; use FireflyIII\Rules\IsValidBulkClause;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
@@ -31,7 +32,6 @@ use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Validation\Api\Data\Bulk\ValidatesBulkTransactionQuery; use FireflyIII\Validation\Api\Data\Bulk\ValidatesBulkTransactionQuery;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
use JsonException; use JsonException;
use function Safe\json_decode; use function Safe\json_decode;

View File

@@ -23,7 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests; namespace FireflyIII\Api\V1\Requests;
use Illuminate\Validation\Validator; use Illuminate\Contracts\Validation\Validator;
class DateRangeRequest extends ApiRequest class DateRangeRequest extends ApiRequest
{ {

View File

@@ -23,8 +23,8 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests; namespace FireflyIII\Api\V1\Requests;
use Illuminate\Contracts\Validation\Validator;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Validation\Validator;
class DateRequest extends ApiRequest class DateRequest extends ApiRequest
{ {

View File

@@ -23,6 +23,8 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Generic; namespace FireflyIII\Api\V1\Requests\Generic;
use Override;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Api\V1\Requests\ApiRequest; use FireflyIII\Api\V1\Requests\ApiRequest;
use FireflyIII\Models\Account; use FireflyIII\Models\Account;
use FireflyIII\Models\Transaction; use FireflyIII\Models\Transaction;
@@ -30,7 +32,6 @@ use FireflyIII\Rules\Account\IsValidAccountTypeList;
use FireflyIII\Rules\TransactionType\IsValidTransactionTypeList; use FireflyIII\Rules\TransactionType\IsValidTransactionTypeList;
use FireflyIII\Support\Http\Api\AccountFilter; use FireflyIII\Support\Http\Api\AccountFilter;
use FireflyIII\Support\Http\Api\TransactionFilter; use FireflyIII\Support\Http\Api\TransactionFilter;
use Illuminate\Validation\Validator;
use RuntimeException; use RuntimeException;
class ObjectTypeApiRequest extends ApiRequest class ObjectTypeApiRequest extends ApiRequest
@@ -40,6 +41,7 @@ class ObjectTypeApiRequest extends ApiRequest
private ?string $objectType = null; private ?string $objectType = null;
#[Override]
public function handleConfig(array $config): void public function handleConfig(array $config): void
{ {
parent::handleConfig($config); parent::handleConfig($config);

View File

@@ -23,10 +23,10 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Generic; namespace FireflyIII\Api\V1\Requests\Generic;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Api\V1\Requests\ApiRequest; use FireflyIII\Api\V1\Requests\ApiRequest;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Validation\Validator;
class QueryRequest extends ApiRequest class QueryRequest extends ApiRequest
{ {

View File

@@ -23,9 +23,9 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Account; namespace FireflyIII\Api\V1\Requests\Models\Account;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Api\V1\Requests\ApiRequest; use FireflyIII\Api\V1\Requests\ApiRequest;
use FireflyIII\Support\Http\Api\AccountFilter; use FireflyIII\Support\Http\Api\AccountFilter;
use Illuminate\Validation\Validator;
class AccountTypeApiRequest extends ApiRequest class AccountTypeApiRequest extends ApiRequest
{ {

View File

@@ -23,10 +23,10 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Account; namespace FireflyIII\Api\V1\Requests\Models\Account;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Api\V1\Requests\ApiRequest; use FireflyIII\Api\V1\Requests\ApiRequest;
use FireflyIII\Rules\Account\IsValidAccountTypeList; use FireflyIII\Rules\Account\IsValidAccountTypeList;
use FireflyIII\Support\Http\Api\AccountFilter; use FireflyIII\Support\Http\Api\AccountFilter;
use Illuminate\Validation\Validator;
class AccountTypesApiRequest extends ApiRequest class AccountTypesApiRequest extends ApiRequest
{ {

View File

@@ -26,7 +26,6 @@ namespace FireflyIII\Api\V1\Requests\Models\Account;
use FireflyIII\Api\V1\Requests\AggregateFormRequest; use FireflyIII\Api\V1\Requests\AggregateFormRequest;
use FireflyIII\Api\V1\Requests\DateRangeRequest; use FireflyIII\Api\V1\Requests\DateRangeRequest;
use FireflyIII\Api\V1\Requests\DateRequest; use FireflyIII\Api\V1\Requests\DateRequest;
use FireflyIII\Api\V1\Requests\Generic\ObjectTypeApiRequest;
use FireflyIII\Api\V1\Requests\PaginationRequest; use FireflyIII\Api\V1\Requests\PaginationRequest;
use FireflyIII\Models\Account; use FireflyIII\Models\Account;

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Account; namespace FireflyIII\Api\V1\Requests\Models\Account;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Models\Account; use FireflyIII\Models\Account;
use FireflyIII\Models\Location; use FireflyIII\Models\Location;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
@@ -35,7 +36,6 @@ use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class UpdateRequest * Class UpdateRequest

View File

@@ -58,7 +58,7 @@ class StoreRequest extends FormRequest
{ {
$models = config('firefly.valid_attachment_models'); $models = config('firefly.valid_attachment_models');
$models = array_map( $models = array_map(
static fn (string $className) => str_replace('FireflyIII\Models\\', '', $className), static fn (string $className): string => str_replace('FireflyIII\Models\\', '', $className),
$models $models
); );
$models = implode(',', $models); $models = implode(',', $models);

View File

@@ -60,7 +60,7 @@ class UpdateRequest extends FormRequest
{ {
$models = config('firefly.valid_attachment_models'); $models = config('firefly.valid_attachment_models');
$models = array_map( $models = array_map(
static fn (string $className) => str_replace('FireflyIII\Models\\', '', $className), static fn (string $className): string => str_replace('FireflyIII\Models\\', '', $className),
$models $models
); );
$models = implode(',', $models); $models = implode(',', $models);

View File

@@ -24,13 +24,13 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\AvailableBudget; namespace FireflyIII\Api\V1\Requests\Models\AvailableBudget;
use Illuminate\Contracts\Validation\Validator;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Rules\IsValidPositiveAmount;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class Request * Class Request

View File

@@ -24,13 +24,13 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Bill; namespace FireflyIII\Api\V1\Requests\Models\Bill;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Rules\IsValidPositiveAmount;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
use TypeError; use TypeError;
use ValueError; use ValueError;

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Bill; namespace FireflyIII\Api\V1\Requests\Models\Bill;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Models\Bill; use FireflyIII\Models\Bill;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Rules\IsValidPositiveAmount;
@@ -31,7 +32,6 @@ use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class UpdateRequest * Class UpdateRequest

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Budget; namespace FireflyIII\Api\V1\Requests\Models\Budget;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Rules\IsValidPositiveAmount;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
@@ -31,7 +32,6 @@ use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Validation\AutoBudget\ValidatesAutoBudgetRequest; use FireflyIII\Validation\AutoBudget\ValidatesAutoBudgetRequest;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class StoreRequest * Class StoreRequest

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Budget; namespace FireflyIII\Api\V1\Requests\Models\Budget;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Models\Budget; use FireflyIII\Models\Budget;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Rules\IsValidPositiveAmount;
@@ -32,7 +33,6 @@ use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Validation\AutoBudget\ValidatesAutoBudgetRequest; use FireflyIII\Validation\AutoBudget\ValidatesAutoBudgetRequest;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class UpdateRequest * Class UpdateRequest

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\BudgetLimit; namespace FireflyIII\Api\V1\Requests\Models\BudgetLimit;
use Illuminate\Contracts\Validation\Validator;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Factory\TransactionCurrencyFactory; use FireflyIII\Factory\TransactionCurrencyFactory;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
@@ -33,7 +34,6 @@ use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class StoreRequest * Class StoreRequest

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\BudgetLimit; namespace FireflyIII\Api\V1\Requests\Models\BudgetLimit;
use Illuminate\Contracts\Validation\Validator;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Rules\IsValidPositiveAmount;
@@ -31,7 +32,6 @@ use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class UpdateRequest * Class UpdateRequest

View File

@@ -24,12 +24,12 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate; namespace FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate;
use Illuminate\Contracts\Validation\Validator;
use Carbon\Carbon; use Carbon\Carbon;
use Carbon\Exceptions\InvalidFormatException; use Carbon\Exceptions\InvalidFormatException;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
class StoreByCurrenciesRequest extends FormRequest class StoreByCurrenciesRequest extends FormRequest
{ {

View File

@@ -24,13 +24,13 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate; namespace FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
class StoreByDateRequest extends FormRequest class StoreByDateRequest extends FormRequest
{ {

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\PiggyBank; namespace FireflyIII\Api\V1\Requests\Models\PiggyBank;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Rules\IsValidZeroOrMoreAmount; use FireflyIII\Rules\IsValidZeroOrMoreAmount;
@@ -32,7 +33,6 @@ use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class StoreRequest * Class StoreRequest

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Recurrence; namespace FireflyIII\Api\V1\Requests\Models\Recurrence;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Rules\BelongsUser; use FireflyIII\Rules\BelongsUser;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Rules\IsValidPositiveAmount;
@@ -35,7 +36,6 @@ use FireflyIII\Validation\RecurrenceValidation;
use FireflyIII\Validation\TransactionValidation; use FireflyIII\Validation\TransactionValidation;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class StoreRequest * Class StoreRequest

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Recurrence; namespace FireflyIII\Api\V1\Requests\Models\Recurrence;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Models\Recurrence; use FireflyIII\Models\Recurrence;
use FireflyIII\Rules\BelongsUser; use FireflyIII\Rules\BelongsUser;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
@@ -36,7 +37,6 @@ use FireflyIII\Validation\RecurrenceValidation;
use FireflyIII\Validation\TransactionValidation; use FireflyIII\Validation\TransactionValidation;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class UpdateRequest * Class UpdateRequest

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Rule; namespace FireflyIII\Api\V1\Requests\Models\Rule;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsValidActionExpression; use FireflyIII\Rules\IsValidActionExpression;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
@@ -31,7 +32,6 @@ use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Support\Request\GetRuleConfiguration; use FireflyIII\Support\Request\GetRuleConfiguration;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class StoreRequest * Class StoreRequest
@@ -202,7 +202,7 @@ class StoreRequest extends FormRequest
$inactiveIndex = $index; $inactiveIndex = $index;
} }
} }
if (true === $allInactive) { if ($allInactive) {
$validator->errors()->add(sprintf('triggers.%d.active', $inactiveIndex), (string) trans('validation.at_least_one_active_trigger')); $validator->errors()->add(sprintf('triggers.%d.active', $inactiveIndex), (string) trans('validation.at_least_one_active_trigger'));
} }
} }
@@ -231,7 +231,7 @@ class StoreRequest extends FormRequest
$inactiveIndex = $index; $inactiveIndex = $index;
} }
} }
if (true === $allInactive) { if ($allInactive) {
$validator->errors()->add(sprintf('actions.%d.active', $inactiveIndex), (string) trans('validation.at_least_one_active_action')); $validator->errors()->add(sprintf('actions.%d.active', $inactiveIndex), (string) trans('validation.at_least_one_active_action'));
} }
} }

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Rule; namespace FireflyIII\Api\V1\Requests\Models\Rule;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Models\Rule; use FireflyIII\Models\Rule;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsValidActionExpression; use FireflyIII\Rules\IsValidActionExpression;
@@ -32,7 +33,6 @@ use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Support\Request\GetRuleConfiguration; use FireflyIII\Support\Request\GetRuleConfiguration;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class UpdateRequest * Class UpdateRequest
@@ -207,7 +207,7 @@ class UpdateRequest extends FormRequest
$inactiveIndex = $index; $inactiveIndex = $index;
} }
} }
if (true === $allInactive) { if ($allInactive) {
$validator->errors()->add(sprintf('triggers.%d.active', $inactiveIndex), (string) trans('validation.at_least_one_active_trigger')); $validator->errors()->add(sprintf('triggers.%d.active', $inactiveIndex), (string) trans('validation.at_least_one_active_trigger'));
} }
} }
@@ -248,7 +248,7 @@ class UpdateRequest extends FormRequest
$inactiveIndex = $index; $inactiveIndex = $index;
} }
} }
if (true === $allInactive) { if ($allInactive) {
$validator->errors()->add(sprintf('actions.%d.active', $inactiveIndex), (string) trans('validation.at_least_one_active_action')); $validator->errors()->add(sprintf('actions.%d.active', $inactiveIndex), (string) trans('validation.at_least_one_active_action'));
} }
} }

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Transaction; namespace FireflyIII\Api\V1\Requests\Models\Transaction;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Models\Location; use FireflyIII\Models\Location;
use FireflyIII\Rules\BelongsUser; use FireflyIII\Rules\BelongsUser;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
@@ -39,7 +40,6 @@ use FireflyIII\Validation\GroupValidation;
use FireflyIII\Validation\TransactionValidation; use FireflyIII\Validation\TransactionValidation;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class StoreRequest * Class StoreRequest

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\Transaction; namespace FireflyIII\Api\V1\Requests\Models\Transaction;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\TransactionGroup; use FireflyIII\Models\TransactionGroup;
use FireflyIII\Rules\BelongsUser; use FireflyIII\Rules\BelongsUser;
@@ -37,7 +38,6 @@ use FireflyIII\Validation\GroupValidation;
use FireflyIII\Validation\TransactionValidation; use FireflyIII\Validation\TransactionValidation;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class UpdateRequest * Class UpdateRequest

View File

@@ -23,8 +23,8 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\TransactionCurrency; namespace FireflyIII\Api\V1\Requests\Models\TransactionCurrency;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Api\V1\Requests\ApiRequest; use FireflyIII\Api\V1\Requests\ApiRequest;
use Illuminate\Validation\Validator;
class CurrencyCodeRequest extends ApiRequest class CurrencyCodeRequest extends ApiRequest
{ {

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\TransactionLink; namespace FireflyIII\Api\V1\Requests\Models\TransactionLink;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
@@ -31,7 +32,6 @@ use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class StoreRequest * Class StoreRequest

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\TransactionLink; namespace FireflyIII\Api\V1\Requests\Models\TransactionLink;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Models\TransactionJournalLink; use FireflyIII\Models\TransactionJournalLink;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface;
@@ -31,7 +32,6 @@ use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class UpdateRequest * Class UpdateRequest

View File

@@ -52,7 +52,7 @@ class CreateRequest extends FormRequest
$responses = $this->get('responses', []); $responses = $this->get('responses', []);
$deliveries = $this->get('deliveries', []); $deliveries = $this->get('deliveries', []);
if (0 === count($triggers) || 0 === count($responses) || 0 === count($deliveries)) { if (in_array(0, [count($triggers), count($responses), count($deliveries)], true)) {
throw new FireflyException('Unexpectedly got no responses, triggers or deliveries.'); throw new FireflyException('Unexpectedly got no responses, triggers or deliveries.');
} }

View File

@@ -53,7 +53,7 @@ class UpdateRequest extends FormRequest
$responses = $this->get('responses', []); $responses = $this->get('responses', []);
$deliveries = $this->get('deliveries', []); $deliveries = $this->get('deliveries', []);
if (0 === count($triggers) || 0 === count($responses) || 0 === count($deliveries)) { if (in_array(0, [count($triggers), count($responses), count($deliveries)], true)) {
throw new FireflyException('Unexpectedly got no responses, triggers or deliveries.'); throw new FireflyException('Unexpectedly got no responses, triggers or deliveries.');
} }

View File

@@ -23,16 +23,18 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests; namespace FireflyIII\Api\V1\Requests;
use Override;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Rules\IsValidSortInstruction; use FireflyIII\Rules\IsValidSortInstruction;
use FireflyIII\Support\Facades\Preferences; use FireflyIII\Support\Facades\Preferences;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Validation\Validator;
use RuntimeException; use RuntimeException;
class PaginationRequest extends ApiRequest class PaginationRequest extends ApiRequest
{ {
private ?string $sortClass = null; private ?string $sortClass = null;
#[Override]
public function handleConfig(array $config): void public function handleConfig(array $config): void
{ {
parent::handleConfig($config); parent::handleConfig($config);

View File

@@ -24,13 +24,13 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\System; namespace FireflyIII\Api\V1\Requests\System;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Validator;
/** /**
* Class UserUpdateRequest * Class UserUpdateRequest

View File

@@ -220,7 +220,7 @@ class CorrectsAmounts extends Command
/** @var RuleTrigger $item */ /** @var RuleTrigger $item */
foreach ($set as $item) { foreach ($set as $item) {
$result = $this->fixRuleTrigger($item); $result = $this->fixRuleTrigger($item);
if (true === $result) { if ($result) {
++$fixed; ++$fixed;
} }
} }

View File

@@ -115,7 +115,7 @@ class CorrectsCurrencies extends Command
$found = array_values( $found = array_values(
array_filter( array_filter(
$found, $found,
static fn (int $currencyId) => 0 !== $currencyId static fn (int $currencyId): bool => 0 !== $currencyId
) )
); );

View File

@@ -55,10 +55,8 @@ class CorrectsGroupInformation extends Command
/** /**
* Execute the console command. * Execute the console command.
*
* @return int
*/ */
public function handle() public function handle(): int
{ {
// objects: accounts, attachments, available budgets, bills, budgets, categories, currency_exchange_rates // objects: accounts, attachments, available budgets, bills, budgets, categories, currency_exchange_rates
// recurrences, rule groups, rules, tags, transaction groups, transaction journals, webhooks // recurrences, rule groups, rules, tags, transaction groups, transaction journals, webhooks

View File

@@ -93,12 +93,8 @@ class CorrectsIbans extends Command
if (in_array($type, [AccountTypeEnum::LOAN->value, AccountTypeEnum::DEBT->value, AccountTypeEnum::MORTGAGE->value], true)) { if (in_array($type, [AccountTypeEnum::LOAN->value, AccountTypeEnum::DEBT->value, AccountTypeEnum::MORTGAGE->value], true)) {
$type = 'liabilities'; $type = 'liabilities';
} }
if (array_key_exists($iban, $set[$userId])) {
// iban already in use! two exceptions exist: // iban already in use! two exceptions exist:
if ( if (array_key_exists($iban, $set[$userId]) && (!AccountTypeEnum::EXPENSE->value === $set[$userId][$iban] && AccountTypeEnum::REVENUE->value === $type && !(AccountTypeEnum::REVENUE->value === $set[$userId][$iban] && AccountTypeEnum::EXPENSE->value === $type))) {
!(AccountTypeEnum::EXPENSE->value === $set[$userId][$iban] && AccountTypeEnum::REVENUE->value === $type) // allowed combination
&& !(AccountTypeEnum::REVENUE->value === $set[$userId][$iban] && AccountTypeEnum::EXPENSE->value === $type) // also allowed combination.
) {
$this->friendlyWarning( $this->friendlyWarning(
sprintf( sprintf(
'IBAN "%s" is used more than once and will be removed from %s #%d ("%s")', 'IBAN "%s" is used more than once and will be removed from %s #%d ("%s")',
@@ -112,7 +108,6 @@ class CorrectsIbans extends Command
$account->save(); $account->save();
++$this->count; ++$this->count;
} }
}
if (!array_key_exists($iban, $set[$userId])) { if (!array_key_exists($iban, $set[$userId])) {
$set[$userId][$iban] = $type; $set[$userId][$iban] = $type;

View File

@@ -130,7 +130,7 @@ class CorrectsPrimaryCurrencyAmounts extends Command
$repository->setUserGroup($userGroup); $repository->setUserGroup($userGroup);
$set = $repository->getPiggyBanks(); $set = $repository->getPiggyBanks();
$set = $set->filter( $set = $set->filter(
static fn (PiggyBank $piggyBank) => $currency->id !== $piggyBank->transaction_currency_id static fn (PiggyBank $piggyBank): bool => $currency->id !== $piggyBank->transaction_currency_id
); );
foreach ($set as $piggyBank) { foreach ($set as $piggyBank) {
$piggyBank->encrypted = false; $piggyBank->encrypted = false;

View File

@@ -53,7 +53,7 @@ class CorrectsTransactionTypes extends Command
/** @var TransactionJournal $journal */ /** @var TransactionJournal $journal */
foreach ($journals as $journal) { foreach ($journals as $journal) {
$fixed = $this->fixJournal($journal); $fixed = $this->fixJournal($journal);
if (true === $fixed) { if ($fixed) {
++$count; ++$count;
} }
} }
@@ -115,7 +115,7 @@ class CorrectsTransactionTypes extends Command
private function getSourceAccount(TransactionJournal $journal): Account private function getSourceAccount(TransactionJournal $journal): Account
{ {
$collection = $journal->transactions->filter( $collection = $journal->transactions->filter(
static fn (Transaction $transaction) => $transaction->amount < 0 static fn (Transaction $transaction): bool => $transaction->amount < 0
); );
if (0 === $collection->count()) { if (0 === $collection->count()) {
throw new FireflyException(sprintf('300001: Journal #%d has no source transaction.', $journal->id)); throw new FireflyException(sprintf('300001: Journal #%d has no source transaction.', $journal->id));
@@ -142,7 +142,7 @@ class CorrectsTransactionTypes extends Command
private function getDestinationAccount(TransactionJournal $journal): Account private function getDestinationAccount(TransactionJournal $journal): Account
{ {
$collection = $journal->transactions->filter( $collection = $journal->transactions->filter(
static fn (Transaction $transaction) => $transaction->amount > 0 static fn (Transaction $transaction): bool => $transaction->amount > 0
); );
if (0 === $collection->count()) { if (0 === $collection->count()) {
throw new FireflyException(sprintf('300004: Journal #%d has no destination transaction.', $journal->id)); throw new FireflyException(sprintf('300004: Journal #%d has no destination transaction.', $journal->id));

View File

@@ -257,21 +257,14 @@ class CorrectsUnevenAmount extends Command
// source currency = dest foreign currency // source currency = dest foreign currency
// dest amount = source foreign currency // dest amount = source foreign currency
// dest currency = source foreign currency // dest currency = source foreign currency
// Log::debug(sprintf('[a] %s', bccomp(app('steam')->positive($source->amount), app('steam')->positive($destination->foreign_amount)))); // Log::debug(sprintf('[a] %s', bccomp(app('steam')->positive($source->amount), app('steam')->positive($destination->foreign_amount))));
// Log::debug(sprintf('[b] %s', bccomp(app('steam')->positive($destination->amount), app('steam')->positive($source->foreign_amount)))); // Log::debug(sprintf('[b] %s', bccomp(app('steam')->positive($destination->amount), app('steam')->positive($source->foreign_amount))));
// Log::debug(sprintf('[c] %s', var_export($source->transaction_currency_id === $destination->foreign_currency_id,true))); // Log::debug(sprintf('[c] %s', var_export($source->transaction_currency_id === $destination->foreign_currency_id,true)));
// Log::debug(sprintf('[d] %s', var_export((int) $destination->transaction_currency_id ===(int) $source->foreign_currency_id, true))); // Log::debug(sprintf('[d] %s', var_export((int) $destination->transaction_currency_id ===(int) $source->foreign_currency_id, true)));
return 0 === bccomp(Steam::positive($source->amount), Steam::positive($destination->foreign_amount))
if (0 === bccomp(Steam::positive($source->amount), Steam::positive($destination->foreign_amount))
&& $source->transaction_currency_id === $destination->foreign_currency_id && $source->transaction_currency_id === $destination->foreign_currency_id
&& 0 === bccomp(Steam::positive($destination->amount), Steam::positive($source->foreign_amount)) && 0 === bccomp(Steam::positive($destination->amount), Steam::positive($source->foreign_amount))
&& (int) $destination->transaction_currency_id === (int) $source->foreign_currency_id && (int) $destination->transaction_currency_id === (int) $source->foreign_currency_id;
) {
return true;
}
return false;
} }
private function matchCurrencies(): void private function matchCurrencies(): void

View File

@@ -56,7 +56,7 @@ class RestoresOAuthKeys extends Command
} }
if ($this->keysInDatabase() && !$this->keysOnDrive()) { if ($this->keysInDatabase() && !$this->keysOnDrive()) {
$result = $this->restoreKeysFromDB(); $result = $this->restoreKeysFromDB();
if (true === $result) { if ($result) {
$this->friendlyInfo('Restored OAuth keys from database.'); $this->friendlyInfo('Restored OAuth keys from database.');
return; return;

View File

@@ -206,7 +206,7 @@ class ExportsData extends Command
$error = true; $error = true;
} }
if (true === $error && 'start' === $field) { if ($error && 'start' === $field) {
$journal = $this->journalRepository->firstNull(); $journal = $this->journalRepository->firstNull();
$date = $journal instanceof TransactionJournal ? $journal->date : today(config('app.timezone'))->subYear(); $date = $journal instanceof TransactionJournal ? $journal->date : today(config('app.timezone'))->subYear();
$date->startOfDay(); $date->startOfDay();
@@ -214,7 +214,7 @@ class ExportsData extends Command
return $date; return $date;
} }
// field can only be 'end' at this point, so no need to include it in the check. // field can only be 'end' at this point, so no need to include it in the check.
if (true === $error) { if ($error) {
$date = today(config('app.timezone')); $date = today(config('app.timezone'));
$date->endOfDay(); $date->endOfDay();

View File

@@ -86,7 +86,7 @@ class CreatesDatabase extends Command
$pdo->exec(sprintf('CREATE DATABASE `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;', env('DB_DATABASE'))); $pdo->exec(sprintf('CREATE DATABASE `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;', env('DB_DATABASE')));
$this->friendlyInfo(sprintf('Created database "%s"', env('DB_DATABASE'))); $this->friendlyInfo(sprintf('Created database "%s"', env('DB_DATABASE')));
} }
if (true === $exists) { if ($exists) {
$this->friendlyInfo(sprintf('Database "%s" exists.', env('DB_DATABASE'))); $this->friendlyInfo(sprintf('Database "%s" exists.', env('DB_DATABASE')));
} }

View File

@@ -132,11 +132,11 @@ class ForcesDecimalSize extends Command
{ {
// if sqlite, add function? // if sqlite, add function?
if ('sqlite' === (string) config('database.default')) { if ('sqlite' === (string) config('database.default')) {
DB::connection()->getPdo()->sqliteCreateFunction('REGEXP', static function ($pattern, $value) { DB::connection()->getPdo()->sqliteCreateFunction('REGEXP', static function ($pattern, $value): int {
mb_regex_encoding('UTF-8'); mb_regex_encoding('UTF-8');
$pattern = trim($pattern, '"'); $pattern = trim($pattern, '"');
return (false !== mb_ereg($pattern, (string) $value)) ? 1 : 0; return (mb_ereg($pattern, (string) $value)) ? 1 : 0;
}); });
} }

View File

@@ -314,7 +314,7 @@ class ApplyRules extends Command
foreach ($rules as $rule) { foreach ($rules as $rule) {
// if in rule selection, or group in selection or all rules, it's included. // if in rule selection, or group in selection or all rules, it's included.
$test = $this->includeRule($rule, $group); $test = $this->includeRule($rule, $group);
if (true === $test) { if ($test) {
Log::debug(sprintf('Will include rule #%d "%s"', $rule->id, $rule->title)); Log::debug(sprintf('Will include rule #%d "%s"', $rule->id, $rule->title));
$rulesToApply->push($rule); $rulesToApply->push($rule);
} }

View File

@@ -136,11 +136,8 @@ class UpgradesLiabilitiesEight extends Command
if (null === $liabilityJournal) { if (null === $liabilityJournal) {
return false; return false;
} }
if (!$openingJournal->date->isSameDay($liabilityJournal->date)) {
return false;
}
return true; return (bool) $openingJournal->date->isSameDay($liabilityJournal->date);
} }
private function deleteCreditTransaction(Account $account): void private function deleteCreditTransaction(Account $account): void

View File

@@ -77,7 +77,7 @@ class UpgradesTagLocations extends Command
private function hasLocationDetails(Tag $tag): bool private function hasLocationDetails(Tag $tag): bool
{ {
return null !== $tag->latitude && null !== $tag->longitude && null !== $tag->zoomLevel; return !in_array(null, [$tag->latitude, $tag->longitude, $tag->zoomLevel], true);
} }
private function migrateLocationDetails(Tag $tag): void private function migrateLocationDetails(Tag $tag): void

View File

@@ -180,7 +180,7 @@ class UpgradesToGroups extends Command
private function getDestinationTransactions(TransactionJournal $journal): Collection private function getDestinationTransactions(TransactionJournal $journal): Collection
{ {
return $journal->transactions->filter( return $journal->transactions->filter(
static fn (Transaction $transaction) => $transaction->amount > 0 static fn (Transaction $transaction): bool => $transaction->amount > 0
); );
} }
@@ -278,7 +278,7 @@ class UpgradesToGroups extends Command
private function findOpposingTransaction(TransactionJournal $journal, Transaction $transaction): ?Transaction private function findOpposingTransaction(TransactionJournal $journal, Transaction $transaction): ?Transaction
{ {
$set = $journal->transactions->filter( $set = $journal->transactions->filter(
static function (Transaction $subject) use ($transaction) { static function (Transaction $subject) use ($transaction): bool {
$amount = (float) $transaction->amount * -1 === (float) $subject->amount; // intentional float $amount = (float) $transaction->amount * -1 === (float) $subject->amount; // intentional float
$identifier = $transaction->identifier === $subject->identifier; $identifier = $transaction->identifier === $subject->identifier;
Log::debug(sprintf('Amount the same? %s', var_export($amount, true))); Log::debug(sprintf('Amount the same? %s', var_export($amount, true)));

View File

@@ -211,7 +211,6 @@ class UpgradesVariousCurrencyInformation extends Command
break; break;
} }
/** @var null|Transaction */
return $lead; return $lead;
} }

View File

@@ -84,7 +84,7 @@ class UpgradesWebhooks extends Command
$delivery = WebhookDelivery::tryFrom((int)$webhook->delivery); $delivery = WebhookDelivery::tryFrom((int)$webhook->delivery);
$response = WebhookResponse::tryFrom((int)$webhook->response); $response = WebhookResponse::tryFrom((int)$webhook->response);
$trigger = WebhookTrigger::tryFrom((int)$webhook->trigger); $trigger = WebhookTrigger::tryFrom((int)$webhook->trigger);
if (null === $delivery || null === $response || null === $trigger) { if (in_array(null, [$delivery, $response, $trigger], true)) {
$this->friendlyError(sprintf('[a] Webhook #%d has an invalid delivery, response or trigger value. Will not upgrade.', $webhook->id)); $this->friendlyError(sprintf('[a] Webhook #%d has an invalid delivery, response or trigger value. Will not upgrade.', $webhook->id));
return; return;
@@ -92,7 +92,7 @@ class UpgradesWebhooks extends Command
$deliveryModel = WebhookDeliveryModel::where('key', $delivery->value)->first(); $deliveryModel = WebhookDeliveryModel::where('key', $delivery->value)->first();
$responseModel = WebhookResponseModel::where('key', $response->value)->first(); $responseModel = WebhookResponseModel::where('key', $response->value)->first();
$triggerModel = WebhookTriggerModel::where('key', $trigger->value)->first(); $triggerModel = WebhookTriggerModel::where('key', $trigger->value)->first();
if (null === $deliveryModel || null === $responseModel || null === $triggerModel) { if (in_array(null, [$deliveryModel, $responseModel, $triggerModel], true)) {
$this->friendlyError(sprintf('[b] Webhook #%d has an invalid delivery, response or trigger model. Will not upgrade.', $webhook->id)); $this->friendlyError(sprintf('[b] Webhook #%d has an invalid delivery, response or trigger model. Will not upgrade.', $webhook->id));
return; return;

View File

@@ -50,10 +50,8 @@ class RequestedReportOnJournals
/** /**
* Get the channels the event should broadcast on. * Get the channels the event should broadcast on.
*
* @return PrivateChannel
*/ */
public function broadcastOn() public function broadcastOn(): PrivateChannel
{ {
return new PrivateChannel('channel-name'); return new PrivateChannel('channel-name');
} }

View File

@@ -194,7 +194,7 @@ class GracefulNotFoundHandler extends ExceptionHandler
$user = auth()->user(); $user = auth()->user();
$route = $request->route(); $route = $request->route();
$param = $route->parameter('transactionGroup'); $param = $route->parameter('transactionGroup');
$groupId = !is_object($param) ? (int) $param : 0; $groupId = is_object($param) ? 0 : (int) $param;
/** @var null|TransactionGroup $group */ /** @var null|TransactionGroup $group */
$group = $user->transactionGroups()->withTrashed()->find($groupId); $group = $user->transactionGroups()->withTrashed()->find($groupId);

View File

@@ -274,7 +274,7 @@ class Handler extends ExceptionHandler
{ {
return null !== Arr::first( return null !== Arr::first(
$this->dontReport, $this->dontReport,
static fn ($type) => $e instanceof $type static fn ($type): bool => $e instanceof $type
); );
} }

View File

@@ -33,8 +33,8 @@ use Throwable;
*/ */
final class IntervalException extends Exception final class IntervalException extends Exception
{ {
public array $availableIntervals; public array $availableIntervals = [];
public Periodicity $periodicity; public Periodicity $periodicity = Periodicity::Monthly;
/** @var mixed */ /** @var mixed */
protected $message = 'The periodicity %s is unknown. Choose one of available periodicity: %s'; protected $message = 'The periodicity %s is unknown. Choose one of available periodicity: %s';
@@ -42,8 +42,6 @@ final class IntervalException extends Exception
public function __construct(string $message = '', int $code = 0, ?Throwable $previous = null) public function __construct(string $message = '', int $code = 0, ?Throwable $previous = null)
{ {
parent::__construct($message, $code, $previous); parent::__construct($message, $code, $previous);
$this->availableIntervals = [];
$this->periodicity = Periodicity::Monthly;
} }
public static function unavailable( public static function unavailable(

View File

@@ -130,7 +130,7 @@ class AccountFactory
protected function getAccountType(array $data): ?AccountType protected function getAccountType(array $data): ?AccountType
{ {
$accountTypeId = array_key_exists('account_type_id', $data) ? (int) $data['account_type_id'] : 0; $accountTypeId = array_key_exists('account_type_id', $data) ? (int) $data['account_type_id'] : 0;
$accountTypeName = array_key_exists('account_type_name', $data) ? $data['account_type_name'] : null; $accountTypeName = $data['account_type_name'] ?? null;
$result = null; $result = null;
// find by name or ID // find by name or ID
if ($accountTypeId > 0) { if ($accountTypeId > 0) {
@@ -174,7 +174,7 @@ class AccountFactory
$this->accountRepository->resetAccountOrder(); $this->accountRepository->resetAccountOrder();
// create it: // create it:
$virtualBalance = array_key_exists('virtual_balance', $data) ? $data['virtual_balance'] : null; $virtualBalance = $data['virtual_balance'] ?? null;
$active = array_key_exists('active', $data) ? $data['active'] : true; $active = array_key_exists('active', $data) ? $data['active'] : true;
$databaseData = [ $databaseData = [
'user_id' => $this->user->id, 'user_id' => $this->user->id,

View File

@@ -44,8 +44,8 @@ class AttachmentFactory
public function create(array $data): ?Attachment public function create(array $data): ?Attachment
{ {
// append if necessary. // append if necessary.
$model = !str_contains((string) $data['attachable_type'], 'FireflyIII') ? sprintf('FireflyIII\Models\%s', $data['attachable_type']) $model = str_contains((string) $data['attachable_type'], 'FireflyIII') ? $data['attachable_type']
: $data['attachable_type']; : sprintf('FireflyIII\Models\%s', $data['attachable_type']);
// get journal instead of transaction. // get journal instead of transaction.
if (Transaction::class === $model) { if (Transaction::class === $model) {

View File

@@ -89,7 +89,7 @@ class TagFactory
/** @var null|Tag $tag */ /** @var null|Tag $tag */
$tag = Tag::create($array); $tag = Tag::create($array);
if (null !== $tag && null !== $latitude && null !== $longitude) { if (!in_array(null, [$tag, $latitude, $longitude], true)) {
// create location object. // create location object.
$location = new Location(); $location = new Location();
$location->latitude = $latitude; $location->latitude = $latitude;

View File

@@ -41,20 +41,11 @@ use Illuminate\Support\Facades\Log;
class TransactionFactory class TransactionFactory
{ {
private Account $account; private Account $account;
private array $accountInformation; private array $accountInformation = [];
private TransactionCurrency $currency; private TransactionCurrency $currency;
private ?TransactionCurrency $foreignCurrency = null; private ?TransactionCurrency $foreignCurrency = null;
private TransactionJournal $journal; private TransactionJournal $journal;
private bool $reconciled; private bool $reconciled = false;
/**
* Constructor.
*/
public function __construct()
{
$this->reconciled = false;
$this->accountInformation = [];
}
/** /**
* Create transaction with negative amount (for source accounts). * Create transaction with negative amount (for source accounts).

View File

@@ -71,7 +71,7 @@ class TransactionJournalFactory
private AccountValidator $accountValidator; private AccountValidator $accountValidator;
private BillRepositoryInterface $billRepository; private BillRepositoryInterface $billRepository;
private CurrencyRepositoryInterface $currencyRepository; private CurrencyRepositoryInterface $currencyRepository;
private bool $errorOnHash; private bool $errorOnHash = false;
private array $fields; private array $fields;
private PiggyBankEventFactory $piggyEventFactory; private PiggyBankEventFactory $piggyEventFactory;
private PiggyBankRepositoryInterface $piggyRepository; private PiggyBankRepositoryInterface $piggyRepository;
@@ -86,7 +86,6 @@ class TransactionJournalFactory
*/ */
public function __construct() public function __construct()
{ {
$this->errorOnHash = false;
$this->fields = config('firefly.journal_meta_fields'); $this->fields = config('firefly.journal_meta_fields');
$this->currencyRepository = app(CurrencyRepositoryInterface::class); $this->currencyRepository = app(CurrencyRepositoryInterface::class);
$this->typeRepository = app(TransactionTypeRepositoryInterface::class); $this->typeRepository = app(TransactionTypeRepositoryInterface::class);
@@ -237,7 +236,7 @@ class TransactionJournalFactory
Log::debug('Done with getAccount(2x)'); Log::debug('Done with getAccount(2x)');
// there is a safety catch here. If either account is NULL, they will be replaced with the cash account. // there is a safety catch here. If either account is NULL, they will be replaced with the cash account.
if (null === $destinationAccount) { if (!$destinationAccount instanceof Account) {
Log::warning('Destination account is NULL, will replace with cash account.'); Log::warning('Destination account is NULL, will replace with cash account.');
$destinationAccount = $this->accountRepository->getCashAccount(); $destinationAccount = $this->accountRepository->getCashAccount();
} }
@@ -615,7 +614,7 @@ class TransactionJournalFactory
private function storeLocation(TransactionJournal $journal, NullArrayObject $data): void private function storeLocation(TransactionJournal $journal, NullArrayObject $data): void
{ {
if (null !== $data['longitude'] && null !== $data['latitude'] && null !== $data['zoom_level']) { if (!in_array(null, [$data['longitude'], $data['latitude'], $data['zoom_level']], true)) {
$location = new Location(); $location = new Location();
$location->longitude = $data['longitude']; $location->longitude = $data['longitude'];
$location->latitude = $data['latitude']; $location->latitude = $data['latitude'];
@@ -628,7 +627,7 @@ class TransactionJournalFactory
public function setErrorOnHash(bool $errorOnHash): void public function setErrorOnHash(bool $errorOnHash): void
{ {
$this->errorOnHash = $errorOnHash; $this->errorOnHash = $errorOnHash;
if (true === $errorOnHash) { if ($errorOnHash) {
Log::info('Will trigger duplication alert for this journal.'); Log::info('Will trigger duplication alert for this journal.');
} }
} }

View File

@@ -53,7 +53,7 @@ class MonthReportGenerator implements ReportGeneratorInterface
$preferredPeriod = $this->preferredPeriod(); $preferredPeriod = $this->preferredPeriod();
try { try {
$result = view('reports.double.report', compact('accountIds', 'reportType', 'doubleIds', 'preferredPeriod')) $result = view('reports.double.report', ['accountIds' => $accountIds, 'reportType' => $reportType, 'doubleIds' => $doubleIds, 'preferredPeriod' => $preferredPeriod])
->with('start', $this->start)->with('end', $this->end) ->with('start', $this->start)->with('end', $this->end)
->with('doubles', $this->expense) ->with('doubles', $this->expense)
->render() ->render()

View File

@@ -100,7 +100,7 @@ class MonthReportGenerator implements ReportGeneratorInterface
]; ];
try { try {
$result = view('reports.audit.report', compact('reportType', 'accountIds', 'auditData', 'hideable', 'defaultShow')) $result = view('reports.audit.report', ['reportType' => $reportType, 'accountIds' => $accountIds, 'auditData' => $auditData, 'hideable' => $hideable, 'defaultShow' => $defaultShow])
->with('start', $this->start)->with('end', $this->end)->with('accounts', $this->accounts) ->with('start', $this->start)->with('end', $this->end)->with('accounts', $this->accounts)
->render() ->render()
; ;

View File

@@ -41,17 +41,9 @@ class MonthReportGenerator implements ReportGeneratorInterface
private Collection $accounts; private Collection $accounts;
private Collection $budgets; private Collection $budgets;
private Carbon $end; private Carbon $end;
private array $expenses; private array $expenses = [];
private Carbon $start; private Carbon $start;
/**
* MonthReportGenerator constructor.
*/
public function __construct()
{
$this->expenses = [];
}
/** /**
* Generates the report. * Generates the report.
* *
@@ -65,7 +57,7 @@ class MonthReportGenerator implements ReportGeneratorInterface
try { try {
$result = view( $result = view(
'reports.budget.month', 'reports.budget.month',
compact('accountIds', 'budgetIds') ['accountIds' => $accountIds, 'budgetIds' => $budgetIds]
) )
->with('start', $this->start)->with('end', $this->end) ->with('start', $this->start)->with('end', $this->end)
->with('budgets', $this->budgets) ->with('budgets', $this->budgets)

View File

@@ -41,19 +41,10 @@ class MonthReportGenerator implements ReportGeneratorInterface
private Collection $accounts; private Collection $accounts;
private Collection $categories; private Collection $categories;
private Carbon $end; private Carbon $end;
private array $expenses; private array $expenses = [];
private array $income; private array $income = [];
private Carbon $start; private Carbon $start;
/**
* MonthReportGenerator constructor.
*/
public function __construct()
{
$this->income = [];
$this->expenses = [];
}
/** /**
* Generates the report. * Generates the report.
* *
@@ -67,7 +58,7 @@ class MonthReportGenerator implements ReportGeneratorInterface
// render! // render!
try { try {
return view('reports.category.month', compact('accountIds', 'categoryIds', 'reportType')) return view('reports.category.month', ['accountIds' => $accountIds, 'categoryIds' => $categoryIds, 'reportType' => $reportType])
->with('start', $this->start)->with('end', $this->end) ->with('start', $this->start)->with('end', $this->end)
->with('categories', $this->categories) ->with('categories', $this->categories)
->with('accounts', $this->accounts) ->with('accounts', $this->accounts)

View File

@@ -36,13 +36,13 @@ use Illuminate\Support\Facades\Log;
class MonthReportGenerator implements ReportGeneratorInterface class MonthReportGenerator implements ReportGeneratorInterface
{ {
/** @var Collection The accounts involved in the report. */ /** @var Collection The accounts involved in the report. */
private $accounts; private ?Collection $accounts = null;
/** @var Carbon The end date. */ /** @var Carbon The end date. */
private $end; private ?Carbon $end = null;
/** @var Carbon The start date. */ /** @var Carbon The start date. */
private $start; private ?Carbon $start = null;
/** /**
* Generates the report. * Generates the report.
@@ -55,7 +55,7 @@ class MonthReportGenerator implements ReportGeneratorInterface
$reportType = 'default'; $reportType = 'default';
try { try {
return view('reports.default.month', compact('accountIds', 'reportType'))->with('start', $this->start)->with('end', $this->end)->render(); return view('reports.default.month', ['accountIds' => $accountIds, 'reportType' => $reportType])->with('start', $this->start)->with('end', $this->end)->render();
} catch (Throwable $e) { } catch (Throwable $e) {
Log::error(sprintf('Cannot render reports.default.month: %s', $e->getMessage())); Log::error(sprintf('Cannot render reports.default.month: %s', $e->getMessage()));
Log::error($e->getTraceAsString()); Log::error($e->getTraceAsString());

Some files were not shown because too many files have changed in this diff Show More