public decimal GetEingenommeneZinsenImZeitraum(ZeitSpanne zeitSpanne) { IList <AusleihVorgang> alleAusleihvorgaenge = _bankService.GetAlleAusleihvorgaenge() .Where(ausleihVorgang => ausleihVorgang.Datum.Date <= zeitSpanne.EndDatum.Date).OrderBy(ausleihvorgang => ausleihvorgang.Datum).ToList(); if (alleAusleihvorgaenge.Count == 0) { return(0.0m); } decimal eingenommenZinsen = 0m; AusleihVorgang fruehsterAusleihvorgang = alleAusleihvorgaenge.First(); int days = GetDays(zeitSpanne.EndDatum, fruehsterAusleihvorgang.Datum); foreach (AusleihVorgang ausleihVorgang in alleAusleihvorgaenge) { decimal ausgeliehenerBetrag = ausleihVorgang.Betrag; for (int tage = 1; tage <= days; tage++) { decimal zuZahlenderBetragFuerTag = GetBetrag(fruehsterAusleihvorgang.Datum.AddDays(tage), ausgeliehenerBetrag, ausleihVorgang.VorgangsNummer); decimal zinsenFuerTag = DreisatzAnwenden(zuZahlenderBetragFuerTag, ausleihVorgang.ZinsSatz); eingenommenZinsen += zinsenFuerTag; ausgeliehenerBetrag = zuZahlenderBetragFuerTag + zinsenFuerTag; } } return(eingenommenZinsen); }
public void GeldAusleihen(Guid kundenNummer, VerleihKondition verleihKondition, decimal betrag) { KundenAufVerfuegbarkeitPruefen(kundenNummer); AusleihVorgang ausleihVorgang = _factory.CreateAusleihVorgangObject(kundenNummer, verleihKondition, betrag); _ausleihRepository.GeldAnKundenAusleihen(ausleihVorgang); }
private void GeldEinzahlenButton_Click(object sender, RoutedEventArgs e) { AusleihVorgang ausleihVorgang = (AusleihVorgang)AusleihvorgaengeKundeGrid.SelectedItem; if (ausleihVorgang == null) { MessageBox.Show(Properties.Resources.KundeDetailansicht_GeldEinzahlenButton_Click_KeinVorgangAusgewaehlt_Message, Properties.Resources.KundeDetailansicht_GeldEinzahlenButton_Click_KeinVorgangAusgewaehlt_Caption); return; } _kundeDetailPresenter.GeldEinzahlenViewLaden(ausleihVorgang.VorgangsNummer); }
public void GeldEinzahlen(Guid vorgangsNummer, decimal betrag) { AusleihVorgang ausleihVorgang = _bankService.GetAusleihvorgangByVorgangsnummer(vorgangsNummer); decimal zuZahlenderBetrag = _zinsRechner.BetragMitZinsenFuerZeitraumBerechnen(ausleihVorgang.Betrag, ausleihVorgang.ZinsSatz, ausleihVorgang.VorgangsNummer, new ZeitSpanne { StartDatum = ausleihVorgang.Datum, EndDatum = DateTime.Now }); EinzahlResult result = EingezahltenBetragVomZuZahlendenBetragAbziehen(zuZahlenderBetrag, betrag, vorgangsNummer); GeldEingezahlt(result); }