From f5258e6ebe4efb9af240cb00c1bff10cc07b32c4 Mon Sep 17 00:00:00 2001 From: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com> Date: Fri, 2 Feb 2024 18:03:57 -0800 Subject: [PATCH] Consider child transactions when fuzzy matching imported transactions (#2309) * Consider child transaction when fuzzy matching * Release notes --- packages/loot-core/src/server/accounts/sync.ts | 14 +++++++------- upcoming-release-notes/2309.md | 6 ++++++ 2 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 upcoming-release-notes/2309.md diff --git a/packages/loot-core/src/server/accounts/sync.ts b/packages/loot-core/src/server/accounts/sync.ts index efd4b9cf3..c394f7f8c 100644 --- a/packages/loot-core/src/server/accounts/sync.ts +++ b/packages/loot-core/src/server/accounts/sync.ts @@ -320,7 +320,7 @@ async function normalizeTransactions( return { normalized, payeesToCreate }; } -async function normalizeGoCardlessTransactions(transactions, acctId) { +async function normalizeExternalTransactions(transactions, acctId) { const payeesToCreate = new Map(); const normalized = []; @@ -429,12 +429,12 @@ async function createNewPayees(payeesToCreate, addsAndUpdates) { }); } -export async function reconcileGoCardlessTransactions(acctId, transactions) { +export async function reconcileExternalTransactions(acctId, transactions) { const hasMatched = new Set(); const updated = []; const added = []; - const { normalized, payeesToCreate } = await normalizeGoCardlessTransactions( + const { normalized, payeesToCreate } = await normalizeExternalTransactions( transactions, acctId, ); @@ -474,7 +474,7 @@ export async function reconcileGoCardlessTransactions(acctId, transactions) { // fields. fuzzyDataset = await db.all( `SELECT id, is_parent, date, imported_id, payee, category, notes, reconciled FROM v_transactions - WHERE date >= ? AND date <= ? AND amount = ? AND account = ? AND is_child = 0`, + WHERE date >= ? AND date <= ? AND amount = ? AND account = ?`, [ db.toDateRepr(monthUtils.subDays(trans.date, 4)), db.toDateRepr(monthUtils.addDays(trans.date, 1)), @@ -637,7 +637,7 @@ export async function reconcileTransactions(acctId, transactions) { // fields. fuzzyDataset = await db.all( `SELECT id, is_parent, date, imported_id, payee, category, notes, reconciled FROM v_transactions - WHERE date >= ? AND date <= ? AND amount = ? AND account = ? AND is_child = 0`, + WHERE date >= ? AND date <= ? AND amount = ? AND account = ?`, [ db.toDateRepr(monthUtils.subDays(trans.date, 4)), db.toDateRepr(monthUtils.addDays(trans.date, 1)), @@ -866,7 +866,7 @@ export async function syncExternalAccount(userId, userKey, id, acctId, bankId) { })); return runMutator(async () => { - const result = await reconcileGoCardlessTransactions(id, transactions); + const result = await reconcileExternalTransactions(id, transactions); await updateAccountBalance(id, accountBalance); return result; }); @@ -922,7 +922,7 @@ export async function syncExternalAccount(userId, userKey, id, acctId, bankId) { starting_balance_flag: true, }); - const result = await reconcileGoCardlessTransactions(id, transactions); + const result = await reconcileExternalTransactions(id, transactions); return { ...result, added: [initialId, ...result.added], diff --git a/upcoming-release-notes/2309.md b/upcoming-release-notes/2309.md new file mode 100644 index 000000000..39798162b --- /dev/null +++ b/upcoming-release-notes/2309.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [joel-jeremy] +--- + +Consider child transactions when fuzzy matching imported transactions. -- GitLab