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}