diff --git a/WerksverkaufScanner/WerksverkaufScanner/Data/InventurErfassung.cs b/WerksverkaufScanner/WerksverkaufScanner/Data/InventurErfassung.cs index 160a4c4..80a848f 100644 --- a/WerksverkaufScanner/WerksverkaufScanner/Data/InventurErfassung.cs +++ b/WerksverkaufScanner/WerksverkaufScanner/Data/InventurErfassung.cs @@ -21,5 +21,7 @@ public class InventurErfassung public DateTime CreatedAt { get; set; } public string Benutzer { get; set; } + + public bool? Eingelesen { get; set; } } diff --git a/WerksverkaufScanner/WerksverkaufScanner/Data/InventurHistorieEintrag.cs b/WerksverkaufScanner/WerksverkaufScanner/Data/InventurHistorieEintrag.cs new file mode 100644 index 0000000..cbc55ea --- /dev/null +++ b/WerksverkaufScanner/WerksverkaufScanner/Data/InventurHistorieEintrag.cs @@ -0,0 +1,12 @@ +namespace WerksverkaufScanner.Data +{ + public class InventurHistorieEintrag + { + public int Id { get; set; } + public string ArtikelNummer { get; set; } = ""; + public string Bezeichnung { get; set; } = ""; + public int Variante { get; set; } + public int Menge { get; set; } + public DateTime? CreatedAt { get; set; } + } +} diff --git a/WerksverkaufScanner/WerksverkaufScanner/Pages/Inventur/Inventur.razor b/WerksverkaufScanner/WerksverkaufScanner/Pages/Inventur/Inventur.razor index cdb04a8..db8727c 100644 --- a/WerksverkaufScanner/WerksverkaufScanner/Pages/Inventur/Inventur.razor +++ b/WerksverkaufScanner/WerksverkaufScanner/Pages/Inventur/Inventur.razor @@ -6,17 +6,6 @@

Inventur

- @*
-
-
- -
Inventur vorbereiten
-

Hier müssen die aktuellen Inventureinstellungen gescannt werden.

- Weiter -
-
-
*@ -
@@ -27,5 +16,17 @@
+ +
+
+
+ +
Inventur - Historie
+

Hier sehen Sie die zuletzt gescannten Artikel und Mengen.

+ Weiter +
+
+
+
diff --git a/WerksverkaufScanner/WerksverkaufScanner/Pages/Inventur/InventurHistorie.razor b/WerksverkaufScanner/WerksverkaufScanner/Pages/Inventur/InventurHistorie.razor new file mode 100644 index 0000000..2147d5e --- /dev/null +++ b/WerksverkaufScanner/WerksverkaufScanner/Pages/Inventur/InventurHistorie.razor @@ -0,0 +1,49 @@ +@page "/inventur/historie" +@attribute [Authorize] +@inject InventurService Inventur + +

Inventur – Letzte Erfassungen

+ +@if (historie == null) +{ +

Lade Historie …

+} +else if (historie.Count == 0) +{ +

Keine offenen Erfassungen für diese IP.

+} +else +{ + + + + + + + + + + + @foreach (var h in historie) + { + + + + + + + } + +
ArtikelNrBezeichnungVarianteMenge
@h.ArtikelNummer@h.Bezeichnung@h.Variante@h.Menge
+} + +@code { + List? historie; + + protected override async Task OnInitializedAsync() + { + // IP dynamisch auslesen, z.B. aus localStorage oder Service: + var ip = "10.251.0.12"; // Zum Testen hart eintragen + historie = await Inventur.LadeInventurHistorieAsync(ip); + } +} diff --git a/WerksverkaufScanner/WerksverkaufScanner/Services/InventurService.cs b/WerksverkaufScanner/WerksverkaufScanner/Services/InventurService.cs index 6cec9eb..40858ec 100644 --- a/WerksverkaufScanner/WerksverkaufScanner/Services/InventurService.cs +++ b/WerksverkaufScanner/WerksverkaufScanner/Services/InventurService.cs @@ -53,4 +53,26 @@ public class InventurService return ctx?.Connection.RemoteIpAddress?.ToString(); } + + public async Task> LadeInventurHistorieAsync(string clientIp) + { + await using var db = await _dbFactory.CreateDbContextAsync(); + + // Hole die letzten 5 offenen Einträge inkl. Artikelnummer und Bezeichnung (JOIN via Artikel) + var query = from er in db.InventurErfassung + join art in db.Artikel on er.ArtikelId equals art.ArtikelId + where er.ClientIp == clientIp && er.Eingelesen == null + orderby er.Id descending + select new InventurHistorieEintrag + { + Id = er.Id, + ArtikelNummer = art.ArtikelNummer, + Bezeichnung = art.Bezeichnung, + Variante = er.Variante, + Menge = er.Menge, + CreatedAt = er.CreatedAt + }; + + return await query.ToListAsync(); + } } diff --git a/WerksverkaufScanner/WerksverkaufScanner/Shared/MainLayout.razor b/WerksverkaufScanner/WerksverkaufScanner/Shared/MainLayout.razor index 35d126f..e983595 100644 --- a/WerksverkaufScanner/WerksverkaufScanner/Shared/MainLayout.razor +++ b/WerksverkaufScanner/WerksverkaufScanner/Shared/MainLayout.razor @@ -44,9 +44,6 @@ - @* *@ @@ -76,10 +73,6 @@ Inventur - @* *@