private double CalculateDynamicAmortization() { double dynintv = Payments.Count(p => p.Abzahlungsbetrag != 0); var ersterOhneAbzahlungsbetrag = new Payment(); if (!Payments.Any(p => p.Abzahlungsbetrag == 0)) { var nullPayment = new Payment(); nullPayment.Abzahlungsbetrag = 0; nullPayment.JährlicherRückfluss = 0; nullPayment.Tilgung = 0; nullPayment.Zins = 0; nullPayment.Überschüsse = 0; nullPayment.Kapitalwert = 0; ersterOhneAbzahlungsbetrag = nullPayment; } else { ersterOhneAbzahlungsbetrag = Payments.First(p => p.Abzahlungsbetrag == 0); } var berechnung = (-ersterOhneAbzahlungsbetrag.Zins - ersterOhneAbzahlungsbetrag.Tilgung) / ersterOhneAbzahlungsbetrag.JährlicherRückfluss; if (dynintv > 0 && (ersterOhneAbzahlungsbetrag.Year - _startjahr < _nutzungsdauerAltNeu || (ersterOhneAbzahlungsbetrag.Year - _startjahr == _nutzungsdauerAltNeu && berechnung <= 1))) { return(dynintv + berechnung); } if (dynintv == 0 && ersterOhneAbzahlungsbetrag.Tilgung < 0) { return(berechnung); } return(double.NaN); }
public List <InvoiceLine> GetCompinedLines() { var lines = Lines.ToList(); if (Payments.Any(x => x.Amount != 0)) { lines.Add(new InvoiceLine { TransCode = "N", Qty = 0, Description = "--------------------" }); } lines.AddRange(Payments.Where(x => x.Amount != 0).Select(x => new InvoiceLine { Description = x.PaymentType.Id, TransCode = "Y", Price = x.Amount, Qty = 0, TaxCode = "3", })); int i = 1; lines.ForEach(x => { x.LineOrder = i++; x.ParentRecordId = RecordId; }); return(lines); }
public PaymentsViewModel() { Refresh(); if (Payments.Any()) { Payment = Payments[0]; } SwitchToAddNewCommand = new RelayCommand(() => Navigator.SwitchView(ViewModelLocator.AddPaymentViewModel)); GoHomeCommand = new RelayCommand(() => Navigator.SwitchView(ViewModelLocator.HomeViewModel)); }
private double CalculateInterneVerzinsung() { if (Payments.Any(p => p.Überschüsse <= 0 && p.JährlicherRückfluss >= 0)) // Fixed crash if investment old > investment new { var betrag = KreditFürInvestition > 0 ? -KreditFürInvestition : 0; var values = new[] { betrag }.Concat(Payments.Select(p => p.JährlicherRückfluss)). ToArray(); try { return(Financial.IRR(ref values)); } catch { return(0); } } return(0); }
public void GivenIHaveMadeTheFollowingPayments(Table table) { Payments = table.CreateSet <TestPayment>().ToList(); Assert.IsTrue(Payments.Any()); }