From b3256457d2792b13037b191862c463f96e16f5af Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Sat, 3 Oct 2026 09:10:29 +0200 Subject: [PATCH] App: Chargenansicht zeigt auch Einlagerdatum und Verlauf Nachtrag zur Detailansicht von gerade eben: Zwei Angaben fehlten, die man an einer Charge sucht. "Seit wann liegt das hier?" - das Einlagerdatum kam im Swift-Modell gar nicht erst an, obwohl /lots/rows es liefert. Und "was ist damit passiert?" - dafuer gibt es jetzt den Weg in den Verlauf des Artikels. Eine einzelne Charge hat im Backend keinen eigenen Verlauf, die Bewegungen haengen am Artikel. Co-Authored-By: Claude Opus 5 --- ios/Sources/ListViews.swift | 16 ++++++++++++++++ ios/Sources/Models.swift | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/ios/Sources/ListViews.swift b/ios/Sources/ListViews.swift index fb40b52..37e5f4f 100644 --- a/ios/Sources/ListViews.swift +++ b/ios/Sources/ListViews.swift @@ -985,6 +985,11 @@ struct ChargeDetailSheet: View { LabeledContent("Zustand", value: zeile.istAngebrochen ? "angebrochen" : "ungeƶffnet") LabeledContent("Lagerort", value: ortText) + if let seit = zeile.createdAt { + LabeledContent("Eingelagert", + value: display.formatBestBefore(String(seit.prefix(10)), + precision: "day")) + } } Section("Fristen") { @@ -1029,6 +1034,17 @@ struct ChargeDetailSheet: View { : "Anbrechen spaltet eine Packung ab und gibt ihr ein Verbrauchsdatum; " + "der Rest bleibt ungeƶffnet mit seinem MHD.") } + + Section { + // Eine einzelne Charge hat keinen eigenen Verlauf im Backend; + // die Bewegungen haengen am Artikel. Das ist hier die naechste + // Frage nach "was ist das" - "was ist damit passiert". + NavigationLink { + HistoryView(productId: zeile.productId) + } label: { + Label("Verlauf dieses Artikels", systemImage: "clock.arrow.circlepath") + } + } } .navigationTitle("Charge") .navigationBarTitleDisplayMode(.inline) diff --git a/ios/Sources/Models.swift b/ios/Sources/Models.swift index c3fdff2..995ae30 100644 --- a/ios/Sources/Models.swift +++ b/ios/Sources/Models.swift @@ -384,6 +384,9 @@ struct LotRow: Codable, Identifiable, Hashable { let openedOn: String? let consumeBy: String? let openedQuantity: Double? + /// Wann die Charge eingelagert wurde - gehoert zu den Angaben, die man an + /// einer Charge sucht ("seit wann liegt das hier?"). + let createdAt: String? var istAngebrochen: Bool { openedOn != nil } @@ -436,6 +439,7 @@ struct LotRow: Codable, Identifiable, Hashable { case openedOn = "opened_on" case consumeBy = "consume_by" case openedQuantity = "opened_quantity" + case createdAt = "created_at" } }