internal static dynamic Memo_übernehmen(Buchung buchung, IEnumerable<string> args) { if (args.Any()) { buchung.Memo = args.First(); return new { Buchung = buchung, Args = args.Skip(1) }; } return new { Buchung = buchung, Args = args }; }
public void Saldo() { var buchung = new Buchung { Buchungsdatum = new DateTime(2015, 8, 10) }; var buchungen = new[] { new Buchung { Buchungstyp = Buchungstypen.Einzahlung, Buchungsdatum = new DateTime(2015, 8, 9), Betrag = 100.0 }, new Buchung { Buchungstyp = Buchungstypen.Auszahlung, Buchungsdatum = new DateTime(2015, 8, 10), Betrag = 30.0 }, new Buchung { Buchungstyp = Buchungstypen.Auszahlung, Buchungsdatum = new DateTime(2015, 8, 11), Betrag = 30.0 } }; var saldo = Buchhaltung.Saldo(buchung, buchungen); Assert.That(saldo, Is.EqualTo(70.0)); }
public static void Save(Buchung buchung) { var csv_data = string.Format("{0};{1:d};{2:F};'{3}';'{4}'", BuchungstypenConverter.AsString(buchung.Buchungstyp), buchung.Buchungsdatum, buchung.Betrag, buchung.Kategorie, buchung.Memo); File.AppendAllLines(Filename, new[] { csv_data }); }
public static Tuple<string, double> Kategorie_berechnen(Buchung buchung, IEnumerable<Buchung> buchungen) { var buchungen_der_kategorie = buchungen .Where(b => b.Buchungstyp == Buchungstypen.Auszahlung && b.Kategorie == buchung.Kategorie && b.Buchungsdatum.Month == buchung.Buchungsdatum.Month && b.Buchungsdatum.Year == buchung.Buchungsdatum.Year); var betrag = buchungen_der_kategorie.Sum(b => b.Betrag); return new Tuple<string, double>(buchung.Kategorie, betrag); }
internal static dynamic Datum_übernehmen(Buchung buchung, IEnumerable<string> args) { DateTime buchungsdatum; if (DateTime.TryParse(args.First(), out buchungsdatum)) { buchung.Buchungsdatum = buchungsdatum; return new { Buchung = buchung, Args = args.Skip(1) }; } buchung.Buchungsdatum = now(); return new { Buchung = buchung, Args = args }; }
public static double Saldo(Buchung buchung, IEnumerable<Buchung> buchungen) { Money saldo = 0.0; var buchungen_bis_datum = buchungen.Where(b => b.Buchungsdatum <= buchung.Buchungsdatum); foreach (var b in buchungen_bis_datum) { if (b.Buchungstyp == Buchungstypen.Einzahlung) { saldo += b.Betrag; } if (b.Buchungstyp == Buchungstypen.Auszahlung) { saldo -= b.Betrag; } } return saldo; }
public void Kategorie() { var buchung = new Buchung { Buchungsdatum = new DateTime(2015, 8, 10), Kategorie = "abc" }; var buchungen = new[] { new Buchung { Buchungstyp = Buchungstypen.Einzahlung, // Keine Berücksichtigung, da Einzahlung Buchungsdatum = new DateTime(2015, 8, 9), Betrag = 100.0 }, new Buchung { Buchungstyp = Buchungstypen.Auszahlung, // berücksichtigen Buchungsdatum = new DateTime(2015, 8, 10), Kategorie = "abc", Betrag = 10.0 }, new Buchung { Buchungstyp = Buchungstypen.Auszahlung, // berücksichtigen, obwohl hinter dem Buchungsdatum, aber selber Monat Buchungsdatum = new DateTime(2015, 8, 11), Kategorie = "abc", Betrag = 20.0 }, new Buchung { Buchungstyp = Buchungstypen.Auszahlung, // keine Berücksichtigung, da andere Kategorie Buchungsdatum = new DateTime(2015, 8, 11), Kategorie = "xyz", Betrag = 20.0 } }; var tuple = Buchhaltung.Kategorie_berechnen(buchung, buchungen); Assert.That(tuple.Item1, Is.EqualTo("abc")); Assert.That(tuple.Item2, Is.EqualTo(30.0)); }
internal static dynamic Betrag_übernehmen(Buchung buchung, IEnumerable<string> args) { buchung.Betrag = double.Parse(args.First()); return new { Buchung = buchung, Args = args.Skip(1) }; }
internal static dynamic Buchung_zu_Kommando_erstellen(IEnumerable<string> args) { var buchung = new Buchung { Buchungstyp = BuchungstypenConverter.FromString(args.First()) }; return new { Buchung = buchung, Args = args.Skip(1) }; }