public Rent(Identifier property, DateTime signing, int forMonths, Pecuniam monthlyRent, Pecuniam deposit) : base(signing) { //calc number of days till the first day of the next month if (signing.Day != 1) { _dtOfFirstFullRentDue = signing.Month == 12 ? new DateTime(signing.Year + 1, 1, _dayOfMonthRentDue) : new DateTime(signing.Year, signing.Month + 1, _dayOfMonthRentDue); var tsTillNextMonth = _dtOfFirstFullRentDue - signing; _proRatedAmt = new Pecuniam(Math.Round(monthlyRent.Amount / 30 * (tsTillNextMonth.Days - 1), 2)); } else { _proRatedAmt = Pecuniam.Zero; _dtOfFirstFullRentDue = signing; } Terminus = _dtOfFirstFullRentDue.AddMonths(forMonths); var fullTermAmt = _proRatedAmt + new Pecuniam(monthlyRent.Amount * forMonths); Balance.AddPositiveValue(signing, fullTermAmt, new TransactionNote("Lease Signing")); LeaseTermInMonths = forMonths; Deposit = deposit; MonthlyPmt = monthlyRent; Id = property; DueFrequency = DefaultDueFrequency; FormOfCredit = Enums.FormOfCredit.None; }
public VariableRateLoan(DateTime openedDate, Pecuniam amount) : base(openedDate, amount) { if (amount != null && amount.Amount != 0) { Balance.AddPositiveValue(openedDate, amount.GetAbs(), new TransactionNote("Initial Transaction")); } }
protected LoanBase(DateTime openedDate, Pecuniam amount) : base(openedDate) { if (amount != null && amount.Amount != 0) { Balance.AddPositiveValue(openedDate, amount.GetAbs(), new TransactionNote("Initial Transaction")); } FormOfCredit = Enums.FormOfCredit.Installment; DueFrequency = DefaultDueFrequency; _minPaymentRate = DF_MIN_PMT_RATE; }