- Neue Hook-Extension skrift-sevdesk: legt bei orders.items.create (source=
configurator) eine sevDesk-Rechnung als ENTWURF an – Kontakt wird angelegt/
wiederverwendet (sevdesk_contact_id am Konto), Positionen aus price_lines
(Produkt mit Menge; Versand/Motiv/Zusatz je eigene Position), 19% USt.
Nicht-blockierend, per SEVDESK_API_TOKEN aktiviert; Versand NICHT über sevDesk.
- orders.price_lines (JSON) speichert die Positionsaufstellung bei Bestellung
(Konfigurator + manueller Auftrag).
- bootstrap: orders.price_lines/sevdesk_invoice_id/sevdesk_invoice_number,
directus_users.sevdesk_contact_id.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- email_templates: neues Feld bcc_team (Checkbox).
- Mailer: ist bcc_team gesetzt, geht die Mail zusätzlich als BCC an
email_settings.team_email (Kunde sieht die Kopie nicht).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Der WP-Webhook schickt vorname + name(=Nachname) getrennt und die Stadt als „ort".
Bisher wurde nur body.name als kompletter Name genommen (nur Nachname), city aus
body.city gelesen (leer) und kein first_name/last_name gespeichert – daher stand
beim Übernehmen der Nachname im Vornamen und Ort blieb leer.
- Anzeigename = vorname + name; address bekommt first_name/last_name.
- Stadt aus „ort" (Aliase stadt/city), plus robuste Feld-Aliase via feldWert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- skrift-orders: sample-/offer-request nehmen viele Feldnamen-Varianten an
(feldWert-Helfer) und loggen eingehende + gefüllte Feldnamen zur Diagnose.
- skrift-produktion: „Direkt drucken" bei Musteranfragen entfernt (nur noch
„In manuellen Druck übernehmen").
- skrift-kontakte: Bulk-Status-Dropdown lesbar (weiße Schrift auf weiß behoben);
Shift-Klick wählt den ganzen Bereich zwischen zwei Checkboxen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- /preview: leerer Text ist erlaubt, wenn envelope_labeling != 'keine' → nur die
Kuverts werden erzeugt.
- Postkarte in der Vorschau nur bei vorhandenem Brieftext erzeugen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
vorname→first_name, name→last_name, telefon→phone, zipcode→zip, ort→city,
produkt_interesse→product. App-Feldnamen behalten Vorrang. So kann ein
WordPress-Formular direkt Muster-/Angebotsanfragen anlegen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Produktion: Button „✍ In manuellen Druck“ auf der Musteranfrage übernimmt die
Adresse als Einzelfelder (Vorname/Nachname/Straße/Nr./PLZ/Ort/Land) in den
manuellen Druck; die Platzhalter [[Vorname]]/[[Nachname]]/[[Ort]] … ziehen sich
daraus. „🖨 Direkt drucken“ (Modal) bleibt als Schnellweg.
- neuauftrag: Übernahme trägt die Einzelfelder mit (nicht nur free_text/placeholders).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sample-request und offer-request akzeptieren first_name/last_name, bilden daraus
den Anzeigenamen und legen sie in address ab (für Kuvert/Platzhalter im Muster-
Workflow). „name" bleibt als Fallback.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Produktion-Muster-Dialog: benannten Mustertext (muster_texts) wählen; Platzhalter
([[Vorname]]/[[Nachname]]/[[Ort]]/[[Strasse]]/[[PLZ]]/[[Land]]) aus der Anfrage-
Adresse automatisch füllen; Text vor dem Anlegen bearbeitbar; „Adresse aufs
Kuvert" (Standard an) mit Format/Template-Wahl.
- manual-print: erzeugt optional zusätzlich ein Kuvert (Umschlag-Job) mit der Adresse.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Mustertext-Auswahl ersetzt den bisherigen Brieftext (statt anzuhängen).
- Vorschau: [[Zeile1]]..[[Zeile5]] aus den 5 Adresszeilen verfügbar; Tipp im UI.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- bootstrap: Collections agent_logs (Logs/Fehler von Agent & AutoRecover) und
agent_commands (Befehle an den Agenten, Typ restart; Agent arbeitet „pending“ ab).
- Produktion: Button „🔄 Programm neustarten“ legt einen restart-Befehl für die
aktive Maschine an.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Neues Modul „Statistik": versendete Briefe je Kunde/Monat, getrennt Inland/
Ausland, Zeilen aufklappbar (Auftragsliste), mit Suche. Raus aus dem Board.
- Produktion: Auto-Refresh pausiert, während ein Feld bearbeitet wird (Notizen
gingen sonst beim 15-s-Reload/Statuswechsel verloren). „Neu generieren“/
„In manuellen Druck“ aus dem Empfänger-Dialog entfernt (liegen unter Weiteres).
Unter Weiteres jetzt auch Kontakt/Kunde verknüpfen (per E-Mail) und mit × lösen
– ohne Kundenmail.
- Ausland-Erkennung (zielInland) mit Wortgrenzen (\b) + unbekannter Ländertext →
Inland: „Schweizer Straße“, „Neusass“, „Polenz“ werden nicht mehr als Ausland
geflaggt (orders + produktion).
- Kontakte-Modul: Mehrfachauswahl → Status ändern / löschen.
- contacts-Hook: Abwahl von „In Kontakte speichern“ löscht die Kontakte wieder.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- bootstrap: render_formats a6_postkarte + dinlang_postkarte (kind 'postkarte'),
passende formats-Einträge (active=false → nicht in der App, nur manueller Druck),
kind-Dropdown um 'postkarte' erweitert.
- skrift-orders: Vorschau erkennt Postkarten (render_formats.kind) und baut EIN
Dokument mit Text + Absender + Empfänger (Marker [[pk_abs]]/[[pk_adr]]).
- neuauftrag: Postkarten-Formate erkannt; Absenderfeld direkt (unabhängig von
Kuverts), Kuvert-Optionen ausgeblendet, Hinweis aufs Kartenlayout.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- bootstrap: format_templates nur bei LEERER Collection anlegen (Betreiber
pflegt sie selbst; kein Wieder-Anlegen bei jedem Bootstrap).
- Unterschriftenservice: Inline-Kuverts ("Kuverts mitdrucken") + Verknüpfen im
Signatur-Tab wieder entfernt; signature-order auf Seiten-only zurückgesetzt.
- Produktion: Verknüpfen, In Kontakte speichern, Neu generieren und In manuellen
Druck übernehmen hinter "Weiteres"-Button gebündelt; Notiz bleibt vorne.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Produktion: Statistik-Tab (versendete Briefe je Kunde/Monat), verknüpfter
Auftrag je Karte anzeigen/ändern/entfernen, Datei-Aufträge werden beim
Übernehmen wieder in den Signatur-Tab überführt.
- Unterschriftenservice (neuauftrag): optionale Kuverts (je Empfänger ein
Umschlag, Absender möglich) und Verknüpfung mit vorhandenem Auftrag.
- orders: signature-order erzeugt Kuverts über die Standard-Pipeline
(Datei-Produkt -> nur Umschläge, Seiten bleiben erhalten) und speichert
linked_order; nachträgliches Verknüpfen im Board.
- bootstrap: orders.linked_order (Self-Relation).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
format_templates.default_format (Format-Key) -> Druck-Dialog waehlt das als Standard
markierte Template vor, unabhaengig von fest verdrahteten Keys.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
orders.internal_note + neue Collection charge_notes (charge_key). Editierbare
Notizfelder in Auftrags- und Charge-Karte, speichern beim Verlassen.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Auftragskarte: Chip 'DE N / Welt M weltweit' (aus count_inland/count_ausland).
- Empfaenger-Dialog: Auslands-Empfaenger mit 'weltweit' markiert.
- Druck-Dialog: Schnellwahl 'nur Deutschland' / 'nur Welt' fuellt die Nummern je
Gruppe -> Schriftstuecke und Kuverts getrennt druckbar, Auftrag bleibt einer.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
zielInland()-Erkennung bleibt fuer count_inland/count_ausland und die kommende
Anzeige-/Druck-Trennung im Produktions-Board. Kein zweiter Auftragsdatensatz mehr.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
zielInland()-Erkennung (Land/Freitext/D-PLZ). manual-order: bei gemischten Empfaengern
zwei Auftraege mit Suffix -DE / -INT (Empfaenger aufgeteilt), Generierung je Auftrag ->
Schriftstuecke UND Kuverts je Zielgebiet getrennt. Einzelland unveraendert (kein Suffix).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>