@fuf discovered a bug where FF3 will fall back to the hard-coded system default currency and not the set default currency. See #307

This commit is contained in:
James Cole
2016-09-13 19:19:58 +02:00
parent a7351f348d
commit 6958f71cfd
3 changed files with 14 additions and 10 deletions

View File

@@ -21,6 +21,7 @@ use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\User;
use Illuminate\Support\Collection;
use Log;
use Preferences;
/**
* Class ImportValidator
@@ -357,13 +358,16 @@ class ImportValidator
{
if (is_null($entry->fields['currency'])) {
/** @var CurrencyRepositoryInterface $repository */
$repository = app(CurrencyRepositoryInterface::class);
$entry->fields['currency'] = $repository->findByCode(env('DEFAULT_CURRENCY', 'EUR'));
Log::debug('Set currency to EUR');
$repository = app(CurrencyRepositoryInterface::class, [$this->user]);
// is the default currency for the user or the system
$defaultCode = Preferences::getForUser($this->user, 'currencyPreference', env('DEFAULT_CURRENCY', 'EUR'))->data;
$entry->fields['currency'] = $repository->findByCode($defaultCode);
Log::debug(sprintf('Set currency to %s', $defaultCode));
return $entry;
}
Log::debug('Currency is OK');
Log::debug(sprintf('Currency is OK: %s', $entry->fields['currency']->code));
return $entry;
}

View File

@@ -171,7 +171,7 @@ class Amount
}
/**
* @return TransactionCurrency
* @return \FireflyIII\Models\TransactionCurrency
*/
public function getDefaultCurrency(): TransactionCurrency
{
@@ -180,7 +180,7 @@ class Amount
if ($cache->has()) {
return $cache->get();
}
$currencyPreference = Prefs::get('currencyPreference', 'EUR');
$currencyPreference = Prefs::get('currencyPreference', env('DEFAULT_CURRENCY', 'EUR'));
$currency = TransactionCurrency::whereCode($currencyPreference->data)->first();
$cache->store($currency);

View File

@@ -57,11 +57,11 @@ class Preferences
}
/**
* @param User $user
* @param string $name
* @param string $default
* @param \FireflyIII\User $user
* @param string $name
* @param string $default
*
* @return Preference|null
* @return \FireflyIII\Models\Preference|null
*/
public function getForUser(User $user, $name, $default = null)
{