diff --git a/app/Api/V1/Controllers/System/CronController.php b/app/Api/V1/Controllers/System/CronController.php index 422b5c5ccc..941211efbd 100644 --- a/app/Api/V1/Controllers/System/CronController.php +++ b/app/Api/V1/Controllers/System/CronController.php @@ -54,7 +54,7 @@ class CronController extends Controller $return['exchange_rates'] = $this->exchangeRatesCronJob($config['force'], $config['date']); } $return['bill_notifications'] = $this->billWarningCronJob($config['force'], $config['date']); - $return['webhooks'] = $this->webhookCronJob($config['force'], $config['date']); + $return['webhooks'] = $this->webhookCronJob($config['force'], $config['date']); return response()->api($return); } diff --git a/app/Console/Commands/Tools/Cron.php b/app/Console/Commands/Tools/Cron.php index 7a5e729016..09ab24c6b4 100644 --- a/app/Console/Commands/Tools/Cron.php +++ b/app/Console/Commands/Tools/Cron.php @@ -252,6 +252,7 @@ class Cron extends Command $this->friendlyPositive(sprintf('"Send bill warnings" cron ran with success: %s', $autoBudget->message)); } } + private function webhookCronJob(bool $force, ?Carbon $date): void { $webhook = new WebhookCronjob(); diff --git a/app/Events/Model/Bill/WarnUserAboutOverdueSubscription.php b/app/Events/Model/Bill/WarnUserAboutOverdueSubscription.php index 04b718c9fa..92d584750c 100644 --- a/app/Events/Model/Bill/WarnUserAboutOverdueSubscription.php +++ b/app/Events/Model/Bill/WarnUserAboutOverdueSubscription.php @@ -1,5 +1,7 @@ bill; - $dates = $event->dates; + $bill = $event->bill; + $dates = $event->dates; - $key = sprintf('bill_overdue_%s_%s', $bill->id, substr(hash('sha256', json_encode($dates['pay_dates'], JSON_THROW_ON_ERROR)), 0, 10)); - $pref = Preferences::getForUser($bill->user, $key, false); + $key = sprintf('bill_overdue_%s_%s', $bill->id, substr(hash('sha256', json_encode($dates['pay_dates'], JSON_THROW_ON_ERROR)), 0, 10)); + $pref = Preferences::getForUser($bill->user, $key, false); if (true === $pref->data) { Log::debug(sprintf('User %s has already been warned about overdue subscription %s.', $bill->user->id, $bill->id)); + return; } + /** @var bool $sendNotification */ $sendNotification = Preferences::getForUser($bill->user, 'notification_bill_reminder', true)->data; @@ -73,6 +75,7 @@ class BillEventHandler Log::error($e->getMessage()); Log::error($e->getTraceAsString()); } + return; } Log::debug('User has disabled bill reminders.'); @@ -107,6 +110,7 @@ class BillEventHandler Log::error($e->getMessage()); Log::error($e->getTraceAsString()); } + return; } Log::debug('User has disabled bill reminders.'); diff --git a/app/Handlers/Events/WebhookEventHandler.php b/app/Handlers/Events/WebhookEventHandler.php index cd561302e7..f48adef9df 100644 --- a/app/Handlers/Events/WebhookEventHandler.php +++ b/app/Handlers/Events/WebhookEventHandler.php @@ -50,7 +50,8 @@ class WebhookEventHandler ->get(['webhook_messages.*']) ->filter( static fn (WebhookMessage $message) => $message->webhookAttempts()->count() <= 2 - )->splice(0, 5); + )->splice(0, 5) + ; Log::debug(sprintf('Found %d webhook message(s) ready to be send.', $messages->count())); foreach ($messages as $message) { if (false === $message->sent) { diff --git a/app/Http/Controllers/Bill/IndexController.php b/app/Http/Controllers/Bill/IndexController.php index 34f27d8252..46f8514f14 100644 --- a/app/Http/Controllers/Bill/IndexController.php +++ b/app/Http/Controllers/Bill/IndexController.php @@ -73,26 +73,26 @@ class IndexController extends Controller { $this->cleanupObjectGroups(); $this->repository->correctOrder(); - $start = session('start'); - $end = session('end'); - $collection = $this->repository->getBills(); - $total = $collection->count(); + $start = session('start'); + $end = session('end'); + $collection = $this->repository->getBills(); + $total = $collection->count(); - $parameters = new ParameterBag(); + $parameters = new ParameterBag(); // sub one day from temp start so the last paid date is one day before it should be. - $tempStart = clone $start; + $tempStart = clone $start; // 2023-06-23 do not sub one day from temp start, fix is in BillTransformer::payDates instead // $tempStart->subDay(); // enrich /** @var User $admin */ - $admin = auth()->user(); - $enrichment = new SubscriptionEnrichment(); + $admin = auth()->user(); + $enrichment = new SubscriptionEnrichment(); $enrichment->setUser($admin); $enrichment->setStart($tempStart); $enrichment->setEnd($end); - $collection = $enrichment->enrich($collection); + $collection = $enrichment->enrich($collection); $parameters->set('start', $tempStart); @@ -105,21 +105,21 @@ class IndexController extends Controller $transformer->setParameters($parameters); // loop all bills, convert to array and add rules and stuff. - $rules = $this->repository->getRulesForBills($collection); + $rules = $this->repository->getRulesForBills($collection); // make bill groups: - $bills = [ + $bills = [ 0 => [ // the index is the order, not the ID. - 'object_group_id' => 0, - 'object_group_title' => (string)trans('firefly.default_group_title_name'), - 'bills' => [], + 'object_group_id' => 0, + 'object_group_title' => (string)trans('firefly.default_group_title_name'), + 'bills' => [], ], ]; /** @var Bill $bill */ foreach ($collection as $bill) { - $array = $transformer->transform($bill); - $groupOrder = (int)$array['object_group_order']; + $array = $transformer->transform($bill); + $groupOrder = (int)$array['object_group_order']; // make group array if necessary: $bills[$groupOrder] ??= [ 'object_group_id' => $array['object_group_id'], @@ -141,9 +141,9 @@ class IndexController extends Controller ksort($bills); // summarise per currency / per group. - $sums = $this->getSums($bills); - $totals = $this->getTotals($sums); - $today = now()->startOfDay(); + $sums = $this->getSums($bills); + $totals = $this->getTotals($sums); + $today = now()->startOfDay(); return view('bills.index', compact('bills', 'sums', 'total', 'totals', 'today')); } @@ -164,7 +164,7 @@ class IndexController extends Controller continue; } - $currencyId = $bill['currency_id']; + $currencyId = $bill['currency_id']; $sums[$groupOrder][$currencyId] ??= [ 'currency_id' => $currencyId, 'currency_code' => $bill['currency_code'], @@ -204,7 +204,7 @@ class IndexController extends Controller private function amountPerPeriod(array $bill, string $range): string { - $avg = bcdiv(bcadd((string)$bill['amount_min'], (string)$bill['amount_max']), '2'); + $avg = bcdiv(bcadd((string)$bill['amount_min'], (string)$bill['amount_max']), '2'); app('log')->debug(sprintf('Amount per period for bill #%d "%s"', $bill['id'], $bill['name'])); app('log')->debug(sprintf('Average is %s', $avg)); @@ -221,7 +221,7 @@ class IndexController extends Controller app('log')->debug(sprintf('Amount per year is %s (%s * %s / %s)', $yearAmount, $avg, $multiplies[$bill['repeat_freq']], (string)($bill['skip'] + 1))); // per period: - $division = [ + $division = [ '1Y' => '1', '6M' => '2', '3M' => '4', @@ -236,7 +236,7 @@ class IndexController extends Controller 'last90' => '4', 'last365' => '1', ]; - $perPeriod = bcdiv($yearAmount, $division[$range]); + $perPeriod = bcdiv($yearAmount, $division[$range]); app('log')->debug(sprintf('Amount per %s is %s (%s / %s)', $range, $perPeriod, $yearAmount, $division[$range])); @@ -255,11 +255,11 @@ class IndexController extends Controller */ foreach ($sums as $array) { /** - * @var int $currencyId + * @var int $currencyId * @var array $entry */ foreach ($array as $currencyId => $entry) { - $totals[$currencyId] ??= [ + $totals[$currencyId] ??= [ 'currency_id' => $currencyId, 'currency_code' => $entry['currency_code'], 'currency_name' => $entry['currency_name'], diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 57da16d540..dc282fbc07 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -145,7 +145,7 @@ abstract class Controller extends BaseController View::share('original_route_name', Route::currentRouteName()); // lottery to send any remaining webhooks: - if(7 === random_int(1, 10)) { + if (7 === random_int(1, 10)) { // trigger event to send them: Log::debug('send event RequestedSendWebhookMessages through lottery'); event(new RequestedSendWebhookMessages()); diff --git a/app/Jobs/WarnAboutBills.php b/app/Jobs/WarnAboutBills.php index 4bb57098dc..ee5655b028 100644 --- a/app/Jobs/WarnAboutBills.php +++ b/app/Jobs/WarnAboutBills.php @@ -55,12 +55,12 @@ class WarnAboutBills implements ShouldQueue */ public function __construct(?Carbon $date) { - $newDate = new Carbon(); + $newDate = new Carbon(); $newDate->startOfDay(); - $this->date = $newDate; + $this->date = $newDate; if ($date instanceof Carbon) { - $newDate = clone $date; + $newDate = clone $date; $newDate->startOfDay(); $this->date = $newDate; } @@ -148,7 +148,7 @@ class WarnAboutBills implements ShouldQueue public function setDate(Carbon $date): void { - $newDate = clone $date; + $newDate = clone $date; $newDate->startOfDay(); $this->date = $newDate; } @@ -168,7 +168,8 @@ class WarnAboutBills implements ShouldQueue $enrichment->setUser($bill->user); $enrichment->setStart($start); $enrichment->setEnd($end); - $single = $enrichment->enrichSingle($bill); + $single = $enrichment->enrichSingle($bill); + return [ 'pay_dates' => $single->meta['pay_dates'] ?? [], 'paid_dates' => $single->meta['paid_dates'] ?? [], @@ -177,19 +178,20 @@ class WarnAboutBills implements ShouldQueue private function needsOverdueAlert(array $dates): bool { - $count = count($dates['pay_dates']) - count($dates['paid_dates']); + $count = count($dates['pay_dates']) - count($dates['paid_dates']); if (0 === $count || 0 === count($dates['pay_dates'])) { return false; } // the earliest date in the list of pay dates must be 48hrs or more ago. $earliest = new Carbon($dates['pay_dates'][0]); $earliest->startOfDay(); - Log::debug(sprintf('Earliest expected pay date is %s' , $earliest->toAtomString())); - $diff = $earliest->diffInDays($this->date); + Log::debug(sprintf('Earliest expected pay date is %s', $earliest->toAtomString())); + $diff = $earliest->diffInDays($this->date); Log::debug(sprintf('Difference in days is %s', $diff)); if ($diff < 2) { return false; } + return true; } diff --git a/app/Notifications/User/SubscriptionOverdueReminder.php b/app/Notifications/User/SubscriptionOverdueReminder.php index cdec41e3a3..80843ea8e8 100644 --- a/app/Notifications/User/SubscriptionOverdueReminder.php +++ b/app/Notifications/User/SubscriptionOverdueReminder.php @@ -1,5 +1,7 @@ markdown('emails.subscription-overdue-warning', ['bill' => $this->bill,'dates' => $this->dates]) + ->markdown('emails.subscription-overdue-warning', ['bill' => $this->bill, 'dates' => $this->dates]) ->subject($this->getSubject()) - ; + ; } private function getSubject(): string @@ -69,8 +71,8 @@ class SubscriptionOverdueReminder extends Notification public function toPushover(User $notifiable): PushoverMessage { return PushoverMessage::create((string) trans('email.bill_warning_please_action')) - ->title($this->getSubject()) - ; + ->title($this->getSubject()) + ; } /** @@ -87,7 +89,7 @@ class SubscriptionOverdueReminder extends Notification $attachment->title((string) trans('firefly.visit_bill', ['name' => $bill->name]), $url); }) ->content($this->getSubject()) - ; + ; } /** @@ -97,5 +99,4 @@ class SubscriptionOverdueReminder extends Notification { return ReturnsAvailableChannels::returnChannels('user', $notifiable); } - } diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index b4ca4cb0f7..862658ca3a 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -115,92 +115,92 @@ class EventServiceProvider extends ServiceProvider protected $listen = [ // is a User related event. - RegisteredUser::class => [ + RegisteredUser::class => [ 'FireflyIII\Handlers\Events\UserEventHandler@sendRegistrationMail', 'FireflyIII\Handlers\Events\UserEventHandler@sendAdminRegistrationNotification', 'FireflyIII\Handlers\Events\UserEventHandler@attachUserRole', 'FireflyIII\Handlers\Events\UserEventHandler@createGroupMembership', 'FireflyIII\Handlers\Events\UserEventHandler@createExchangeRates', ], - UserAttemptedLogin::class => [ + UserAttemptedLogin::class => [ 'FireflyIII\Handlers\Events\UserEventHandler@sendLoginAttemptNotification', ], // is a User related event. - Login::class => [ + Login::class => [ 'FireflyIII\Handlers\Events\UserEventHandler@checkSingleUserIsAdmin', 'FireflyIII\Handlers\Events\UserEventHandler@demoUserBackToEnglish', ], - ActuallyLoggedIn::class => [ + ActuallyLoggedIn::class => [ 'FireflyIII\Handlers\Events\UserEventHandler@storeUserIPAddress', ], - DetectedNewIPAddress::class => [ + DetectedNewIPAddress::class => [ 'FireflyIII\Handlers\Events\UserEventHandler@notifyNewIPAddress', ], - RequestedVersionCheckStatus::class => [ + RequestedVersionCheckStatus::class => [ 'FireflyIII\Handlers\Events\VersionCheckEventHandler@checkForUpdates', ], - RequestedReportOnJournals::class => [ + RequestedReportOnJournals::class => [ 'FireflyIII\Handlers\Events\AutomationHandler@reportJournals', ], // is a User related event. - RequestedNewPassword::class => [ + RequestedNewPassword::class => [ 'FireflyIII\Handlers\Events\UserEventHandler@sendNewPassword', ], - UserTestNotificationChannel::class => [ + UserTestNotificationChannel::class => [ 'FireflyIII\Handlers\Events\UserEventHandler@sendTestNotification', ], // is a User related event. - UserChangedEmail::class => [ + UserChangedEmail::class => [ 'FireflyIII\Handlers\Events\UserEventHandler@sendEmailChangeConfirmMail', 'FireflyIII\Handlers\Events\UserEventHandler@sendEmailChangeUndoMail', ], // admin related - OwnerTestNotificationChannel::class => [ + OwnerTestNotificationChannel::class => [ 'FireflyIII\Handlers\Events\AdminEventHandler@sendTestNotification', ], - NewVersionAvailable::class => [ + NewVersionAvailable::class => [ 'FireflyIII\Handlers\Events\AdminEventHandler@sendNewVersion', ], - InvitationCreated::class => [ + InvitationCreated::class => [ 'FireflyIII\Handlers\Events\AdminEventHandler@sendInvitationNotification', 'FireflyIII\Handlers\Events\UserEventHandler@sendRegistrationInvite', ], - UnknownUserAttemptedLogin::class => [ + UnknownUserAttemptedLogin::class => [ 'FireflyIII\Handlers\Events\AdminEventHandler@sendLoginAttemptNotification', ], // is a Transaction Journal related event. - StoredTransactionGroup::class => [ + StoredTransactionGroup::class => [ 'FireflyIII\Handlers\Events\StoredGroupEventHandler@runAllHandlers', ], // is a Transaction Journal related event. - UpdatedTransactionGroup::class => [ + UpdatedTransactionGroup::class => [ 'FireflyIII\Handlers\Events\UpdatedGroupEventHandler@runAllHandlers', ], - DestroyedTransactionGroup::class => [ + DestroyedTransactionGroup::class => [ 'FireflyIII\Handlers\Events\DestroyedGroupEventHandler@runAllHandlers', ], // API related events: - AccessTokenCreated::class => [ + AccessTokenCreated::class => [ 'FireflyIII\Handlers\Events\APIEventHandler@accessTokenCreated', ], // Webhook related event: - RequestedSendWebhookMessages::class => [ + RequestedSendWebhookMessages::class => [ 'FireflyIII\Handlers\Events\WebhookEventHandler@sendWebhookMessages', ], // account related events: - StoredAccount::class => [ + StoredAccount::class => [ 'FireflyIII\Handlers\Events\StoredAccountEventHandler@recalculateCredit', ], - UpdatedAccount::class => [ + UpdatedAccount::class => [ 'FireflyIII\Handlers\Events\UpdatedAccountEventHandler@recalculateCredit', ], // bill related events: - WarnUserAboutBill::class => [ + WarnUserAboutBill::class => [ 'FireflyIII\Handlers\Events\BillEventHandler@warnAboutBill', ], WarnUserAboutOverdueSubscription::class => [ @@ -208,60 +208,60 @@ class EventServiceProvider extends ServiceProvider ], // audit log events: - TriggeredAuditLog::class => [ + TriggeredAuditLog::class => [ 'FireflyIII\Handlers\Events\AuditEventHandler@storeAuditEvent', ], // piggy bank related events: - ChangedAmount::class => [ + ChangedAmount::class => [ 'FireflyIII\Handlers\Events\Model\PiggyBankEventHandler@changePiggyAmount', ], - ChangedName::class => [ + ChangedName::class => [ 'FireflyIII\Handlers\Events\Model\PiggyBankEventHandler@changedPiggyBankName', ], // budget related events: CRUD budget limit - Created::class => [ + Created::class => [ 'FireflyIII\Handlers\Events\Model\BudgetLimitHandler@created', ], - Updated::class => [ + Updated::class => [ 'FireflyIII\Handlers\Events\Model\BudgetLimitHandler@updated', ], - Deleted::class => [ + Deleted::class => [ 'FireflyIII\Handlers\Events\Model\BudgetLimitHandler@deleted', ], // rule actions - RuleActionFailedOnArray::class => [ + RuleActionFailedOnArray::class => [ 'FireflyIII\Handlers\Events\Model\RuleHandler@ruleActionFailedOnArray', ], - RuleActionFailedOnObject::class => [ + RuleActionFailedOnObject::class => [ 'FireflyIII\Handlers\Events\Model\RuleHandler@ruleActionFailedOnObject', ], // security related - EnabledMFA::class => [ + EnabledMFA::class => [ 'FireflyIII\Handlers\Events\Security\MFAHandler@sendMFAEnabledMail', ], - DisabledMFA::class => [ + DisabledMFA::class => [ 'FireflyIII\Handlers\Events\Security\MFAHandler@sendMFADisabledMail', ], - MFANewBackupCodes::class => [ + MFANewBackupCodes::class => [ 'FireflyIII\Handlers\Events\Security\MFAHandler@sendNewMFABackupCodesMail', ], - MFAUsedBackupCode::class => [ + MFAUsedBackupCode::class => [ 'FireflyIII\Handlers\Events\Security\MFAHandler@sendUsedBackupCodeMail', ], - MFABackupFewLeft::class => [ + MFABackupFewLeft::class => [ 'FireflyIII\Handlers\Events\Security\MFAHandler@sendBackupFewLeftMail', ], - MFABackupNoLeft::class => [ + MFABackupNoLeft::class => [ 'FireflyIII\Handlers\Events\Security\MFAHandler@sendBackupNoLeftMail', ], - MFAManyFailedAttempts::class => [ + MFAManyFailedAttempts::class => [ 'FireflyIII\Handlers\Events\Security\MFAHandler@sendMFAFailedAttemptsMail', ], // preferences - UserGroupChangedPrimaryCurrency::class => [ + UserGroupChangedPrimaryCurrency::class => [ 'FireflyIII\Handlers\Events\PreferencesEventHandler@resetPrimaryCurrencyAmounts', ], ]; diff --git a/app/Support/Cronjobs/WebhookCronjob.php b/app/Support/Cronjobs/WebhookCronjob.php index 174acd62f4..dcac057140 100644 --- a/app/Support/Cronjobs/WebhookCronjob.php +++ b/app/Support/Cronjobs/WebhookCronjob.php @@ -27,7 +27,6 @@ namespace FireflyIII\Support\Cronjobs; use Carbon\Carbon; use FireflyIII\Events\RequestedSendWebhookMessages; use FireflyIII\Exceptions\FireflyException; -use FireflyIII\Jobs\WarnAboutBills; use FireflyIII\Models\Configuration; use FireflyIII\Support\Facades\FireflyConfig; use Illuminate\Support\Facades\Log; diff --git a/app/Support/Http/Controllers/PeriodOverview.php b/app/Support/Http/Controllers/PeriodOverview.php index d83f6501a4..71202faf95 100644 --- a/app/Support/Http/Controllers/PeriodOverview.php +++ b/app/Support/Http/Controllers/PeriodOverview.php @@ -117,14 +117,14 @@ trait PeriodOverview [$transactions, $transferredIn] = $this->filterTransfers('in', $transactions, $currentDate['start'], $currentDate['end']); $entries[] = [ - 'title' => $title, - 'route' => route('accounts.show', [$account->id, $currentDate['start']->format('Y-m-d'), $currentDate['end']->format('Y-m-d')]), - 'total_transactions' => count($spent) + count($earned) + count($transferredAway) + count($transferredIn), - 'spent' => $this->groupByCurrency($spent), - 'earned' => $this->groupByCurrency($earned), - 'transferred_away' => $this->groupByCurrency($transferredAway), - 'transferred_in' => $this->groupByCurrency($transferredIn), - ]; + 'title' => $title, + 'route' => route('accounts.show', [$account->id, $currentDate['start']->format('Y-m-d'), $currentDate['end']->format('Y-m-d')]), + 'total_transactions' => count($spent) + count($earned) + count($transferredAway) + count($transferredIn), + 'spent' => $this->groupByCurrency($spent), + 'earned' => $this->groupByCurrency($earned), + 'transferred_away' => $this->groupByCurrency($transferredAway), + 'transferred_in' => $this->groupByCurrency($transferredIn), + ]; ++$loops; } $cache->store($entries); @@ -590,13 +590,13 @@ trait PeriodOverview } $entries[] = [ - 'title' => $title, - 'route' => route('transactions.index', [$transactionType, $currentDate['start']->format('Y-m-d'), $currentDate['end']->format('Y-m-d')]), - 'total_transactions' => count($spent) + count($earned) + count($transferred), - 'spent' => $this->groupByCurrency($spent), - 'earned' => $this->groupByCurrency($earned), - 'transferred' => $this->groupByCurrency($transferred), - ]; + 'title' => $title, + 'route' => route('transactions.index', [$transactionType, $currentDate['start']->format('Y-m-d'), $currentDate['end']->format('Y-m-d')]), + 'total_transactions' => count($spent) + count($earned) + count($transferred), + 'spent' => $this->groupByCurrency($spent), + 'earned' => $this->groupByCurrency($earned), + 'transferred' => $this->groupByCurrency($transferred), + ]; ++$loops; } diff --git a/composer.lock b/composer.lock index 38e3231d2c..134d08c883 100644 --- a/composer.lock +++ b/composer.lock @@ -10347,16 +10347,16 @@ }, { "name": "driftingly/rector-laravel", - "version": "2.0.5", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/driftingly/rector-laravel.git", - "reference": "ac61de4f267c23249d175d7fc9149fd01528567d" + "reference": "5be95811801fc06126dd844beaeb6a41721ba3d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/driftingly/rector-laravel/zipball/ac61de4f267c23249d175d7fc9149fd01528567d", - "reference": "ac61de4f267c23249d175d7fc9149fd01528567d", + "url": "https://api.github.com/repos/driftingly/rector-laravel/zipball/5be95811801fc06126dd844beaeb6a41721ba3d3", + "reference": "5be95811801fc06126dd844beaeb6a41721ba3d3", "shasum": "" }, "require": { @@ -10376,9 +10376,9 @@ "description": "Rector upgrades rules for Laravel Framework", "support": { "issues": "https://github.com/driftingly/rector-laravel/issues", - "source": "https://github.com/driftingly/rector-laravel/tree/2.0.5" + "source": "https://github.com/driftingly/rector-laravel/tree/2.0.6" }, - "time": "2025-05-14T17:30:41+00:00" + "time": "2025-08-08T22:10:01+00:00" }, { "name": "fakerphp/faker", diff --git a/config/firefly.php b/config/firefly.php index 359cb64864..0ce7722011 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -78,8 +78,8 @@ return [ 'running_balance_column' => env('USE_RUNNING_BALANCE', false), // see cer.php for exchange rates feature flag. ], - 'version' => 'develop/2025-08-08', - 'build_time' => 1754679717, + 'version' => 'develop/2025-08-09', + 'build_time' => 1754719342, 'api_version' => '2.1.0', // field is no longer used. 'db_version' => 26,