Ejemplo n.º 1
0
        public void AddTranche_FixedPrincipal_ApplyNewInterest_Cash()
        {
            ApplicationSettings.GetInstance("").UpdateParameter(OGeneralSettings.ACCOUNTINGPROCESS, OAccountingProcesses.Cash);
            Loan loan = _GetLoan(_GetFixedPrincipalProduct(), 1000, 0.025m, 4, new DateTime(2010, 5, 11));

            loan.Disburse(new DateTime(2010, 5, 11), true, false);
            loan.Repay(1, new DateTime(2010, 6, 11), 275m, false, true);
            loan.Repay(2, new DateTime(2010, 7, 9), 269m, false, true);

            Assert.AreEqual(loan.GetInstallment(0).IsRepaid, true);
            Assert.AreEqual(loan.GetInstallment(1).IsRepaid, true);

            TrancheOptions to = new TrancheOptions
            {
                TrancheDate            = new DateTime(2010, 7, 15),
                CountOfNewInstallments = 4,
                TrancheAmount          = 1000,
                InterestRate           = 0.03m,
                ApplyNewInterestOnOLB  = true
            };

            loan.AddTranche(loan.CalculateTranche(to));

            _AssertInstallment(loan, 2, "2010-08-16", 45m, 500m);
            _AssertInstallment(loan, 3, "2010-09-15", 30m, 500m);
            _AssertInstallment(loan, 4, "2010-10-15", 15m, 250m);
            _AssertInstallment(loan, 5, "2010-11-15", 8m, 250m);
        }
Ejemplo n.º 2
0
        public void AddTranche_Annuity_ApplyNewInterest_Accrual()
        {
            ApplicationSettings.GetInstance("").UpdateParameter(OGeneralSettings.ACCOUNTINGPROCESS, OAccountingProcesses.Accrual);
            Loan loan = _GetLoan(_GetAnnuityProduct(), 1000, 0.025m, 4, new DateTime(2010, 5, 11));

            loan.Disburse(new DateTime(2010, 5, 11), true, false);
            loan.Repay(1, new DateTime(2010, 6, 11), 266m, false, true);
            loan.Repay(2, new DateTime(2010, 7, 9), 266m, false, true);
            Assert.AreEqual(loan.GetInstallment(0).IsRepaid, true);
            Assert.AreEqual(loan.GetInstallment(1).IsRepaid, true);

            TrancheOptions to = new TrancheOptions
            {
                TrancheDate            = new DateTime(2010, 7, 15),
                CountOfNewInstallments = 4,
                TrancheAmount          = 1000,
                InterestRate           = 0.03m,
                ApplyNewInterestOnOLB  = true
            };

            loan.AddTranche(loan.CalculateTranche(to));

            _AssertInstallment(loan, 2, "2010-08-16", 46m, 362m);
            _AssertInstallment(loan, 3, "2010-09-15", 35m, 372m);
            _AssertInstallment(loan, 4, "2010-10-15", 23m, 384m);
            _AssertInstallment(loan, 5, "2010-11-15", 12m, 394m);
        }