mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Better, but not perfect, currency switch.
This commit is contained in:
parent
03e31ebb5e
commit
c21a79e029
@ -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
|
||||||
@ -93,7 +99,7 @@ class PreferencesEventHandler
|
|||||||
{
|
{
|
||||||
$repository = app(BudgetRepositoryInterface::class);
|
$repository = app(BudgetRepositoryInterface::class);
|
||||||
$repository->setUserGroup($userGroup);
|
$repository->setUserGroup($userGroup);
|
||||||
$set = $repository->getBudgets();
|
$set = $repository->getBudgets();
|
||||||
|
|
||||||
/** @var Budget $budget */
|
/** @var Budget $budget */
|
||||||
foreach ($set as $budget) {
|
foreach ($set as $budget) {
|
||||||
@ -121,15 +127,13 @@ class PreferencesEventHandler
|
|||||||
{
|
{
|
||||||
// custom query because of the potential size of this update.
|
// custom query because of the potential size of this update.
|
||||||
$success = DB::table('transactions')
|
$success = DB::table('transactions')
|
||||||
->join('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
->join('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
->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));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 = {
|
||||||
|
Loading…
Reference in New Issue
Block a user