예제 #1
0
        public EinzahlResult EingezahltenBetragVomZuZahlendenBetragAbziehen(decimal zuZahlenderBetrag, decimal eingezahlterBetrag, Guid vorgangsNummer)
        {
            if (IstBetragAbgezahlt(zuZahlenderBetrag))
            {
                return(EinzahlResult.EinzahlvorgangFehlerhaft(EinzahlError.VorgangBereitsBezahlt));
            }

            decimal restBetrag = zuZahlenderBetrag - eingezahlterBetrag;

            if (restBetrag < 0.0m)
            {
                decimal tatsaechlichZuZahlenderBetrag = eingezahlterBetrag + restBetrag;
                _bankService.GeldEinzahlen(vorgangsNummer, tatsaechlichZuZahlenderBetrag);
                return(EinzahlResult.EinzahlungenErfolgreich(restBetrag));
            }

            _bankService.GeldEinzahlen(vorgangsNummer, eingezahlterBetrag);

            return(EinzahlResult.EinzahlungenErfolgreich(restBetrag));
        }