308cddedef
fix(bt-10): fall back to customer number when no Leitweg-ID (BR-DE-15)
1851ed7074
fix(parser): stop description scan at sub-position numbers like '2.1' (ZenIT R26-105)
71bb9885c6
feat: auto-detect invoice type (BT-3) from title (Teilrechnung->326)
ac233baa2f
feat: BT-41 Bearbeiter, BT-34/BT-43 split, Ihr Auftrag->BT-13, Referenznummer->Freitext
f92c4ffac6
feat: clear data panel on new upload; deterministic doc-reference routing (Vergabeangebot->BT-17)
3832d5cdf2
feat(parser): deterministic pre-position free text into BT-22 (Task 3a)
3e0975102f
fix(parser): recognize abbreviated unit 'pausch.' (Rechnung R26-231 Anfahrt)
df81c011d3
fix(zugferd): robust factur-x embedding for varied PDF structures
29034d8501
fix(parser): capture positions with split serial numbers; keep Angebot out of BT-12/BT-17
cd2bd56377
fix(parser): recognize 'pauschal' as a billing unit (Anfahrt-Position)
5a9929aa9e
feat: BT-46 Kundennummer, BT-10 Leitweg-ID, BT-17 Vergabeangebot, Angebot->Freitext, format-abh. Pflichtfelder
9a7dca1498
feat: descriptive export filenames, Vorkasse note (BT-20), dynamic BT-49 scheme
27f6d8bab7
fix(cii): format ZUGFeRD BilledQuantity like UBL (no trailing 1.0000)
8a7990f95f
refactor(ui): move ZUGFeRD validation hint from per-export box into footer
19cdff820d
feat(ui): rename tabs to Kopfdaten/Adressen/Positionen
1992c30991
feat(ui): PDF-Text back under PDF preview; one-click export+download
c07eb860fa
feat(ui): group validation fields into tabs (Basis/Parteien/Positionen/PDF-Text)
efdee4cfd6
feat: default export format to ZUGFeRD instead of XRechnung
36af456cd8
chore: keep tests, test-config and planning docs local-only (untrack from repo)
e4f2315179
chore: ignore __pycache__/*.pyc in git and docker, untrack committed bytecode