public BenutzerProxy(Abrechnung abrechnung, Benutzer benutzer, double verluste)
 {
     this.abrechnung = abrechnung;
     this.benutzer   = benutzer;
     verbrauche      = abrechnung.Verkaufsprodukte.ToDictionary(p => p.Produkt, p => abrechnung.Verbrauche.Single(v => v.Verkaufsprodukt == p && v.Benutzer == benutzer));
     verbrauchKosten = verbrauche.Values.Select(v => v.AnzahlFlaschen * v.Verkaufsprodukt.Verkaufspreis).Sum();
     zahlung         = abrechnung.Gebucht ? abrechnung.Zahlungen.Single(z => z.Benutzer == benutzer) : null;
     verlustKosten   = verluste;
 }
        private void NeueZahlung(Zahlung zahlung)
        {
            if (zahlung.Benutzer != benutzer)
            {
                return;
            }

            Zahlungsliste.AddObject(zahlung);
            Zahlungsliste.Sort(ErstellungSpalte, SortOrder.Ascending);
            Zahlungsliste.TopItemIndex = Zahlungsliste.Items.Count - 1;
        }
        public void StorniereZahlung(Zahlung zahlung)
        {
            if (!zahlung.Löschbar)
            {
                throw new InvalidOperationException("Diese Zahlung ist nicht löschbar");
            }

            var stornoZahlung = zahlung.Storniere();

            NeueZahlung(stornoZahlung);
            Überweisungssteuerung.NeueÜberweisung(stornoZahlung.Überweisung);
            BearbeiteZahlung(zahlung);
        }
        public void NeueZahlung(Benutzer benutzer, Konto konto, Zahlung zahlung)
        {
            var überweisung = new Überweisung()
            {
                Erstellungszeitpunkt = zahlung.Erstellungszeitpunkt,
                Buchungszeitpunkt    = zahlung.Buchungszeitpunkt,
                Betrag       = zahlung.Betrag,
                Beschreibung = string.Format("{0}: {1}", benutzer.Anzeigename, zahlung.Beschreibung),
                Löschbar     = false
            };

            Überweisungssteuerung.NeueÜberweisung(konto, überweisung);
            zahlung.Überweisung = überweisung;
            NeueZahlung(benutzer, zahlung);
        }
示例#5
0
 private void Transaktionstyp_pruefen(Zahlung typ,
                                      Action onEinzahlung,
                                      Action onAuszahlung)
 {
     if (typ == Shared.BusinessModels.Zahlung.Einzahlung)
     {
         onEinzahlung();
     }
     else if (typ == Shared.BusinessModels.Zahlung.Auszahlung)
     {
         onAuszahlung();
     }
     else
     {
         throw new Exception("Transaktionstyp_pruefen fehlgeschlagen.");
     }
 }
        private void FülleZahlungen(Zahlung zahlung = null)
        {
            if (zahlung != null && zahlung.Benutzer != benutzer)
            {
                return;
            }

            if (zahlung == null)
            {
                Zahlungsliste.SetObjects(benutzer.Zahlungen.ToList());
                Zahlungsliste.Sort(DatumSpalte, SortOrder.Ascending);
                Zahlungsliste.TopItemIndex = Zahlungsliste.Items.Count - 1;
            }
            else
            {
                Zahlungsliste.RefreshObject(zahlung);
            }
        }
        private void HinzufügenKnopf_Click(object sender, EventArgs e)
        {
            if (!Double.TryParse(BetragBox.Text, NumberStyles.Currency, CultureInfo.CurrentCulture, out double betrag))
            {
                return; // TODO: Was schöneres hier.
            }
            if (KontoAuswahl.SelectedItem == null)
            {
                return; // TODO: Was schöneres hier.
            }
            var nachKonto = (Konto)KontoAuswahl.SelectedItem;

            var zahlung = new Zahlung()
            {
                Buchungszeitpunkt = DatumBox.Value,
                Betrag            = betrag,
                Beschreibung      = BeschreibungBox.Text,
            };

            zahlungssteuerung.NeueZahlung(benutzer, nachKonto, zahlung);
        }
示例#8
0
 public HaushaltsbuchEinzeln(decimal kassenbestand, Kategorie kategorie, Zahlung typ)
 {
     Kassenbestand = kassenbestand;
     Kategorie     = kategorie;
     Typ           = typ;
 }
 public void NeueZahlung(Benutzer benutzer, Zahlung zahlung)
 {
     benutzer.Buche(zahlung);
     NeueZahlung(zahlung);
 }
 public void NeueZahlung(Zahlung zahlung)
 {
     Benutzersteuerung.BearbeiteBenutzer(zahlung.Benutzer);
     ZahlungHinzugefügt?.Invoke(zahlung);
 }
 public void BearbeiteZahlung(Zahlung zahlung)
 {
     Kontext.SaveChanges();
     ZahlungVerändert?.Invoke(zahlung);
 }