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>
This commit is contained in:
s4luorth
2026-09-07 07:57:31 +02:00
parent 63611ba92e
commit bc295fea01
2 changed files with 48 additions and 4 deletions

View File

@@ -310,6 +310,7 @@ const collections = [
dropdown('payment_status', ['offen', 'bezahlt', 'storniert'], { default: 'offen' }),
f('payment_ref', 'string', { interface: 'input' }),
f('artifact_path', 'string', { interface: 'input', note: 'Verweis auf Backend-Output.' }),
f('internal_note', 'text', { interface: 'input-multiline', note: 'Interne Notiz zum Auftrag (Produktion).' }),
{ field: 'date_created', type: 'timestamp', meta: { interface: 'datetime', readonly: true, special: ['date-created'] }, schema: {} },
{ field: 'date_updated', type: 'timestamp', meta: { interface: 'datetime', readonly: true, special: ['date-updated'] }, schema: {} },
// Produktionsansicht: durchsuchbare Empfängertabelle (Briefnummer + volle
@@ -521,6 +522,13 @@ const collections = [
// Kundenspezifische Angebote: frei benannte Aufschläge (pro Stück) + Namens-Zusatz,
// die der eingeloggte Kunde im Konfigurator auswählt. Kein Festpreis (Phase 2).
// Notizen je zusammengefasster Charge (Schlüssel = Kunde|Produkt|Versandtag|Eingang).
{ collection: 'charge_notes', meta: { icon: 'sticky_note_2', note: 'Notizen je Charge (Produktions-Board).', hidden: true }, fields: [
f('charge_key', 'string', { interface: 'input', unique: true, required: true, note: 'Charge-Schlüssel (kunde|produkt|versandtag|eingang).' }),
f('note', 'text', { interface: 'input-multiline' }),
{ field: 'date_updated', type: 'timestamp', meta: { interface: 'datetime', readonly: true, special: ['date-updated'] }, schema: {} },
] },
{ collection: 'customer_offers', meta: { icon: 'local_offer', note: 'Kundenangebote: Aufschläge/Name-Zusatz je Kunde+Produkt (Kunde wählt im Konfigurator).' }, fields: [
m2o('customer', 'directus_users', { onDelete: 'CASCADE' }),
m2o('product', 'products', { onDelete: 'CASCADE' }),