Verlauf zeigt Mengen in Artikeleinheiten (Gebinde) statt nur Basiseinheit
MovementOut liefert jetzt package_size, package_label sowie Name/Faktor der
Anzeigeeinheit mit. Die Verlauf-Tabelle zeigt die Bewegung als Leitangabe in
Gebinden (z.B. "1 Glas") und darunter klein die Basiseinheit ("195 g").
Ohne Gebinde/abweichende Einheit bleibt es bei einer Zeile.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,22 @@ import { fmt, unitShort } from "../units";
|
||||
|
||||
const TYPE_LABEL = { in: "Eingelagert", out: "Ausgelagert", adjust: "Korrektur" };
|
||||
|
||||
// Leitangabe in Artikeleinheiten (Gebinde), sonst in der Produkteinheit.
|
||||
function primaryAmount(m) {
|
||||
if (m.package_size > 0) {
|
||||
return `${fmt(m.quantity / m.package_size)} ${m.package_label || "Packung"}`;
|
||||
}
|
||||
return `${fmt(m.quantity / (m.unit_factor || 1))} ${m.unit_name || unitShort(m.base_unit)}`;
|
||||
}
|
||||
|
||||
// Untermenge in der Basiseinheit – nur wenn sie sich von der Leitangabe unterscheidet.
|
||||
function secondaryAmount(m) {
|
||||
if (m.package_size > 0 || (m.unit_factor || 1) !== 1) {
|
||||
return `${fmt(m.quantity)} ${unitShort(m.base_unit)}`;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
export default function History() {
|
||||
const [movements, setMovements] = useState([]);
|
||||
const [error, setError] = useState(null);
|
||||
@@ -46,7 +62,12 @@ export default function History() {
|
||||
</span>
|
||||
</td>
|
||||
<td>{m.product_name}</td>
|
||||
<td className="num">{fmt(m.quantity)} {unitShort(m.base_unit)}</td>
|
||||
<td className="num">
|
||||
{primaryAmount(m)}
|
||||
{secondaryAmount(m) && (
|
||||
<div className="muted small">{secondaryAmount(m)}</div>
|
||||
)}
|
||||
</td>
|
||||
<td className="muted">{m.username || "–"}</td>
|
||||
</tr>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user