From bf53f5d6b76005e0e03ad6d46d0474d18b6b397a Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 5 Sep 2025 05:09:46 +0200 Subject: [PATCH] Fix various phpstan issues. --- .ci/phpstan.neon | 2 - .../V1/Controllers/Chart/BudgetController.php | 129 +++++++++--------- app/Api/V1/Controllers/Controller.php | 1 - .../Insight/Income/PeriodController.php | 3 +- .../Insight/Income/TagController.php | 12 +- .../Insight/Transfer/PeriodController.php | 3 +- .../Insight/Transfer/TagController.php | 7 +- .../Models/AvailableBudget/ShowController.php | 8 +- .../Models/BudgetLimit/ShowController.php | 1 + .../TransactionCurrency/ListController.php | 4 +- .../Controllers/Summary/BasicController.php | 2 +- .../System/ConfigurationController.php | 14 +- .../Controllers/Webhook/UpdateController.php | 1 + app/Api/V1/Requests/Chart/ChartRequest.php | 2 +- .../Data/Bulk/MoveTransactionsRequest.php | 2 +- .../Requests/Data/Bulk/TransactionRequest.php | 2 +- .../Requests/Models/Account/ShowRequest.php | 6 +- .../Requests/Models/Account/UpdateRequest.php | 2 +- .../Models/AvailableBudget/Request.php | 2 +- .../V1/Requests/Models/Bill/StoreRequest.php | 2 +- .../V1/Requests/Models/Bill/UpdateRequest.php | 2 +- .../Requests/Models/Budget/StoreRequest.php | 2 +- .../Requests/Models/Budget/UpdateRequest.php | 2 +- .../Models/BudgetLimit/UpdateRequest.php | 2 +- .../StoreByCurrenciesRequest.php | 4 +- .../StoreByDateRequest.php | 2 +- .../Models/PiggyBank/StoreRequest.php | 2 +- .../Models/Recurrence/StoreRequest.php | 2 +- .../Models/Recurrence/UpdateRequest.php | 2 +- .../V1/Requests/Models/Rule/StoreRequest.php | 2 +- .../V1/Requests/Models/Rule/UpdateRequest.php | 2 +- .../Models/Transaction/StoreRequest.php | 2 +- .../Models/Transaction/UpdateRequest.php | 2 +- .../Models/TransactionLink/StoreRequest.php | 2 +- .../Models/TransactionLink/UpdateRequest.php | 2 +- .../V1/Requests/System/UserUpdateRequest.php | 2 +- .../Correction/CorrectsGroupAccounts.php | 4 +- .../Correction/CorrectsUnevenAmount.php | 8 +- .../Correction/RemovesEmptyJournals.php | 5 +- .../ValidatesEnvironmentVariables.php | 11 -- .../System/RecalculatesRunningBalance.php | 3 +- app/Http/Controllers/Json/BoxController.php | 5 +- .../Account/OperationsRepository.php | 5 +- app/Repositories/Budget/BudgetRepository.php | 9 +- .../Category/NoCategoryRepository.php | 5 +- .../Category/OperationsRepository.php | 5 +- .../Summarizer/TransactionSummarizer.php | 13 +- 47 files changed, 148 insertions(+), 164 deletions(-) diff --git a/.ci/phpstan.neon b/.ci/phpstan.neon index c07d5db7e7..7755c93511 100644 --- a/.ci/phpstan.neon +++ b/.ci/phpstan.neon @@ -1,6 +1,4 @@ parameters: - scanFiles: - - ../_ide_helper.php paths: - ../app - ../database diff --git a/app/Api/V1/Controllers/Chart/BudgetController.php b/app/Api/V1/Controllers/Chart/BudgetController.php index 4102693d36..f19c2977c1 100644 --- a/app/Api/V1/Controllers/Chart/BudgetController.php +++ b/app/Api/V1/Controllers/Chart/BudgetController.php @@ -55,7 +55,6 @@ class BudgetController extends Controller protected OperationsRepositoryInterface $opsRepository; private BudgetLimitRepositoryInterface $blRepository; private array $currencies = []; - private TransactionCurrency $currency; private BudgetRepositoryInterface $repository; public function __construct() @@ -201,18 +200,18 @@ class BudgetController extends Controller return $return; } - /** - * When no budget limits are present, the expenses of the whole period are collected and grouped. - * This is grouped per currency. Because there is no limit set, "left to spend" and "overspent" are empty. - * - * @throws FireflyException - */ - private function noBudgetLimits(Budget $budget, Carbon $start, Carbon $end): array - { - $spent = $this->opsRepository->listExpenses($start, $end, null, new Collection([$budget])); - - return $this->processExpenses($budget->id, $spent, $start, $end); - } +// /** +// * When no budget limits are present, the expenses of the whole period are collected and grouped. +// * This is grouped per currency. Because there is no limit set, "left to spend" and "overspent" are empty. +// * +// * @throws FireflyException +// */ +// private function noBudgetLimits(Budget $budget, Carbon $start, Carbon $end): array +// { +// $spent = $this->opsRepository->listExpenses($start, $end, null, new Collection([$budget])); +// +// return $this->processExpenses($budget->id, $spent, $start, $end); +// } /** * Shared between the "noBudgetLimits" function and "processLimit". Will take a single set of expenses and return @@ -258,59 +257,59 @@ class BudgetController extends Controller return $return; } - /** - * Function that processes each budget limit (per budget). - * - * If you have a budget limit in EUR, only transactions in EUR will be considered. - * If you have a budget limit in GBP, only transactions in GBP will be considered. - * - * If you have a budget limit in EUR, and a transaction in GBP, it will not be considered for the EUR budget limit. - * - * @throws FireflyException - */ - private function budgetLimits(Budget $budget, Collection $limits): array - { - Log::debug(sprintf('Now in budgetLimits(#%d)', $budget->id)); - $data = []; +// /** +// * Function that processes each budget limit (per budget). +// * +// * If you have a budget limit in EUR, only transactions in EUR will be considered. +// * If you have a budget limit in GBP, only transactions in GBP will be considered. +// * +// * If you have a budget limit in EUR, and a transaction in GBP, it will not be considered for the EUR budget limit. +// * +// * @throws FireflyException +// */ +// private function budgetLimits(Budget $budget, Collection $limits): array +// { +// Log::debug(sprintf('Now in budgetLimits(#%d)', $budget->id)); +// $data = []; +// +// /** @var BudgetLimit $limit */ +// foreach ($limits as $limit) { +// $data = array_merge($data, $this->processLimit($budget, $limit)); +// } +// +// return $data; +// } - /** @var BudgetLimit $limit */ - foreach ($limits as $limit) { - $data = array_merge($data, $this->processLimit($budget, $limit)); - } - - return $data; - } - - /** - * @throws FireflyException - */ - private function processLimit(Budget $budget, BudgetLimit $limit): array - { - Log::debug(sprintf('Created new ExchangeRateConverter in %s', __METHOD__)); - $end = clone $limit->end_date; - $end->endOfDay(); - $spent = $this->opsRepository->listExpenses($limit->start_date, $end, null, new Collection([$budget])); - $limitCurrencyId = $limit->transaction_currency_id; - - /** @var array $entry */ - // only spent the entry where the entry's currency matches the budget limit's currency - // so $filtered will only have 1 or 0 entries - $filtered = array_filter($spent, fn ($entry) => $entry['currency_id'] === $limitCurrencyId); - $result = $this->processExpenses($budget->id, $filtered, $limit->start_date, $end); - if (1 === count($result)) { - $compare = bccomp($limit->amount, (string)app('steam')->positive($result[$limitCurrencyId]['spent'])); - $result[$limitCurrencyId]['budgeted'] = $limit->amount; - if (1 === $compare) { - // convert this amount into the primary currency: - $result[$limitCurrencyId]['left'] = bcadd($limit->amount, (string)$result[$limitCurrencyId]['spent']); - } - if ($compare <= 0) { - $result[$limitCurrencyId]['overspent'] = app('steam')->positive(bcadd($limit->amount, (string)$result[$limitCurrencyId]['spent'])); - } - } - - return $result; - } +// /** +// * @throws FireflyException +// */ +// private function processLimit(Budget $budget, BudgetLimit $limit): array +// { +// Log::debug(sprintf('Created new ExchangeRateConverter in %s', __METHOD__)); +// $end = clone $limit->end_date; +// $end->endOfDay(); +// $spent = $this->opsRepository->listExpenses($limit->start_date, $end, null, new Collection([$budget])); +// $limitCurrencyId = $limit->transaction_currency_id; +// +// /** @var array $entry */ +// // only spent the entry where the entry's currency matches the budget limit's currency +// // so $filtered will only have 1 or 0 entries +// $filtered = array_filter($spent, fn ($entry) => $entry['currency_id'] === $limitCurrencyId); +// $result = $this->processExpenses($budget->id, $filtered, $limit->start_date, $end); +// if (1 === count($result)) { +// $compare = bccomp($limit->amount, (string)app('steam')->positive($result[$limitCurrencyId]['spent'])); +// $result[$limitCurrencyId]['budgeted'] = $limit->amount; +// if (1 === $compare) { +// // convert this amount into the primary currency: +// $result[$limitCurrencyId]['left'] = bcadd($limit->amount, (string)$result[$limitCurrencyId]['spent']); +// } +// if ($compare <= 0) { +// $result[$limitCurrencyId]['overspent'] = app('steam')->positive(bcadd($limit->amount, (string)$result[$limitCurrencyId]['spent'])); +// } +// } +// +// return $result; +// } private function filterLimit(int $currencyId, Collection $limits): ?BudgetLimit { diff --git a/app/Api/V1/Controllers/Controller.php b/app/Api/V1/Controllers/Controller.php index 5bd47b75fd..f6629f8be0 100644 --- a/app/Api/V1/Controllers/Controller.php +++ b/app/Api/V1/Controllers/Controller.php @@ -66,7 +66,6 @@ abstract class Controller extends BaseController protected const string JSON_CONTENT_TYPE = 'application/json'; protected array $accepts = ['application/json', 'application/vnd.api+json']; - /** @var array */ protected bool $convertToPrimary = false; protected TransactionCurrency $primaryCurrency; protected ParameterBag $parameters; diff --git a/app/Api/V1/Controllers/Insight/Income/PeriodController.php b/app/Api/V1/Controllers/Insight/Income/PeriodController.php index c66a19eab8..f413788066 100644 --- a/app/Api/V1/Controllers/Insight/Income/PeriodController.php +++ b/app/Api/V1/Controllers/Insight/Income/PeriodController.php @@ -29,6 +29,7 @@ use FireflyIII\Api\V1\Requests\Insight\GenericRequest; use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Support\Facades\Amount; +use FireflyIII\Support\Facades\Steam; use Illuminate\Http\JsonResponse; /** @@ -71,7 +72,7 @@ class PeriodController extends Controller 'currency_id' => (string) $currencyId, 'currency_code' => $currencyCode, ]; - $response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], (string) app('steam')->positive($journal[$field])); + $response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], Steam::positive($journal[$field])); $response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference']; // float but on purpose. } diff --git a/app/Api/V1/Controllers/Insight/Income/TagController.php b/app/Api/V1/Controllers/Insight/Income/TagController.php index fe45270654..95352cddb3 100644 --- a/app/Api/V1/Controllers/Insight/Income/TagController.php +++ b/app/Api/V1/Controllers/Insight/Income/TagController.php @@ -30,12 +30,13 @@ use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Repositories\Tag\TagRepositoryInterface; use FireflyIII\Support\Facades\Amount; +use FireflyIII\Support\Facades\Steam; use Illuminate\Http\JsonResponse; /** * Class TagController */ -class TagController extends Controller +class TagController extends Controller { private TagRepositoryInterface $repository; @@ -97,7 +98,7 @@ class TagController extends Controller 'currency_id' => (string) $currencyId, 'currency_code' => $currencyCode, ]; - $response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], (string) app('steam')->positive($journal[$field])); + $response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], Steam::positive($journal[$field])); $response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference']; } @@ -148,7 +149,7 @@ class TagController extends Controller 'currency_id' => (string) $currencyId, 'currency_code' => $journal['currency_code'], ]; - $response[$key]['difference'] = bcadd((string) $response[$key]['difference'], (string) app('steam')->positive($journal['amount'])); + $response[$key]['difference'] = bcadd((string) $response[$key]['difference'], Steam::positive($journal['amount'])); $response[$key]['difference_float'] = (float) $response[$key]['difference']; } @@ -160,10 +161,7 @@ class TagController extends Controller 'currency_id' => (string) $foreignCurrencyId, 'currency_code' => $journal['foreign_currency_code'], ]; - $response[$foreignKey]['difference'] = bcadd( - (string) $response[$foreignKey]['difference'], - (string) app('steam')->positive($journal['foreign_amount']) - ); + $response[$foreignKey]['difference'] = bcadd((string) $response[$foreignKey]['difference'], Steam::positive($journal['foreign_amount'])); $response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference']; } } diff --git a/app/Api/V1/Controllers/Insight/Transfer/PeriodController.php b/app/Api/V1/Controllers/Insight/Transfer/PeriodController.php index e2dc396d19..bc716225bb 100644 --- a/app/Api/V1/Controllers/Insight/Transfer/PeriodController.php +++ b/app/Api/V1/Controllers/Insight/Transfer/PeriodController.php @@ -29,6 +29,7 @@ use FireflyIII\Api\V1\Requests\Insight\GenericRequest; use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Support\Facades\Amount; +use FireflyIII\Support\Facades\Steam; use Illuminate\Http\JsonResponse; /** @@ -71,7 +72,7 @@ class PeriodController extends Controller 'currency_id' => (string) $currencyId, 'currency_code' => $currencyCode, ]; - $response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], (string) app('steam')->positive($journal[$field])); + $response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], Steam::positive($journal[$field])); $response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference']; } diff --git a/app/Api/V1/Controllers/Insight/Transfer/TagController.php b/app/Api/V1/Controllers/Insight/Transfer/TagController.php index a03d623cfd..0fe8b86e17 100644 --- a/app/Api/V1/Controllers/Insight/Transfer/TagController.php +++ b/app/Api/V1/Controllers/Insight/Transfer/TagController.php @@ -30,6 +30,7 @@ use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Repositories\Tag\TagRepositoryInterface; use FireflyIII\Support\Facades\Amount; +use FireflyIII\Support\Facades\Steam; use Illuminate\Http\JsonResponse; /** @@ -95,7 +96,7 @@ class TagController extends Controller 'currency_id' => (string) $currencyId, 'currency_code' => $currencyCode, ]; - $response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], (string) app('steam')->positive($journal[$field])); + $response[$currencyId]['difference'] = bcadd($response[$currencyId]['difference'], Steam::positive($journal[$field])); $response[$currencyId]['difference_float'] = (float) $response[$currencyId]['difference']; } @@ -146,7 +147,7 @@ class TagController extends Controller 'currency_id' => (string) $currencyId, 'currency_code' => $journal['currency_code'], ]; - $response[$key]['difference'] = bcadd((string) $response[$key]['difference'], (string) app('steam')->positive($journal['amount'])); + $response[$key]['difference'] = bcadd((string) $response[$key]['difference'], Steam::positive($journal['amount'])); $response[$key]['difference_float'] = (float) $response[$key]['difference']; } @@ -160,7 +161,7 @@ class TagController extends Controller ]; $response[$foreignKey]['difference'] = bcadd( (string) $response[$foreignKey]['difference'], - (string) app('steam')->positive($journal['foreign_amount']) + Steam::positive($journal['foreign_amount']) ); $response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference']; // intentional float } diff --git a/app/Api/V1/Controllers/Models/AvailableBudget/ShowController.php b/app/Api/V1/Controllers/Models/AvailableBudget/ShowController.php index 94f7dfdbc7..0caa70c50a 100644 --- a/app/Api/V1/Controllers/Models/AvailableBudget/ShowController.php +++ b/app/Api/V1/Controllers/Models/AvailableBudget/ShowController.php @@ -114,8 +114,8 @@ class ShowController extends Controller public function show(AvailableBudget $availableBudget): JsonResponse { $manager = $this->getManager(); - $start = $this->parameters->get('start'); - $end = $this->parameters->get('end'); +// $start = $this->parameters->get('start'); +// $end = $this->parameters->get('end'); /** @var AvailableBudgetTransformer $transformer */ $transformer = app(AvailableBudgetTransformer::class); @@ -126,8 +126,8 @@ class ShowController extends Controller $admin = auth()->user(); $enrichment = new AvailableBudgetEnrichment(); $enrichment->setUser($admin); - $enrichment->setStart($start); - $enrichment->setEnd($end); +// $enrichment->setStart($start); +// $enrichment->setEnd($end); $availableBudget = $enrichment->enrichSingle($availableBudget); diff --git a/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php b/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php index 0253b3aac9..4a34763464 100644 --- a/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php +++ b/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php @@ -84,6 +84,7 @@ class ShowController extends Controller $enrichment->setUser($admin); $enrichment->setStart($this->parameters->get('start')); $enrichment->setEnd($this->parameters->get('end')); + /** @var Budget $budget */ $budget = $enrichment->enrichSingle($budget); diff --git a/app/Api/V1/Controllers/Models/TransactionCurrency/ListController.php b/app/Api/V1/Controllers/Models/TransactionCurrency/ListController.php index 17fb1c075a..a6c4edd3ac 100644 --- a/app/Api/V1/Controllers/Models/TransactionCurrency/ListController.php +++ b/app/Api/V1/Controllers/Models/TransactionCurrency/ListController.php @@ -192,7 +192,7 @@ class ListController extends Controller $enrichment->setUser($admin); $enrichment->setStart($this->parameters->get('start')); $enrichment->setEnd($this->parameters->get('end')); - $bills = $enrichment->enrichSingle($bills); + $bills = $enrichment->enrich($bills); // make paginator: $paginator = new LengthAwarePaginator($bills, $count, $pageSize, $this->parameters->get('page')); @@ -268,7 +268,6 @@ class ListController extends Controller // filter selection $collection = $unfiltered->filter( static function (Recurrence $recurrence) use ($currency) { // @phpstan-ignore-line - /** @var RecurrenceTransaction $transaction */ if (array_any($recurrence->recurrenceTransactions, fn ($transaction) => $transaction->transaction_currency_id === $currency->id || $transaction->foreign_currency_id === $currency->id)) { return $recurrence; } @@ -320,7 +319,6 @@ class ListController extends Controller $collection = $unfiltered->filter( static function (Rule $rule) use ($currency) { // @phpstan-ignore-line - /** @var RuleTrigger $trigger */ if (array_any($rule->ruleTriggers, fn ($trigger) => 'currency_is' === $trigger->trigger_type && $currency->name === $trigger->trigger_value)) { return $rule; } diff --git a/app/Api/V1/Controllers/Summary/BasicController.php b/app/Api/V1/Controllers/Summary/BasicController.php index 096ed01db7..7550d63fb7 100644 --- a/app/Api/V1/Controllers/Summary/BasicController.php +++ b/app/Api/V1/Controllers/Summary/BasicController.php @@ -481,7 +481,7 @@ class BasicController extends Controller $currencies = []; // first, create an entry for each entry in the "available" array. - /** @var array $availableBudget */ + /** @var string $availableBudget */ foreach ($available as $currencyId => $availableBudget) { $currencies[$currencyId] ??= $this->currencyRepos->find($currencyId); $return[$currencyId] = [ diff --git a/app/Api/V1/Controllers/System/ConfigurationController.php b/app/Api/V1/Controllers/System/ConfigurationController.php index 6331ef0391..7175d1b094 100644 --- a/app/Api/V1/Controllers/System/ConfigurationController.php +++ b/app/Api/V1/Controllers/System/ConfigurationController.php @@ -156,13 +156,11 @@ class ConfigurationController extends Controller } // fallback - if (!str_starts_with($configKey, 'configuration.')) { - $data = [ - 'title' => $configKey, - 'value' => config($configKey), - 'editable' => false, - ]; - } + $data = [ + 'title' => $configKey, + 'value' => config($shortKey), + 'editable' => false, + ]; return response()->api(['data' => $data])->header('Content-Type', self::JSON_CONTENT_TYPE); } @@ -178,7 +176,7 @@ class ConfigurationController extends Controller */ public function update(UpdateRequest $request, string $name): JsonResponse { - $rules = ['value' => 'required']; + $rules = ['value' => 'required']; if (!$this->repository->hasRole(auth()->user(), 'owner')) { $messages = ['value' => '200005: You need the "owner" role to do this.']; Validator::make([], $rules, $messages)->validate(); diff --git a/app/Api/V1/Controllers/Webhook/UpdateController.php b/app/Api/V1/Controllers/Webhook/UpdateController.php index eec804184e..8ff8883cf0 100644 --- a/app/Api/V1/Controllers/Webhook/UpdateController.php +++ b/app/Api/V1/Controllers/Webhook/UpdateController.php @@ -77,6 +77,7 @@ class UpdateController extends Controller $admin = auth()->user(); $enrichment = new WebhookEnrichment(); $enrichment->setUser($admin); + /** @var Webhook $webhook */ $webhook = $enrichment->enrichSingle($webhook); Log::channel('audit')->info(sprintf('User updates webhook #%d', $webhook->id), $data); diff --git a/app/Api/V1/Requests/Chart/ChartRequest.php b/app/Api/V1/Requests/Chart/ChartRequest.php index 83b666943d..d298a89116 100644 --- a/app/Api/V1/Requests/Chart/ChartRequest.php +++ b/app/Api/V1/Requests/Chart/ChartRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Chart; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Support\Request\ChecksLogin; diff --git a/app/Api/V1/Requests/Data/Bulk/MoveTransactionsRequest.php b/app/Api/V1/Requests/Data/Bulk/MoveTransactionsRequest.php index 8731e354aa..6e8f9b285c 100644 --- a/app/Api/V1/Requests/Data/Bulk/MoveTransactionsRequest.php +++ b/app/Api/V1/Requests/Data/Bulk/MoveTransactionsRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Data\Bulk; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; diff --git a/app/Api/V1/Requests/Data/Bulk/TransactionRequest.php b/app/Api/V1/Requests/Data/Bulk/TransactionRequest.php index b02ee21149..46aea15783 100644 --- a/app/Api/V1/Requests/Data/Bulk/TransactionRequest.php +++ b/app/Api/V1/Requests/Data/Bulk/TransactionRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Data\Bulk; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use JsonException; use FireflyIII\Enums\ClauseType; use FireflyIII\Rules\IsValidBulkClause; diff --git a/app/Api/V1/Requests/Models/Account/ShowRequest.php b/app/Api/V1/Requests/Models/Account/ShowRequest.php index 42ab14354a..33732fbd8c 100644 --- a/app/Api/V1/Requests/Models/Account/ShowRequest.php +++ b/app/Api/V1/Requests/Models/Account/ShowRequest.php @@ -31,7 +31,7 @@ use FireflyIII\Support\Facades\Preferences; use FireflyIII\Support\Http\Api\AccountFilter; use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\User; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use Illuminate\Foundation\Http\FormRequest; class ShowRequest extends FormRequest @@ -46,8 +46,6 @@ class ShowRequest extends FormRequest // get default for user: /** @var User $user */ $user = auth()->user(); - - /** @var Preference $pageSize */ $limit = (int)Preferences::getForUser($user, 'listPageSize', 50)->data; } @@ -81,7 +79,7 @@ class ShowRequest extends FormRequest { $validator->after( function (Validator $validator): void { - if ($validator->failed()) { + if (count($validator->failed()) > 0) { return; } $data = $validator->getData(); diff --git a/app/Api/V1/Requests/Models/Account/UpdateRequest.php b/app/Api/V1/Requests/Models/Account/UpdateRequest.php index 5fb31b6fc8..473e5b8714 100644 --- a/app/Api/V1/Requests/Models/Account/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Account/UpdateRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Account; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Models\Account; use FireflyIII\Models\Location; use FireflyIII\Repositories\Account\AccountRepositoryInterface; diff --git a/app/Api/V1/Requests/Models/AvailableBudget/Request.php b/app/Api/V1/Requests/Models/AvailableBudget/Request.php index 93b3f732b0..02cbf088e6 100644 --- a/app/Api/V1/Requests/Models/AvailableBudget/Request.php +++ b/app/Api/V1/Requests/Models/AvailableBudget/Request.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\AvailableBudget; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use Carbon\Carbon; use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Support\Request\ChecksLogin; diff --git a/app/Api/V1/Requests/Models/Bill/StoreRequest.php b/app/Api/V1/Requests/Models/Bill/StoreRequest.php index 46b0027e7e..4b35c5bb2e 100644 --- a/app/Api/V1/Requests/Models/Bill/StoreRequest.php +++ b/app/Api/V1/Requests/Models/Bill/StoreRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Bill; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use ValueError; use TypeError; use FireflyIII\Rules\IsBoolean; diff --git a/app/Api/V1/Requests/Models/Bill/UpdateRequest.php b/app/Api/V1/Requests/Models/Bill/UpdateRequest.php index 149f5ad4b7..f4dd92f9df 100644 --- a/app/Api/V1/Requests/Models/Bill/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Bill/UpdateRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Bill; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Models\Bill; use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsValidPositiveAmount; diff --git a/app/Api/V1/Requests/Models/Budget/StoreRequest.php b/app/Api/V1/Requests/Models/Budget/StoreRequest.php index 43f44c7720..9a0118406d 100644 --- a/app/Api/V1/Requests/Models/Budget/StoreRequest.php +++ b/app/Api/V1/Requests/Models/Budget/StoreRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Budget; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Support\Request\ChecksLogin; diff --git a/app/Api/V1/Requests/Models/Budget/UpdateRequest.php b/app/Api/V1/Requests/Models/Budget/UpdateRequest.php index ed1d119e93..6eb0dc7acc 100644 --- a/app/Api/V1/Requests/Models/Budget/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Budget/UpdateRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Budget; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Models\Budget; use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsValidPositiveAmount; diff --git a/app/Api/V1/Requests/Models/BudgetLimit/UpdateRequest.php b/app/Api/V1/Requests/Models/BudgetLimit/UpdateRequest.php index 3c0fc08c37..42f7849292 100644 --- a/app/Api/V1/Requests/Models/BudgetLimit/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/BudgetLimit/UpdateRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\BudgetLimit; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use Carbon\Carbon; use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Support\Request\ChecksLogin; diff --git a/app/Api/V1/Requests/Models/CurrencyExchangeRate/StoreByCurrenciesRequest.php b/app/Api/V1/Requests/Models/CurrencyExchangeRate/StoreByCurrenciesRequest.php index 67706bdc69..2d90d680f8 100644 --- a/app/Api/V1/Requests/Models/CurrencyExchangeRate/StoreByCurrenciesRequest.php +++ b/app/Api/V1/Requests/Models/CurrencyExchangeRate/StoreByCurrenciesRequest.php @@ -28,7 +28,7 @@ use Carbon\Carbon; use Carbon\Exceptions\InvalidFormatException; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use Illuminate\Foundation\Http\FormRequest; class StoreByCurrenciesRequest extends FormRequest @@ -55,7 +55,7 @@ class StoreByCurrenciesRequest extends FormRequest { $validator->after( static function (Validator $validator): void { - $data = $validator->getData() ?? []; + $data = $validator->getData(); foreach ($data as $date => $rate) { try { $date = Carbon::createFromFormat('Y-m-d', $date); diff --git a/app/Api/V1/Requests/Models/CurrencyExchangeRate/StoreByDateRequest.php b/app/Api/V1/Requests/Models/CurrencyExchangeRate/StoreByDateRequest.php index 433e6ac90b..48f43d108f 100644 --- a/app/Api/V1/Requests/Models/CurrencyExchangeRate/StoreByDateRequest.php +++ b/app/Api/V1/Requests/Models/CurrencyExchangeRate/StoreByDateRequest.php @@ -27,7 +27,7 @@ namespace FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use Illuminate\Foundation\Http\FormRequest; class StoreByDateRequest extends FormRequest diff --git a/app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php b/app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php index 46674967ec..d12108d549 100644 --- a/app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php +++ b/app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\PiggyBank; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Rules\IsValidZeroOrMoreAmount; diff --git a/app/Api/V1/Requests/Models/Recurrence/StoreRequest.php b/app/Api/V1/Requests/Models/Recurrence/StoreRequest.php index b9f736f74f..98b15ae55b 100644 --- a/app/Api/V1/Requests/Models/Recurrence/StoreRequest.php +++ b/app/Api/V1/Requests/Models/Recurrence/StoreRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Recurrence; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Rules\BelongsUser; use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsValidPositiveAmount; diff --git a/app/Api/V1/Requests/Models/Recurrence/UpdateRequest.php b/app/Api/V1/Requests/Models/Recurrence/UpdateRequest.php index f16c521590..1b5c1590a4 100644 --- a/app/Api/V1/Requests/Models/Recurrence/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Recurrence/UpdateRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Recurrence; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Models\Recurrence; use FireflyIII\Rules\BelongsUser; use FireflyIII\Rules\IsBoolean; diff --git a/app/Api/V1/Requests/Models/Rule/StoreRequest.php b/app/Api/V1/Requests/Models/Rule/StoreRequest.php index 496dbc550a..5f9e0126c8 100644 --- a/app/Api/V1/Requests/Models/Rule/StoreRequest.php +++ b/app/Api/V1/Requests/Models/Rule/StoreRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Rule; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsValidActionExpression; use FireflyIII\Support\Request\ChecksLogin; diff --git a/app/Api/V1/Requests/Models/Rule/UpdateRequest.php b/app/Api/V1/Requests/Models/Rule/UpdateRequest.php index 8b58fbd3d8..22880b581a 100644 --- a/app/Api/V1/Requests/Models/Rule/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Rule/UpdateRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Rule; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Models\Rule; use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsValidActionExpression; diff --git a/app/Api/V1/Requests/Models/Transaction/StoreRequest.php b/app/Api/V1/Requests/Models/Transaction/StoreRequest.php index 4c7cb3d43d..a1a20fe4d1 100644 --- a/app/Api/V1/Requests/Models/Transaction/StoreRequest.php +++ b/app/Api/V1/Requests/Models/Transaction/StoreRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Transaction; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Models\Location; use FireflyIII\Rules\BelongsUser; use FireflyIII\Rules\IsBoolean; diff --git a/app/Api/V1/Requests/Models/Transaction/UpdateRequest.php b/app/Api/V1/Requests/Models/Transaction/UpdateRequest.php index 1aa8af303d..7a2d0a7be4 100644 --- a/app/Api/V1/Requests/Models/Transaction/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Transaction/UpdateRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Transaction; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\TransactionGroup; use FireflyIII\Rules\BelongsUser; diff --git a/app/Api/V1/Requests/Models/TransactionLink/StoreRequest.php b/app/Api/V1/Requests/Models/TransactionLink/StoreRequest.php index b93334289d..693c109d5d 100644 --- a/app/Api/V1/Requests/Models/TransactionLink/StoreRequest.php +++ b/app/Api/V1/Requests/Models/TransactionLink/StoreRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\TransactionLink; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; use FireflyIII\Support\Request\ChecksLogin; diff --git a/app/Api/V1/Requests/Models/TransactionLink/UpdateRequest.php b/app/Api/V1/Requests/Models/TransactionLink/UpdateRequest.php index ce62f5a87c..71a8090810 100644 --- a/app/Api/V1/Requests/Models/TransactionLink/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/TransactionLink/UpdateRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\TransactionLink; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Models\TransactionJournalLink; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; diff --git a/app/Api/V1/Requests/System/UserUpdateRequest.php b/app/Api/V1/Requests/System/UserUpdateRequest.php index d22090ba0b..03b201b6ad 100644 --- a/app/Api/V1/Requests/System/UserUpdateRequest.php +++ b/app/Api/V1/Requests/System/UserUpdateRequest.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\System; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Validation\Validator; use FireflyIII\Rules\IsBoolean; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; diff --git a/app/Console/Commands/Correction/CorrectsGroupAccounts.php b/app/Console/Commands/Correction/CorrectsGroupAccounts.php index 39989cf164..5a836584bb 100644 --- a/app/Console/Commands/Correction/CorrectsGroupAccounts.php +++ b/app/Console/Commands/Correction/CorrectsGroupAccounts.php @@ -45,9 +45,7 @@ class CorrectsGroupAccounts extends Command public function handle(): int { $groups = []; - $res = TransactionJournal::groupBy('transaction_group_id') - ->get(['transaction_group_id', DB::raw('COUNT(transaction_group_id) as the_count')])// @phpstan-ignore-line - ; + $res = TransactionJournal::groupBy('transaction_group_id')->get(['transaction_group_id', DB::raw('COUNT(transaction_group_id) as the_count')]); /** @var TransactionJournal $journal */ foreach ($res as $journal) { diff --git a/app/Console/Commands/Correction/CorrectsUnevenAmount.php b/app/Console/Commands/Correction/CorrectsUnevenAmount.php index 30a6107fe1..ddddde8ce3 100644 --- a/app/Console/Commands/Correction/CorrectsUnevenAmount.php +++ b/app/Console/Commands/Correction/CorrectsUnevenAmount.php @@ -263,9 +263,9 @@ class CorrectsUnevenAmount extends Command // 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))); - if (0 === bccomp((string) app('steam')->positive($source->amount), (string) app('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 - && 0 === bccomp((string) app('steam')->positive($destination->amount), (string) app('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 ) { return true; @@ -302,10 +302,10 @@ class CorrectsUnevenAmount extends Command private function isBetweenAssetAndLiability(TransactionJournal $journal): bool { - /** @var Transaction $sourceTransaction */ + /** @var Transaction|null $sourceTransaction */ $sourceTransaction = $journal->transactions()->where('amount', '<', 0)->first(); - /** @var Transaction $destinationTransaction */ + /** @var Transaction|null $destinationTransaction */ $destinationTransaction = $journal->transactions()->where('amount', '>', 0)->first(); if (null === $sourceTransaction || null === $destinationTransaction) { Log::warning('Either transaction is false, stop.'); diff --git a/app/Console/Commands/Correction/RemovesEmptyJournals.php b/app/Console/Commands/Correction/RemovesEmptyJournals.php index 38b1a1c437..4ea323c72c 100644 --- a/app/Console/Commands/Correction/RemovesEmptyJournals.php +++ b/app/Console/Commands/Correction/RemovesEmptyJournals.php @@ -55,10 +55,7 @@ class RemovesEmptyJournals extends Command */ private function deleteUnevenJournals(): void { - $set = Transaction::whereNull('deleted_at') - ->groupBy('transactions.transaction_journal_id') - ->get([DB::raw('COUNT(transactions.transaction_journal_id) as the_count'), 'transaction_journal_id']) // @phpstan-ignore-line - ; + $set = Transaction::whereNull('deleted_at')->groupBy('transactions.transaction_journal_id')->get([DB::raw('COUNT(transactions.transaction_journal_id) as the_count'), 'transaction_journal_id']); $total = 0; /** @var Transaction $row */ diff --git a/app/Console/Commands/Integrity/ValidatesEnvironmentVariables.php b/app/Console/Commands/Integrity/ValidatesEnvironmentVariables.php index c265cab7fc..65a6fc2912 100644 --- a/app/Console/Commands/Integrity/ValidatesEnvironmentVariables.php +++ b/app/Console/Commands/Integrity/ValidatesEnvironmentVariables.php @@ -32,18 +32,7 @@ class ValidatesEnvironmentVariables extends Command { use ShowsFriendlyMessages; - /** - * The console command description. - * - * @var null|string - */ protected $description = 'Makes sure you use the correct variables.'; - - /** - * The name and signature of the console command. - * - * @var string - */ protected $signature = 'integrity:validates-environment-variables'; /** diff --git a/app/Console/Commands/System/RecalculatesRunningBalance.php b/app/Console/Commands/System/RecalculatesRunningBalance.php index 765e4fbc28..33c98bb0a8 100644 --- a/app/Console/Commands/System/RecalculatesRunningBalance.php +++ b/app/Console/Commands/System/RecalculatesRunningBalance.php @@ -50,7 +50,7 @@ class RecalculatesRunningBalance extends Command /** * Execute the console command. */ - public function handle() + public function handle(): int { if (true === config('firefly.feature_flags.running_balance_column')) { $this->friendlyInfo('Will recalculate account balances. This may take a LONG time. Please be patient.'); @@ -60,6 +60,7 @@ class RecalculatesRunningBalance extends Command return 0; } $this->friendlyWarning('This command has been disabled.'); + return 0; } private function correctBalanceAmounts(bool $forced): void diff --git a/app/Http/Controllers/Json/BoxController.php b/app/Http/Controllers/Json/BoxController.php index ff3f5e8c83..928432a75d 100644 --- a/app/Http/Controllers/Json/BoxController.php +++ b/app/Http/Controllers/Json/BoxController.php @@ -35,6 +35,7 @@ use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Support\CacheProperties; use FireflyIII\Support\Facades\Amount; +use FireflyIII\Support\Facades\Steam; use FireflyIII\Support\Http\Controllers\DateCalculation; use Illuminate\Http\JsonResponse; @@ -92,9 +93,9 @@ class BoxController extends Controller $currencyId = $this->convertToPrimary && $this->primaryCurrency->id !== (int) $journal['currency_id'] ? $this->primaryCurrency->id : (int) $journal['currency_id']; $amount = Amount::getAmountFromJournal($journal); $incomes[$currencyId] ??= '0'; - $incomes[$currencyId] = bcadd($incomes[$currencyId], (string) app('steam')->positive($amount)); + $incomes[$currencyId] = bcadd($incomes[$currencyId], Steam::positive($amount)); $sums[$currencyId] ??= '0'; - $sums[$currencyId] = bcadd($sums[$currencyId], (string) app('steam')->positive($amount)); + $sums[$currencyId] = bcadd($sums[$currencyId], Steam::positive($amount)); } // collect expenses diff --git a/app/Repositories/Account/OperationsRepository.php b/app/Repositories/Account/OperationsRepository.php index e402922365..56c7c96fc0 100644 --- a/app/Repositories/Account/OperationsRepository.php +++ b/app/Repositories/Account/OperationsRepository.php @@ -28,6 +28,7 @@ use Carbon\Carbon; use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\TransactionCurrency; +use FireflyIII\Support\Facades\Steam; use FireflyIII\Support\Report\Summarizer\TransactionSummarizer; use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; @@ -361,7 +362,7 @@ class OperationsRepository implements OperationsRepositoryInterface, UserGroupIn ]; // source account? money goes out! - $return[$sourceKey]['out'] = bcadd((string) $return[$sourceKey]['out'], (string) app('steam')->negative($amount)); + $return[$sourceKey]['out'] = bcadd((string) $return[$sourceKey]['out'], Steam::negative($amount)); $return[$sourceKey]['difference'] = bcadd($return[$sourceKey]['out'], (string) $return[$sourceKey]['in']); // destination account? money comes in: @@ -404,7 +405,7 @@ class OperationsRepository implements OperationsRepositoryInterface, UserGroupIn 'currency_code' => $journal['foreign_currency_code'], ]; // source account? money goes out! (same as above) - $return[$sourceKey]['out'] = bcadd((string) $return[$sourceKey]['out'], (string) app('steam')->negative($amount)); + $return[$sourceKey]['out'] = bcadd((string) $return[$sourceKey]['out'], Steam::negative($amount)); $return[$sourceKey]['difference'] = bcadd($return[$sourceKey]['out'], (string) $return[$sourceKey]['in']); // destination account? money comes in: diff --git a/app/Repositories/Budget/BudgetRepository.php b/app/Repositories/Budget/BudgetRepository.php index 028d874f36..dfc7370e22 100644 --- a/app/Repositories/Budget/BudgetRepository.php +++ b/app/Repositories/Budget/BudgetRepository.php @@ -40,6 +40,7 @@ use FireflyIII\Models\RuleTrigger; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Services\Internal\Destroy\BudgetDestroyService; +use FireflyIII\Support\Facades\Steam; use FireflyIII\Support\Http\Api\ExchangeRateConverter; use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; @@ -632,7 +633,7 @@ class BudgetRepository implements BudgetRepositoryInterface, UserGroupInterface 'decimal_places' => $journal['currency_decimal_places'], 'sum' => '0', ]; - $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], (string) app('steam')->negative($journal['amount'])); + $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], Steam::negative($journal['amount'])); // also do foreign amount: $foreignId = (int) $journal['foreign_currency_id']; @@ -645,7 +646,7 @@ class BudgetRepository implements BudgetRepositoryInterface, UserGroupInterface 'decimal_places' => $journal['foreign_currency_decimal_places'], 'sum' => '0', ]; - $array[$foreignId]['sum'] = bcadd($array[$foreignId]['sum'], (string) app('steam')->negative($journal['foreign_amount'])); + $array[$foreignId]['sum'] = bcadd($array[$foreignId]['sum'], Steam::negative($journal['foreign_amount'])); } } @@ -694,7 +695,7 @@ class BudgetRepository implements BudgetRepositoryInterface, UserGroupInterface 'decimal_places' => $journal['currency_decimal_places'], 'sum' => '0', ]; - $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], (string) app('steam')->negative($journal['amount'])); + $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], Steam::negative($journal['amount'])); // also do foreign amount: $foreignId = (int) $journal['foreign_currency_id']; @@ -707,7 +708,7 @@ class BudgetRepository implements BudgetRepositoryInterface, UserGroupInterface 'decimal_places' => $journal['foreign_currency_decimal_places'], 'sum' => '0', ]; - $array[$foreignId]['sum'] = bcadd($array[$foreignId]['sum'], (string) app('steam')->negative($journal['foreign_amount'])); + $array[$foreignId]['sum'] = bcadd($array[$foreignId]['sum'], Steam::negative($journal['foreign_amount'])); } } diff --git a/app/Repositories/Category/NoCategoryRepository.php b/app/Repositories/Category/NoCategoryRepository.php index dbaf464eb8..43c64c27ef 100644 --- a/app/Repositories/Category/NoCategoryRepository.php +++ b/app/Repositories/Category/NoCategoryRepository.php @@ -27,6 +27,7 @@ namespace FireflyIII\Repositories\Category; use Carbon\Carbon; use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; +use FireflyIII\Support\Facades\Steam; use FireflyIII\Support\Report\Summarizer\TransactionSummarizer; use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; @@ -174,7 +175,7 @@ class NoCategoryRepository implements NoCategoryRepositoryInterface, UserGroupIn 'currency_code' => $journal['currency_code'], 'currency_decimal_places' => $journal['currency_decimal_places'], ]; - $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], (string) app('steam')->positive($journal['amount'])); + $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], Steam::positive($journal['amount'])); } return $array; @@ -202,7 +203,7 @@ class NoCategoryRepository implements NoCategoryRepositoryInterface, UserGroupIn 'currency_code' => $journal['currency_code'], 'currency_decimal_places' => $journal['currency_decimal_places'], ]; - $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], (string) app('steam')->positive($journal['amount'])); + $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], Steam::positive($journal['amount'])); } return $array; diff --git a/app/Repositories/Category/OperationsRepository.php b/app/Repositories/Category/OperationsRepository.php index 26599d2c61..e020782f40 100644 --- a/app/Repositories/Category/OperationsRepository.php +++ b/app/Repositories/Category/OperationsRepository.php @@ -29,6 +29,7 @@ use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\Category; use FireflyIII\Support\Facades\Amount; +use FireflyIII\Support\Facades\Steam; use FireflyIII\Support\Report\Summarizer\TransactionSummarizer; use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; @@ -403,7 +404,7 @@ class OperationsRepository implements OperationsRepositoryInterface, UserGroupIn 'currency_code' => $currencyCode, 'currency_decimal_places' => $currencyDecimalPlaces, ]; - $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], (string) app('steam')->positive($amount)); + $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], Steam::positive($amount)); } return $array; @@ -440,7 +441,7 @@ class OperationsRepository implements OperationsRepositoryInterface, UserGroupIn 'currency_code' => $journal['currency_code'], 'currency_decimal_places' => $journal['currency_decimal_places'], ]; - $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], (string) app('steam')->positive($journal['amount'])); + $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], Steam::positive($journal['amount'])); } return $array; diff --git a/app/Support/Report/Summarizer/TransactionSummarizer.php b/app/Support/Report/Summarizer/TransactionSummarizer.php index a1ab2abf07..aea25a5663 100644 --- a/app/Support/Report/Summarizer/TransactionSummarizer.php +++ b/app/Support/Report/Summarizer/TransactionSummarizer.php @@ -26,6 +26,7 @@ namespace FireflyIII\Support\Report\Summarizer; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Support\Facades\Amount; +use FireflyIII\Support\Facades\Steam; use FireflyIII\User; use Illuminate\Support\Facades\Log; @@ -119,10 +120,10 @@ class TransactionSummarizer ]; if ('positive' === $method) { - $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], (string) app('steam')->positive($amount)); + $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], Steam::positive($amount)); } if ('negative' === $method) { - $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], (string) app('steam')->negative($amount)); + $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], Steam::negative($amount)); } // then process foreign amount, if it exists. @@ -138,10 +139,10 @@ class TransactionSummarizer ]; if ('positive' === $method) { - $array[$foreignCurrencyId]['sum'] = bcadd($array[$foreignCurrencyId]['sum'], (string) app('steam')->positive($amount)); + $array[$foreignCurrencyId]['sum'] = bcadd($array[$foreignCurrencyId]['sum'], Steam::positive($amount)); } if ('negative' === $method) { - $array[$foreignCurrencyId]['sum'] = bcadd($array[$foreignCurrencyId]['sum'], (string) app('steam')->negative($amount)); + $array[$foreignCurrencyId]['sum'] = bcadd($array[$foreignCurrencyId]['sum'], Steam::negative($amount)); } } @@ -199,7 +200,7 @@ class TransactionSummarizer ]; // add the data from the $field to the array. - $array[$key]['sum'] = bcadd($array[$key]['sum'], (string) app('steam')->{$method}((string) ($journal[$field] ?? '0'))); // @phpstan-ignore-line + $array[$key]['sum'] = bcadd($array[$key]['sum'], Steam::{$method}((string) ($journal[$field] ?? '0'))); // @phpstan-ignore-line Log::debug(sprintf('Field for transaction #%d is "%s" (%s). Sum: %s', $journal['transaction_group_id'], $currencyCode, $field, $array[$key]['sum'])); // also do foreign amount, but only when convertToPrimary is false (otherwise we have it already) @@ -217,7 +218,7 @@ class TransactionSummarizer 'currency_code' => $journal['foreign_currency_code'], 'currency_decimal_places' => $journal['foreign_currency_decimal_places'], ]; - $array[$key]['sum'] = bcadd($array[$key]['sum'], (string) app('steam')->{$method}((string) $journal['foreign_amount'])); // @phpstan-ignore-line + $array[$key]['sum'] = bcadd($array[$key]['sum'], Steam::{$method}((string) $journal['foreign_amount'])); // @phpstan-ignore-line } }