From a491e4921fc7dc636b0926ad3bd69ba9867b9bbe Mon Sep 17 00:00:00 2001 From: JC5 Date: Thu, 5 Feb 2026 06:14:50 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Auto=20commit=20for=20release=20?= =?UTF-8?q?'develop'=20on=202026-02-05?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Autocomplete/AccountController.php | 22 +++++++++---------- .../Models/Transaction/DestroyController.php | 4 +--- app/Api/V1/Requests/AggregateFormRequest.php | 1 + .../CreatedSingleTransactionGroup.php | 6 +++-- .../DestroyedSingleTransactionGroup.php | 5 ++++- .../Transaction/DeleteController.php | 3 --- .../SupportsGroupProcessingTrait.php | 19 ++++++++-------- .../TransactionGroupDestroyService.php | 2 +- .../Internal/Update/AccountUpdateService.php | 1 - config/firefly.php | 4 ++-- package-lock.json | 6 ++--- 11 files changed, 37 insertions(+), 36 deletions(-) diff --git a/app/Api/V1/Controllers/Autocomplete/AccountController.php b/app/Api/V1/Controllers/Autocomplete/AccountController.php index 92b8b20c88..e82c88dff6 100644 --- a/app/Api/V1/Controllers/Autocomplete/AccountController.php +++ b/app/Api/V1/Controllers/Autocomplete/AccountController.php @@ -50,7 +50,7 @@ class AccountController extends Controller protected array $acceptedRoles = [UserRoleEnum::READ_ONLY]; /** @var array */ - private array $balanceTypes; + private array $balanceTypes; private AccountRepositoryInterface $repository; /** @@ -80,16 +80,16 @@ class AccountController extends Controller public function accounts(AutocompleteApiRequest $request): JsonResponse { // Log::debug('Before All.'); - ['types' => $types, 'query' => $query, 'date' => $date, 'limit' => $limit] = $request->attributes->all(); + ['types' => $types, 'query' => $query, 'date' => $date, 'limit' => $limit] = $request->attributes->all(); $date ??= today(config('app.timezone')); // set date to end-of-day for account balance. so it is at $date 23:59:59 $date->endOfDay(); - $return = []; - $result = $this->repository->searchAccount((string)$query, $types, $limit); - $allBalances = Steam::accountsBalancesOptimized($result, $date, $this->primaryCurrency, $this->convertToPrimary); + $return = []; + $result = $this->repository->searchAccount((string) $query, $types, $limit); + $allBalances = Steam::accountsBalancesOptimized($result, $date, $this->primaryCurrency, $this->convertToPrimary); /** @var Account $account */ foreach ($result as $account) { @@ -106,18 +106,18 @@ class AccountController extends Controller $nameWithBalance = sprintf('%s (%s)', $account->name, Amount::formatAnything($useCurrency, $amount, false)); } - $return[] = [ - 'id' => (string)$account->id, + $return[] = [ + 'id' => (string) $account->id, 'name' => $account->name, 'name_with_balance' => $nameWithBalance, 'active' => $account->active, 'type' => $account->accountType->type, - 'currency_id' => (string)$useCurrency->id, + 'currency_id' => (string) $useCurrency->id, 'currency_name' => $useCurrency->name, 'currency_code' => $useCurrency->code, 'currency_symbol' => $useCurrency->symbol, 'currency_decimal_places' => $useCurrency->decimal_places, - 'account_currency_id' => (string)$currency->id, + 'account_currency_id' => (string) $currency->id, 'account_currency_name' => $currency->name, 'account_currency_code' => $currency->code, 'account_currency_symbol' => $currency->symbol, @@ -128,8 +128,8 @@ class AccountController extends Controller // custom order. usort($return, static function (array $left, array $right): int { $order = [AccountTypeEnum::ASSET->value, AccountTypeEnum::REVENUE->value, AccountTypeEnum::EXPENSE->value]; - $posA = (int)array_search($left['type'], $order, true); - $posB = (int)array_search($right['type'], $order, true); + $posA = (int) array_search($left['type'], $order, true); + $posB = (int) array_search($right['type'], $order, true); return $posA - $posB; }); diff --git a/app/Api/V1/Controllers/Models/Transaction/DestroyController.php b/app/Api/V1/Controllers/Models/Transaction/DestroyController.php index 5ab715051c..6557b0397a 100644 --- a/app/Api/V1/Controllers/Models/Transaction/DestroyController.php +++ b/app/Api/V1/Controllers/Models/Transaction/DestroyController.php @@ -25,9 +25,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\Transaction; use FireflyIII\Api\V1\Controllers\Controller; -use FireflyIII\Events\UpdatedAccount; -use FireflyIII\Models\Account; -use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionGroup; use FireflyIII\Models\TransactionJournal; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; @@ -76,6 +73,7 @@ class DestroyController extends Controller Log::debug(sprintf('Now in %s', __METHOD__)); $this->groupRepository->destroy($transactionGroup); Preferences::mark(); + return response()->json([], 204); } diff --git a/app/Api/V1/Requests/AggregateFormRequest.php b/app/Api/V1/Requests/AggregateFormRequest.php index 86f147febb..192981a2a8 100644 --- a/app/Api/V1/Requests/AggregateFormRequest.php +++ b/app/Api/V1/Requests/AggregateFormRequest.php @@ -77,6 +77,7 @@ abstract class AggregateFormRequest extends ApiRequest $instance->handleConfig(is_array($config) ? $config : []); } } + // Log::debug('Done initializing AggregateFormRequest.'); } diff --git a/app/Events/Model/TransactionGroup/CreatedSingleTransactionGroup.php b/app/Events/Model/TransactionGroup/CreatedSingleTransactionGroup.php index f362d2de24..b50638b662 100644 --- a/app/Events/Model/TransactionGroup/CreatedSingleTransactionGroup.php +++ b/app/Events/Model/TransactionGroup/CreatedSingleTransactionGroup.php @@ -26,7 +26,6 @@ namespace FireflyIII\Events\Model\TransactionGroup; use FireflyIII\Events\Event; use Illuminate\Queue\SerializesModels; -use Illuminate\Support\Facades\Log; class CreatedSingleTransactionGroup extends Event { @@ -35,5 +34,8 @@ class CreatedSingleTransactionGroup extends Event /** * Create a new event instance. */ - public function __construct(public TransactionGroupEventFlags $flags, public TransactionGroupEventObjects $objects) {} + public function __construct( + public TransactionGroupEventFlags $flags, + public TransactionGroupEventObjects $objects + ) {} } diff --git a/app/Events/Model/TransactionGroup/DestroyedSingleTransactionGroup.php b/app/Events/Model/TransactionGroup/DestroyedSingleTransactionGroup.php index 1790e5b3d5..88b479ae64 100644 --- a/app/Events/Model/TransactionGroup/DestroyedSingleTransactionGroup.php +++ b/app/Events/Model/TransactionGroup/DestroyedSingleTransactionGroup.php @@ -34,5 +34,8 @@ class DestroyedSingleTransactionGroup extends Event /** * Create a new event instance. */ - public function __construct(public TransactionGroupEventFlags $flags, public TransactionGroupEventObjects $objects) {} + public function __construct( + public TransactionGroupEventFlags $flags, + public TransactionGroupEventObjects $objects + ) {} } diff --git a/app/Http/Controllers/Transaction/DeleteController.php b/app/Http/Controllers/Transaction/DeleteController.php index efa6e18450..e80ce3000c 100644 --- a/app/Http/Controllers/Transaction/DeleteController.php +++ b/app/Http/Controllers/Transaction/DeleteController.php @@ -24,12 +24,9 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Transaction; -use FireflyIII\Events\UpdatedAccount; use FireflyIII\Http\Controllers\Controller; -use FireflyIII\Models\Account; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionGroup; -use FireflyIII\Models\TransactionJournal; use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface; use FireflyIII\Support\Facades\Preferences; use FireflyIII\Support\Facades\Steam; diff --git a/app/Listeners/Model/TransactionGroup/SupportsGroupProcessingTrait.php b/app/Listeners/Model/TransactionGroup/SupportsGroupProcessingTrait.php index 62e3278390..0594389bdc 100644 --- a/app/Listeners/Model/TransactionGroup/SupportsGroupProcessingTrait.php +++ b/app/Listeners/Model/TransactionGroup/SupportsGroupProcessingTrait.php @@ -42,8 +42,8 @@ trait SupportsGroupProcessingTrait Log::debug(sprintf('Will now create webhook messages for %d group(s)', $groups->count())); /** @var TransactionGroup $first */ - $first = $groups->first(); - $user = $first->user; + $first = $groups->first(); + $user = $first->user; /** @var MessageGeneratorInterface $engine */ $engine = app(MessageGeneratorInterface::class); @@ -65,6 +65,7 @@ trait SupportsGroupProcessingTrait Log::debug('Will NOT remove period statistics for all objects, because no user detected.'); } Log::debug('Will now remove period statistics for all objects.'); + // since you get a bunch of journals AND a bunch of // objects, this needs to be a collection /** @var PeriodStatisticRepositoryInterface $repository */ @@ -105,12 +106,12 @@ trait SupportsGroupProcessingTrait protected function processRules(Collection $set, string $type): void { Log::debug(sprintf('Will now processRules("%s") for %d journal(s)', $type, $set->count())); - $array = $set->pluck('id')->toArray(); + $array = $set->pluck('id')->toArray(); /** @var TransactionJournal $first */ - $first = $set->first(); - $journalIds = implode(',', $array); - $user = $first->user; + $first = $set->first(); + $journalIds = implode(',', $array); + $user = $first->user; Log::debug(sprintf('Add local operator for journal(s): %s', $journalIds)); // collect rules: @@ -120,12 +121,12 @@ trait SupportsGroupProcessingTrait // add the groups to the rule engine. // it should run the rules in the group and cancel the group if necessary. Log::debug(sprintf('Fire processRules with ALL %s rule groups.', $type)); - $groups = $ruleGroupRepository->getRuleGroupsWithRules($type); + $groups = $ruleGroupRepository->getRuleGroupsWithRules($type); // create and fire rule engine. - $newRuleEngine = app(RuleEngineInterface::class); + $newRuleEngine = app(RuleEngineInterface::class); $newRuleEngine->setUser($user); - $newRuleEngine->addOperator(['type' => 'journal_id', 'value' => $journalIds]); + $newRuleEngine->addOperator(['type' => 'journal_id', 'value' => $journalIds]); $newRuleEngine->setRuleGroups($groups); $newRuleEngine->fire(); Log::debug(sprintf('Done with processRules("%s") for %d journal(s)', $type, $set->count())); diff --git a/app/Services/Internal/Destroy/TransactionGroupDestroyService.php b/app/Services/Internal/Destroy/TransactionGroupDestroyService.php index 8f6c903993..1764f4bef9 100644 --- a/app/Services/Internal/Destroy/TransactionGroupDestroyService.php +++ b/app/Services/Internal/Destroy/TransactionGroupDestroyService.php @@ -47,7 +47,7 @@ class TransactionGroupDestroyService } $transactionGroup->delete(); // trigger just after destruction - $flags = new TransactionGroupEventFlags(); + $flags = new TransactionGroupEventFlags(); event(new DestroyedSingleTransactionGroup($flags, $objects)); } } diff --git a/app/Services/Internal/Update/AccountUpdateService.php b/app/Services/Internal/Update/AccountUpdateService.php index fe586541be..24960b9554 100644 --- a/app/Services/Internal/Update/AccountUpdateService.php +++ b/app/Services/Internal/Update/AccountUpdateService.php @@ -26,7 +26,6 @@ namespace FireflyIII\Services\Internal\Update; use FireflyIII\Enums\AccountTypeEnum; use FireflyIII\Events\Model\Account\UpdatedExistingAccount; -use FireflyIII\Events\UpdatedAccount; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; diff --git a/config/firefly.php b/config/firefly.php index a438bf9e9a..80e6c68060 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -78,8 +78,8 @@ return [ 'running_balance_column' => (bool)envNonEmpty('USE_RUNNING_BALANCE', true), // this is only the default value, is not used. // see cer.php for exchange rates feature flag. ], - 'version' => 'develop/2026-02-04', - 'build_time' => 1770234113, + 'version' => 'develop/2026-02-05', + 'build_time' => 1770268364, 'api_version' => '2.1.0', // field is no longer used. 'db_version' => 28, // field is no longer used. diff --git a/package-lock.json b/package-lock.json index 7ebe5d6951..a79d1562b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7118,9 +7118,9 @@ } }, "node_modules/i18next": { - "version": "25.8.2", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.8.2.tgz", - "integrity": "sha512-7KyJnG9n1nXXVqyOV/TAcp6/4QFgqMoob5y1xTPnWRU5wnrsDYRUvWEmF6RV98EY72ET+nUGkLQsmmO6T1l94Q==", + "version": "25.8.3", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.8.3.tgz", + "integrity": "sha512-IC/pp2vkczdu1sBheq1eC92bLavN6fM5jH61c7Xa23PGio5ePEd+EP+re1IkO7KEM9eyeJHUxvIRxsaYTlsSyQ==", "funding": [ { "type": "individual",