diff --git a/web/src/pages/Transfer.jsx b/web/src/pages/Transfer.jsx index a63c2f5..863a7ff 100644 --- a/web/src/pages/Transfer.jsx +++ b/web/src/pages/Transfer.jsx @@ -129,6 +129,23 @@ export default function Transfer() { } } + // Gegenstands-Kategorien als Baum; für die Anzeige, welche Unterkategorien + // durch eine gewählte Oberkategorie automatisch mitkommen. + const objTree = asTree(categories).filter((c) => c.tracking === "object"); + const parentOf = Object.fromEntries(categories.map((c) => [c.id, c.parent_id])); + const nameById = Object.fromEntries(categories.map((c) => [c.id, c.name])); + const hatKinder = (id) => objTree.some((o) => o.parent_id === id); + // Name der nächsten ausgewählten Oberkategorie (oder null) – dann ist diese + // Kategorie „über die Oberkategorie enthalten". + function abgedecktVon(id) { + let p = parentOf[id]; + while (p != null) { + if (selCats.has(p)) return nameById[p]; + p = parentOf[p]; + } + return null; + } + return (
Je Einzelstück eine Zeile: QR-Inhalt, UID, Produkt, Marke, Kategorie, Lagerort. In der Etiketten-Software (z.B. P-touch) als Datenbank{" "} - verknüpfen – sie erzeugt QR-Code und Text automatisch. Kategorien wählen - (Unterkategorien sind enthalten); ohne Auswahl kommen alle Einzelstücke. + verknüpfen – sie erzeugt QR-Code und Text automatisch. Ohne Auswahl kommen alle + Einzelstücke. Wählst du eine Kategorie, kommen ihre Unterkategorien + automatisch mit – sie erscheinen unten als „enthalten".