From de8149137afd4f75d033834ae0e02162556edcf7 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 23 Feb 2025 12:28:27 +0100 Subject: [PATCH] Use trait and interface. --- .../Account/AccountRepository.php | 18 ++--- app/Repositories/Account/AccountTasker.php | 17 ++-- .../Account/OperationsRepository.php | 15 +--- .../Attachment/AttachmentRepository.php | 16 +--- app/Repositories/Bill/BillRepository.php | 3 +- .../Budget/AvailableBudgetRepository.php | 15 +--- .../Budget/BudgetLimitRepository.php | 14 +--- app/Repositories/Budget/BudgetRepository.php | 3 +- .../Budget/NoBudgetRepository.php | 16 +--- .../Budget/OperationsRepository.php | 16 +--- .../Category/CategoryRepository.php | 12 +-- .../Category/NoCategoryRepository.php | 27 +++---- .../Category/OperationsRepository.php | 14 +--- .../Currency/CurrencyRepository.php | 23 +----- .../Journal/JournalAPIRepository.php | 15 +--- .../Journal/JournalCLIRepository.php | 13 ++-- .../Journal/JournalRepository.php | 15 +--- .../LinkType/LinkTypeRepository.php | 15 +--- .../ObjectGroup/ObjectGroupRepository.php | 15 +--- .../PiggyBank/PiggyBankRepository.php | 78 +++++++++---------- .../Recurring/RecurringRepository.php | 14 +--- app/Repositories/Rule/RuleRepository.php | 16 +--- .../RuleGroup/RuleGroupRepository.php | 15 +--- app/Repositories/Tag/OperationsRepository.php | 15 +--- app/Repositories/Tag/TagRepository.php | 15 +--- .../TransactionGroupRepository.php | 3 +- app/Repositories/User/UserRepository.php | 5 +- .../UserGroup/UserGroupRepository.php | 15 +--- .../Webhook/WebhookRepository.php | 20 ++--- .../Internal/Update/BillUpdateService.php | 4 +- .../Internal/Update/JournalUpdateService.php | 4 +- .../Support/Models/BillDateCalculatorTest.php | 22 +++--- 32 files changed, 165 insertions(+), 343 deletions(-) diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index 02e06bb0f4..0309b66f95 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -33,24 +33,23 @@ use FireflyIII\Models\AccountMeta; use FireflyIII\Models\AccountType; use FireflyIII\Models\Attachment; use FireflyIII\Models\Location; -use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionGroup; use FireflyIII\Models\TransactionJournal; use FireflyIII\Services\Internal\Destroy\AccountDestroyService; use FireflyIII\Services\Internal\Update\AccountUpdateService; use FireflyIII\Support\Facades\Steam; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Database\Eloquent\Builder as EloquentBuilder; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Collection; +use Illuminate\Support\Facades\Storage; /** * Class AccountRepository. */ -class AccountRepository implements AccountRepositoryInterface +class AccountRepository implements AccountRepositoryInterface, UserGroupInterface { use UserGroupTrait; @@ -210,8 +209,8 @@ class AccountRepository implements AccountRepositoryInterface { $set = $account->attachments()->get(); - /** @var \Storage $disk */ - $disk = \Storage::disk('upload'); + /** @var Storage $disk */ + $disk = Storage::disk('upload'); return $set->each( static function (Attachment $attachment) use ($disk) { // @phpstan-ignore-line @@ -239,13 +238,6 @@ class AccountRepository implements AccountRepositoryInterface return $factory->findOrCreate('Cash account', $type->type); } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function getCreditTransactionGroup(Account $account): ?TransactionGroup { $journal = TransactionJournal::leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id') diff --git a/app/Repositories/Account/AccountTasker.php b/app/Repositories/Account/AccountTasker.php index 2f6133978b..eae312bd36 100644 --- a/app/Repositories/Account/AccountTasker.php +++ b/app/Repositories/Account/AccountTasker.php @@ -30,17 +30,17 @@ use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\Account; use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface; use FireflyIII\Support\Facades\Steam; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; /** * Class AccountTasker. */ -class AccountTasker implements AccountTaskerInterface +class AccountTasker implements AccountTaskerInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; /** * @throws FireflyException @@ -49,7 +49,7 @@ class AccountTasker implements AccountTaskerInterface { $yesterday = clone $start; $yesterday->subDay()->endOfDay(); // exactly up until $start but NOT including. - $end->endOfDay(); // needs to be end of day to be correct. + $end->endOfDay(); // needs to be end of day to be correct. Log::debug(sprintf('getAccountReport: finalAccountsBalance("%s")', $yesterday->format('Y-m-d H:i:s'))); Log::debug(sprintf('getAccountReport: finalAccountsBalance("%s")', $end->format('Y-m-d H:i:s'))); $startSet = Steam::finalAccountsBalance($accounts, $yesterday); @@ -289,11 +289,4 @@ class AccountTasker implements AccountTaskerInterface return $report; } - - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } } diff --git a/app/Repositories/Account/OperationsRepository.php b/app/Repositories/Account/OperationsRepository.php index ab37ea4b87..fb71bb7235 100644 --- a/app/Repositories/Account/OperationsRepository.php +++ b/app/Repositories/Account/OperationsRepository.php @@ -29,16 +29,16 @@ use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Support\Report\Summarizer\TransactionSummarizer; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; /** * Class OperationsRepository */ -class OperationsRepository implements OperationsRepositoryInterface +class OperationsRepository implements OperationsRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; /** * This method returns a list of all the withdrawal transaction journals (as arrays) set in that period @@ -66,13 +66,6 @@ class OperationsRepository implements OperationsRepositoryInterface return $collector->getExtractedJournals(); } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - private function sortByCurrency(array $journals, string $direction): array { $array = []; diff --git a/app/Repositories/Attachment/AttachmentRepository.php b/app/Repositories/Attachment/AttachmentRepository.php index a1744a3dac..2c9bed54b7 100644 --- a/app/Repositories/Attachment/AttachmentRepository.php +++ b/app/Repositories/Attachment/AttachmentRepository.php @@ -28,8 +28,8 @@ use FireflyIII\Factory\AttachmentFactory; use FireflyIII\Helpers\Attachments\AttachmentHelperInterface; use FireflyIII\Models\Attachment; use FireflyIII\Models\Note; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Contracts\Encryption\DecryptException; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Storage; @@ -38,10 +38,9 @@ use League\Flysystem\UnableToDeleteFile; /** * Class AttachmentRepository. */ -class AttachmentRepository implements AttachmentRepositoryInterface +class AttachmentRepository implements AttachmentRepositoryInterface, UserGroupInterface { - /** @var User */ - private $user; + use UserGroupTrait; /** * @throws \Exception @@ -126,13 +125,6 @@ class AttachmentRepository implements AttachmentRepositoryInterface return $result; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function update(Attachment $attachment, array $data): Attachment { if (array_key_exists('title', $data)) { diff --git a/app/Repositories/Bill/BillRepository.php b/app/Repositories/Bill/BillRepository.php index 248b3ac2dd..7c1426c929 100644 --- a/app/Repositories/Bill/BillRepository.php +++ b/app/Repositories/Bill/BillRepository.php @@ -38,6 +38,7 @@ use FireflyIII\Services\Internal\Destroy\BillDestroyService; use FireflyIII\Services\Internal\Update\BillUpdateService; use FireflyIII\Support\CacheProperties; use FireflyIII\Support\Facades\Amount; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Database\Query\JoinClause; use Illuminate\Pagination\LengthAwarePaginator; @@ -48,7 +49,7 @@ use Illuminate\Support\Facades\Log; /** * Class BillRepository. */ -class BillRepository implements BillRepositoryInterface +class BillRepository implements BillRepositoryInterface, UserGroupInterface { use CreatesObjectGroups; use UserGroupTrait; diff --git a/app/Repositories/Budget/AvailableBudgetRepository.php b/app/Repositories/Budget/AvailableBudgetRepository.php index f991ed0d99..fddb77e0ec 100644 --- a/app/Repositories/Budget/AvailableBudgetRepository.php +++ b/app/Repositories/Budget/AvailableBudgetRepository.php @@ -28,8 +28,8 @@ use Carbon\Carbon; use FireflyIII\Models\AvailableBudget; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Support\Facades\Amount; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; @@ -37,9 +37,9 @@ use Illuminate\Support\Facades\Log; /** * Class AvailableBudgetRepository */ -class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface +class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; public function cleanup(): void { @@ -230,13 +230,6 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface return $availableBudget; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function store(array $data): ?AvailableBudget { $start = $data['start']; diff --git a/app/Repositories/Budget/BudgetLimitRepository.php b/app/Repositories/Budget/BudgetLimitRepository.php index c7ffe4b45d..17bf27e34c 100644 --- a/app/Repositories/Budget/BudgetLimitRepository.php +++ b/app/Repositories/Budget/BudgetLimitRepository.php @@ -31,8 +31,9 @@ use FireflyIII\Models\Budget; use FireflyIII\Models\BudgetLimit; use FireflyIII\Models\Note; use FireflyIII\Models\TransactionCurrency; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; @@ -40,9 +41,9 @@ use Illuminate\Support\Facades\Log; /** * Class BudgetLimitRepository */ -class BudgetLimitRepository implements BudgetLimitRepositoryInterface +class BudgetLimitRepository implements BudgetLimitRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; /** * Tells you which amount has been budgeted (for the given budgets) @@ -262,13 +263,6 @@ class BudgetLimitRepository implements BudgetLimitRepositoryInterface return (string) $budgetLimit->notes()->first()?->text; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - /** * @throws FireflyException */ diff --git a/app/Repositories/Budget/BudgetRepository.php b/app/Repositories/Budget/BudgetRepository.php index 3e7426ec0a..03363c925f 100644 --- a/app/Repositories/Budget/BudgetRepository.php +++ b/app/Repositories/Budget/BudgetRepository.php @@ -41,6 +41,7 @@ use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface; use FireflyIII\Services\Internal\Destroy\BudgetDestroyService; use FireflyIII\Support\Http\Api\ExchangeRateConverter; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Database\QueryException; use Illuminate\Support\Collection; @@ -49,7 +50,7 @@ use Illuminate\Support\Facades\Log; /** * Class BudgetRepository. */ -class BudgetRepository implements BudgetRepositoryInterface +class BudgetRepository implements BudgetRepositoryInterface, UserGroupInterface { use UserGroupTrait; diff --git a/app/Repositories/Budget/NoBudgetRepository.php b/app/Repositories/Budget/NoBudgetRepository.php index decae30ffc..fa9d367d8a 100644 --- a/app/Repositories/Budget/NoBudgetRepository.php +++ b/app/Repositories/Budget/NoBudgetRepository.php @@ -29,17 +29,16 @@ use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Support\Report\Summarizer\TransactionSummarizer; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; /** * Class NoBudgetRepository */ -class NoBudgetRepository implements NoBudgetRepositoryInterface +class NoBudgetRepository implements NoBudgetRepositoryInterface, UserGroupInterface { - /** @var User */ - private $user; + use UserGroupTrait; public function getNoBudgetPeriodReport(Collection $accounts, Carbon $start, Carbon $end): array { @@ -80,13 +79,6 @@ class NoBudgetRepository implements NoBudgetRepositoryInterface return $data; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function sumExpenses(Carbon $start, Carbon $end, ?Collection $accounts = null, ?TransactionCurrency $currency = null): array { /** @var GroupCollectorInterface $collector */ diff --git a/app/Repositories/Budget/OperationsRepository.php b/app/Repositories/Budget/OperationsRepository.php index 077e89a16c..eb6c70a52d 100644 --- a/app/Repositories/Budget/OperationsRepository.php +++ b/app/Repositories/Budget/OperationsRepository.php @@ -31,19 +31,18 @@ use FireflyIII\Models\Account; use FireflyIII\Models\Budget; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Repositories\Account\AccountRepositoryInterface; -use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Report\Summarizer\TransactionSummarizer; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; /** * Class OperationsRepository */ -class OperationsRepository implements OperationsRepositoryInterface +class OperationsRepository implements OperationsRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; /** * A method that returns the amount of money budgeted per day for this budget, @@ -186,13 +185,6 @@ class OperationsRepository implements OperationsRepositoryInterface return $array; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - private function getBudgets(): Collection { /** @var BudgetRepositoryInterface $repos */ diff --git a/app/Repositories/Category/CategoryRepository.php b/app/Repositories/Category/CategoryRepository.php index 53d25b6686..c168a7a98c 100644 --- a/app/Repositories/Category/CategoryRepository.php +++ b/app/Repositories/Category/CategoryRepository.php @@ -33,16 +33,15 @@ use FireflyIII\Models\RecurrenceTransactionMeta; use FireflyIII\Models\RuleAction; use FireflyIII\Services\Internal\Destroy\CategoryDestroyService; use FireflyIII\Services\Internal\Update\CategoryUpdateService; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; /** * Class CategoryRepository. */ -class CategoryRepository implements CategoryRepositoryInterface +class CategoryRepository implements CategoryRepositoryInterface, UserGroupInterface { use UserGroupTrait; @@ -168,13 +167,6 @@ class CategoryRepository implements CategoryRepositoryInterface return $category; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function removeNotes(Category $category): void { $category->notes()->delete(); diff --git a/app/Repositories/Category/NoCategoryRepository.php b/app/Repositories/Category/NoCategoryRepository.php index 9fdeae0978..d8ea7ce007 100644 --- a/app/Repositories/Category/NoCategoryRepository.php +++ b/app/Repositories/Category/NoCategoryRepository.php @@ -28,16 +28,16 @@ use Carbon\Carbon; use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Support\Report\Summarizer\TransactionSummarizer; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; /** * Class NoCategoryRepository */ -class NoCategoryRepository implements NoCategoryRepositoryInterface +class NoCategoryRepository implements NoCategoryRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; /** * This method returns a list of all the withdrawal transaction journals (as arrays) set in that period @@ -77,21 +77,14 @@ class NoCategoryRepository implements NoCategoryRepositoryInterface $journalId = (int) $journal['transaction_journal_id']; $array[$currencyId]['categories'][0]['transaction_journals'][$journalId] = [ - 'amount' => app('steam')->negative($journal['amount']), - 'date' => $journal['date'], - ]; + 'amount' => app('steam')->negative($journal['amount']), + 'date' => $journal['date'], + ]; } return $array; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - /** * This method returns a list of all the deposit transaction journals (as arrays) set in that period * which have no category set to them. It's grouped per currency, with as few details in the array @@ -130,9 +123,9 @@ class NoCategoryRepository implements NoCategoryRepositoryInterface $journalId = (int) $journal['transaction_journal_id']; $array[$currencyId]['categories'][0]['transaction_journals'][$journalId] = [ - 'amount' => app('steam')->positive($journal['amount']), - 'date' => $journal['date'], - ]; + 'amount' => app('steam')->positive($journal['amount']), + 'date' => $journal['date'], + ]; } return $array; diff --git a/app/Repositories/Category/OperationsRepository.php b/app/Repositories/Category/OperationsRepository.php index 0845ddfa10..a0f5b168a7 100644 --- a/app/Repositories/Category/OperationsRepository.php +++ b/app/Repositories/Category/OperationsRepository.php @@ -29,17 +29,18 @@ use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Report\Summarizer\TransactionSummarizer; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; /** * Class OperationsRepository */ -class OperationsRepository implements OperationsRepositoryInterface +class OperationsRepository implements OperationsRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; /** * This method returns a list of all the withdrawal transaction journals (as arrays) set in that period @@ -112,13 +113,6 @@ class OperationsRepository implements OperationsRepositoryInterface return $array; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - /** * Returns a list of all the categories belonging to a user. */ diff --git a/app/Repositories/Currency/CurrencyRepository.php b/app/Repositories/Currency/CurrencyRepository.php index ca3c15e64c..e908216f2a 100644 --- a/app/Repositories/Currency/CurrencyRepository.php +++ b/app/Repositories/Currency/CurrencyRepository.php @@ -26,18 +26,17 @@ namespace FireflyIII\Repositories\Currency; use Carbon\Carbon; use FireflyIII\Models\CurrencyExchangeRate; use FireflyIII\Models\TransactionCurrency; -use FireflyIII\Models\UserGroup; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; /** * Class CurrencyRepository. */ -class CurrencyRepository implements CurrencyRepositoryInterface +class CurrencyRepository implements CurrencyRepositoryInterface, UserGroupInterface { - private User $user; - private UserGroup $userGroup; + use UserGroupTrait; #[\Override] public function find(int $currencyId): ?TransactionCurrency @@ -107,18 +106,4 @@ class CurrencyRepository implements CurrencyRepositoryInterface ] ); } - - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - $this->userGroup = $user->userGroup; - } - } - - #[\Override] - public function setUserGroup(UserGroup $userGroup): void - { - $this->userGroup = $userGroup; - } } diff --git a/app/Repositories/Journal/JournalAPIRepository.php b/app/Repositories/Journal/JournalAPIRepository.php index 71ba154860..35590f1d5c 100644 --- a/app/Repositories/Journal/JournalAPIRepository.php +++ b/app/Repositories/Journal/JournalAPIRepository.php @@ -29,16 +29,16 @@ use FireflyIII\Models\PiggyBank; use FireflyIII\Models\PiggyBankEvent; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; /** * Class JournalAPIRepository */ -class JournalAPIRepository implements JournalAPIRepositoryInterface +class JournalAPIRepository implements JournalAPIRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; /** * Returns transaction by ID. Used to validate attachments. @@ -96,11 +96,4 @@ class JournalAPIRepository implements JournalAPIRepositoryInterface return $events; } - - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } } diff --git a/app/Repositories/Journal/JournalCLIRepository.php b/app/Repositories/Journal/JournalCLIRepository.php index a605f60331..5384b22eea 100644 --- a/app/Repositories/Journal/JournalCLIRepository.php +++ b/app/Repositories/Journal/JournalCLIRepository.php @@ -28,15 +28,17 @@ use Carbon\Carbon; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; use FireflyIII\Support\CacheProperties; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; /** * Class JournalCLIRepository */ -class JournalCLIRepository implements JournalCLIRepositoryInterface +class JournalCLIRepository implements JournalCLIRepositoryInterface, UserGroupInterface { + use UserGroupTrait; + /** * Get all transaction journals with a specific type, regardless of user. */ @@ -201,9 +203,4 @@ class JournalCLIRepository implements JournalCLIRepositoryInterface { return $journal->tags()->get()->pluck('tag')->toArray(); } - - public function setUser(null|Authenticatable|User $user): void - { - // empty - } } diff --git a/app/Repositories/Journal/JournalRepository.php b/app/Repositories/Journal/JournalRepository.php index 0a07d7d166..7ef358d137 100644 --- a/app/Repositories/Journal/JournalRepository.php +++ b/app/Repositories/Journal/JournalRepository.php @@ -36,16 +36,16 @@ use FireflyIII\Services\Internal\Destroy\JournalDestroyService; use FireflyIII\Services\Internal\Destroy\TransactionGroupDestroyService; use FireflyIII\Services\Internal\Update\JournalUpdateService; use FireflyIII\Support\CacheProperties; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; /** * Class JournalRepository. */ -class JournalRepository implements JournalRepositoryInterface +class JournalRepository implements JournalRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; public function destroyGroup(TransactionGroup $transactionGroup): void { @@ -204,13 +204,6 @@ class JournalRepository implements JournalRepositoryInterface return $query->take($limit)->get(); } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function unreconcileById(int $journalId): void { /** @var null|TransactionJournal $journal */ diff --git a/app/Repositories/LinkType/LinkTypeRepository.php b/app/Repositories/LinkType/LinkTypeRepository.php index f42ece55ca..024e097959 100644 --- a/app/Repositories/LinkType/LinkTypeRepository.php +++ b/app/Repositories/LinkType/LinkTypeRepository.php @@ -28,16 +28,16 @@ use FireflyIII\Models\LinkType; use FireflyIII\Models\Note; use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournalLink; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; /** * Class LinkTypeRepository. */ -class LinkTypeRepository implements LinkTypeRepositoryInterface +class LinkTypeRepository implements LinkTypeRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; public function countJournals(LinkType $linkType): int { @@ -157,13 +157,6 @@ class LinkTypeRepository implements LinkTypeRepositoryInterface ); } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function store(array $data): LinkType { $linkType = new LinkType(); diff --git a/app/Repositories/ObjectGroup/ObjectGroupRepository.php b/app/Repositories/ObjectGroup/ObjectGroupRepository.php index e9d880d56a..90e96cb1e0 100644 --- a/app/Repositories/ObjectGroup/ObjectGroupRepository.php +++ b/app/Repositories/ObjectGroup/ObjectGroupRepository.php @@ -26,16 +26,16 @@ namespace FireflyIII\Repositories\ObjectGroup; use FireflyIII\Models\ObjectGroup; use FireflyIII\Models\PiggyBank; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; /** * Class ObjectGroupRepository */ -class ObjectGroupRepository implements ObjectGroupRepositoryInterface +class ObjectGroupRepository implements ObjectGroupRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; public function deleteAll(): void { @@ -127,13 +127,6 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface return $dbQuery->take($limit)->get(['object_groups.*']); } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function update(ObjectGroup $objectGroup, array $data): ObjectGroup { if (array_key_exists('title', $data)) { diff --git a/app/Repositories/PiggyBank/PiggyBankRepository.php b/app/Repositories/PiggyBank/PiggyBankRepository.php index 9291cbdd05..5f96219b1b 100644 --- a/app/Repositories/PiggyBank/PiggyBankRepository.php +++ b/app/Repositories/PiggyBank/PiggyBankRepository.php @@ -36,16 +36,15 @@ use FireflyIII\Models\TransactionJournal; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Support\Facades\Steam; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; /** * Class PiggyBankRepository. */ -class PiggyBankRepository implements PiggyBankRepositoryInterface +class PiggyBankRepository implements PiggyBankRepositoryInterface, UserGroupInterface { use ModifiesPiggyBanks; @@ -126,6 +125,24 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface ); } + /** + * Get current amount saved in piggy bank. + */ + public function getCurrentNativeAmount(PiggyBank $piggyBank, ?Account $account = null): string + { + $sum = '0'; + foreach ($piggyBank->accounts as $current) { + if (null !== $account && $account->id !== $current->id) { + continue; + } + $amount = (string) $current->pivot->native_current_amount; + $amount = '' === $amount ? '0' : $amount; + $sum = bcadd($sum, $amount); + } + + return $sum; + } + public function getEvents(PiggyBank $piggyBank): Collection { return $piggyBank->piggyBankEvents()->orderBy('date', 'DESC')->orderBy('id', 'DESC')->get(); @@ -242,11 +259,23 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface return (string) $amount; } - public function setUser(null|Authenticatable|User $user): void + /** + * Get current amount saved in piggy bank. + */ + public function getCurrentAmount(PiggyBank $piggyBank, ?Account $account = null): string { - if ($user instanceof User) { - $this->user = $user; + $sum = '0'; + foreach ($piggyBank->accounts as $current) { + if (null !== $account && $account->id !== $current->id) { + continue; + } + $amount = (string) $current->pivot->current_amount; + $amount = '' === $amount ? '0' : $amount; + $sum = bcadd($sum, $amount); } + // Log::debug(sprintf('Current amount in piggy bank #%d ("%s") is %s', $piggyBank->id, $piggyBank->name, $sum)); + + return $sum; } /** @@ -290,43 +319,6 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface ; } - /** - * Get current amount saved in piggy bank. - */ - public function getCurrentAmount(PiggyBank $piggyBank, ?Account $account = null): string - { - $sum = '0'; - foreach ($piggyBank->accounts as $current) { - if (null !== $account && $account->id !== $current->id) { - continue; - } - $amount = (string) $current->pivot->current_amount; - $amount = '' === $amount ? '0' : $amount; - $sum = bcadd($sum, $amount); - } - // Log::debug(sprintf('Current amount in piggy bank #%d ("%s") is %s', $piggyBank->id, $piggyBank->name, $sum)); - - return $sum; - } - - /** - * Get current amount saved in piggy bank. - */ - public function getCurrentNativeAmount(PiggyBank $piggyBank, ?Account $account = null): string - { - $sum = '0'; - foreach ($piggyBank->accounts as $current) { - if (null !== $account && $account->id !== $current->id) { - continue; - } - $amount = (string) $current->pivot->native_current_amount; - $amount = '' === $amount ? '0' : $amount; - $sum = bcadd($sum, $amount); - } - - return $sum; - } - public function getRepetition(PiggyBank $piggyBank, bool $overrule = false): ?PiggyBankRepetition { if (false === $overrule) { diff --git a/app/Repositories/Recurring/RecurringRepository.php b/app/Repositories/Recurring/RecurringRepository.php index b24aa9be82..1d6c47c5ac 100644 --- a/app/Repositories/Recurring/RecurringRepository.php +++ b/app/Repositories/Recurring/RecurringRepository.php @@ -43,8 +43,9 @@ use FireflyIII\Support\Repositories\Recurring\CalculateRangeOccurrences; use FireflyIII\Support\Repositories\Recurring\CalculateXOccurrences; use FireflyIII\Support\Repositories\Recurring\CalculateXOccurrencesSince; use FireflyIII\Support\Repositories\Recurring\FiltersWeekends; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Database\Eloquent\Builder; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; @@ -53,14 +54,14 @@ use Illuminate\Support\Facades\Log; /** * Class RecurringRepository */ -class RecurringRepository implements RecurringRepositoryInterface +class RecurringRepository implements RecurringRepositoryInterface, UserGroupInterface { use CalculateRangeOccurrences; use CalculateXOccurrences; use CalculateXOccurrencesSince; use FiltersWeekends; - private User $user; + use UserGroupTrait; public function createdPreviously(Recurrence $recurrence, Carbon $date): bool { @@ -305,13 +306,6 @@ class RecurringRepository implements RecurringRepositoryInterface return $collector->getPaginatedGroups(); } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function getTransactions(Recurrence $recurrence): Collection { $journalMeta = TransactionJournalMeta::leftJoin('transaction_journals', 'transaction_journals.id', '=', 'journal_meta.transaction_journal_id') diff --git a/app/Repositories/Rule/RuleRepository.php b/app/Repositories/Rule/RuleRepository.php index 0c43cdc0db..ca214c6edd 100644 --- a/app/Repositories/Rule/RuleRepository.php +++ b/app/Repositories/Rule/RuleRepository.php @@ -29,18 +29,17 @@ use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleGroup; use FireflyIII\Models\RuleTrigger; use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\Support\Search\OperatorQuerySearch; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; /** * Class RuleRepository. */ -class RuleRepository implements RuleRepositoryInterface +class RuleRepository implements RuleRepositoryInterface, UserGroupInterface { - /** @var User */ - private $user; + use UserGroupTrait; /** * @throws \Exception @@ -312,13 +311,6 @@ class RuleRepository implements RuleRepositoryInterface return true; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function setOrder(Rule $rule, int $newOrder): void { $oldOrder = $rule->order; diff --git a/app/Repositories/RuleGroup/RuleGroupRepository.php b/app/Repositories/RuleGroup/RuleGroupRepository.php index 447151dbad..8615e346ec 100644 --- a/app/Repositories/RuleGroup/RuleGroupRepository.php +++ b/app/Repositories/RuleGroup/RuleGroupRepository.php @@ -27,8 +27,8 @@ use FireflyIII\Models\Rule; use FireflyIII\Models\RuleAction; use FireflyIII\Models\RuleGroup; use FireflyIII\Models\RuleTrigger; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; @@ -36,9 +36,9 @@ use Illuminate\Support\Facades\Log; /** * Class RuleGroupRepository. */ -class RuleGroupRepository implements RuleGroupRepositoryInterface +class RuleGroupRepository implements RuleGroupRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; public function correctRuleGroupOrder(): void { @@ -382,13 +382,6 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface return $search->take($limit)->get(['id', 'title', 'description']); } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function store(array $data): RuleGroup { $newRuleGroup = new RuleGroup( diff --git a/app/Repositories/Tag/OperationsRepository.php b/app/Repositories/Tag/OperationsRepository.php index 20ee0ad654..9fe781fd00 100644 --- a/app/Repositories/Tag/OperationsRepository.php +++ b/app/Repositories/Tag/OperationsRepository.php @@ -28,16 +28,16 @@ use Carbon\Carbon; use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Collector\GroupCollectorInterface; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; /** * Class OperationsRepository */ -class OperationsRepository implements OperationsRepositoryInterface +class OperationsRepository implements OperationsRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; /** * This method returns a list of all the withdrawal transaction journals (as arrays) set in that period @@ -114,13 +114,6 @@ class OperationsRepository implements OperationsRepositoryInterface return $array; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - private function getTags(): Collection { /** @var TagRepositoryInterface $repository */ diff --git a/app/Repositories/Tag/TagRepository.php b/app/Repositories/Tag/TagRepository.php index 3b1427af38..eb0f2c3649 100644 --- a/app/Repositories/Tag/TagRepository.php +++ b/app/Repositories/Tag/TagRepository.php @@ -31,17 +31,17 @@ use FireflyIII\Models\Attachment; use FireflyIII\Models\Location; use FireflyIII\Models\Note; use FireflyIII\Models\Tag; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; /** * Class TagRepository. */ -class TagRepository implements TagRepositoryInterface +class TagRepository implements TagRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; public function count(): int { @@ -91,13 +91,6 @@ class TagRepository implements TagRepositoryInterface return $collector->getExtractedJournals(); } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function find(int $tagId): ?Tag { /** @var null|Tag */ diff --git a/app/Repositories/TransactionGroup/TransactionGroupRepository.php b/app/Repositories/TransactionGroup/TransactionGroupRepository.php index b533d19296..cc5b68565b 100644 --- a/app/Repositories/TransactionGroup/TransactionGroupRepository.php +++ b/app/Repositories/TransactionGroup/TransactionGroupRepository.php @@ -43,6 +43,7 @@ use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; use FireflyIII\Services\Internal\Destroy\TransactionGroupDestroyService; use FireflyIII\Services\Internal\Update\GroupUpdateService; use FireflyIII\Support\NullArrayObject; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Collection; @@ -50,7 +51,7 @@ use Illuminate\Support\Collection; /** * Class TransactionGroupRepository */ -class TransactionGroupRepository implements TransactionGroupRepositoryInterface +class TransactionGroupRepository implements TransactionGroupRepositoryInterface, UserGroupInterface { use UserGroupTrait; diff --git a/app/Repositories/User/UserRepository.php b/app/Repositories/User/UserRepository.php index a811edd134..9abc8554a3 100644 --- a/app/Repositories/User/UserRepository.php +++ b/app/Repositories/User/UserRepository.php @@ -33,6 +33,7 @@ use FireflyIII\User; use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Database\QueryException; use Illuminate\Support\Collection; +use Illuminate\Support\Str; /** * Class UserRepository. @@ -275,7 +276,7 @@ class UserRepository implements UserRepositoryInterface $now->addDays(2); $invitee = new InvitedUser(); $invitee->user()->associate($user); - $invitee->invite_code = \Str::random(64); + $invitee->invite_code = Str::random(64); $invitee->email = $email; $invitee->redeemed = false; $invitee->expires = $now; @@ -310,7 +311,7 @@ class UserRepository implements UserRepositoryInterface 'blocked' => $data['blocked'] ?? false, 'blocked_code' => $data['blocked_code'] ?? null, 'email' => $data['email'], - 'password' => \Str::random(24), + 'password' => Str::random(24), ] ); $role = $data['role'] ?? ''; diff --git a/app/Repositories/UserGroup/UserGroupRepository.php b/app/Repositories/UserGroup/UserGroupRepository.php index 1d283c3fd3..863e9a5d4a 100644 --- a/app/Repositories/UserGroup/UserGroupRepository.php +++ b/app/Repositories/UserGroup/UserGroupRepository.php @@ -31,16 +31,17 @@ use FireflyIII\Models\GroupMembership; use FireflyIII\Models\UserGroup; use FireflyIII\Models\UserRole; use FireflyIII\Repositories\UserGroups\Currency\CurrencyRepositoryInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Support\Collection; /** * Class UserGroupRepository */ -class UserGroupRepository implements UserGroupRepositoryInterface +class UserGroupRepository implements UserGroupRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; public function destroy(UserGroup $userGroup): void { @@ -187,14 +188,6 @@ class UserGroupRepository implements UserGroupRepositoryInterface return $this->user->groupMemberships()->where('user_group_id', $groupId)->get(); } - public function setUser(null|Authenticatable|User $user): void - { - app('log')->debug(sprintf('Now in %s', __METHOD__)); - if ($user instanceof User) { - $this->user = $user; - } - } - public function update(UserGroup $userGroup, array $data): UserGroup { $userGroup->title = $data['title']; diff --git a/app/Repositories/Webhook/WebhookRepository.php b/app/Repositories/Webhook/WebhookRepository.php index 4c9fd15ca9..0cc7dee0e2 100644 --- a/app/Repositories/Webhook/WebhookRepository.php +++ b/app/Repositories/Webhook/WebhookRepository.php @@ -27,16 +27,17 @@ namespace FireflyIII\Repositories\Webhook; use FireflyIII\Models\Webhook; use FireflyIII\Models\WebhookAttempt; use FireflyIII\Models\WebhookMessage; -use FireflyIII\User; -use Illuminate\Contracts\Auth\Authenticatable; +use FireflyIII\Support\Repositories\UserGroup\UserGroupInterface; +use FireflyIII\Support\Repositories\UserGroup\UserGroupTrait; use Illuminate\Support\Collection; +use Illuminate\Support\Str; /** * Class WebhookRepository */ -class WebhookRepository implements WebhookRepositoryInterface +class WebhookRepository implements WebhookRepositoryInterface, UserGroupInterface { - private User $user; + use UserGroupTrait; public function all(): Collection { @@ -85,16 +86,9 @@ class WebhookRepository implements WebhookRepositoryInterface ; } - public function setUser(null|Authenticatable|User $user): void - { - if ($user instanceof User) { - $this->user = $user; - } - } - public function store(array $data): Webhook { - $secret = \Str::random(24); + $secret = Str::random(24); $fullData = [ 'user_id' => $this->user->id, 'user_group_id' => $this->user->user_group_id, @@ -120,7 +114,7 @@ class WebhookRepository implements WebhookRepositoryInterface $webhook->url = $data['url'] ?? $webhook->url; if (true === $data['secret']) { - $secret = \Str::random(24); + $secret = Str::random(24); $webhook->secret = $secret; } diff --git a/app/Services/Internal/Update/BillUpdateService.php b/app/Services/Internal/Update/BillUpdateService.php index 3905b21d62..d56bb2cc8c 100644 --- a/app/Services/Internal/Update/BillUpdateService.php +++ b/app/Services/Internal/Update/BillUpdateService.php @@ -54,8 +54,8 @@ class BillUpdateService if (array_key_exists('currency_id', $data) || array_key_exists('currency_code', $data)) { $factory = app(TransactionCurrencyFactory::class); - $currency = $factory->find((int) ($data['currency_id'] ?? null), $data['currency_code'] ?? null) ?? - app('amount')->getNativeCurrencyByUserGroup($bill->user->userGroup); + $currency = $factory->find((int) ($data['currency_id'] ?? null), $data['currency_code'] ?? null) + ?? app('amount')->getNativeCurrencyByUserGroup($bill->user->userGroup); // enable the currency if it isn't. $currency->enabled = true; diff --git a/app/Services/Internal/Update/JournalUpdateService.php b/app/Services/Internal/Update/JournalUpdateService.php index b156b2705f..e596d4363b 100644 --- a/app/Services/Internal/Update/JournalUpdateService.php +++ b/app/Services/Internal/Update/JournalUpdateService.php @@ -703,8 +703,8 @@ class JournalUpdateService // find currency in data array $newForeignId = $this->data['foreign_currency_id'] ?? null; $newForeignCode = $this->data['foreign_currency_code'] ?? null; - $foreignCurrency = $this->currencyRepository->findCurrencyNull($newForeignId, $newForeignCode) ?? - $foreignCurrency; + $foreignCurrency = $this->currencyRepository->findCurrencyNull($newForeignId, $newForeignCode) + ?? $foreignCurrency; // not the same as normal currency if (null !== $foreignCurrency && $foreignCurrency->id === $this->transactionJournal->transaction_currency_id) { diff --git a/tests/integration/Support/Models/BillDateCalculatorTest.php b/tests/integration/Support/Models/BillDateCalculatorTest.php index b4962ad6fb..bb65b1d0ac 100644 --- a/tests/integration/Support/Models/BillDateCalculatorTest.php +++ b/tests/integration/Support/Models/BillDateCalculatorTest.php @@ -45,6 +45,17 @@ final class BillDateCalculatorTest extends TestCase $this->calculator = new BillDateCalculator(); } + /** + * Stupid long method names I'm not going to do that. + * + * @dataProvider provideDates + */ + public function testGivenSomeDataItWorks(Carbon $earliest, Carbon $latest, Carbon $billStart, string $period, int $skip, ?Carbon $lastPaid, array $expected): void + { + $result = $this->calculator->getPayDates($earliest, $latest, $billStart, $period, $skip, $lastPaid); + self::assertSame($expected, $result); + } + public static function provideDates(): iterable { // Carbon $earliest, Carbon $latest, Carbon $billStart, string $period, int $skip, ?Carbon $lastPaid @@ -66,15 +77,4 @@ final class BillDateCalculatorTest extends TestCase '1Ya' => ['earliest' => Carbon::parse('2023-11-01'), 'latest' => Carbon::parse('2023-11-30'), 'billStart' => Carbon::parse('2021-05-01'), 'period' => 'yearly', 'skip' => 0, 'lastPaid' => Carbon::parse('2023-05-02'), 'expected' => ['2024-05-01']], ]; } - - /** - * Stupid long method names I'm not going to do that. - * - * @dataProvider provideDates - */ - public function testGivenSomeDataItWorks(Carbon $earliest, Carbon $latest, Carbon $billStart, string $period, int $skip, ?Carbon $lastPaid, array $expected): void - { - $result = $this->calculator->getPayDates($earliest, $latest, $billStart, $period, $skip, $lastPaid); - self::assertSame($expected, $result); - } }