C4-Kuvert NUR im Neuauftrag-Formular waehlbar
- neuauftrag: neues Dropdown "Kuvertformat" (Automatisch/DIN Lang/C6/C4 quer), envelope_format an Preview + manual-order durchgereicht. - orders /preview: honoriert body.envelope_format (statt hart A4->DIN/A6->C6), ENVELOPE_TPL/ENV_LABEL um c4 (Template-Aufloesung, kein Selektor). - produktion: C4-Option + Absenderfeld im Muster-Popup wieder entfernt (C4 gibt es ausschliesslich im Neuauftrag). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -733,8 +733,11 @@ const handler = (router, { services, getSchema, logger }) => {
|
||||
// Formate) unverändert durchreichen – das Backend kennt sie aus render_formats.
|
||||
const LETTER_FORMAT = { a4: 'a4', a6_hoch: 'a6p', a6_quer: 'a6l' };
|
||||
const briefFormat = LETTER_FORMAT[body.format] || body.format || 'a4';
|
||||
// A4 → DIN Lang, A6 → C6
|
||||
const umschlagFormat = briefFormat === 'a4' ? 'din_lang' : 'c6';
|
||||
// Kuvertformat: explizit gewählt (dinlang/c6/c4) hat Vorrang, sonst A4 → DIN Lang, A6 → C6.
|
||||
const ENV_FMT_PV = { dinlang: 'din_lang', c6: 'c6', c4: 'c4' };
|
||||
const umschlagFormat = body.envelope_format
|
||||
? (ENV_FMT_PV[body.envelope_format] || body.envelope_format)
|
||||
: (briefFormat === 'a4' ? 'din_lang' : 'c6');
|
||||
// Postkarte (Text links, Adresse rechts, ein SVG) – Erkennung über render_formats.kind.
|
||||
const istPk = (await svc('render_formats').readByQuery({
|
||||
filter: { key: { _eq: briefFormat } }, limit: 1, fields: ['kind'],
|
||||
@@ -1213,10 +1216,10 @@ const handler = (router, { services, getSchema, logger }) => {
|
||||
// Legt pro Typ (Schriftstück / Umschlag) einen Job mit aufgelöstem Template
|
||||
// für die gewählte Maschine an. Kein Statuswechsel am Auftrag (bewusst).
|
||||
const LETTER_TPL = { a4: 'a4_single', a6_hoch: 'a6_v1', a6_quer: 'a6l_v1' };
|
||||
const ENVELOPE_TPL = { dinlang: 'kuvert_a_v1', c6: 'kuvert_b_v1' };
|
||||
const ENVELOPE_TPL = { dinlang: 'kuvert_a_v1', c6: 'kuvert_b_v1', c4: 'kuvert_c4_v1' };
|
||||
// Lesbare Labels + Format-Schlüssel je Job-Typ. Der Schlüssel steuert die
|
||||
// Format-Warteschlange (Agent druckt nur Jobs mit passendem machines.current_format).
|
||||
const ENV_LABEL = { dinlang: 'DIN Lang', c6: 'C6' };
|
||||
const ENV_LABEL = { dinlang: 'DIN Lang', c6: 'C6', c4: 'C4' };
|
||||
const LETTER_LABEL = { a4: 'A4', a6_hoch: 'A6 hoch', a6_quer: 'A6 quer' };
|
||||
const briefFormatOf = (order) => ({ key: order.format?.key || 'a4', label: order.format?.name || LETTER_LABEL[order.format?.key] || order.format?.key || 'A4' });
|
||||
const umschlagFormatOf = (order) => ({ key: order.envelope_format || 'c6', label: ENV_LABEL[order.envelope_format] || order.envelope_format || 'C6' });
|
||||
@@ -1535,16 +1538,15 @@ const handler = (router, { services, getSchema, logger }) => {
|
||||
const font = ['tilda', 'alva', 'ellie'].includes(body.font) ? body.font : 'tilda';
|
||||
const format = TEST_FORMAT[body.format] || 'a4';
|
||||
|
||||
// Kuvert (Empfänger aus der Anfrage, Absender optional als Freitext) mitdrucken.
|
||||
const ENV_FMT = { dinlang: 'din_lang', c6: 'c6', c4: 'c4' };
|
||||
// Kuvert (Adresse aus der Anfrage) optional mitdrucken.
|
||||
const ENV_FMT = { dinlang: 'din_lang', c6: 'c6' };
|
||||
const envAddr = clean(String(body.envelope || '')).trim();
|
||||
const wantsEnv = !!(envAddr && body.envelope_template);
|
||||
const envFormat = ENV_FMT[body.envelope_format] || 'din_lang';
|
||||
const envSender = clean(String(body.envelope_sender || '')).trim();
|
||||
|
||||
const letters = [{ index: 1, type: 'letter', text: clean(String(body.text)), format, font, realisticHandwriting: body.realistic !== false }];
|
||||
if (wantsEnv) {
|
||||
letters.push({ index: 1, type: 'envelope', envelopeType: 'recipient', text: envAddr, format: envFormat, font, realisticHandwriting: body.realistic !== false, sender: envSender });
|
||||
letters.push({ index: 1, type: 'envelope', envelopeType: 'recipient', text: envAddr, format: envFormat, font, realisticHandwriting: body.realistic !== false });
|
||||
}
|
||||
|
||||
const gen = await fetch(`${BACKEND_URL}/api/order/generate`, {
|
||||
@@ -1553,8 +1555,7 @@ const handler = (router, { services, getSchema, logger }) => {
|
||||
body: JSON.stringify({
|
||||
orderNumber: ref,
|
||||
letters,
|
||||
// envelopeSender: Backend rendert das Kuvert damit frisch (Absender oben links).
|
||||
metadata: { rawText: String(body.text), envelopeSender: envSender },
|
||||
metadata: { rawText: String(body.text) },
|
||||
}),
|
||||
});
|
||||
if (!gen.ok) {
|
||||
|
||||
Reference in New Issue
Block a user