Mailer: Versandbenachrichtigung bei Board-Versand (auch manuelle Aufträge)
Der Wechsel auf production_status='versendet' im Produktions-Board löst jetzt die „versendet"-Vorlage (Versandbenachrichtigung) an den Kunden aus – für alle Aufträge inkl. manuelle. Nur beim ersten Versand (Guard über versandt_am), keine Doppel-Mail. Bestellbestätigung bleibt bei manuellen Aufträgen (source=operator) unterdrückt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -245,11 +245,18 @@ export default (register, { services, getSchema, logger }) => {
|
||||
});
|
||||
|
||||
register.action('orders.items.update', async ({ keys, payload }) => {
|
||||
if (!payload || payload.status === undefined) return;
|
||||
const status = payload.status;
|
||||
if (!payload) return;
|
||||
// Kaufmännischer Status (bezahlt/versendet/…) → passende Vorlage.
|
||||
// ODER Produktionsstatus „versendet" (Board) → Versandbenachrichtigung – auch
|
||||
// für manuelle Aufträge; nur beim ERSTEN Versand (erkennbar am gleichzeitig
|
||||
// gesetzten versandt_am), damit keine Doppel-Mail entsteht.
|
||||
let mailKey = null;
|
||||
if (payload.status !== undefined) mailKey = payload.status;
|
||||
else if (payload.production_status === 'versendet' && payload.versandt_am) mailKey = 'versendet';
|
||||
if (!mailKey) return;
|
||||
for (const id of keys || []) {
|
||||
try { await sendForOrder(id, status, { status: STATUS_LABEL[status] || status }); }
|
||||
catch (e) { logger.warn(`[skrift-mailer] status ${status}: ${e.message}`); }
|
||||
try { await sendForOrder(id, mailKey, { status: STATUS_LABEL[mailKey] || mailKey }); }
|
||||
catch (e) { logger.warn(`[skrift-mailer] status ${mailKey}: ${e.message}`); }
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user