feat(transactions): steer private marking in locked periods to ignore, with v1 and MCP ignore verbs (#1661) (#2031)
Decision (option a): a private marking stays a real booking (eget uttag/insattning), so it remains blocked in a locked or closed period; the legal escape for rows that are not affarshandelser is ignore. Private + locked now returns TX_CATEGORIZE_PRIVATE_PERIOD_LOCKED with remediation naming the ignore paths instead of a bare PERIOD_LOCKED, on all four categorize surfaces and the bulk driver. New v1 POST/DELETE /transactions/{id}/ignore (isTransactionBooked-based 409, idempotent) and a staged MCP gnubok_ignore_transaction (+ accounted_ alias, search visibility to respect the tools/list payload ceiling) with operation_type ignore_transaction; the CHECK pair 20260831070000/070001 rebuilds the constraint from main's newest list plus the new value. Dashboard toast gains an Ignorera i stallet action. Closes #1661
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`v1 spec snapshot > matches the recorded endpoint count > endpoint-count 1`] = `140`;
|
||||
exports[`v1 spec snapshot > matches the recorded endpoint count > endpoint-count 1`] = `142`;
|
||||
|
||||
exports[`v1 spec snapshot > matches the recorded endpoint key set > endpoint-keys 1`] = `
|
||||
[
|
||||
@@ -14,6 +14,7 @@ exports[`v1 spec snapshot > matches the recorded endpoint key set > endpoint-key
|
||||
"DELETE /api/v1/companies/:companyId/salary-runs/:id/employees/:employeeId",
|
||||
"DELETE /api/v1/companies/:companyId/salary-runs/:id/lines/:lineId",
|
||||
"DELETE /api/v1/companies/:companyId/suppliers/:id",
|
||||
"DELETE /api/v1/companies/:companyId/transactions/:id/ignore",
|
||||
"DELETE /api/v1/companies/:companyId/webhooks/:id",
|
||||
"GET /api/v1/companies",
|
||||
"GET /api/v1/companies/:companyId/accounts",
|
||||
@@ -131,6 +132,7 @@ exports[`v1 spec snapshot > matches the recorded endpoint key set > endpoint-key
|
||||
"POST /api/v1/companies/:companyId/suppliers",
|
||||
"POST /api/v1/companies/:companyId/suppliers/bulk-create",
|
||||
"POST /api/v1/companies/:companyId/transactions/:id/categorize",
|
||||
"POST /api/v1/companies/:companyId/transactions/:id/ignore",
|
||||
"POST /api/v1/companies/:companyId/transactions/:id/match-invoice",
|
||||
"POST /api/v1/companies/:companyId/transactions/:id/match-supplier-invoice",
|
||||
"POST /api/v1/companies/:companyId/transactions/:id/uncategorize",
|
||||
|
||||
@@ -64,6 +64,7 @@ import '@/app/api/v1/companies/[companyId]/accounts/route'
|
||||
import '@/app/api/v1/companies/[companyId]/fiscal-periods/route'
|
||||
import '@/app/api/v1/companies/[companyId]/transactions/[id]/categorize/route'
|
||||
import '@/app/api/v1/companies/[companyId]/transactions/[id]/uncategorize/route'
|
||||
import '@/app/api/v1/companies/[companyId]/transactions/[id]/ignore/route'
|
||||
import '@/app/api/v1/companies/[companyId]/transactions/[id]/match-invoice/route'
|
||||
import '@/app/api/v1/companies/[companyId]/transactions/[id]/match-supplier-invoice/route'
|
||||
import '@/app/api/v1/companies/[companyId]/transactions/ingest/route'
|
||||
|
||||
Reference in New Issue
Block a user