Commit Graph

73 Commits

Author SHA1 Message Date
549b469a41 feat(accounting): Ausgangsrechnungen als ZUGFeRD-E-Rechnung (EN 16931) erzeugen
Rechnungen, Abschlags-, Storno- und Serienrechnungen erhalten beim
Fertigstellen ein eingebettetes factur-x.xml (CII, Profil EN 16931) samt
Factur-X-XMP-Metadaten. Das XML wird serverseitig aus dem gespeicherten
Beleg erzeugt; fehlende Pflichtangaben werden als Hinweis gemeldet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 11:32:02 +01:00
bd768e404d feat(accounting): Skontobedingungen auf Belegen und automatische Skonto-Vorschläge
Ausgangs- und Eingangsbelege erhalten Skontosatz und Frist, mit Vorgaben
bei Kunden und Lieferanten. Das PDF ergänzt automatisch einen Skontohinweis
(oder nutzt neue Textvorlagen-Variablen); bei Schlussrechnungen gilt der
Skonto für die Restforderung. Skontobedingungen werden aus E-Rechnungen
(#SKONTO# und ZUGFeRD) sowie von der KI-Vorbereitung übernommen. Die
Bankzuordnung erkennt Zahlungen abzüglich Skonto innerhalb der Frist und
bietet sie in der Vorschlagsübersicht direkt an. BWA-Erlöse und -Aufwand
berücksichtigen gebuchten Skonto im Zeitraum der Zahlung.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 11:32:02 +01:00
af4a283eb5 feat(accounting): Skonto bei Zahlungen auf Ausgangs- und Eingangsbelege buchen
Skonto wird an der Bankzuordnung gespeichert und gleicht den Beleg zusammen
mit der Zahlung aus. Der Betrag wird anteilig nach Steuersätzen auf die
Skontokonten verteilt (Standard SKR03, je Mandant einstellbar), im
DATEV-Export als eigene Buchung je Steuersatz ausgegeben und in der
USt-Auswertung im Zeitraum der Zahlung berücksichtigt. Schlussrechnungen
verteilen den Skonto auf die Restforderung nach Abzug der Abschläge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 11:31:47 +01:00
6ae8b7ad9e fix(pdf): Überweisungs-QR-Code überdeckt keine Positionen und Summen mehr
All checks were successful
Build and Release FEDEO / verify (push) Successful in 1m1s
Build and Release FEDEO / build-and-release (push) Successful in 6m19s
Reichen Positionen oder Summen auf der letzten Seite in den Bereich des QR-Codes, wird er auf einer eigenen Folgeseite gedruckt. Die MCP-Vorschau meldet das und schlägt einen früheren Seitenumbruch vor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 08:37:36 +01:00
544d607088 feat(mcp): Vorschau von Ausgangsbelegen mit Seitenbildern und Umbruchprüfung
- accounting.outgoing_documents.preview rendert den Beleg wie der Editor und liefert Seiten als PNG-Bilder im MCP-Ergebnis
- Layout je Seite in mm mit Warnungen zu übervollen Seiten, allein stehenden Überschriften, leeren Seiten und vom Überweisungs-QR-Code überdeckten Beträgen samt Vorschlag für den Seitenumbruch
- rows testet geänderte Positionen samt Seitenumbrüchen, ohne zu speichern
- Belegdaten für das PDF als Backend-Port von getDocumentData (Titelsummen, Überträge, Abschläge, Optional-/Alternativpositionen)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 08:29:17 +01:00
c10bfac23b fix(mcp): Artikel- und Leistungsbeschreibung in Ausgangsbelegpositionen übernehmen
Wie im Belegeditor werden bei mode=normal/service fehlende Beschreibung, Name, Einheit, Preis, USt-Satz und Kostenstelle aus Artikel bzw. Leistung übernommen. descriptionText wird als description gespeichert, weil der Editor nur description liest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 08:23:33 +01:00
9e003125c2 feat(mcp): Dateien ohne Base64 per HTTP hochladen
All checks were successful
Build and Release FEDEO / verify (push) Successful in 1m2s
Build and Release FEDEO / build-and-release (push) Successful in 6m19s
- POST /api/mcp/files nimmt multipart/form-data oder Rohdaten mit dem MCP-Token an, Ziel Dokumentenablage oder Eingangsrechnung
- documents.files.upload_url liefert Adresse, Parameter und curl-Beispiele
- Upload einer Eingangsrechnung bereitet nur noch die hochgeladene Datei vor

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 20:50:34 +01:00
f814689ddd fix(accounting): Belegvorbereitung im Hintergrund ausführen und Dubletten verhindern
- „Belege vorbereiten“ startet den Lauf im Hintergrund (202) und fragt den Status ab; ein laufender Vorgang wird nicht erneut gestartet und beim Wiederöffnen der Seite weiterverfolgt
- Eingangsbeleg und Dateiverknüpfung werden in einer Transaktion angelegt; ist die Datei bereits verknüpft, wird der neue Beleg verworfen
- Fehler einzelner Dateien brechen den Lauf nicht mehr ab

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 20:38:45 +01:00
755f1b7e0d feat(accounting): Kostenstellen von Eingangsbelegen jederzeit nachträglich ändern
Eigener Endpunkt und MCP-Tool ändern ausschließlich die Positionskostenstellen,
auch bei gebuchten oder einer Bankbuchung zugewiesenen Eingangsbelegen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 18:50:36 +01:00
c6fd53307c feat(mcp): Belegvorbereitung für Eingangsrechnungen anstoßen
- accounting.incoming_invoices.prepare startet die Vorbereitung für alle offenen oder ausgewählte Dateien und liefert angelegte Entwürfe samt Validierung sowie übersprungene Dateien
- Vorbereitungslauf meldet sein Ergebnis und läuft je Mandant nacheinander, damit parallele Aufrufe keine doppelten Belege anlegen

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 16:03:36 +01:00
0777315d1d feat(mcp): Archivierte Einträge wiederherstellen und Kontostände abfragen
All checks were successful
Build and Release FEDEO / verify (push) Successful in 1m5s
Build and Release FEDEO / build-and-release (push) Successful in 6m21s
- archive.entities.list / archive.entities.restore für alle per MCP archivierbaren Entitäten mit Berechtigungsprüfung je Entität und Historieneintrag
- accounting.bank_accounts.balances liefert Stände von Bankkonten und Kassenbüchern, optional zu einem Stichtag

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 14:28:05 +01:00
7b61857fb8 feat(notifications): include federated chat messages and invitations 2026-10-15 17:50:38 +02:00
4ffafef3f1 feat(admin): archive users and their profiles permanently
All checks were successful
Build and Release FEDEO / verify (push) Successful in 1m5s
Build and Release FEDEO / build-and-release (push) Successful in 6m53s
2026-10-15 14:22:12 +02:00
5463106938 fix(portal): add invitation links and correct customer login routing
All checks were successful
Build and Release FEDEO / verify (push) Successful in 1m7s
Build and Release FEDEO / build-and-release (push) Successful in 6m24s
2026-10-13 18:13:41 +02:00
070be08207 fix(pdf): hide transfer amounts on packing slips and delivery notes 2026-10-11 17:12:35 +02:00
f4fdf6fe30 feat(mcp): add outgoing document status and calendar tools 2026-10-11 13:08:29 +02:00
899e5bb339 feat(mcp): add document inbox tools and PDF transfers 2026-10-09 19:13:42 +02:00
15e480ee9a fix(build): isolate time tests by Docker build context
All checks were successful
Build and Release FEDEO / verify (push) Successful in 1m0s
Build and Release FEDEO / build-and-release (push) Successful in 6m4s
2026-10-07 19:02:23 +02:00
29a9ec2242 feat(communication): add chat reactions emojis and images 2026-10-03 17:56:07 +02:00
677ae0f4fb feat(time): add span-based attendance tracking under 2.0 2026-10-03 15:55:45 +02:00
4c67ddd908 feat(notifications): add per-tenant notification preferences 2026-10-03 14:50:38 +02:00
efa6ea90a2 fix(communication): display project chat state and refresh room visibility 2026-10-03 14:38:39 +02:00
fdcb9bfc1d feat(accounting): allow cancelling serial invoice executions 2026-10-02 18:48:06 +02:00
7e6c2fbac5 feat(communication): add room visibility and project chat controls
All checks were successful
Build and Release FEDEO / verify (push) Successful in 57s
Build and Release FEDEO / build-and-release (push) Successful in 6m27s
2026-10-02 18:27:02 +02:00
1885bfc521 feat(documents): allow archiving inbox documents
All checks were successful
Build and Release FEDEO / verify (push) Successful in 57s
Build and Release FEDEO / build-and-release (push) Successful in 5m56s
2026-10-02 17:12:05 +02:00
09a002d600 fix(collaboration): configure federation from existing deployment settings 2026-10-02 16:58:57 +02:00
d7382e7319 feat(documents): prepare inbox suggestions and add entity assignments
All checks were successful
Build and Release FEDEO / verify (push) Successful in 56s
Build and Release FEDEO / build-and-release (push) Successful in 5m58s
2026-10-02 16:09:04 +02:00
64299843e2 fix(communication): adopt legacy general chat rooms safely 2026-10-02 16:06:31 +02:00
23d49f7186 feat(documents): suggest inbox folder and type with AI
All checks were successful
Build and Release FEDEO / verify (push) Successful in 56s
Build and Release FEDEO / build-and-release (push) Successful in 5m54s
2026-10-01 18:11:41 +02:00
f359bfb579 fix(scanner): accept Epson empty write probes
All checks were successful
Build and Release FEDEO / verify (push) Successful in 1m2s
Build and Release FEDEO / build-and-release (push) Successful in 6m0s
2026-09-30 19:57:54 +02:00
2143ce0933 fix(scanner): normalize Epson collection separators
All checks were successful
Build and Release FEDEO / verify (push) Successful in 55s
Build and Release FEDEO / build-and-release (push) Successful in 6m0s
2026-09-30 19:10:59 +02:00
b585b972f2 fix(scanner): accept Epson inbox GET preflight 2026-09-30 19:04:12 +02:00
7b5696eda4 feat(communication): federate tenant collaboration with signed delivery 2026-09-30 14:48:05 +02:00
ea641bb4d0 feat(communication): add project subrooms and isolated guest access 2026-09-30 14:23:03 +02:00
21fe4723e3 fix(communication): enforce room and project membership boundaries 2026-09-30 13:59:29 +02:00
052a3a8446 feat(documents): file scanner inbox documents with folder and type
All checks were successful
Build and Release FEDEO / verify (push) Successful in 1m0s
Build and Release FEDEO / build-and-release (push) Successful in 5m56s
2026-09-29 16:48:15 +02:00
2192fa5bb4 feat(documents): add Epson scanner inbox and document shelf 2026-09-29 12:42:05 +02:00
2b947c5e8f feat(updater): support updates after verified SeaweedFS migration 2026-09-28 15:47:06 +02:00
29155f916a feat(selfhost): show sanitized update logs in admin UI
All checks were successful
Build and Release FEDEO / verify (push) Successful in 48s
Build and Release FEDEO / build-and-release (push) Successful in 5m45s
2026-09-25 18:42:26 +02:00
a65bd72d74 feat(scan): whiten receipt backgrounds and embed OCR in PDFs 2026-09-24 17:41:30 +02:00
8e1505023b feat(selfhost): start full updates from administration
All checks were successful
Build and Release FEDEO / verify (push) Successful in 45s
Build and Release FEDEO / build-and-release (push) Successful in 5m49s
2026-09-23 18:49:10 +02:00
96295ee4f0 fix(scan): restore missing scanner database migrations 2026-09-23 18:21:37 +02:00
cbec5b058d feat(banking): add cost centres and VAT to account allocations 2026-09-23 18:08:09 +02:00
f51f2b13a1 fix(selfhost): pin MinIO images and add application health checks 2026-09-23 16:39:17 +02:00
68c0a224e5 feat(scan): add guided Linux agent setup in administration
Some checks failed
Build and Release FEDEO / verify (push) Successful in 23s
Build and Release FEDEO / build-and-release (push) Failing after 29s
2026-09-17 18:56:30 +02:00
92859f3ccf feat(release): automate versioned releases on main 2026-09-17 18:41:53 +02:00
dd37622bb6 feat(scan): support iX1600 duplex scanning on Linux 2026-09-17 18:22:43 +02:00
cfef07b96d feat(mcp): manage master data and cost centre hierarchies 2026-09-14 13:29:25 +02:00
342ad9764e feat(mcp): paginate record lists and describe document inputs 2026-09-14 13:17:49 +02:00
ebbd1e0cd0 feat(accounting): edit finalized document cost centres 2026-09-09 14:37:22 +02:00