Commit Graph

400 Commits

Author SHA1 Message Date
seb
366d2517d6 automat 2026-09-21 03:19:32 +02:00
seb
5594c59d88 upload stuff 2026-09-20 07:18:43 +02:00
seb
4011ebfc61 nav 2026-09-19 18:33:27 +02:00
seb
d3b4743b66 abort and search 2026-09-19 08:14:11 +02:00
seb
abe078ff05 file api 2026-09-19 06:37:42 +02:00
seb
02e9a555d6 do not use meta 2026-09-18 08:34:42 +02:00
seb
c0082cea65 fix 2026-09-18 08:24:35 +02:00
seb
dd13f736c0 mutipart 2026-09-18 07:37:25 +02:00
seb
a537c2f72d subnav 2026-09-18 06:44:12 +02:00
seb
d5ade4923d feat(delivery): add supplier article lookup, article creation, and unified parsing
- Unified PDF/TXT parsing to single POST /api/delivery/parse endpoint
- Added supplier article lookup with SKU/EAN matching in delivery lines
- Added "Artikel anlegen" button to create articles from missing SKUs
- Fixed delivery line taxrate field (was sending 'tax', now 'taxrate')
- Extended TXT file support for rescan functionality
- Updated ApiClient with getArticles method for supplier article lookup
- Added supplier article state management to deliveryEditorAutomat

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 04:39:07 +02:00
seb
27f6dfdebf feat(delivery): replace deliveryEditorSlice with automat and add PDF/text attachment handling
- replace Redux deliveryEditorSlice with deliveryEditorAutomat using automat
- add Attachment and AttachmentList components in Kopfdaten
- extract PDF text via pdftotext-wasm and render PDF thumbnails with pdfjs-dist
- add TextEditorDialog to view and edit extracted text files (preformatted monospace, no wrap)
- configure Vite server.fs.allow for pdftotext.wasm
2026-09-18 01:49:59 +02:00
seb
795043fe99 feat(article): implement articlesupplier editor tab
- ApiClient: add getSuppliers, addSupplier, updateSupplier,
  orderSuppliers, deleteSupplier on article namespace
- api/index.js: expose same methods in legacy http client
- StorageManager: add #supplierWatchers Map and watchArticleSuppliers()
  backed by article-<sku> SSE signal; wired up as article.supplierWatch
- ArticleTileTab: pass article prop to ArticleSupplierTab
- ArticleSupplierDialog (new): dialog to assign / edit a supplier link
  (supplier autocomplete, Lief.-SKU, VPE, stock, EK Netto + MwSt.)
- ArticleSupplierTab: full supplier management table with reordering
  (up/down arrows → PUT /supplier/order), inline edit and delete,
  stock badge, purchase price display and empty state
2026-09-17 23:37:41 +02:00
seb
6b9761351c u 2026-09-16 14:54:55 +02:00
seb
a5076a2c67 fix(ui): move alignItems and justifyContent on Stack components into sx prop 2026-09-16 10:19:14 +02:00
seb
adc3cd1239 fix(manifest): align buildLines validation with OpenAPI (require sku or name, parse pu) 2026-09-16 10:17:25 +02:00
seb
0130ee6516 feat(manifest): improve PDF extraction workflow and fix delivery lines rendering
- Fix SSE 'result' event handling in delivery creation and stop circular progress
- Directly populate deliveryEditorSlice with parsed header, line items, and notes
- Simplify ManifestPdfDialog to display LLM protocol log and status only
- Render PDF analysis notes at the bottom of the delivery page
- Keep article lines visible when imported items exist even if partyId is not yet selected
- Bind handleEdit and handleDelete in ManifestList constructor to fix row click TypeError
- Support delivery columns (name, pu, netprice, taxrate) in ManifestForm and lineFromApi
- Remove obsolete Unit column from delivery lines
2026-09-16 10:06:19 +02:00
seb
7135cdb5fe drop 2026-09-15 16:10:42 +02:00
seb
dbf978d015 feat(lieferung/neu): PDF upload with SSE streaming and result dialog
- Add PDF-Upload button to ManifestHeader (delivery forms only)
- New ManifestPdfDialog: live SSE event log, structured basedata,
  and line-items table streamed from POST /api/delivery/parsePDF
- ApiClient.delivery.parsePdfSse: multipart/form-data upload,
  async generator yielding typed SSE events (status, llm_call,
  tool_call, usage, progress, result, error)
- ManifestForm.handlePdfUpload: drives SSE generator, updates
  dialog state in real-time; dialog opens immediately on upload
- Fix MUI icon imports (CheckCircle, ErrorOutlined)
2026-09-15 08:50:16 +02:00
seb
b7f60d51fd u 2026-08-10 03:15:41 +02:00
seb
8bbd6fade1 u 2026-08-10 03:13:53 +02:00
seb
7a1c6e2d94 u 2026-08-09 03:46:50 +02:00
seb
5a7574f69a refactor(lists): use shared RecordList from dashgui
Replace duplicated table/list markup in the Kunde list page and Manifest
list with the shared dashgui RecordList component, and document dashgui/lists
in the README.
2026-08-08 17:00:42 +02:00
seb
57fff72f12 Outsource custom GUI class components to dashgui library
Move reusable GUI primitives (PanelTile, EditablePanelTile, base Tile,
ElevatedPill, SingleLineTextEdit) into the shared dashgui package and
consume them via a file: dependency. EditablePanelTile now accepts an
onError prop so error notification stays app-side.
2026-08-08 16:17:16 +02:00
seb
2cbe5dabb2 Disable menu/popover animations; update manifest handling 2026-08-08 10:09:19 +02:00
seb
87acdd929e Add Kundennummer/Nummernkreise settings and settings dialog.
Add number & setting API endpoints, StorageManager caches, and a Settings
dialog (tabs for settings keys and number ranges) reachable from the user
menu. Show Kundennummer and creation date in the Kunde list, and refactor
Neuer Kunde to show an auto-generated number with group select.
2026-08-08 09:03:44 +02:00
seb
628980dc49 Fix manifest list create/edit navigation after Vite HMR.
Keep a single browser router across hot reloads and drive ManifestList/Form via withNavigate instead of a stale router.navigate singleton.
2026-08-06 22:47:51 +02:00
seb
4896b1dc36 Add shared Manifest UI for delivery, quote, and order.
Wire quote/order API clients and routes, then unify list/create/edit behind ManifestList/Form tiles so Lieferungen and Auftrag share one stack.
2026-08-06 20:08:56 +02:00
seb
27fd5d3e94 Add Kunde CRUD with addresses/contacts, delivery edit, and Auftrag sub-nav.
Wire customergroup/entity APIs, Lieferungen detail editing, and Angebot/Bestellung/Ausliefern/Retoure placeholders.
2026-08-06 07:38:23 +02:00
seb
1e0fedca3d u 2026-08-06 00:40:27 +02:00
seb
d8b48d96e1 u 2026-08-06 00:32:22 +02:00
seb
855710a198 u 2026-08-06 00:19:21 +02:00
seb
80ca59ab11 u 2026-08-05 23:54:20 +02:00
seb
caf08a3262 u 2026-08-05 20:15:39 +02:00
seb
ff79d5b92c u 2026-08-05 19:25:43 +02:00
seb
9fcee1f851 u 2026-08-05 19:05:36 +02:00
seb
4ccc92c01f Replace panel tileKey with a direct color prop.
Drop theme panelTiles keys and the ArticleView update callback wiring.
2026-08-05 18:38:21 +02:00
seb
1fda43b20d u 2026-08-05 18:17:48 +02:00
seb
0c12d99987 Drop tile titles and tileKey from article detail boxes. 2026-08-05 17:36:18 +02:00
seb
4352a02d4e Gate article detail on a store-backed cache so the view paints once.
Sku page loads/caches the article before mounting ArticleView; the view reads sync from StorageManager instead of fetching again.
2026-08-05 17:31:12 +02:00
seb
198e800fd3 sotre 2026-08-05 17:01:42 +02:00
seb
7cecb3dd1f Skip success toast and saving flag on editable panel save. 2026-08-05 10:58:14 +02:00
seb
c1545b6114 Have historyWatch report errors via notifyError instead of an onError callback. 2026-08-05 09:54:33 +02:00
seb
44d69e541c Watch article history over SSE so the tab stays current while open. 2026-08-05 09:48:30 +02:00
seb
60e6858fd5 Show article history in a table via GET /article/{sku}/history. 2026-08-05 09:35:47 +02:00
seb
debd246012 u 2026-08-05 08:48:12 +02:00
seb
66f88e395b u 2026-08-05 08:40:12 +02:00
seb
a9e942df7a u 2026-08-05 08:19:13 +02:00
seb
3000d7d45c u 2026-08-05 07:29:36 +02:00
seb
89f8804a69 u 2026-08-05 07:25:40 +02:00
seb
dc956c4e60 export 2026-08-04 01:24:34 +02:00