Postkarten-Layout: Text links, Absender+Empfänger rechts, Briefmarkenfeld frei
All checks were successful
Build & Deploy / deploy (push) Successful in 13s
All checks were successful
Build & Deploy / deploy (push) Successful in 13s
Neues render_format-kind 'postkarte'. generatePostcardSVG setzt den Text auf die linke Kartenhälfte, Absender (klein, oben) und Empfänger (Anschriftzone unten) auf die rechte Hälfte; oben rechts bleibt das Briefmarkenfeld frei. Ein SVG je Karte (ein Plotter-Durchlauf), geschrieben als letter_NNN.svg. - page-layout: kind je Format mitführen + getFormatKind(). - svg-generator: generatePostcardSVG (Body/Absender/Empfänger über Marker [[pk_abs]]/[[pk_adr]] getrennt, damit alle Teile scriptalisiert werden). - order-/preview-/directus-controller: type 'postcard' dispatchen, Marker in der Scriptalisierung erhalten, Postkarten-Dokument aus render_format-kind bauen. - directus-service: kind aus render_formats mitladen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
const { runGeneration } = require('./order-controller');
|
||||
const directus = require('../../services/directus-service');
|
||||
const { countLetterPages } = require('../../lib/svg-generator');
|
||||
const { getFormatKind } = require('../../lib/page-layout');
|
||||
const { replacePlaceholders } = require('../../services/placeholder-service');
|
||||
|
||||
// Directus-Formatschlüssel → Backend-Formate
|
||||
@@ -55,6 +56,9 @@ function buildDocuments(order, entries) {
|
||||
// Datei-Produkte (z. B. Unterschriftenservice): das „Schriftstück" ist das vom
|
||||
// Kunden hochgeladene Dokument – es wird NICHT generiert. Kuverts hingegen schon.
|
||||
const istDatei = order.product?.input_mode === 'datei';
|
||||
// Postkarte: Text links, Absender+Empfänger rechts, Briefmarkenfeld frei – ein SVG
|
||||
// je Karte (kein separater Umschlag). Erkennung über die render_format-Art.
|
||||
const istPostkarte = getFormatKind(letterFormat) === 'postkarte';
|
||||
// Kuvert-only-Produkt: es wird KEIN Schriftstück generiert, nur die (adressierten)
|
||||
// Kuverts. Etwaige hochgeladene PDF-Briefe liegen als source_files am Auftrag.
|
||||
const istKuvertOnly = order.product?.type === 'envelope';
|
||||
@@ -80,6 +84,21 @@ function buildDocuments(order, entries) {
|
||||
|
||||
// Abweichender Text je Schriftstück hat Vorrang; sonst Standardtext.
|
||||
const briefText = (entry.text && String(entry.text).trim()) ? entry.text : (order.text_template || '');
|
||||
|
||||
// Postkarte: EIN Dokument mit Text + Absender + Empfänger (über Marker getrennt).
|
||||
if (istPostkarte) {
|
||||
const recip = addressText(entry);
|
||||
const sender = order.envelope_sender ? String(order.envelope_sender).trim() : '';
|
||||
let combined = String(briefText || '');
|
||||
if (sender) combined += `[[pk_abs]]${sender}`;
|
||||
if (recip) combined += `[[pk_adr]]${recip}`;
|
||||
documents.push({
|
||||
index: nr, type: 'postcard', text: combined, format: letterFormat, font,
|
||||
placeholders, fontScale: fontScaleLetter, realisticHandwriting: realistisch,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// Kein Schriftstück erzeugen, wenn kein Text hinterlegt ist (z. B. „nur Kuverts drucken").
|
||||
if (!istDatei && !istKuvertOnly && String(briefText).trim()) {
|
||||
documents.push({
|
||||
|
||||
Reference in New Issue
Block a user