Пример #1
0
        public void TestCalculateMaximumAmountForExoticProductTypeForInstallment3()
        {
            LoanProduct package = new LoanProduct
                                      {
                                          InstallmentType = new InstallmentType(1, "Monthly", 0, 1),
                                          LoanType = OLoanTypes.Flat,
                                          ChargeInterestWithinGracePeriod = true,
                                          Currency = new Currency { Id = 1 }
                                      };
            package.KeepExpectedInstallment = true;
            package.NonRepaymentPenalties.OLB = 0.01;
            Loan myContract = new Loan(package, 1000, 0.01m, 3, 0, new DateTime(2008, 12, 17), new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User()));
            myContract.Repay(1, new DateTime(2008, 12, 19), 103, true, true);
            myContract.Repay(2, new DateTime(2008, 12, 19), 618, true, true);

            OCurrency amountToRetreived = Math.Round(myContract.CalculateMaximumAmountAuthorizedToRepay(3, new DateTime(2007, 3, 28), false, 0, 0, false, 0, true, true).Value);

            Assert.AreEqual(310m, amountToRetreived.Value);
        }
Пример #2
0
        public void TestCalculateMaximumAmountAuthorizedToRepay()
        {
            ApplicationSettings.GetInstance("").UpdateParameter(OGeneralSettings.ACCOUNTINGPROCESS, OAccountingProcesses.Cash);
            LoanProduct package = new LoanProduct
                                      {
                                          InstallmentType = new InstallmentType(1, "Monthly", 0, 1),
                                          LoanType = OLoanTypes.Flat,
                                          ChargeInterestWithinGracePeriod = true,
                                          Currency = new Currency { Id = 1 }
                                      };
            package.KeepExpectedInstallment = false;
            Loan myContract = new Loan(package, 1000, 0.03m,6,1,new DateTime(2006,1,1), new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User()));
            myContract.BadLoan = true;
            myContract.NonRepaymentPenalties.OLB = 0.003;
            myContract.AnticipatedTotalRepaymentPenalties = 0.01;

            Assert.AreEqual(1030, myContract.CalculateMaximumAmountAuthorizedToRepay(1, new DateTime(2006, 2, 1), true, 0, 0, false, 0, false).Value);
        }