Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #4
0
        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);
        }