示例#1
0
        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;
        }
示例#2
0
 public VariableRateLoan(DateTime openedDate, Pecuniam amount) : base(openedDate, amount)
 {
     if (amount != null && amount.Amount != 0)
     {
         Balance.AddPositiveValue(openedDate, amount.GetAbs(), new TransactionNote("Initial Transaction"));
     }
 }
示例#3
0
 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;
 }