@page "/inventur/historie"
@attribute [Authorize]
@inject InventurService Inventur
@inject StammdatenCache Cache

<h2>Inventur – Letzte Erfassungen</h2>

@if (eintraege == null)
{
    <p>Lade …</p>
}
else if (eintraege.Count == 0)
{
    <p>Keine offenen Erfassungen für diese IP.</p>
}
else
{
    <table class="table table-sm table-striped">
        <thead>
            <tr>
                <th>ArtikelNr</th>
                <th>Bezeichnung</th>
                <th>Variante</th>
                <th>Menge</th>
                <th>Löschen</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var e in eintraege)
            {
                var artikel = Cache.GetArtikel().FirstOrDefault(a => a.ArtikelId == e.ArtikelId && a.Variante == e.Variante);
                <tr>
                    <td>@artikel?.ArtikelNummer</td>
                    <td>@artikel?.Bezeichnung</td>
                    <td>@artikel?.Text</td>
                    <td>@e.Menge</td>
                    <td><button class="btn btn-sm btn-danger"  title="Löschen" @onclick="() => LoescheEintragAsync(e.Id)">
                            <span class="bi-trash"></span> Löschen
                        </button>
                    </td>
                </tr>
            }
        </tbody>
    </table>
}

@code {
    private List<InventurErfassung>? eintraege;

    protected override async Task OnInitializedAsync()
    {
        if (Cache.GetArtikel().Count == 0)
            await Cache.RefreshAsync();

        eintraege = await Inventur.LadeInventurHistorieAsync();
    }

    private async Task LoescheEintragAsync(int id)
    {
        await Inventur.LoescheInventurErfassungAsync(id);
        eintraege = await Inventur.LadeInventurHistorieAsync(); // Liste neu laden
        StateHasChanged();
    }
}
