public BezahlungAngefordert(Benutzer benutzer, string beschreibung, Betrag betrag, DateTime datum) { this.Benutzer = benutzer; this.Betrag = betrag; this.Beschreibung = beschreibung; this.Datum = datum; }
public void BerechneWerte() { if ((betrag.Length > 0) && (double.TryParse(betrag, out double Betrag))) { if (Betrag.Equals(0)) { preisUebersicht = 0; } else { preisUebersicht = Data.Anzahl.Equals(0) ? 0 : Math.Round(Betrag / Data.Anzahl, 3, MidpointRounding.AwayFromZero); } } else { preisUebersicht = Data.Preis; } buyIn = buySell.Equals(BuySell.Buy) && (preisUebersicht != 0) && (Data.Anzahl != 0) ? new KaufBerechnungen().BuyInAktieGekauft(0, 0, Data.Anzahl, preisUebersicht, Data.Anzahl, Data.Fremdkostenzuschlag, Data.OrderartTyp) : 0; Data.Bemessungsgrundlage = Math.Round(preisUebersicht * Data.Anzahl, 3, MidpointRounding.AwayFromZero); steuern = new SteuerBerechnen().SteuerGesamt(Data.Steuer.Steuern); Data.Gesamt = BuySell.Equals(BuySell.Buy) ? Data.Bemessungsgrundlage + Data.Fremdkostenzuschlag.GetValueOrDefault(0) : Data.Bemessungsgrundlage - Data.Fremdkostenzuschlag.GetValueOrDefault(0) + steuern; RaisePropertyChanged(nameof(Gesamt)); RaisePropertyChanged(nameof(Bemessungsgrundlage)); RaisePropertyChanged("PreisBerechnet"); RaisePropertyChanged("BuyIn"); RaisePropertyChanged(nameof(Steuern)); }
private async void ExcecuteLoadDataCommand() { RequestIsWorking = true; HttpResponseMessage resp = await Client.GetAsync(GlobalVariables.BackendServer_URL + $"/api/auswertung/steuern/Summiert/Steuerart?jahrVon={jahrvon}&jahrBis={jahrbis}"); if (resp.IsSuccessStatusCode) { ItemList = await resp.Content.ReadAsAsync <List <SteuerartGesamtentwicklungSummiertModel> >(); Labels = new string[ItemList.Count]; IList <Betrag> werte = new List <Betrag>(); int index = 0; ItemList.ToList().ForEach(item => { item.Steuerarten.ToList().ForEach(steuer => { var wert = werte.ToList().Find(wert => wert.Steuerart.Equals(steuer.Steuerart)); if (wert == null) { wert = new Betrag { Betraege = new List <double>(), Steuerart = steuer.Steuerart }; werte.Add(wert); } wert.Betraege.Add(steuer.Betrag); }); Labels[index] = item.Datum.ToString("MM.yyyy", CultureInfo.CurrentCulture); index++; }); LineSeries <double>[] series = new LineSeries <double> [werte.Count]; index = 0; werte.ToList().ForEach(wert => { var StackedColoumn = new LineSeries <double> { Values = wert.Betraege, Name = wert.Steuerart, TooltipLabelFormatter = (point) => wert.Steuerart + " " + point.PrimaryValue.ToString("N2") + "€" }; series.SetValue(StackedColoumn, index); index++; }); XAxes.First().Labels = Labels; XAxes.First().Name = "Monat"; YAxes.First().Name = "Betrag"; Series = series; RaisePropertyChanged(nameof(Series)); RaisePropertyChanged(nameof(XAxes)); RaisePropertyChanged(nameof(YAxes)); } RequestIsWorking = false; }
public EinzahlenCommand( KontoId aggregateId, Betrag betrag, Einzahlungsart einzahlungsart = Einzahlungsart.Bareinzahlung) : base(aggregateId) { this.Einzahlungsart = einzahlungsart; this.Betrag = betrag; }
public string AsCsv() { StringBuilder sb = new StringBuilder(); sb.Append(WrapText(Kategorie.ToString())); sb.Append(";"); sb.Append(Buchungsdatum.ToString(CultureInfo.CurrentCulture)); sb.Append(";"); sb.Append(Valutadatum.ToString(CultureInfo.CurrentCulture)); sb.Append(";"); sb.Append(WrapText(Buchungstext)); sb.Append(";"); sb.Append(WrapText(InterneNotiz)); sb.Append(";"); sb.Append(Betrag.ToString(CultureInfo.CurrentCulture)); sb.Append(";"); sb.Append(WrapText(Belegdaten)); sb.Append(";"); string normBelegDaten = Belegdaten.Trim(); normBelegDaten = normBelegDaten.Trim().Trim(new char[] { '"' }).Trim(); string beleg = string.IsNullOrEmpty(normBelegDaten) ? "" : "B" + Beleg; sb.Append(WrapText(beleg)); sb.Append(";"); sb.Append(WrapText(Auftraggebername)); sb.Append(";"); sb.Append(WrapText(Auftraggeberkonto)); sb.Append(";"); sb.Append(WrapText(AuftraggeberBLZ)); sb.Append(";"); sb.Append(WrapText(Empfaengername)); sb.Append(";"); sb.Append(WrapText(Empfaengerkonto)); sb.Append(";"); sb.Append(WrapText(EmpfaengerBLZ)); sb.Append(";"); sb.Append(WrapText(Zahlungsgrund)); return(sb.ToString()); }
public void ArtikelHinzufuegen(Betrag betrag, string beschreibung, Benutzer benutzer = null) { BestellungSpecs.NichtAbgeschlossen .And(Specs.Existiert) .ThrowDomainErrorIfNotStatisfied(this); var artikel = new Artikel(ArtikelId.New, betrag, beschreibung, benutzer); this.Emit(new ArtikelHinzugefuegt(artikel)); }
public void Einzahlen(Betrag betrag, Einzahlungsart einzahlungsart) { KontoSpecs.NichtAufgeloest .And(Specs.Existiert) .ThrowDomainErrorIfNotStatisfied(this); var neuerSaldo = this.Saldo + betrag; this.Emit(new Eingezahlt(betrag, neuerSaldo, einzahlungsart)); }
public void Abbuchen(Betrag betrag, string beschreibung) { KontoSpecs.NichtAufgeloest .And(Specs.Existiert) .ThrowDomainErrorIfNotStatisfied(this); var neuerSaldo = this.Saldo - betrag; this.Emit(new Abgebucht(betrag, neuerSaldo, beschreibung)); }
public AbbuchenCommand( KontoId aggregateId, Betrag betrag, string beschreibung, BezahlungId bezahlung = null) : base(aggregateId) { this.Betrag = betrag; this.Beschreibung = beschreibung; this.Bezahlung = bezahlung; }
public Transaktion( DateTimeOffset timestamp, Transaktionstyp typ, Betrag betrag, decimal saldo, string beschreibung) { this.Timestamp = timestamp; this.Betrag = betrag; this.Saldo = saldo; this.Beschreibung = beschreibung; this.Typ = typ; }
public ArtikelHinzufuegenCommand( BestellungId aggregateId, Betrag betrag, string beschreibung, Benutzer benutzer = null) : base(aggregateId) { if (string.IsNullOrWhiteSpace(beschreibung)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(beschreibung)); } this.Betrag = betrag; this.Beschreibung = beschreibung; this.Benutzer = benutzer; }
/// <summary> /// this constructor creates a BO4E.Rechnung from a JSON serialized SAP print document ("Druckbeleg") /// </summary> /// <param name="sapPrintDocument">a JSON serialized SAP print document using lowerCamelCase naming convention</param> public Rechnung(JObject sapPrintDocument) : this() { // why is this method so bloated and always tries to access two different keys of the JSON document using the ?? operator? // Initially I exported the SAP print document "Druckbeleg") using the SAP library /ui2/cl_json which allows for pretty printing // the ALL_UPPER_CASE SAP internal keys to lowerCamelCase. Later on technical constraints in SAP forced me to use a different // serialization which is closer to SAPs internal structure and has no lower case keys at all. Furthermore in SAP there is // no difference between string.Empty and null; the latter doesn't even exist as a concept. JToken infoToken = sapPrintDocument.SelectToken("erdk") ?? sapPrintDocument.SelectToken("ERDK"); JToken tErdzToken = sapPrintDocument.SelectToken("tErdz") ?? sapPrintDocument.SelectToken("T_ERDZ"); if (tErdzToken == null) { throw new ArgumentException("The SAP print document did not contain a 'tErdz' token. Did you serialize using the right naming convention?"); } Rechnungsnummer = (infoToken["opbel"] ?? infoToken["OPBEL"]).Value <string>(); Rechnungsdatum = new DateTimeOffset(TimeZoneInfo.ConvertTime((infoToken["bldat"] ?? infoToken["BLDAT"]).Value <DateTime>(), CentralEuropeStandardTime.CENTRAL_EUROPE_STANDARD_TIME, TimeZoneInfo.Utc)); Rechnungsperiode = new Zeitraum() { Startdatum = new DateTimeOffset(TimeZoneInfo.ConvertTime((tErdzToken[0]["ab"] ?? tErdzToken[0]["AB"]).Value <DateTime>(), CentralEuropeStandardTime.CENTRAL_EUROPE_STANDARD_TIME, TimeZoneInfo.Utc)), Enddatum = new DateTimeOffset(TimeZoneInfo.ConvertTime((tErdzToken[0]["bis"] ?? tErdzToken[0]["BIS"]).Value <DateTime>(), CentralEuropeStandardTime.CENTRAL_EUROPE_STANDARD_TIME, TimeZoneInfo.Utc)) }; Faelligkeitsdatum = new DateTimeOffset(TimeZoneInfo.ConvertTime((infoToken["faedn"] ?? infoToken["FAEDN"]).Value <DateTime>(), CentralEuropeStandardTime.CENTRAL_EUROPE_STANDARD_TIME, TimeZoneInfo.Utc)); Storno = false; decimal gSteure, gBrutto, vGezahlt, rBrutto; var gNetto = gSteure = _ = vGezahlt = rBrutto = 0.00M; Waehrungscode waehrungscode = (Waehrungscode)Enum.Parse(typeof(Waehrungscode), (infoToken["totalWaer"] ?? infoToken["TOTAL_WAER"]).Value <string>()); Waehrungseinheit waehrungseinheit = (Waehrungseinheit)Enum.Parse(typeof(Waehrungseinheit), (infoToken["totalWaer"] ?? infoToken["TOTAL_WAER"]).Value <string>()); Mengeneinheit mengeneinheit = (Mengeneinheit)Enum.Parse(typeof(Mengeneinheit), (tErdzToken[0]["massbill"] ?? tErdzToken[0]["MASSBILL"]).Value <string>()); List <Rechnungsposition> rpList = new List <Rechnungsposition>(); List <Steuerbetrag> stList = new List <Steuerbetrag>(); Vorausgezahlt = new Betrag() { Waehrung = waehrungscode, Wert = 0 }; foreach (JToken jrp in tErdzToken) { string belzart = (jrp["belzart"] ?? jrp["BELZART"]).ToString(); if (belzart == "IQUANT" || belzart == "ROUND" || belzart == "ROUNDO") { continue; } else { Rechnungsposition rp = new Rechnungsposition(); decimal zeitbezogeneMengeWert = 0; if (belzart == "000001") { rp.Positionstext = "ARBEITSPREIS"; } else if (belzart == "000003") { rp.Positionstext = "PAUSCHALE"; mengeneinheit = Mengeneinheit.JAHR; zeitbezogeneMengeWert = (jrp["preisbtr"] ?? jrp["PREISBTR"]).Value <decimal>(); rp.ZeitbezogeneMenge = new Menge() { Einheit = Mengeneinheit.TAG, Wert = zeitbezogeneMengeWert }; rp.Einzelpreis = new Preis() { Wert = decimal.Parse((jrp["zeitant"] ?? jrp["ZEITANT"]).ToString()), Einheit = waehrungseinheit, Bezugswert = mengeneinheit }; } else if (belzart == "000004") { rp.Positionstext = "VERRECHNUNGSPREIS"; } else if (belzart == "SUBT") { rp.Positionstext = "zuzüglich Mehrwertsteuer 19,000%"; } else if (belzart == "ZHFBP1" || belzart == "CITAX") { rp.Positionstext = belzart; } else { rp.Positionstext = ""; } if ((jrp["massbill"] ?? jrp["MASSBILL"]) != null && !string.IsNullOrWhiteSpace((jrp["massbill"] ?? jrp["MASSBILL"]).Value <string>())) { mengeneinheit = (Mengeneinheit)Enum.Parse(typeof(Mengeneinheit), (jrp["massbill"] ?? jrp["MASSBILL"]).Value <string>()); } else if ((jrp["timbasis"] ?? jrp["TIMBASIS"]) != null && !string.IsNullOrWhiteSpace((jrp["timbasis"] ?? jrp["TIMBASIS"]).Value <string>())) { if ((jrp["timbasis"] ?? jrp["TIMBASIS"]).Value <string>() == "365") { mengeneinheit = Mengeneinheit.JAHR; rp.ZeitbezogeneMenge = new Menge() { Einheit = Mengeneinheit.TAG, Wert = zeitbezogeneMengeWert }; } } else { mengeneinheit = Mengeneinheit.KWH; } if (rp.Einzelpreis == null) { if ((jrp["preisbtr"] ?? jrp["PREISBTR"]) != null) { rp.Einzelpreis = new Preis() { Wert = decimal.Parse((jrp["preisbtr"] ?? jrp["PREISBTR"]).ToString()), Einheit = waehrungseinheit, Bezugswert = mengeneinheit }; } else { rp.Einzelpreis = new Preis() { Wert = 0, Einheit = waehrungseinheit, Bezugswert = mengeneinheit } }; } rp.Positionsnummer = (jrp["belzeile"] ?? jrp["BELZEILE"]).Value <int>(); if ((jrp["bis"] ?? jrp["BIS"]) != null && (jrp["bis"] ?? jrp["BIS"]).Value <string>() != "0000-00-00") { rp.LieferungBis = new DateTimeOffset(TimeZoneInfo.ConvertTime((jrp["bis"] ?? jrp["BIS"]).Value <DateTime>(), CentralEuropeStandardTime.CENTRAL_EUROPE_STANDARD_TIME, TimeZoneInfo.Utc)); } if ((jrp["ab"] ?? jrp["AB"]) != null && (jrp["ab"] ?? jrp["AB"]).Value <string>() != "0000-00-00") { rp.LieferungVon = new DateTimeOffset(TimeZoneInfo.ConvertTime((jrp["ab"] ?? jrp["AB"]).Value <DateTime>(), CentralEuropeStandardTime.CENTRAL_EUROPE_STANDARD_TIME, TimeZoneInfo.Utc)); } if ((jrp["vertrag"] ?? jrp["VERTRAG"]) != null) { #pragma warning disable CS0618 // Type or member is obsolete rp.VertragskontoId = (jrp["vertrag"] ?? jrp["VERTRAG"]).Value <string>(); #pragma warning restore CS0618 // Type or member is obsolete } if ((jrp["iAbrmenge"] ?? jrp["I_ABRMENGE"]) != null) { rp.PositionsMenge = new Menge() { Wert = (jrp["iAbrmenge"] ?? jrp["I_ABRMENGE"]).Value <decimal>(), Einheit = mengeneinheit }; } if ((jrp["nettobtr"] ?? jrp["NETTOBTR"]) != null) { if (belzart != "SUBT" && belzart != "CITAX") { rp.TeilsummeNetto = new Betrag() { Wert = (jrp["nettobtr"] ?? jrp["NETTOBTR"]).Value <decimal>(), Waehrung = waehrungscode }; } else { rp.TeilsummeNetto = new Betrag() { Wert = (jrp["sbasw"] ?? jrp["SBASW"]).Value <decimal>(), Waehrung = waehrungscode }; Steuerbetrag steuerbetrag = new Steuerbetrag() { Basiswert = (jrp["sbasw"] ?? jrp["SBASW"]).Value <decimal>(), Steuerwert = (jrp["sbetw"] ?? jrp["SBETW"]).Value <decimal>(), Waehrung = (Waehrungscode)Enum.Parse(typeof(Waehrungscode), (jrp["twaers"] ?? jrp["TWAERS"]).Value <string>()) }; decimal steuerProzent; if ((jrp["stprz"] ?? jrp["STPRZ"]) != null && !string.IsNullOrWhiteSpace((jrp["stprz"] ?? jrp["STPRZ"]).Value <string>())) { steuerProzent = decimal.Parse((jrp["stprz"] ?? jrp["STPRZ"]).Value <string>().Replace(",", ".").Trim(), CultureInfo.InvariantCulture); } else { steuerProzent = steuerbetrag.Steuerwert / steuerbetrag.Basiswert * 100.0M; } if ((int)steuerProzent == 19) { steuerbetrag.Steuerkennzeichen = Steuerkennzeichen.UST_19; } else if ((int)steuerProzent == 7) { steuerbetrag.Steuerkennzeichen = Steuerkennzeichen.UST_7; } else { throw new NotImplementedException($"Taxrate Internal '{jrp["taxrateInternal"]}' is not mapped."); } rp.TeilsummeSteuer = steuerbetrag; } if ((jrp["nettobtr"] ?? jrp["NETTOBTR"]).Value <decimal>() <= 0) { Vorausgezahlt = new Betrag() { Waehrung = waehrungscode, Wert = (jrp["nettobtr"] ?? jrp["NETTOBTR"]).Value <decimal>() }; } } rp.Zeiteinheit = mengeneinheit; rpList.Add(rp); var be = (jrp["nettobtr"] ?? jrp["NETTOBTR"]); if (be != null) { if (belzart != "SUBT" && belzart != "CITAX") // this will lead to problems in the long run. { gNetto += be.Value <decimal>(); } else { Steuerbetrag steuerbetrag = new Steuerbetrag() { Basiswert = (jrp["sbasw"] ?? jrp["SBASW"]).Value <decimal>(), Steuerwert = (jrp["sbetw"] ?? jrp["SBETW"]).Value <decimal>(), Waehrung = (Waehrungscode)Enum.Parse(typeof(Waehrungscode), (jrp["twaers"] ?? jrp["TWAERS"]).Value <string>()) }; decimal steuerProzent; if ((jrp["stprz"] ?? jrp["STPRZ"]) != null && !string.IsNullOrWhiteSpace((jrp["stprz"] ?? jrp["STPRZ"]).Value <string>())) { steuerProzent = decimal.Parse((jrp["stprz"] ?? jrp["STPRZ"]).Value <string>().Replace(",", ".").Trim(), CultureInfo.InvariantCulture); } else { steuerProzent = Math.Round(steuerbetrag.Steuerwert / steuerbetrag.Basiswert * 100.0M); } if (steuerProzent == 19.0M) { steuerbetrag.Steuerkennzeichen = Steuerkennzeichen.UST_19; } else if (steuerProzent == 7.0M) { steuerbetrag.Steuerkennzeichen = Steuerkennzeichen.UST_7; } else { throw new NotImplementedException($"Taxrate Internal '{jrp["taxrateInternal"] ?? jrp["TAXRATE_INTERNAL"]}' is not mapped."); } stList.Add(steuerbetrag); gSteure += be.Value <decimal>(); } } } } Steuerbetraege = stList; Rechnungspositionen = rpList; gBrutto = gNetto + gSteure; var zZahlen = gBrutto - vGezahlt - rBrutto; Gesamtnetto = new Betrag() { Wert = gNetto, Waehrung = waehrungscode }; Gesamtsteuer = new Betrag() { Wert = gSteure, Waehrung = waehrungscode }; Gesamtbrutto = new Betrag() { Wert = gBrutto, Waehrung = waehrungscode }; Zuzahlen = new Betrag() { Wert = zZahlen, Waehrung = waehrungscode }; Rechnungsersteller = new Geschaeftspartner() { Geschaeftspartnerrolle = new List <Geschaeftspartnerrolle>() { Geschaeftspartnerrolle.LIEFERANT }, Gewerbekennzeichnung = true, Anrede = Anrede.HERR, Name1 = "Mein super Lieferant", Partneradresse = new Adresse() { Strasse = "Max-Plank-Strasse", Hausnummer = "8", Postleitzahl = "90190", Landescode = Landescode.DE, Ort = "Walldorf" } }; Rechnungsempfaenger = new Geschaeftspartner() { Geschaeftspartnerrolle = new List <Geschaeftspartnerrolle>() { Geschaeftspartnerrolle.KUNDE }, Gewerbekennzeichnung = false, Anrede = Anrede.HERR, Name1 = "Lustig", Name2 = "Peter", Partneradresse = new Adresse() { Strasse = "Magnusstraße", Hausnummer = "20", Postleitzahl = "50672", Landescode = Landescode.DE, Ort = "Köln" } }; } }
public BestellungModel ArtikelHinzufuegen(Betrag betrag, string beschreibung, Benutzer benutzer = null) { this.Publish(new ArtikelHinzufuegenCommand(this.Id, betrag, beschreibung, benutzer)); return(this); }
public Artikel(ArtikelId id, Betrag betrag, string beschreibung, Benutzer benutzer = null) : base(id) { this.Betrag = betrag; this.Beschreibung = beschreibung; this.Benutzer = benutzer; }
public void Abbuchen(Betrag betrag, string beschreibung) { this.Publish(new AbbuchenCommand(this.Id, betrag, beschreibung)); }
public void Einzahlen(Betrag betrag, Einzahlungsart art = Einzahlungsart.Bareinzahlung) { this.Publish(new EinzahlenCommand(this.Id, betrag, art)); }
protected TransaktionEvent(Betrag betrag, decimal saldo) { this.Betrag = betrag; this.Saldo = saldo; }
public void Apply(BezahlungBegonnen aggregateEvent) { this.Beschreibung = aggregateEvent.Beschreibung; this.Betrag = aggregateEvent.Betrag; }
private void PublishAbbuchenCommand(KontoId konto, string beschreibung, Betrag betrag) { var command = new AbbuchenCommand(konto, betrag, beschreibung, this.Id); this.Publish(command); }
public Eingezahlt(Betrag betrag, decimal saldo, Einzahlungsart einzahlungsart) : base(betrag, saldo) { this.Einzahlungsart = einzahlungsart; }
public BezahlungBegonnen(string beschreibung, Betrag betrag) { this.Betrag = betrag; this.Beschreibung = beschreibung; }
public Abgebucht(Betrag betrag, decimal saldo, string beschreibung) : base(betrag, saldo) { this.Beschreibung = beschreibung; }