Fix/m sprint fixes (#613)

* fix(dashboard): exclude ignored and already-triaged transactions from stale count

The "Gamla transaktioner" widget counted transactions that had been ignored
or already marked as is_business=true but not yet booked, so users saw a
nag for a row they had already dealt with — and the /transactions inbox
correctly hid it. Align the count with the inbox criterion (is_business
IS NULL, is_ignored = false) so the widget clears when the row leaves
the inbox.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(transactions): read entity_type from settings response wrapper

The transactions page read entityRes.entity_type directly, but
/api/settings returns { data: { entity_type, ... } }. The expression
was always undefined, so setEntityType never fired and entityType
stayed at its initial 'enskild_firma'. The template picker's
entity_type filter then dropped every aktiebolag-tagged user template
for AB customers — only entity_type='all' templates made it through.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* stale templates
bank sync
journal entry from transaction

* fixed pr comments

* fixed pr comment

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Mattsson
2026-05-30 01:28:41 +02:00
committed by GitHub
co-authored by Claude Opus 4.7
parent fc7a46c3f2
commit ea1bf01f1e
76 changed files with 5474 additions and 532 deletions
+13 -1
View File
@@ -256,6 +256,10 @@ export interface CompanySettings {
*/
default_voucher_series_per_source_type: Partial<Record<JournalEntrySourceType, string>>
// Most recently picked BAS account for supplier invoice payments — used to
// default the mark-paid dialog so repeat payments don't force re-picking.
last_supplier_payment_account: string | null
// Invoice PDF settings
ore_rounding: boolean
invoice_show_ocr: boolean
@@ -440,6 +444,11 @@ export interface Transaction {
// Reconciliation
reconciliation_method: ReconciliationMethod | null
// User has chosen to suppress this transaction from the bank reconciliation
// view without booking it. See migration
// 20260529140000_transactions_is_ignored.sql for the rationale.
is_ignored: boolean
// Import tracking
import_source: string | null
reference: string | null // OCR number, Bankgiro reference
@@ -1520,6 +1529,9 @@ export type PendingOperationType =
| 'run_currency_revaluation'
// Stream 1 Phase 1: SIE import (export is read-only)
| 'import_sie'
// SIE undo: hard-deletes the import's journal entries and releases the
// (company_id, file_hash) slot. Recovery for botched imports.
| 'undo_sie_import'
// Stream 1 Phase 1: voucher gap explanations
| 'explain_voucher_gap'
// Stream 1 Phase 1: transaction reversal
@@ -2869,7 +2881,7 @@ export type SalaryLineItemType =
| 'gross_deduction_pension' | 'gross_deduction_other'
| 'benefit_car' | 'benefit_housing' | 'benefit_meals' | 'benefit_wellness' | 'benefit_bike' | 'benefit_other'
| 'sick_karens' | 'sick_day2_14' | 'sick_day15_plus'
| 'vab' | 'parental_leave' | 'vacation' | 'semesterersattning'
| 'vab' | 'parental_leave' | 'unpaid_leave' | 'vacation' | 'semesterersattning'
| 'traktamente_taxfree' | 'traktamente_taxable'
| 'mileage_taxfree' | 'mileage_taxable'
| 'net_deduction_advance' | 'net_deduction_union' | 'net_deduction_benefit_payment'