예제 #1
0
 internal void LöscheVerbrauch(Verbrauch verbrauch)
 {
     verbrauch.Abrechnung.Verbrauche.Remove(verbrauch);
     verbrauch.Abrechnung = null;
     Kontext.SaveChanges();
     VerbrauchGelöscht?.Invoke(verbrauch);
 }
 public void FügeHinzu(Produkt produkt, Kastengröße kastengröße)
 {
     produkt.Kastengrößen.Add(kastengröße);
     kastengröße.Produkt = produkt;
     Kontext.SaveChanges();
     KastengrößeHinzugefügt?.Invoke(kastengröße);
 }
예제 #3
0
 internal void NeuerVerbrauch(Abrechnung abrechnung, Verbrauch verbrauch)
 {
     abrechnung.Verbrauche.Add(verbrauch);
     verbrauch.Abrechnung = abrechnung;
     Kontext.SaveChanges();
     VerbrauchHinzugefügt?.Invoke(verbrauch);
 }
        public void LöscheEinkauf(Einkauf einkauf)
        {
            if (!IstLöschbar(einkauf))
            {
                throw new InvalidOperationException("Dieser Einkauf ist nicht löschbar, er ist Teil einer schon abgerechneten Abrechnung.");
            }

            using (var transaktion = Kontext.Database.BeginOrReuseTransaction())
            {
                if (einkauf.Abrechnung != null)
                {
                    Abrechnungssteuerung.Entferne(einkauf.Abrechnung, einkauf);
                }

                Einkaufspositionssteuerung.LöschePositionen(einkauf.Positionen.ToList(), erzwinge: true);

                var überweisung = einkauf.Überweisung;
                Überweisungssteuerung.StorniereÜberweisung(überweisung, erzwinge: true);
                einkauf.Überweisung = null;

                Kontext.Einkäufe.Remove(einkauf);
                Kontext.SaveChanges();
                transaktion?.Commit();
            }
            EinkaufGelöscht?.Invoke(einkauf);
        }
        public void BearbeiteKastengröße(Kastengröße kastengröße)
        {
            if (!KannBearbeitetWerden(kastengröße))
            {
                throw new InvalidOperationException("Diese Kastengröße kann nicht gelöscht werden.");
            }

            Kontext.SaveChanges();
            KastengrößeBearbeitet?.Invoke(kastengröße);
        }
예제 #6
0
        public void BearbeitePosition(Einkaufsposition position)
        {
            if (!Einkaufsteuerung.IstLöschbar(position.Einkauf))
            {
                throw new InvalidOperationException("Die Position dieses Einkaufs kann nicht mehr bearbeitet werden.");
            }

            Kontext.SaveChanges();
            EinkaufspositionVerändert?.Invoke(position);
        }
        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);
        }
예제 #8
0
 internal void LöscheVerbrauche(ICollection <Verbrauch> verbrauche)
 {
     foreach (var verbrauch in verbrauche)
     {
         verbrauch.Abrechnung.Verbrauche.Remove(verbrauch);
         verbrauch.Abrechnung = null;
         VerbrauchGelöscht?.Invoke(verbrauch);
     }
     Kontext.SaveChanges();
 }
예제 #9
0
 internal void NeueVerbrauche(Abrechnung abrechnung, ICollection <Verbrauch> verbrauche)
 {
     abrechnung.Verbrauche.AddRange(verbrauche);
     foreach (var verbrauch in verbrauche)
     {
         verbrauch.Abrechnung = abrechnung;
         VerbrauchHinzugefügt?.Invoke(verbrauch);
     }
     Kontext.SaveChanges();
 }
예제 #10
0
        public void LöschePosition(Einkaufsposition position, bool erzwinge = false)
        {
            if (!erzwinge && !Einkaufsteuerung.IstLöschbar(position.Einkauf))
            {
                throw new InvalidOperationException("Aus diesem Einkauf kann keine Position mehr gelöscht werden.");
            }

            Kontext.Einkaufspositionen.Remove(position); // Nebeneffekt: Wird aus Einkauf gelöscht
            Kontext.SaveChanges();
            EinkaufspositionGelöscht?.Invoke(position);
        }
        public void Lösche(Kastengröße kastengröße)
        {
            if (!KannGelöschtWerden(kastengröße))
            {
                throw new InvalidOperationException("Diese Kastengröße kann nicht gelöscht werden, sie ist Teil eines noch nicht abgerechneten Einkaufs.");
            }

            kastengröße.Versteckt = true;
            Kontext.SaveChanges();
            KastengrößeBearbeitet?.Invoke(kastengröße);
        }
        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);
        }
예제 #13
0
 public void SetzeAktiv(ICollection <Benutzer> benutzer, bool aktiv)
 {
     foreach (var b in benutzer)
     {
         b.Aktiv = aktiv;
     }
     Kontext.SaveChanges();
     foreach (var b in benutzer)
     {
         BenutzerVerändert?.Invoke(b);
     }
 }
        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();
        }
예제 #15
0
        public void LöschePositionen(ICollection <Einkaufsposition> positionen, bool erzwinge = false)
        {
            if (!erzwinge && positionen.Any(p => !Einkaufsteuerung.IstLöschbar(p.Einkauf)))
            {
                throw new InvalidOperationException("Aus diesem Einkauf kann keine Position mehr gelöscht werden.");
            }

            Kontext.Einkaufspositionen.RemoveRange(positionen);
            Kontext.SaveChanges();
            foreach (var position in positionen)
            {
                EinkaufspositionGelöscht?.Invoke(position);
            }
        }
        internal void NeueVerkaufsprodukte(Abrechnung abrechnung, ICollection <Verkaufsprodukt> verkaufsprodukte)
        {
            if (abrechnung.Gebucht)
            {
                throw new InvalidOperationException("Zu gebuchten Abrechnungen können keine Bestände mehr hinzugefügt werden.");
            }

            foreach (var verkaufsprodukt in verkaufsprodukte)
            {
                verkaufsprodukt.Abrechnung = abrechnung;
                abrechnung.Verkaufsprodukte.Add(verkaufsprodukt);
                VerkaufsproduktHinzugefügt?.Invoke(verkaufsprodukt);
            }
            Kontext.SaveChanges();
        }
 internal void LöscheVerkaufsprodukte(ICollection <Verkaufsprodukt> verkaufsprodukte)
 {
     foreach (var verkaufsprodukt in verkaufsprodukte)
     {
         if (verkaufsprodukt.Abrechnung.Gebucht)
         {
             throw new InvalidOperationException("Zu gebuchten Abrechnungen können keine Bestände mehr hinzugefügt werden.");
         }
         verkaufsprodukt.Abrechnung.Verkaufsprodukte.Remove(verkaufsprodukt);
         VerkaufsproduktGelöscht?.Invoke(verkaufsprodukt);
         verkaufsprodukt.Abrechnung = null;
         Kontext.Verkaufsprodukte.Remove(verkaufsprodukt);
     }
     Kontext.SaveChanges();
 }
예제 #18
0
        public void NeuePosition(Einkaufsposition position, Einkauf einkauf)
        {
            if (!Einkaufsteuerung.IstLöschbar(einkauf))
            {
                throw new InvalidOperationException("Zu diesem Einkauf kann keine Position mehr hinzugefügt werden.");
            }

            position.Einkauf = einkauf;
            einkauf.Positionen.Add(position);
            if (einkauf.Abrechnung != null && !einkauf.Abrechnung.Produkte.Contains(position.Kastengröße.Produkt))
            {
                Abrechnungssteuerung.FügeHinzu(einkauf.Abrechnung, position.Kastengröße.Produkt);
            }

            Kontext.SaveChanges();
            EinkaufspositionHinzugefügt?.Invoke(position);
        }
        public void LöscheAbrechnung(Abrechnung abrechnung)
        {
            if (abrechnung.Gebucht)
            {
                throw new InvalidOperationException("Diese Abrechnung kann nicht gelöscht werden, sie ist bereits gebucht.");
            }

            using (var transaktion = Kontext.Database.BeginOrReuseTransaction())
            {
                Entferne(abrechnung, abrechnung.Benutzer.ToList());
                Entferne(abrechnung, abrechnung.Einkäufe.ToList());
                Entferne(abrechnung, abrechnung.Produkte.ToList());

                Kontext.Abrechnungen.Remove(abrechnung);
                Kontext.SaveChanges();

                transaktion?.Commit();
            }
            AbrechnungGelöscht?.Invoke(abrechnung);
        }
예제 #20
0
 public void BearbeiteBenutzer(Benutzer benutzer)
 {
     Kontext.SaveChanges();
     BenutzerVerändert?.Invoke(benutzer);
 }
예제 #21
0
 public void BearbeiteVerbrauch(Verbrauch verbrauch)
 {
     Kontext.SaveChanges();
     VerbrauchBearbeitet?.Invoke(verbrauch);
 }
 public void BearbeiteProdukt(Produkt produkt)
 {
     Kontext.SaveChanges();
     ProduktVerändert?.Invoke(produkt);
 }
 public void NeuesProdukt(Produkt produkt)
 {
     Kontext.Produkte.Add(produkt);
     Kontext.SaveChanges();
     ProduktHinzugefügt?.Invoke(produkt);
 }
 public void NeuerEinkauf(Einkauf einkauf)
 {
     Kontext.Einkäufe.Add(einkauf);
     Kontext.SaveChanges();
     EinkaufHinzugefügt?.Invoke(einkauf);
 }
 public void BearbeiteZahlung(Zahlung zahlung)
 {
     Kontext.SaveChanges();
     ZahlungVerändert?.Invoke(zahlung);
 }
 public void NeueAbrechnung(Abrechnung abrechnung)
 {
     Kontext.Abrechnungen.Add(abrechnung);
     Kontext.SaveChanges();
     AbrechnungHinzugefügt?.Invoke(abrechnung);
 }
 public void BearbeiteAbrechnung(Abrechnung abrechnung)
 {
     Kontext.SaveChanges();
     AbrechnungVerändert?.Invoke(abrechnung);
 }
예제 #28
0
 public void BearbeiteKonto(Konto konto)
 {
     Kontext.SaveChanges();
     KontoVerändert?.Invoke(konto);
 }
예제 #29
0
 public void NeuerBenutzer(Benutzer benutzer)
 {
     Kontext.Benutzer.Add(benutzer);
     Kontext.SaveChanges();
     BenutzerHinzugefügt?.Invoke(benutzer);
 }
 public void BearbeiteEinkauf(Einkauf einkauf)
 {
     Kontext.SaveChanges();
     EinkaufVerändert?.Invoke(einkauf);
 }