Better, but not perfect, currency switch.

This commit is contained in:
James Cole 2024-12-29 08:16:27 +01:00
parent 03e31ebb5e
commit c21a79e029
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
2 changed files with 24 additions and 11 deletions

View File

@ -30,7 +30,9 @@ use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\UserGroup; use FireflyIII\Models\UserGroup;
use FireflyIII\Repositories\UserGroups\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\UserGroups\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\UserGroups\PiggyBank\PiggyBankRepositoryInterface; use FireflyIII\Repositories\UserGroups\PiggyBank\PiggyBankRepositoryInterface;
use FireflyIII\Support\Facades\Amount;
use Illuminate\Database\Query\Builder; use Illuminate\Database\Query\Builder;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
@ -57,6 +59,10 @@ class PreferencesEventHandler
$this->resetPiggyBanks($event->userGroup); $this->resetPiggyBanks($event->userGroup);
$this->resetBudgets($event->userGroup); $this->resetBudgets($event->userGroup);
$this->resetTransactions($event->userGroup); $this->resetTransactions($event->userGroup);
// fire laravel command to recalculate them all.
if (Amount::convertToNative()) {
Artisan::call('correction:recalculate-native-amounts');
}
} }
private function resetPiggyBanks(UserGroup $userGroup): void private function resetPiggyBanks(UserGroup $userGroup): void
@ -125,11 +131,9 @@ class PreferencesEventHandler
->where('transaction_journals.user_group_id', $userGroup->id) ->where('transaction_journals.user_group_id', $userGroup->id)
->where(static function (Builder $q): void { ->where(static function (Builder $q): void {
$q->whereNotNull('native_amount') $q->whereNotNull('native_amount')
->orWhereNotNull('native_foreign_amount') ->orWhereNotNull('native_foreign_amount');
;
}) })
->update(['native_amount' => null, 'native_foreign_amount' => null]) ->update(['native_amount' => null, 'native_foreign_amount' => null]);
; Log::debug(sprintf('Reset %d transactions.', $success));
Log::debug(sprintf('Updated %d transactions.', $success));
} }
} }

View File

@ -26,10 +26,19 @@ $(function () {
$('.make_default').on('click', setDefaultCurrency); $('.make_default').on('click', setDefaultCurrency);
$('.enable-currency').on('click', enableCurrency); $('.enable-currency').on('click', enableCurrency);
$('.disable-currency').on('click', disableCurrency); $('.disable-currency').on('click', disableCurrency);
console.log('Loaded3');
}); });
function setDefaultCurrency(e) { function setDefaultCurrency(e) {
console.log('Setting default currency');
var button = $(e.currentTarget); var button = $(e.currentTarget);
// disable everything.
button.prop('disabled', true);
$('a').css('pointer-events', 'none');
// change cursor to hourglass
$('body').css('cursor', 'wait');
var currencyCode = button.data('code'); var currencyCode = button.data('code');
var params = { var params = {