diff --git a/ios/Sources/DashboardCards.swift b/ios/Sources/DashboardCards.swift index 2e4d2a7..f46cb94 100644 --- a/ios/Sources/DashboardCards.swift +++ b/ios/Sources/DashboardCards.swift @@ -108,17 +108,18 @@ struct QuickBookingCard: View { fehler = nil meldung = nil do { - // "article" ist die Einheit, in der der Artikel gefuehrt wird - - // genau die, die in der Karte steht. + // Menge in Artikeleinheiten: Gebinde -> Packung, sonst Basiseinheit. + // Der Server kennt kein "article". + let unit = (artikel.packageSize ?? 0) > 0 ? "package" : artikel.baseUnit if einlagern { let zeile = CheckInLine(quantity: wert, bestBefore: nil, bestBeforePrecision: "day", locationId: nil) _ = try await APIClient.shared.checkInBatch( - BatchCheckInRequest(productId: artikel.id, unit: "article", lines: [zeile])) + BatchCheckInRequest(productId: artikel.id, unit: unit, lines: [zeile])) } else { _ = try await APIClient.shared.checkOut( CheckOutRequest(productId: artikel.id, quantity: wert, - unit: "article", lotId: nil)) + unit: unit, lotId: nil)) } meldung = "\(formatAmount(wert)) \(einlagern ? "eingelagert" : "ausgelagert")." menge = "1" diff --git a/web/src/dashboard/cards.jsx b/web/src/dashboard/cards.jsx index 5db47d8..7d188cb 100644 --- a/web/src/dashboard/cards.jsx +++ b/web/src/dashboard/cards.jsx @@ -127,14 +127,15 @@ function KarteSchnellbuchung({ richtung }) { setFehler(null); setMeldung(null); try { - // "article" ist die Einheit, in der der Artikel gefuehrt wird (Gebinde - // oder Basiseinheit) - genau das, was in der Karte steht. + // Die Menge zaehlt in Artikeleinheiten: Gibt es ein Gebinde, ist das eine + // Packung, sonst die Basiseinheit. Der Server kennt kein "article". + const unit = artikel.package_size > 0 ? "package" : artikel.base_unit; if (einlagern) { await api.checkInBatch({ - product_id: artikel.id, unit: "article", lines: [{ quantity: zahl }], + product_id: artikel.id, unit, lines: [{ quantity: zahl }], }); } else { - await api.checkOut({ product_id: artikel.id, quantity: zahl, unit: "article" }); + await api.checkOut({ product_id: artikel.id, quantity: zahl, unit }); } setMeldung(`${fmt(zahl)} ${einlagern ? "eingelagert" : "ausgelagert"}.`); setMenge("1");