Commit Graph

212 Commits

Author SHA1 Message Date
Matthias Hochmeister
7392bfc29f feat(buchhaltung): replace transaction dialog with dedicated form page, enforce full field validation before booking 2026-04-14 14:41:30 +02:00
Matthias Hochmeister
967cad5922 feat(buchhaltung): add edit support for pending transactions 2026-04-14 13:46:07 +02:00
Matthias Hochmeister
f403c73334 fix(buchhaltung): clean up tab labels, remove badge indicator, add session notification for pending transactions 2026-04-14 13:35:40 +02:00
Matthias Hochmeister
3a8f166121 refactor(buchhaltung): simplify transaction workflow to two states, reorder tabs, guard booking, add overview divider 2026-04-14 13:16:45 +02:00
Matthias Hochmeister
588d8e81db widget icon rework, widget grouping rework 2026-04-14 10:53:03 +02:00
Matthias Hochmeister
4fbea8af81 feat: widget icons, dark theme tables, breadcrumb removal, bookkeeping rework, personal equipment pages, PDF/order improvements 2026-04-14 10:35:40 +02:00
Matthias Hochmeister
1215e9ea70 feat: personal equipment tracking, order assignment, purge fix, widget consolidation
- Migration 084: new persoenliche_ausruestung table with catalog link, user
  assignment, soft delete; adds zuweisung_typ/ausruestung_id/persoenlich_id
  columns to ausruestung_anfrage_positionen; seeds feature group + 5 permissions

- Fix user data purge: table was shop_anfragen, renamed to ausruestung_anfragen
  in mig 046 — caused full transaction rollback. Also keep mitglieder_profile
  row but NULL FDISK-synced fields (dienstgrad, geburtsdatum, etc.) instead of
  deleting the profile

- Personal equipment CRUD: backend service/controller/routes at
  /api/persoenliche-ausruestung; frontend page with DataTable, user filter,
  catalog Autocomplete, FAB create dialog; widget in Status group; sidebar
  entry (Checkroom icon); card in MitgliedDetail Tab 0

- Ausruestungsanfrage item assignment: when a request reaches erledigt,
  auto-opens ItemAssignmentDialog listing all delivered positions; each item
  can be assigned as general equipment (vehicle/storage), personal item (user,
  prefilled with requester), or not tracked; POST /requests/:id/assign backend

- StatCard refactored to use WidgetCard as outer shell for consistent header
  styling across all dashboard widget templates

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 19:19:35 +02:00
Matthias Hochmeister
b477e5dbe0 feat: user data purge, breadcrumbs, first-login dialog, widget consolidation, bookkeeping cascade
- Admin can purge all personal data for a user (POST /api/admin/users/:userId/purge-data)
  while keeping the account; clears profile, notifications, bookings, ical tokens, preferences
- Add isNewUser flag to auth callback response; first-login dialog prompts for Standesbuchnummer
- Add PageBreadcrumbs component and apply to 18 sub-pages across the app
- Cascade budget_typ changes from parent pot to all children recursively, converting amounts
  (detailliert→einfach: sum into budget_gesamt; einfach→detailliert: zero all for redistribution)
- Migrate NextcloudTalkWidget to use shared WidgetCard template for consistent header styling

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 16:15:28 +02:00
Matthias Hochmeister
a0b3c0ec5c fix(dashboard): fix group/widget state loss due to partial preference saves and stale closures 2026-04-13 15:28:20 +02:00
Matthias Hochmeister
b275d4baa5 feat(dashboard): make widget groups reorderable via drag-and-drop 2026-04-13 15:15:50 +02:00
Matthias Hochmeister
dd5cd71fd1 feat(dashboard,admin): widget group customization and FDISK data purge 2026-04-13 15:06:34 +02:00
Matthias Hochmeister
43ce1f930c feat(frontend): implement unified design system with 17 reusable template components, skeleton loading states, and golden-ratio-based layouts 2026-04-13 10:43:27 +02:00
Matthias Hochmeister
5acfd7cc4f feat(buchhaltung): add transfers, bank statements, Haushaltsplan, and PDF export 2026-03-30 17:05:18 +02:00
Matthias Hochmeister
2eb59e9ff1 feat(buchhaltung): add audit trail UI to konto detail transaction table 2026-03-30 16:03:58 +02:00
Matthias Hochmeister
bbbfc8eaaa fix(buchhaltung): remove budget utilization bars from accounts overview 2026-03-30 14:44:06 +02:00
Matthias Hochmeister
f27e3134ca fix(buchhaltung): respect budget_typ in konten manage table and pod detail subaccounts view 2026-03-30 14:37:04 +02:00
Matthias Hochmeister
293848c710 fix(buchhaltung): use theme-aware color for category header rows in dark mode 2026-03-30 14:22:56 +02:00
Matthias Hochmeister
fcfee85efd fix(buchhaltung): show budget-typ label in pod settings view mode 2026-03-30 14:20:57 +02:00
Matthias Hochmeister
b21abce9e3 feat(buchhaltung): budget types, erstattungen, recurring tab move, overview dividers, order completion guard 2026-03-30 14:07:04 +02:00
Matthias Hochmeister
13aa4be599 feat(buchhaltung): add categories, recurring tx scheduling, sub-pot budget validation, and UX polish 2026-03-30 12:56:33 +02:00
Matthias Hochmeister
86cb175aeb feat(buchhaltung): move collapse arrows to row end, always-visible filters, summary row, sortable transactions, account manage page 2026-03-30 11:59:05 +02:00
Matthias Hochmeister
4e42d4077a fix: hard-delete konten instead of soft-deactivate, convert kontonummer to INTEGER with arithmetic sub-account derivation 2026-03-30 11:25:48 +02:00
Matthias Hochmeister
e4f1d8864a refactor: change kontonummer to INTEGER, derive sub-account number as parent + suffix (arithmetic) 2026-03-30 11:23:07 +02:00
Matthias Hochmeister
333b94f64e fix: read error message from ApiError.message instead of err.response in konto mutation onError 2026-03-30 11:11:17 +02:00
Matthias Hochmeister
b7015ace84 fix: return 409 on duplicate kontonummer, show server error in snackbar, block save when sub-account suffix is empty 2026-03-30 11:03:53 +02:00
Matthias Hochmeister
2e736f7995 fix: invalidate kontenTree cache on konto mutations, remove Kontotyp field from dialog 2026-03-30 10:59:48 +02:00
Matthias Hochmeister
cdaaec2971 fix: auto-select open fiscal year on load, derive sub-account number from parent, replace flat konten table with collapsible tree 2026-03-30 10:51:55 +02:00
Matthias Hochmeister
0c5432b50e feat: add account hierarchy, budget types (GWG/Anlagen/Instandhaltung), and Buchhaltung UI overhaul with collapsible tree, pending badge, and konto detail page 2026-03-30 09:49:28 +02:00
Matthias Hochmeister
bc39963746 feat: add Buchhaltung dashboard widget, CSV export, Bestellungen linking, recurring bookings, and approval workflow 2026-03-28 20:34:53 +01:00
Matthias Hochmeister
c1fca5cc67 fix: disable Konto button without fiscal year selected, remove BIC from bank account form 2026-03-28 20:03:31 +01:00
Matthias Hochmeister
712afde30e ix: use DashboardLayout wrapper in Buchhaltung page 2026-03-28 19:59:39 +01:00
Matthias Hochmeister
58585327d8 fix: remove nonexistent MainLayout wrapper from Buchhaltung page 2026-03-28 19:54:12 +01:00
Matthias Hochmeister
18b1300de8 feat: add Buchhaltung module with fiscal years, budget accounts, transactions, and approval workflow 2026-03-28 19:48:32 +01:00
Matthias Hochmeister
4349de9bc9 feat: checklist multi-type assignments, tab layouts for Fahrzeuge/Ausruestung, admin cleanup
- Migration 074: convert checklist vorlage single FK fields to junction tables
  (vorlage_fahrzeug_typen, vorlage_fahrzeuge, vorlage_ausruestung_typen, vorlage_ausruestungen)
- Backend checklist service: multi-type create/update/query with array fields
- Backend cleanup service: add checklist-history and reset-checklist-history targets
- Frontend types/service: singular FK fields replaced with arrays (fahrzeug_typ_ids, etc.)
- Frontend Checklisten.tsx: multi-select Autocomplete pickers for all assignment types
- Fahrzeuge.tsx/Ausruestung.tsx: add tab layout (Uebersicht + Einstellungen), inline type CRUD
- FahrzeugEinstellungen/AusruestungEinstellungen: replaced with redirects to tab URLs
- Sidebar: add Uebersicht sub-items, update Einstellungen paths to tab URLs
- DataManagementTab: add checklist-history cleanup and reset sections

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 18:57:46 +01:00
Matthias Hochmeister
893fbe43a0 feat: add hierarchical subitems to checklist templates and executions 2026-03-28 18:37:36 +01:00
Matthias Hochmeister
51be3b54f6 feat: add vehicle type assignment to vehicle edit/create form 2026-03-28 18:23:00 +01:00
Matthias Hochmeister
15337f768d feat: add inline editing for checklist vorlage items 2026-03-28 18:17:32 +01:00
Matthias Hochmeister
0d6d5e4f54 fix: repair checklist create (intervall constraint) and start execution (stuck spinner), add equipment items display 2026-03-28 18:08:06 +01:00
Matthias Hochmeister
b62fd55246 fix: correct vorlageId casing in startExecution, make checklist rows clickable with alternating backgrounds 2026-03-28 17:57:45 +01:00
Matthias Hochmeister
6091d6c4dd feat: always show checklists in overview and add quarterly/halfyearly intervals 2026-03-28 17:46:31 +01:00
Matthias Hochmeister
a52bb2a57c refactor: move equipment type assignment from detail page to settings page 2026-03-28 17:37:01 +01:00
Matthias Hochmeister
bccb0745b8 refactor: move vehicle type assignment from detail page to settings page 2026-03-28 17:34:29 +01:00
Matthias Hochmeister
534a24edbf fix: use PATCH for vehicle type update and correct permission check in FahrzeugEinstellungen 2026-03-28 17:30:40 +01:00
Matthias Hochmeister
6b46e97eb6 feat: vehicle/equipment type system, equipment checklist support, and checklist overview redesign 2026-03-28 17:27:01 +01:00
Matthias Hochmeister
692093cc85 fix: add checklisten sidebar sub-items and replace unicode escapes with proper umlauts 2026-03-28 16:27:32 +01:00
Matthias Hochmeister
b171c3e921 fix: sync nav DnD list when permissions load 2026-03-28 16:19:20 +01:00
Matthias Hochmeister
443f3569bd feat: move dashboard edit button to bottom with label, replace menu order arrows with drag-and-drop 2026-03-28 15:40:03 +01:00
Matthias Hochmeister
0c2ea829aa feat: add issue kanban/attachments/deadlines, dashboard widget DnD, and checklisten system 2026-03-28 15:19:41 +01:00
Matthias Hochmeister
60e1329815 fix: render ChatContent as DashboardLayout child so useChat has ChatProvider in scope 2026-03-27 18:03:54 +01:00
Matthias Hochmeister
c1b4a92a12 feat: add full-page chat route and sidebar menu ordering 2026-03-27 18:00:58 +01:00