From dd2990357a831c775e5526451dc5a677c3a1fb9d Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 20 Aug 2026 08:43:29 +0300 Subject: [PATCH] fix: allow investment rules and label accounts --- CHANGELOG.md | 6 ++++++ backend/package.json | 2 +- backend/src/services/accounts.ts | 2 +- backend/src/services/import.ts | 9 ++++++++- frontend/package.json | 2 +- frontend/src/components/TransactionFilters.tsx | 2 +- frontend/src/pages/AnalyticsPage.tsx | 2 +- 7 files changed, 19 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bb82a7..8cd292f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [Frontend 0.10.1 / Backend 0.7.1] - 2026-08-20 + +### Fixed + +- Account labels are shown in analytics filters, and account defaults now remain overridable by matching category rules. + ## [Frontend 0.10.0 / Backend 0.7.0 / Shared 0.3.0] - 2026-08-20 ### Added diff --git a/backend/package.json b/backend/package.json index 411fa4e..8715da7 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "@family-budget/backend", - "version": "0.7.0", + "version": "0.7.1", "private": true, "scripts": { "dev": "tsx watch src/app.ts", diff --git a/backend/src/services/accounts.ts b/backend/src/services/accounts.ts index 25ad165..547aca4 100644 --- a/backend/src/services/accounts.ts +++ b/backend/src/services/accounts.ts @@ -49,7 +49,7 @@ export async function updateAccount( await client.query( `UPDATE transactions SET category_id = (SELECT id FROM categories WHERE name = 'Инвестиции' AND type = 'transfer' LIMIT 1), - direction = 'transfer', is_category_confirmed = TRUE, updated_at = NOW() + direction = 'transfer', is_category_confirmed = FALSE, updated_at = NOW() WHERE account_id = $1 AND category_id IS NULL`, [id], ); diff --git a/backend/src/services/import.ts b/backend/src/services/import.ts index 0241eff..3d96e55 100644 --- a/backend/src/services/import.ts +++ b/backend/src/services/import.ts @@ -230,7 +230,7 @@ export async function importStatement( const categoryId = isCashbackCommissionImport ? incomeCategoryId : isInvestmentAccount ? investmentCategoryId : null; - const isCategoryConfirmed = isCashbackCommissionImport || isInvestmentAccount; + const isCategoryConfirmed = isCashbackCommissionImport; const result = await client.query( `INSERT INTO transactions @@ -279,6 +279,13 @@ export async function importStatement( WHERE t.id = sub.tx_id`, [insertedIds], ); + if (isInvestmentAccount && investmentCategoryId != null) { + await client.query( + `UPDATE transactions SET is_category_confirmed = TRUE, updated_at = NOW() + WHERE id = ANY($1::bigint[]) AND category_id = $2 AND is_category_confirmed = FALSE`, + [insertedIds, investmentCategoryId], + ); + } } await client.query('COMMIT'); diff --git a/frontend/package.json b/frontend/package.json index 16b5f8c..64c0f7e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "@family-budget/frontend", - "version": "0.10.0", + "version": "0.10.1", "private": true, "type": "module", "scripts": { diff --git a/frontend/src/components/TransactionFilters.tsx b/frontend/src/components/TransactionFilters.tsx index 7119edf..1365989 100644 --- a/frontend/src/components/TransactionFilters.tsx +++ b/frontend/src/components/TransactionFilters.tsx @@ -187,7 +187,7 @@ export function TransactionFilters({ {accounts.map((a) => ( ))} diff --git a/frontend/src/pages/AnalyticsPage.tsx b/frontend/src/pages/AnalyticsPage.tsx index a947d52..941654a 100644 --- a/frontend/src/pages/AnalyticsPage.tsx +++ b/frontend/src/pages/AnalyticsPage.tsx @@ -107,7 +107,7 @@ export function AnalyticsPage() { {accounts.map((a) => ( ))}