App: Lagerort bei Chargen anzeigen und aendern
In der Chargenliste eines Artikels standen nur MHD und Menge. Zwei Chargen
mit gleichem MHD, die sich nur im Lagerort unterscheiden, sahen dadurch
identisch aus. Die Zeile nennt jetzt zusaetzlich den Lagerort-Pfad (bzw.
"ohne Ort").
Im Sheet "Charge aendern" kommt ein Lagerort-Picker samt QR-Scan dazu -
wie in der Weboberflaeche. Das Backend konnte das ueber PATCH /lots/{id}
schon; LotUpdateRequest sendet location_id jetzt immer mit (auch null),
damit sich ein gesetzter Ort wieder entfernen laesst.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -605,15 +605,28 @@ struct ProductUpdateRequest: Encodable {
|
||||
}
|
||||
}
|
||||
|
||||
struct LotUpdateRequest: Codable {
|
||||
struct LotUpdateRequest: Encodable {
|
||||
var quantity: Double?
|
||||
var bestBefore: String?
|
||||
var bestBeforePrecision: String?
|
||||
var locationId: String?
|
||||
|
||||
enum CodingKeys: String, CodingKey {
|
||||
case quantity
|
||||
case bestBefore = "best_before"
|
||||
case bestBeforePrecision = "best_before_precision"
|
||||
case locationId = "location_id"
|
||||
}
|
||||
|
||||
// Den Lagerort immer senden (auch null), damit „ohne Ort" den gesetzten Ort
|
||||
// wieder entfernt. Die übrigen Felder bleiben weg, wenn sie nicht gesetzt
|
||||
// sind – das Backend fasst sie dann als „unverändert" auf.
|
||||
func encode(to encoder: Encoder) throws {
|
||||
var c = encoder.container(keyedBy: CodingKeys.self)
|
||||
try c.encodeIfPresent(quantity, forKey: .quantity)
|
||||
try c.encodeIfPresent(bestBefore, forKey: .bestBefore)
|
||||
try c.encodeIfPresent(bestBeforePrecision, forKey: .bestBeforePrecision)
|
||||
try c.encode(locationId, forKey: .locationId)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user