Remove primary currency from views, add some debug for #10854

This commit is contained in:
James Cole
2025-09-04 06:22:04 +02:00
parent 19e36f6f6e
commit cf76e93f31
7 changed files with 25 additions and 65 deletions

View File

@@ -77,7 +77,6 @@ class CreateController extends Controller
$periods[$current] = (string) trans('firefly.repeat_freq_'.$current); $periods[$current] = (string) trans('firefly.repeat_freq_'.$current);
} }
$subTitle = (string) trans('firefly.create_new_bill'); $subTitle = (string) trans('firefly.create_new_bill');
$primaryCurrency = $this->primaryCurrency;
// put previous url in session if not redirect from store (not "create another"). // put previous url in session if not redirect from store (not "create another").
if (true !== session('bills.create.fromStore')) { if (true !== session('bills.create.fromStore')) {
@@ -85,7 +84,7 @@ class CreateController extends Controller
} }
$request->session()->forget('bills.create.fromStore'); $request->session()->forget('bills.create.fromStore');
return view('bills.create', compact('periods', 'subTitle', 'primaryCurrency')); return view('bills.create', compact('periods', 'subTitle'));
} }
/** /**

View File

@@ -88,7 +88,6 @@ class EditController extends Controller
$bill->amount_min = app('steam')->bcround($bill->amount_min, $bill->transactionCurrency->decimal_places); $bill->amount_min = app('steam')->bcround($bill->amount_min, $bill->transactionCurrency->decimal_places);
$bill->amount_max = app('steam')->bcround($bill->amount_max, $bill->transactionCurrency->decimal_places); $bill->amount_max = app('steam')->bcround($bill->amount_max, $bill->transactionCurrency->decimal_places);
$rules = $this->repository->getRulesForBill($bill); $rules = $this->repository->getRulesForBill($bill);
$primaryCurrency = $this->primaryCurrency;
// code to handle active-checkboxes // code to handle active-checkboxes
$hasOldInput = null !== $request->old('_token'); $hasOldInput = null !== $request->old('_token');
@@ -105,7 +104,7 @@ class EditController extends Controller
$request->session()->flash('preFilled', $preFilled); $request->session()->flash('preFilled', $preFilled);
$request->session()->forget('bills.edit.fromUpdate'); $request->session()->forget('bills.edit.fromUpdate');
return view('bills.edit', compact('subTitle', 'periods', 'rules', 'bill', 'primaryCurrency', 'preFilled')); return view('bills.edit', compact('subTitle', 'periods', 'rules', 'bill', 'preFilled'));
} }
/** /**

View File

@@ -84,7 +84,6 @@ class CreateController extends Controller
{ {
$budgets = app('expandedform')->makeSelectListWithEmpty($this->budgetRepos->getActiveBudgets()); $budgets = app('expandedform')->makeSelectListWithEmpty($this->budgetRepos->getActiveBudgets());
$bills = app('expandedform')->makeSelectListWithEmpty($this->billRepository->getActiveBills()); $bills = app('expandedform')->makeSelectListWithEmpty($this->billRepository->getActiveBills());
$primaryCurrency = $this->primaryCurrency;
$tomorrow = today(config('app.timezone')); $tomorrow = today(config('app.timezone'));
$oldRepetitionType = $request->old('repetition_type'); $oldRepetitionType = $request->old('repetition_type');
$tomorrow->addDay(); $tomorrow->addDay();
@@ -116,7 +115,7 @@ class CreateController extends Controller
return view( return view(
'recurring.create', 'recurring.create',
compact('tomorrow', 'oldRepetitionType', 'bills', 'weekendResponses', 'preFilled', 'repetitionEnds', 'primaryCurrency', 'budgets') compact('tomorrow', 'oldRepetitionType', 'bills', 'weekendResponses', 'preFilled', 'repetitionEnds', 'budgets')
); );
} }
@@ -129,7 +128,6 @@ class CreateController extends Controller
{ {
$budgets = app('expandedform')->makeSelectListWithEmpty($this->budgetRepos->getActiveBudgets()); $budgets = app('expandedform')->makeSelectListWithEmpty($this->budgetRepos->getActiveBudgets());
$bills = app('expandedform')->makeSelectListWithEmpty($this->billRepository->getActiveBills()); $bills = app('expandedform')->makeSelectListWithEmpty($this->billRepository->getActiveBills());
$primaryCurrency = $this->primaryCurrency;
$tomorrow = today(config('app.timezone')); $tomorrow = today(config('app.timezone'));
$oldRepetitionType = $request->old('repetition_type'); $oldRepetitionType = $request->old('repetition_type');
$tomorrow->addDay(); $tomorrow->addDay();
@@ -208,10 +206,7 @@ class CreateController extends Controller
} }
$request->session()->flash('preFilled', $preFilled); $request->session()->flash('preFilled', $preFilled);
return view( return view('recurring.create', compact('tomorrow', 'oldRepetitionType', 'bills', 'weekendResponses', 'preFilled', 'repetitionEnds', 'budgets'));
'recurring.create',
compact('tomorrow', 'oldRepetitionType', 'bills', 'weekendResponses', 'preFilled', 'repetitionEnds', 'primaryCurrency', 'budgets')
);
} }
/** /**

View File

@@ -117,7 +117,6 @@ class CreateController extends Controller
$optionalFields = app('preferences')->get('transaction_journal_optional_fields', [])->data; $optionalFields = app('preferences')->get('transaction_journal_optional_fields', [])->data;
$allowedOpposingTypes = config('firefly.allowed_opposing_types'); $allowedOpposingTypes = config('firefly.allowed_opposing_types');
$accountToTypes = config('firefly.account_to_transaction'); $accountToTypes = config('firefly.account_to_transaction');
$primaryCurrency = $this->primaryCurrency;
$previousUrl = $this->rememberPreviousUrl('transactions.create.url'); $previousUrl = $this->rememberPreviousUrl('transactions.create.url');
$parts = parse_url((string) $previousUrl); $parts = parse_url((string) $previousUrl);
$search = sprintf('?%s', $parts['query'] ?? ''); $search = sprintf('?%s', $parts['query'] ?? '');
@@ -145,26 +144,6 @@ class CreateController extends Controller
session()->put('preFilled', $preFilled); session()->put('preFilled', $preFilled);
return view( return view('transactions.create', compact('subTitleIcon', 'cash', 'longitude', 'latitude', 'zoomLevel', 'objectType', 'optionalDateFields', 'subTitle', 'previousUrl', 'optionalFields', 'preFilled', 'allowedOpposingTypes', 'accountToTypes', 'sourceId', 'destinationId'));
'transactions.create',
compact(
'subTitleIcon',
'cash',
'longitude',
'latitude',
'zoomLevel',
'objectType',
'optionalDateFields',
'subTitle',
'primaryCurrency',
'previousUrl',
'optionalFields',
'preFilled',
'allowedOpposingTypes',
'accountToTypes',
'sourceId',
'destinationId'
)
);
} }
} }

View File

@@ -84,7 +84,6 @@ class EditController extends Controller
$title = $transactionGroup->transactionJournals()->count() > 1 ? $transactionGroup->title : $transactionGroup->transactionJournals()->first()->description; $title = $transactionGroup->transactionJournals()->count() > 1 ? $transactionGroup->title : $transactionGroup->transactionJournals()->first()->description;
$subTitle = (string) trans('firefly.edit_transaction_title', ['description' => $title]); $subTitle = (string) trans('firefly.edit_transaction_title', ['description' => $title]);
$subTitleIcon = 'fa-plus'; $subTitleIcon = 'fa-plus';
$primaryCurrency = $this->primaryCurrency;
$cash = $repository->getCashAccount(); $cash = $repository->getCashAccount();
$previousUrl = $this->rememberPreviousUrl('transactions.edit.url'); $previousUrl = $this->rememberPreviousUrl('transactions.edit.url');
$parts = parse_url((string) $previousUrl); $parts = parse_url((string) $previousUrl);
@@ -114,26 +113,7 @@ class EditController extends Controller
$latitude = config('firefly.default_location.latitude'); $latitude = config('firefly.default_location.latitude');
$zoomLevel = config('firefly.default_location.zoom_level'); $zoomLevel = config('firefly.default_location.zoom_level');
return view( return view('transactions.edit', compact('cash', 'allowedSourceDests', 'expectedSourceTypes', 'optionalDateFields', 'longitude', 'latitude', 'zoomLevel', 'optionalFields', 'subTitle', 'subTitleIcon', 'transactionGroup', 'allowedOpposingTypes', 'accountToTypes', 'previousUrl'));
'transactions.edit',
compact(
'cash',
'allowedSourceDests',
'expectedSourceTypes',
'optionalDateFields',
'longitude',
'latitude',
'zoomLevel',
'optionalFields',
'subTitle',
'subTitleIcon',
'transactionGroup',
'allowedOpposingTypes',
'accountToTypes',
'primaryCurrency',
'previousUrl'
)
);
} }
public function unreconcile(TransactionJournal $journal): JsonResponse public function unreconcile(TransactionJournal $journal): JsonResponse

View File

@@ -176,7 +176,7 @@ class Amount
public function getSystemCurrency(): TransactionCurrency public function getSystemCurrency(): TransactionCurrency
{ {
return TransactionCurrency::where('code', 'EUR')->first(); return TransactionCurrency::whereNull('deleted_at')->where('code', 'EUR')->first();
} }
/** /**

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Support\Twig; namespace FireflyIII\Support\Twig;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Account as AccountModel; use FireflyIII\Models\Account as AccountModel;
use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
@@ -52,9 +53,9 @@ class AmountFormat extends AbstractExtension
return new TwigFilter( return new TwigFilter(
'formatAmount', 'formatAmount',
static function (string $string): string { static function (string $string): string {
$currency = app('amount')->getPrimaryCurrency(); $currency = Amount::getPrimaryCurrency();
return app('amount')->formatAnything($currency, $string, true); return Amount::formatAnything($currency, $string, true);
}, },
['is_safe' => ['html']] ['is_safe' => ['html']]
); );
@@ -65,9 +66,9 @@ class AmountFormat extends AbstractExtension
return new TwigFilter( return new TwigFilter(
'formatAmountPlain', 'formatAmountPlain',
static function (string $string): string { static function (string $string): string {
$currency = app('amount')->getPrimaryCurrency(); $currency = Amount::getPrimaryCurrency();
return app('amount')->formatAnything($currency, $string, false); return Amount::formatAnything($currency, $string, false);
}, },
['is_safe' => ['html']] ['is_safe' => ['html']]
); );
@@ -98,9 +99,9 @@ class AmountFormat extends AbstractExtension
/** @var AccountRepositoryInterface $accountRepos */ /** @var AccountRepositoryInterface $accountRepos */
$accountRepos = app(AccountRepositoryInterface::class); $accountRepos = app(AccountRepositoryInterface::class);
$currency = $accountRepos->getAccountCurrency($account) ?? app('amount')->getPrimaryCurrency(); $currency = $accountRepos->getAccountCurrency($account) ?? Amount::getPrimaryCurrency();
return app('amount')->formatAnything($currency, $amount, $coloured); return Amount::formatAnything($currency, $amount, $coloured);
}, },
['is_safe' => ['html']] ['is_safe' => ['html']]
); );
@@ -113,14 +114,21 @@ class AmountFormat extends AbstractExtension
{ {
return new TwigFunction( return new TwigFunction(
'formatAmountBySymbol', 'formatAmountBySymbol',
static function (string $amount, string $symbol, ?int $decimalPlaces = null, ?bool $coloured = null): string { static function (string $amount, ?string $symbol, ?int $decimalPlaces = null, ?bool $coloured = null): string {
if(null === $symbol) {
$message = sprintf('formatAmountBySymbol("%s", "%s", %d, %s) was called without a symbol. Please browse to /flush to clear your cache.', $amount,$symbol, $decimalPlaces, var_export($coloured, true));
Log::error($message);
throw new FireflyException($message);
}
$decimalPlaces ??= 2; $decimalPlaces ??= 2;
$coloured ??= true; $coloured ??= true;
$currency = new TransactionCurrency(); $currency = new TransactionCurrency();
$currency->symbol = $symbol; $currency->symbol = $symbol;
$currency->decimal_places = $decimalPlaces; $currency->decimal_places = $decimalPlaces;
return app('amount')->formatAnything($currency, $amount, $coloured); return Amount::formatAnything($currency, $amount, $coloured);
}, },
['is_safe' => ['html']] ['is_safe' => ['html']]
); );
@@ -136,7 +144,7 @@ class AmountFormat extends AbstractExtension
static function (TransactionCurrency $currency, string $amount, ?bool $coloured = null): string { static function (TransactionCurrency $currency, string $amount, ?bool $coloured = null): string {
$coloured ??= true; $coloured ??= true;
return app('amount')->formatAnything($currency, $amount, $coloured); return Amount::formatAnything($currency, $amount, $coloured);
}, },
['is_safe' => ['html']] ['is_safe' => ['html']]
); );
@@ -161,7 +169,7 @@ class AmountFormat extends AbstractExtension
Log::error(sprintf('Fallback currency is "%s".', $currency->code)); Log::error(sprintf('Fallback currency is "%s".', $currency->code));
} }
return app('amount')->formatAnything($currency, $amount, $coloured); return Amount::formatAnything($currency, $amount, $coloured);
}, },
['is_safe' => ['html']] ['is_safe' => ['html']]
); );