示例#1
0
        public Zahlung SetzeKaution(double neueKaution, Konto konto)
        {
            double diff = Kaution - neueKaution;

            var zahlung = new Zahlung()
            {
                Buchungszeitpunkt = DateTime.Now,
                Betrag            = diff,
                Beschreibung      = "Kaution " + Vorname,
                Löschbar          = false
            };

            if (diff < 0)
            {
                // Zahlt der Benutzer Kaution ein, erhält das Konto Geld, der Benutzer aber kein Guthaben.
                var überweisung = new Überweisung()
                {
                    Buchungszeitpunkt = zahlung.Buchungszeitpunkt,
                    Betrag            = -zahlung.Betrag,
                    Beschreibung      = zahlung.Beschreibung,
                    Löschbar          = false
                };
                konto.Buche(überweisung);

                zahlung.Überweisung   = überweisung;
                zahlung.AltesGuthaben = Guthaben;
                zahlung.NeuesGuthaben = Guthaben;
                zahlung.Benutzer      = this;
                Zahlungen.Add(zahlung);
            }
            else
            {
                // Wird eine Kaution ausbezahlt, erhöht sich das Guthaben des Benutzers normal.
                Buche(zahlung);
            }

            Kaution = neueKaution;
            return(zahlung);
        }