From 7738ea0c008811eff0a6ee6512f9d6cf54a77862 Mon Sep 17 00:00:00 2001
From: Ryan Bianchi <1435081+qedi-r@users.noreply.github.com>
Date: Fri, 30 Aug 2024 14:04:50 -0400
Subject: [PATCH] Fix suggested payee issues #3317 #3316 (#3318)

---
 .../src/components/transactions/TransactionsTable.jsx |  4 +++-
 packages/loot-core/src/server/db/index.ts             | 11 ++++++++---
 upcoming-release-notes/3318.md                        |  6 ++++++
 3 files changed, 17 insertions(+), 4 deletions(-)
 create mode 100644 upcoming-release-notes/3318.md

diff --git a/packages/desktop-client/src/components/transactions/TransactionsTable.jsx b/packages/desktop-client/src/components/transactions/TransactionsTable.jsx
index 20ba4a194..ab2a687bb 100644
--- a/packages/desktop-client/src/components/transactions/TransactionsTable.jsx
+++ b/packages/desktop-client/src/components/transactions/TransactionsTable.jsx
@@ -1240,7 +1240,9 @@ const Transaction = memo(function Transaction({
           focused={focusedField === 'payee'}
           /* Filter out the account we're currently in as it is not a valid transfer */
           accounts={accounts.filter(account => account.id !== accountId)}
-          payees={payees.filter(payee => payee.transfer_acct !== accountId)}
+          payees={payees.filter(
+            payee => !payee.transfer_acct || payee.transfer_acct !== accountId,
+          )}
           valueStyle={valueStyle}
           transaction={transaction}
           subtransactions={subtransactions}
diff --git a/packages/loot-core/src/server/db/index.ts b/packages/loot-core/src/server/db/index.ts
index 9a7fd514b..04f49ee36 100644
--- a/packages/loot-core/src/server/db/index.ts
+++ b/packages/loot-core/src/server/db/index.ts
@@ -13,6 +13,7 @@ import { v4 as uuidv4 } from 'uuid';
 
 import * as fs from '../../platform/server/fs';
 import * as sqlite from '../../platform/server/sqlite';
+import * as monthUtils from '../../shared/months';
 import { groupById } from '../../shared/util';
 import {
   CategoryEntity,
@@ -27,6 +28,7 @@ import {
   convertFromSelect,
 } from '../aql';
 import {
+  toDateRepr,
   accountModel,
   categoryModel,
   categoryGroupModel,
@@ -544,7 +546,9 @@ export function getPayees() {
 }
 
 export function getCommonPayees() {
-  const threeMonthsAgo = '20240201';
+  const twelveWeeksAgo = toDateRepr(
+    monthUtils.subWeeks(monthUtils.currentDate(), 12),
+  );
   const limit = 10;
   return all(`
     SELECT     p.id as id, p.name as name, p.favorite as favorite,
@@ -552,10 +556,11 @@ export function getCommonPayees() {
     count(*) as c, 
     max(t.date) as latest
     FROM payees p
-    LEFT JOIN v_transactions t on t.payee == p.id
+    LEFT JOIN v_transactions_internal_alive t on t.payee == p.id
     WHERE LENGTH(p.name) > 0
+    AND p.tombstone = 0
+    AND t.date > ${twelveWeeksAgo}
     GROUP BY p.id
-    HAVING latest > ${threeMonthsAgo}
     ORDER BY c DESC ,p.transfer_acct IS NULL DESC, p.name 
     COLLATE NOCASE
     LIMIT ${limit}
diff --git a/upcoming-release-notes/3318.md b/upcoming-release-notes/3318.md
new file mode 100644
index 000000000..7dbb8e41c
--- /dev/null
+++ b/upcoming-release-notes/3318.md
@@ -0,0 +1,6 @@
+---
+category: Bugfix
+authors: [qedi-r]
+---
+
+Fix display of deleted payees in suggested payee list
-- 
GitLab