diff --git a/packages/loot-core/src/client/actions/account.ts b/packages/loot-core/src/client/actions/account.ts index f2c80730d2678a1eae0ec678ca84f073f86da2b3..df0a9c378506a3492c9daef46e8c8940f378753b 100644 --- a/packages/loot-core/src/client/actions/account.ts +++ b/packages/loot-core/src/client/actions/account.ts @@ -95,6 +95,11 @@ export function syncAccounts(id?: string) { .queries.accounts.filter( ({ bank, closed, tombstone }) => !!bank && !closed && !tombstone, ) + .sort((a, b) => + a.offbudget === b.offbudget + ? a.sort_order - b.sort_order + : a.offbudget - b.offbudget, + ) .map(({ id }) => id); dispatch(setAccountsSyncing(accountIdsToSync)); diff --git a/packages/loot-core/src/server/main.ts b/packages/loot-core/src/server/main.ts index 634293646e7007858ab7173ab4ca1ea8243a00a5..f6c98e88b4ff5ab2a4700f2be9a7bf1aae66b401 100644 --- a/packages/loot-core/src/server/main.ts +++ b/packages/loot-core/src/server/main.ts @@ -1062,7 +1062,8 @@ handlers['accounts-bank-sync'] = async function ({ id }) { const accounts = await db.runQuery( `SELECT a.*, b.bank_id as bankId FROM accounts a LEFT JOIN banks b ON a.bank = b.id - WHERE a.tombstone = 0 AND a.closed = 0 ${id ? 'AND a.id = ?' : ''}`, + WHERE a.tombstone = 0 AND a.closed = 0 ${id ? 'AND a.id = ?' : ''} + ORDER BY a.offbudget, a.sort_order`, id ? [id] : [], true, ); diff --git a/upcoming-release-notes/3029.md b/upcoming-release-notes/3029.md new file mode 100644 index 0000000000000000000000000000000000000000..0ad61be82db66393a345be543cd78ae54cb9a0c0 --- /dev/null +++ b/upcoming-release-notes/3029.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [psybers] +--- + +Perform bank sync in same order as accounts shown in sidebar.