Commit Graph

23 Commits

Author SHA1 Message Date
s4luorth
6da4ab576c render_formats: Greifrand fuer A5 + DIN lang (lange Seite)
a5p margin_right_mm=14, a5l + dinlang_karte margin_bottom_mm=14 (analog A6).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-30 11:41:59 +02:00
s4luorth
e57c4aa8af C4-Kuvert im manuellen Druck (Absender-Freitext, quer)
- render_formats c4 (324x229, umschlag) + format_template kuvert_c4_v1 (quer)
  + envelope_format-Dropdown um c4 erweitert.
- produktion: Kuvert-Format-Dropdown im manuellen Druck um C4 (quer) + neues
  Absender-Freitextfeld (max. 5 Zeilen); Empfaenger weiter aus der Tabelle.
  ENVELOPE_TPL/ENV_LABEL um c4.
- orders /manual-print: envelope_format c4 gemappt, envelope_sender an das
  Backend (metadata.envelopeSender) durchgereicht.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-30 11:31:39 +02:00
s4luorth
0aff073e3e Public-Recht: formats auch bei show_check lesbar
Anonyme Leseberechtigung auf formats filterte nur active=true, wodurch die
nicht oeffentlich bestellbaren Check-Formate (A5, DIN lang) im oeffentlichen
Textmengencheck unsichtbar blieben. Jetzt: active ODER show_check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-30 11:15:12 +02:00
s4luorth
feb6b39cb6 formats: family + orientation, Upsert der Check-Metadaten
Neue Felder family + orientation fuers Ausrichtungs-Dropdown im
Textmengencheck. formats-Seed zieht bei bestehenden Zeilen jetzt per PATCH
show_check/family/orientation nach (seedItem war create-only), ohne
admin-gepflegte Felder anzutasten.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-30 11:04:48 +02:00
s4luorth
a785e72059 render_formats: A6-Greifrand lange Seite, A5 + DIN-lang, show_check
- Feld margin_bottom_mm (unterer Greifrand) + show_check (Textmengencheck).
- a6l: Greifrand von rechts nach unten (margin_right_mm=null loescht Altwert,
  margin_bottom_mm=14); a6p: margin_right_mm=14 (lange Seite rechts).
- Neue render_formats a5p, a5l, dinlang_karte (kind brief) + format_templates
  a5_v1, a5l_v1, dl_v1 (nur bei leerer Collection).
- formats: a5p/a5l/dinlang_karte manuell+check, nicht oeffentlich bestellbar;
  show_check auf allen Text-Seiten-Formaten.
- produktion: manuelles Format-Dropdown + Template-Map um A5/DIN-lang erweitert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-30 10:54:34 +02:00
s4luorth
208d398034 Batch-Reiter Umbau: Uebernahme in Produktion, Tag-Gruppen, Auswahl, Versendet, Loeschen
Uebermittlungen-Reiter neu: nach Tag gruppiert, Mehrfachauswahl (Strg/
Shift, board-weit auch fuer Auftragskarten). Aktionen auf Auswahl:
- "In Produktion uebernehmen" -> neuer /skrift-orders/batch-uebernehmen:
  PDF -> Datei-Auftrag (PDF = Druckdatei), Text -> Handschrift-Brief
  (Text + 5-Zeilen-Adresse), Kuvert mit Empfaenger; Status uebernommen;
  Generierung angestossen. Danach in "Neu" (dort wie bisher buendeln).
- "Versendet" / "Nicht versendet" (neues Feld batch_submissions.versendet).
- "Loeschen" (mit Rueckfrage).
FTP-"Jetzt buendeln"-Knopf entfernt (FTP-Weg entfaellt). Bootstrap:
Status 'uebernommen' + Feld versendet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-28 10:15:18 +02:00
s4luorth
131c48485c Batch-Uebermittlung (Phase 1): Collection + POST /v1/batch
Alternativer Uebermittlungsweg neben /v1/orders (unveraendert). Neue
Collection batch_submissions (Empfaengerschema Firma/Vorname/Nachname/
Zeile1-3/PLZ/Stadt/Land + Text ODER Druck-PDF, je Kunde ueber api_client).
Neuer Endpunkt POST /v1/batch: ein Empfaenger je Aufruf, PDF via
pdf_file_id (aus /v1/files) oder pdf_base64, oder text; Zeichen-Warnung
wie /v1/orders. Service-Policy darf batch_submissions lesen/als gebuendelt
markieren. Buendelung (xlsx+PDF+FTP) folgt in Phase 2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-28 08:53:31 +02:00
s4luorth
08e12180b6 A6 quer: rollenschonender Druck (spaltenweise Zeichenreihenfolge)
Checkbox „Rollenschonend drucken" im Druck-Popup (nur bei A6). Setzt am
Job das Feld spaltenweise. Der Agent lädt das Schriftstück-SVG dann über
den Download-Endpunkt mit ?reorder=column: die Glyph-<path>-Elemente
werden nach x (Spalte) und y (oben→unten) permutiert – Signatur-<g>,
Hintergrund und Trennstrich bleiben unangetastet. Sichtbares Ergebnis
identisch, aber der rollengeführte Plotter fährt monoton in Vorschub-
richtung statt je Zeile die Rolle zurückzuspulen. Nur Schriftstücke,
nicht Kuverts.

Neues Job-Feld jobs.spaltenweise (Bootstrap).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-24 09:09:37 +02:00
s4luorth
5495b3a4d5 Suche-Druck: eigenes Standard-Template je Typ (format_templates.search_default)
Neues Boolean-Feld search_default an format_templates: je ein Brief- und
ein Kuvert-Template als Standard für den Schnelldruck im Suche-Reiter
markieren. Der Schnelldruck bevorzugt dieses Template, sonst das dem
Auftragsformat zugeordnete Standard (default_format), sonst den Fallback.
Kann bewusst dasselbe Template wie das normale Standard sein.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-21 17:23:49 +02:00
s4luorth
881ff8a27b Motiv-Freigabe: A6-Entwurf erzeugen + Kundenfreigabe (Backend/Board)
- skrift-orders: bei Konfigurator-Bestellung mit Motiv-Upload wird ein A6-
  Drucklayout (152×109 mm, 2 mm Beschnitt, Motiv mittig/randabfallend) erzeugt
  und als orders.motif_layout abgelegt; approval_status='pending' + Token gesetzt;
  Freigabe-Mail (motiv_freigabe) mit Einmal-Link verschickt. Öffentliche
  Endpunkte /freigabe/:token (Info), /:token/layout (SVG), POST (freigeben/ändern).
- bootstrap: orders.approval_status/approval_token/approval_note/motif_layout,
  users.sevdesk_contact_id (bereits), Mailvorlage motiv_freigabe.
- Produktion: Chip „wartet auf Freigabe / freigegeben / Änderungswunsch".

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-18 08:05:39 +02:00
s4luorth
0f73a653b3 sevDesk: automatische Rechnung (Entwurf) bei Konfigurator-Bestellung
- 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>
2026-09-18 07:44:28 +02:00
s4luorth
10776764d7 Mailvorlagen: pro Vorlage „Kopie an mich" (BCC an Team-Adresse)
- 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>
2026-09-18 07:33:22 +02:00
s4luorth
cc39dade9e Agent-Fernsteuerung: Neustart-Befehl + Logs an Directus
- 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>
2026-09-11 19:57:50 +02:00
s4luorth
6ccd4f3c53 Postkarten-Format (nur manueller Druck): Text links, Adresse rechts
- 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>
2026-09-11 13:58:28 +02:00
s4luorth
08fe21a158 Format-Templates nicht mehr re-seeden, Signatur-Kuverts entfernt, Weiteres-Menü
- 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>
2026-09-07 08:44:21 +02:00
s4luorth
ae7ef2422e Statistik-Tab, Unterschriftenservice-Kuverts, Auftragsverknüpfung & Notizen
- 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>
2026-09-07 08:27:44 +02:00
s4luorth
9c2ede5374 Format-Templates: Standard je Format (default_format) statt fester Keys
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>
2026-09-07 08:05:01 +02:00
s4luorth
bc295fea01 Notizen je Auftrag + je Charge (Produktions-Board)
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>
2026-09-07 07:57:31 +02:00
s4luorth
de612b713f Produktion+neuauftrag: Neu generieren, Einzelfelder, Formate je Produkt + getrennt aktivierbar
- orders: /regenerate (Schriftstueck+Kuvert neu generieren).
- produktion: 'Neu generieren'-Button im Empfaenger-Dialog + Massenauswahl.
- neuauftrag: Adressmodus 'Einzelfelder' (Vorname..Land) inkl. Excel-Import; Formate
  nach gewaehltem Produkt gefiltert + nur show_manual.
- bootstrap: formats.show_manual (getrennt von active=Konfigurator).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-07 07:22:19 +02:00
s4luorth
1b2541e307 Kundenangebote (customer_offers) + Absender-Uebernahme-Fix
- Bootstrap: Collection customer_offers (Kunde+Produkt, Name-Zusatz, Aufschlaege/Stueck,
  mehrseitig erlauben, Notiz) + Order-Felder customer_offer/product_name_suffix.
- orders: calculatePrice addiert Angebots-Aufschlaege (serverseitig geprueft),
  Endpunkt /my-offers, POST / speichert Angebot + Name-Zusatz.
- produktion: 'In manuellen Druck uebernehmen' traegt jetzt auch Kuvert-Absender + Groesse mit.
- neuauftrag: uebernimmt Absender-Felder aus dem Auftrag.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-03 12:10:28 +02:00
s4luorth
a44515de89 neuauftrag: Kuverts-Haken default an, extra Haken 'Absender aufs Kuvert' + Absender-Groesse (%); envelope_sender_scale gespeichert/durchgereicht; bootstrap-Feld
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-03 11:04:29 +02:00
s4luorth
46b5155c27 Kuvert-Absender (Feld direkt sichtbar), Textmengen-/Session-Aenderungen
- neuauftrag: Absenderfeld fuers Kuvert IMMER sichtbar (nicht mehr an 'Kuverts
  generieren' gebunden), Payloads (Vorschau + Anlage) reichen envelope_sender durch.
- orders: manual-order speichert envelope_sender, Preview-Proxy reicht sender durch.
- bootstrap: Feld envelope_sender.
- (enthaelt weiterhin die Session-Aenderungen: signature-order, mehrseitige Vorschau,
  'In manuellen Druck uebernehmen', gesendet-Nummern, Generierungs-Fehleranzeige,
  seitenumbruch-Hinweis.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-01 15:23:06 +02:00
Lucas Orth
94e79f12ac Import aus Monorepo (frischer Start) 2026-08-24 12:13:58 +02:00