public void BearbeiteVerkaufsprodukt(Verkaufsprodukt verkaufsprodukt)
        {
            if (verkaufsprodukt.Abrechnung.Gebucht)
            {
                throw new InvalidOperationException("Bestände von gebuchten Abrechnungen können nicht mehr verändert werden.");
            }

            Kontext.SaveChanges();
            VerkaufsproduktVerändert?.Invoke(verkaufsprodukt);
        }
        internal void NeuesVerkaufsprodukt(Abrechnung abrechnung, Verkaufsprodukt verkaufsprodukt)
        {
            if (abrechnung.Gebucht)
            {
                throw new InvalidOperationException("Zu gebuchten Abrechnungen können keine Bestände mehr hinzugefügt werden.");
            }

            verkaufsprodukt.Abrechnung = abrechnung;
            abrechnung.Verkaufsprodukte.Add(verkaufsprodukt);
            Kontext.SaveChanges();
            VerkaufsproduktHinzugefügt?.Invoke(verkaufsprodukt);
        }
        internal void LöscheVerkaufsprodukt(Verkaufsprodukt verkaufsprodukt)
        {
            if (verkaufsprodukt.Abrechnung.Gebucht)
            {
                throw new InvalidOperationException("Aus gebuchten Abrechnungen können keine Bestände mehr gelöscht werden.");
            }

            verkaufsprodukt.Abrechnung.Verkaufsprodukte.Remove(verkaufsprodukt);
            VerkaufsproduktGelöscht?.Invoke(verkaufsprodukt);
            verkaufsprodukt.Abrechnung = null;
            Kontext.Verkaufsprodukte.Remove(verkaufsprodukt);
            Kontext.SaveChanges();
        }
        public void FügeHinzu(Abrechnung abrechnung, Produkt produkt)
        {
            if (abrechnung.Produkte.Contains(produkt))
            {
                return;
            }

            var verkaufsprodukt = new Verkaufsprodukt()
            {
                Produkt = produkt, Bestand = 0, Verkaufspreis = produkt.AktuellerVerkaufspreis
            };

            Verbrauchsteuerung.NeueVerbrauche(abrechnung, abrechnung.Benutzer.Select(b => new Verbrauch()
            {
                Benutzer = b, Verkaufsprodukt = verkaufsprodukt, AnzahlFlaschen = 0
            }).ToList());
            Verkaufsproduktsteuerung.NeuesVerkaufsprodukt(abrechnung, verkaufsprodukt);
            BearbeiteAbrechnung(abrechnung);
        }