diff --git a/web/src/pages/ProductForm.jsx b/web/src/pages/ProductForm.jsx index f2f19f3..9359de7 100644 --- a/web/src/pages/ProductForm.jsx +++ b/web/src/pages/ProductForm.jsx @@ -343,16 +343,14 @@ function LotsCard({ product, lots, baseShort, warnDays, isAdmin, imageUrl, onCha const unitName = product?.unit_name || baseShort; const pkgSize = product?.package_size || 0; - // Maßgeblich ist die im Produkt festgelegte Einheit. - const primaryFactor = unitFactor; - const primaryLabel = unitName; + // Leitangabe: Packungen, sobald eine Packungsgröße hinterlegt ist – + // sonst die Produkteinheit. Darunter steht die jeweils andere Angabe klein. + const primaryFactor = pkgSize > 0 ? pkgSize : unitFactor; + const primaryLabel = pkgSize > 0 ? "Pkg" : unitName; - // Untermengen: Basiseinheit (falls abweichend) und Packungen (falls hinterlegt). function secondary(qty) { - const parts = []; - if (unitFactor !== 1) parts.push(`${fmt(qty)} ${baseShort}`); - if (pkgSize > 0) parts.push(`${fmt(qty / pkgSize)} Pkg`); - return parts.join(" · "); + if (pkgSize > 0) return `${fmt(qty / unitFactor)} ${unitName}`; + return unitFactor !== 1 ? `${fmt(qty)} ${baseShort}` : ""; } // Faktor der aktuell im Editor gewählten Eingabeeinheit. @@ -362,9 +360,11 @@ function LotsCard({ product, lots, baseShort, warnDays, isAdmin, imageUrl, onCha const editFactor = editFactorOf(editUnit); function startEdit(l) { + // Bearbeiten startet in der Leitangabe (Packungen, falls vorhanden). + const mode = pkgSize > 0 ? "package" : "unit"; setEditId(l.id); - setEditUnit("unit"); - setDraft({ quantity: l.quantity / unitFactor, best_before: l.best_before || "" }); + setEditUnit(mode); + setDraft({ quantity: l.quantity / editFactorOf(mode), best_before: l.best_before || "" }); } function changeEditUnit(newMode) { @@ -429,8 +429,8 @@ function LotsCard({ product, lots, baseShort, warnDays, isAdmin, imageUrl, onCha {pkgSize > 0 ? ( ) : ( {unitName}