Refactor currency repository.

This commit is contained in:
James Cole
2023-10-28 06:58:33 +02:00
parent 9e94b9e57e
commit 1d138eed8d
42 changed files with 676 additions and 818 deletions

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Support;
use Crypt;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Models\UserGroup;
use FireflyIII\User;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Support\Collection;
@@ -129,7 +130,6 @@ class Amount
* @param User $user
*
* @return TransactionCurrency
* @throws FireflyException
*/
public function getDefaultCurrencyByUser(User $user): TransactionCurrency
{
@@ -148,6 +148,28 @@ class Amount
return $default;
}
/**
* @param User $user
*
* @return TransactionCurrency
*/
public function getDefaultCurrencyByUserGroup(UserGroup $userGroup): TransactionCurrency
{
$cache = new CacheProperties();
$cache->addProperty('getDefaultCurrencyByGroup');
$cache->addProperty($userGroup->id);
if ($cache->has()) {
return $cache->get();
}
$default = $userGroup->currencies()->where('group_default', true)->first();
if(null === $default) {
$default = $this->getSystemCurrency();
$userGroup->currencies()->sync([$default->id => ['group_default' => true]]);
}
$cache->store($default);
return $default;
}
/**
* @param string $value