Commit Graph

78 Commits

Author SHA1 Message Date
dfuhrmann3 1992c30991 feat(ui): PDF-Text back under PDF preview; one-click export+download
- Extracted-text expander moved back to left column under PDF preview (PDF-Text tab removed, now 3 tabs)
- Export button now generates and downloads in a single click via st.download_button
- ZUGFeRD generation cached (st.cache_data) so it doesn't rerun on every keystroke

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 16:21:53 +02:00
dfuhrmann3 c07eb860fa feat(ui): group validation fields into tabs (Basis/Parteien/Positionen/PDF-Text)
Reduces scrolling - Summen und Export bleiben unterhalb der Tabs immer sichtbar.
Reine UI-Umgruppierung, keine Aenderung an Feldern oder Berechnungslogik.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 16:14:17 +02:00
dfuhrmann3 efdee4cfd6 feat: default export format to ZUGFeRD instead of XRechnung
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 16:01:53 +02:00
dfuhrmann3 36af456cd8 chore: keep tests, test-config and planning docs local-only (untrack from repo)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 15:57:09 +02:00
dfuhrmann3 e4f2315179 chore: ignore __pycache__/*.pyc in git and docker, untrack committed bytecode
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 15:49:56 +02:00
dfuhrmann3 656040b64b test 2026-07-07 15:36:46 +02:00
dfuhrmann3 16566ef858 chore: remove unused Decimal import from main.py (final review cleanup)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 15:32:37 +02:00
dfuhrmann3 3a621eb805 test: add end-to-end integration test covering all Phase 1 features together 2026-07-07 15:27:00 +02:00
dfuhrmann3 3b3a2dce90 feat: extend regex parser for IT-Systemhaus service periods, contract types, and serial numbers
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 15:16:30 +02:00
dfuhrmann3 0dd9916079 feat: add document-level discount (BT-21) and Skonto payment terms (BT-20) 2026-07-07 15:10:35 +02:00
dfuhrmann3 d7b851ae36 feat: support mixed VAT rates per line (BG-23) in both XML generators 2026-07-07 15:03:09 +02:00
dfuhrmann3 6ecd59e5ea feat: make payment means code (BT-81) dynamically selectable 2026-07-07 14:54:17 +02:00
dfuhrmann3 ae986b4f3f refactor: extract pure invoice logic into invoice_logic.py for testability
Move all dependency-free business logic (metadata schema, rounding/parsing
helpers, item extraction, and the XRechnung/ZUGFeRD XML generators plus the
PDF/A output-intent helpers) out of main.py into a new invoice_logic.py that
imports only pydantic and pikepdf. This makes the logic unit-testable without
a Streamlit runtime. Pure cut-and-paste, no behavior change; main.py now
imports these names from invoice_logic instead of defining them locally.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 13:43:13 +02:00
dfuhrmann3 4181346f4a docs: add Phase 1 backend implementation plan
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 13:32:04 +02:00
dfuhrmann3 994ad03387 Footer Text Update 2026-07-07 11:12:06 +02:00
dfuhrmann3 eb7aa73653 Update 2026-07-07 11:09:47 +02:00
dfuhrmann3 a0d80c5d08 Merge branch 'test-version' Update auf ZUGFeRD mit Konformität und PDF-Ansicht 2026-07-07 10:58:46 +02:00
dfuhrmann3 7b5cd86974 Test 2026-07-07 10:52:43 +02:00
dfuhrmann3 fa977594eb Test 2026-07-07 10:23:51 +02:00
dfuhrmann3 aad83afd54 Test 2026-07-07 10:03:41 +02:00
dfuhrmann3 ebf172276a Test 2026-07-07 09:49:28 +02:00
dfuhrmann3 e80d011c88 Test 2026-07-06 14:09:15 +02:00
dfuhrmann3 076e976298 Test 2026-07-06 13:42:28 +02:00
dfuhrmann3 75c9d113bc Test 2026-07-06 12:53:48 +02:00
dfuhrmann3 3e59cd188e Test 2026-07-06 11:22:11 +02:00
dfuhrmann3 37b7986831 Test 2026-07-06 11:12:39 +02:00
dfuhrmann3 ec8352682e Test 2026-07-06 10:54:43 +02:00
dfuhrmann3 381216d619 Test 2026-07-06 10:51:36 +02:00
dfuhrmann3 00fe916c06 Test 2026-07-06 10:30:35 +02:00
dfuhrmann3 a5c27f5475 Test 2026-07-06 10:13:30 +02:00
dfuhrmann3 aae15f96db Test 2026-07-06 09:23:01 +02:00
dfuhrmann3 2384b27ae1 Test 2026-07-06 09:16:26 +02:00
dfuhrmann3 91fd15621c Stuff 2026-07-03 15:20:25 +02:00
dfuhrmann3 26293f1e1e Stuff 2026-07-03 14:23:20 +02:00
dfuhrmann3 c71d632e83 Stuff 2026-07-03 14:11:22 +02:00
dfuhrmann3 6f74a040e7 Stuff 2026-07-03 14:03:47 +02:00
dfuhrmann3 ae5126898e #### 2026-07-03 13:50:07 +02:00
dfuhrmann3 88e75f71c9 stuff 2026-07-03 13:45:35 +02:00
dfuhrmann3 7094f80f89 ZUGFeRD fix 5 2026-07-03 13:36:20 +02:00
dfuhrmann3 f1a63b7457 ZUGFeRD fix 5 2026-07-03 13:32:45 +02:00
dfuhrmann3 f1f8a5b97d ZUGFeRD fix 4 2026-07-03 13:29:29 +02:00
dfuhrmann3 d1604b0388 ZUGFeRD fix 3 2026-07-03 13:25:51 +02:00
dfuhrmann3 d8e90b119e ZUGFeRD fix 2 2026-07-03 13:19:12 +02:00
dfuhrmann3 3f516ed651 ZUGFeRD fix 2026-07-03 13:15:25 +02:00
dfuhrmann3 068e6627d9 ZUGFeRD 2026-07-03 13:07:33 +02:00
dfuhrmann3 9c02b1a454 ### 2026-07-03 12:12:00 +02:00
dfuhrmann3 9234aad01b download link 2026-07-03 12:08:10 +02:00
dfuhrmann3 87202c1117 1.0 2026-07-03 11:08:53 +02:00
dfuhrmann3 063295110d Tabelle anpassen 2026-07-03 10:59:29 +02:00
dfuhrmann3 947b412441 Tabelle anpassen 2026-07-03 10:45:29 +02:00