private static void _AssertInstallmentType(InstallmentType selectedInstallmentType,int pId, string pName, int pNbOfDays, int pNbOfMonths) { Assert.AreEqual(pId, selectedInstallmentType.Id); Assert.AreEqual(pName, selectedInstallmentType.Name); Assert.AreEqual(pNbOfDays, selectedInstallmentType.NbOfDays); Assert.AreEqual(pNbOfMonths, selectedInstallmentType.NbOfMonths); }
public static DateTime GetLastMaturity(DateTime date, InstallmentType periodicity, int numberPeriods) { for (int i = 0; i < numberPeriods; i++) { date = date.AddMonths(-periodicity.NbOfMonths).AddDays(-periodicity.NbOfDays); } return date; }
public override bool Equals(object obj) { InstallmentType it = obj as InstallmentType; if (null == it) { return(false); } return(it.Id == Id); }
public void DeleteInstallmentType(InstallmentType installmentType) { const string q = @"DELETE FROM [InstallmentTypes] WHERE id = @id"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { c.AddParam("@id", installmentType.Id); c.ExecuteNonQuery(); } }
public int AddInstallmentType(InstallmentType installmentType) { const string q = @"INSERT INTO [InstallmentTypes]([name], [nb_of_days], [nb_of_months]) VALUES(@name, @days, @months) SELECT SCOPE_IDENTITY()"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { SetInstallmentType(c, installmentType); return int.Parse(c.ExecuteScalar().ToString()); } }
public void EditInstallmentType(InstallmentType installmentType) { const string q = @"UPDATE [InstallmentTypes] SET [name] = @name, [nb_of_days] = @days, [nb_of_months] = @months WHERE id = @id"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { SetInstallmentType(c, installmentType); c.AddParam("@id", installmentType.Id); c.ExecuteNonQuery(); } }
public InstallmentType AddBiWeeklyInstallmentType() { InstallmentType biWeekly = new InstallmentType(); biWeekly.Name = "Bi-Weekly"; biWeekly.NbOfDays = 14; biWeekly.NbOfMonths = 0; string sqlText = "INSERT INTO InstallmentTypes (name,nb_of_days,nb_of_months) VALUES ('" + biWeekly.Name + "'," + biWeekly.NbOfDays + "," + biWeekly.NbOfMonths + ") SELECT SCOPE_IDENTITY()"; OpenCbsCommand insert = new OpenCbsCommand(sqlText, SqlConnection); biWeekly.Id = int.Parse(insert.ExecuteScalar().ToString()); return biWeekly; }
private void ModifyInstallmentTypes(Action action, InstallmentType installmentType) { try { switch (action) { case Action.Add: ServicesProvider.GetInstance().GetProductServices().AddInstallmentType(installmentType); break; case Action.Edit: ServicesProvider.GetInstance().GetProductServices().EditInstallmentType(installmentType); break; case Action.Delete: ServicesProvider.GetInstance().GetProductServices().DeleteInstallmentType(installmentType); break; } LoadInstallmentTypes(); } catch (Exception ex) { new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } }
public void SetUp() { addDataForTesting.DeleteInstallments(); addDataForTesting.DeleteCreditContract(); addDataForTesting.DeletedProject(); addDataForTesting.DeleteInstallmentTypes(); addDataForTesting.DeleteTiers(); addDataForTesting.DeleteAllUser(); addDataForTesting.AddGenericFundingLine(); collateral = addDataForTesting.AddCollateral(); biWeekly = addDataForTesting.AddBiWeeklyInstallmentType(); package.Id = addDataForTesting.AddGenericPackage(); package.Name = "Package"; user.Id = addDataForTesting.AddUserWithIntermediaryAttributs(); //addDataForTesting.AddGenericFundingLine(); tiers.Id = addDataForTesting.AddGenericTiersIntoDatabase(OClientTypes.Group); tiers.LoanCycle = 1; _project = new Project(); _project.ProjectStatus = OProjectStatus.Refused; _project.Name = "NotSet"; _project.Code = "NotSet"; _project.Aim = "NotSet"; _project.BeginDate = TimeProvider.Today; _project.Id = projectManager.Add(_project, tiers.Id, null); //fundingLine = new FundingLine("AFD130",false); credit = new Loan(new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisioningTable.GetInstance(new User())); credit.LoanOfficer = user; credit.BranchCode = "DU"; credit.CreationDate = DateTime.Today.AddDays(-1); credit.StartDate = DateTime.Today; credit.CloseDate = DateTime.Today.AddDays(1); credit.Closed = true; credit.Rural = true; credit.Product = package; credit.Amount = 1000m; credit.InterestRate = 3; credit.InstallmentType = biWeekly; credit.NbOfInstallments = 2; credit.NonRepaymentPenalties.InitialAmount = 2.5; credit.AnticipatedRepaymentPenalties = 1.2; credit.Disbursed = false; credit.LoanOfficer = user; credit.FundingLine = new FundingLine { Name = "AFD130" }; credit.EntryFees = 2.05; credit.WriteOff = false; credit.Rescheduled = false; credit.BadLoan = false; credit.AddInstallment(installment1); credit.AddInstallment(installment2); }
private void buttonAdd_Click(object sender, EventArgs e) { if (textBoxName.Text.Length > 0 && (numericUpDownMonths.Value > 0 || numericUpDownDays.Value > 0)) { InstallmentType type = new InstallmentType(_name, _nbOfDays, _nbOfMonths); ModifyInstallmentTypes(Action.Add, type); } }
public void TestUpdateSavingBookProduct() { Assert.Ignore(); // Ru55 SavingsBookProduct savingsProduct = new SavingsBookProduct { Name = "Good savings account", Code = "P123", ClientType = OClientTypes.All, InitialAmountMin = 100, InitialAmountMax = 200, DepositMin = 250, DepositMax = 400, WithdrawingMin = 400, WithdrawingMax = 450, TransferMin = 100, TransferMax = 250, InterestRateMin = 0.12, InterestRateMax = 0.20, BalanceMin = 1000, BalanceMax = 2000, InterestBase = OSavingInterestBase.Daily, InterestFrequency = OSavingInterestFrequency.EndOfYear, EntryFeesMin = 10, EntryFeesMax = 20, WithdrawFeesType = OSavingsFeesType.Flat, FlatWithdrawFees = 5, TransferFeesType = OSavingsFeesType.Flat, FlatTransferFees = 5, Currency = new Currency { Id = 1 } }; InstallmentType managementFeeFreq = new InstallmentType { Name = "Weekly", NbOfDays = 7, NbOfMonths = 0, Id = 1 }; savingsProduct.ManagementFeeFreq = managementFeeFreq; InstallmentType agioFeeFreq = new InstallmentType { Name = "Daily", NbOfDays = 1, NbOfMonths = 0, Id = 2 }; savingsProduct.AgioFeesFreq = agioFeeFreq; _savingProductManager = (SavingProductManager)container["SavingProductManager"]; _savingProductManager.Add(savingsProduct); SavingsBookProduct loadedProduct = _savingProductManager.SelectSavingsBookProduct(savingsProduct.Id); savingsProduct.Name = "Good updating product"; savingsProduct.ClientType = OClientTypes.Person; savingsProduct.Code = "P125"; savingsProduct.InitialAmountMin = 200; savingsProduct.InitialAmountMax = 400; savingsProduct.DepositMin = 500; savingsProduct.DepositMax = 800; savingsProduct.WithdrawingMin = 800; savingsProduct.WithdrawingMax = 900; savingsProduct.TransferMin = 300; savingsProduct.TransferMax = 800; savingsProduct.InterestRateMin = 0.24; savingsProduct.InterestRateMax = 0.20; savingsProduct.BalanceMin = 2000; savingsProduct.BalanceMax = 4000; savingsProduct.InterestBase = OSavingInterestBase.Monthly; savingsProduct.InterestFrequency = OSavingInterestFrequency.EndOfMonth; savingsProduct.EntryFees = 15; savingsProduct.EntryFeesMax = null; savingsProduct.EntryFeesMin = null; savingsProduct.CalculAmountBase = OSavingCalculAmountBase.MinimalAmount; savingsProduct.WithdrawFeesType = OSavingsFeesType.Rate; savingsProduct.RateWithdrawFeesMin = 0.01; savingsProduct.RateWithdrawFeesMax = 0.05; savingsProduct.TransferFeesType = OSavingsFeesType.Rate; savingsProduct.RateTransferFeesMin = 0.01; savingsProduct.RateTransferFeesMax = 0.05; savingsProduct.Currency = new Currency { Id = 2 }; _savingProductManager.Update(savingsProduct); loadedProduct = _savingProductManager.SelectSavingsBookProduct(savingsProduct.Id); Assert.AreEqual(savingsProduct.Id, loadedProduct.Id); Assert.AreEqual(savingsProduct.ClientType, loadedProduct.ClientType); Assert.AreEqual(savingsProduct.Name, loadedProduct.Name); Assert.AreEqual(savingsProduct.Code, loadedProduct.Code); Assert.AreEqual(savingsProduct.BalanceMax.Value, loadedProduct.BalanceMax.Value); Assert.AreEqual(savingsProduct.BalanceMin.Value, loadedProduct.BalanceMin.Value); Assert.AreEqual(savingsProduct.InitialAmountMax.Value, loadedProduct.InitialAmountMax.Value); Assert.AreEqual(savingsProduct.InitialAmountMin.Value, loadedProduct.InitialAmountMin.Value); Assert.AreEqual(savingsProduct.DepositMax.Value, loadedProduct.DepositMax.Value); Assert.AreEqual(savingsProduct.DepositMin.Value, loadedProduct.DepositMin.Value); Assert.AreEqual(savingsProduct.WithdrawingMax.Value, loadedProduct.WithdrawingMax.Value); Assert.AreEqual(savingsProduct.WithdrawingMin.Value, loadedProduct.WithdrawingMin.Value); Assert.AreEqual(savingsProduct.TransferMin.Value, loadedProduct.TransferMin.Value); Assert.AreEqual(savingsProduct.TransferMax.Value, loadedProduct.TransferMax.Value); Assert.AreEqual(savingsProduct.InterestRate, loadedProduct.InterestRate); Assert.AreEqual(savingsProduct.InterestRateMax, loadedProduct.InterestRateMax); Assert.AreEqual(savingsProduct.InterestRateMin, loadedProduct.InterestRateMin); Assert.AreEqual(savingsProduct.InterestBase, loadedProduct.InterestBase); Assert.AreEqual(savingsProduct.InterestFrequency, loadedProduct.InterestFrequency); Assert.AreEqual(savingsProduct.CalculAmountBase, loadedProduct.CalculAmountBase); Assert.AreEqual(savingsProduct.EntryFees, loadedProduct.EntryFees); Assert.AreEqual(savingsProduct.EntryFeesMax.HasValue, loadedProduct.EntryFeesMax.HasValue); Assert.AreEqual(savingsProduct.EntryFeesMin.HasValue, loadedProduct.EntryFeesMin.HasValue); Assert.AreEqual(savingsProduct.WithdrawFeesType, loadedProduct.WithdrawFeesType); Assert.AreEqual(false, loadedProduct.FlatWithdrawFees.HasValue); Assert.AreEqual(false, loadedProduct.FlatWithdrawFeesMax.HasValue); Assert.AreEqual(false, loadedProduct.FlatWithdrawFeesMin.HasValue); Assert.AreEqual(savingsProduct.RateWithdrawFees, loadedProduct.RateWithdrawFees); Assert.AreEqual(savingsProduct.RateWithdrawFeesMax, loadedProduct.RateWithdrawFeesMax); Assert.AreEqual(savingsProduct.RateWithdrawFeesMin, loadedProduct.RateWithdrawFeesMin); Assert.AreEqual(savingsProduct.TransferFeesType, loadedProduct.TransferFeesType); Assert.AreEqual(false, loadedProduct.FlatTransferFees.HasValue); Assert.AreEqual(false, loadedProduct.FlatTransferFeesMax.HasValue); Assert.AreEqual(false, loadedProduct.FlatTransferFeesMin.HasValue); Assert.AreEqual(savingsProduct.RateTransferFees, loadedProduct.RateTransferFees); Assert.AreEqual(savingsProduct.RateTransferFeesMax, loadedProduct.RateTransferFeesMax); Assert.AreEqual(savingsProduct.RateTransferFeesMin, loadedProduct.RateTransferFeesMin); Assert.AreEqual(savingsProduct.Currency.Id, loadedProduct.Currency.Id); }
private void buttonEdit_Click(object sender, EventArgs e) { if (listViewInstallmentTypes.SelectedItems.Count > 0) { if (buttonEdit.Text.Equals(GetString("buttonEdit"))) { InstallmentType type = (InstallmentType)listViewInstallmentTypes.SelectedItems[0].Tag; textBoxName.Text = type.Name; numericUpDownMonths.Value = type.NbOfMonths; numericUpDownDays.Value = type.NbOfDays; listViewInstallmentTypes.Enabled = false; buttonExit.Enabled = false; buttonDelete.Enabled = false; buttonAdd.Enabled = false; buttonEdit.Text = GetString("buttonSave"); } else { listViewInstallmentTypes.Enabled = true; buttonExit.Enabled = true; buttonDelete.Enabled = true; buttonAdd.Enabled = true; InstallmentType type = new InstallmentType(((InstallmentType)listViewInstallmentTypes.SelectedItems[0].Tag).Id, _name, _nbOfDays, _nbOfMonths); ModifyInstallmentTypes(Action.Edit, type); textBoxName.Text = numericUpDownMonths.Text = numericUpDownDays.Text = string.Empty; buttonEdit.Text = GetString("buttonEdit"); } } }
public DateTime GetNextMaturity (DateTime currentMaturityDate, InstallmentType periodicity) { return DateCalculationStrategy.GetNextMaturity(currentMaturityDate, periodicity, 1); }
public void TestAddSavingBookProduct() { SavingsBookProduct savingsProduct = new SavingsBookProduct { Name = "Good savings account", Code = "P123", InitialAmountMin = 100, InitialAmountMax = 200, DepositMin = 250, DepositMax = 400, WithdrawingMin = 400, WithdrawingMax = 450, TransferMin = 100, TransferMax = 500, InterestRateMin = 0.12, InterestRateMax = 0.20, BalanceMin = 1000, BalanceMax = 2000, InterestBase = OSavingInterestBase.Daily, InterestFrequency = OSavingInterestFrequency.EndOfYear, EntryFeesMin = 10, EntryFeesMax = 20, WithdrawFeesType = OSavingsFeesType.Flat, FlatWithdrawFeesMin = 1, FlatWithdrawFeesMax = 5, TransferFeesType = OSavingsFeesType.Flat, FlatTransferFeesMin = 1, FlatTransferFeesMax = 5, DepositFeesMin = 1, DepositFeesMax = 5, CloseFeesMin = 2, CloseFeesMax = 7, ManagementFeesMin = 4, ManagementFeesMax = 16, OverdraftFeesMin = 2, OverdraftFeesMax = 6, AgioFeesMin = 1, AgioFeesMax = 4, Currency = new Currency {Id = 1} }; InstallmentType managementFeeFreq = new InstallmentType{Name = "Weekly", NbOfDays = 7, NbOfMonths = 0}; savingsProduct.ManagementFeeFreq = managementFeeFreq; InstallmentType agioFeeFreq = new InstallmentType { Name = "Daily", NbOfDays = 1, NbOfMonths = 0 }; savingsProduct.AgioFeesFreq = agioFeeFreq; _savingProductManager = (SavingProductManager)container["SavingProductManager"]; _savingProductManager.Add(savingsProduct); Assert.Greater(savingsProduct.Id, 0); }
private static void SetInstallmentType(OpenCbsCommand c, InstallmentType pInstallmentType) { c.AddParam("@name", pInstallmentType.Name); c.AddParam("@days", pInstallmentType.NbOfDays); c.AddParam("@months", pInstallmentType.NbOfMonths); }
public void TestNbOfMonthsEqualsToZeroWhenNoSpecifiedValue() { InstallmentType noMonths = new InstallmentType(); Assert.AreEqual(0,noMonths.NbOfMonths); }
private static LoanProduct CreatePackage(string name, double? anticipatedTotalRepaymentPenalties, double? anticipatedTotalRepaymentPenaltiesMin, double? anticipatedTotalRepaymentPenaltiesMax, int? gracePeriod,int? gracePeriodMin,int? gracePeriodMax, decimal? interestRate,decimal? interestRateMin,decimal? interestRateMax, int? nbOfinstallments,int? nbOfinstallmentsMin,int? nbOfinstallmentsMax, List<EntryFee> entryFees, NonRepaymentPenaltiesNullableValues nonRepaymentPenalties, NonRepaymentPenaltiesNullableValues nonRepaymentPenaltiesMin, NonRepaymentPenaltiesNullableValues nonRepaymentPenaltiesMax, InstallmentType type, OCurrency amount, OCurrency amountMin, OCurrency amountMax, ExoticInstallmentsTable product, int? cycleId, List<LoanAmountCycle> amountCycles, List<RateCycle> rateCycles, List<MaturityCycle> maturityCycles, string productCode, List<ProductClientType> productClientTypes, OCurrency amountUnderLoc, OCurrency amountUnderLocMin, OCurrency amountUnderLocMax, double? anticipatedPartialRepaymentPenalties, double? anticipatedPartialRepaymentPenaltiesMin, double? anticipatedPartialRepaymentPenaltiesMax, int? compulsoryAmount, int? compulsoryAmountMin, int? compulsoryAmountMax, Currency currency ) { var package = new LoanProduct(); package.Name = name; package.Amount = amount; package.AmountMin = amountMin; package.AmountMax = amountMax; if (nonRepaymentPenalties!=null) package.NonRepaymentPenalties = new NonRepaymentPenaltiesNullableValues { InitialAmount = nonRepaymentPenalties.InitialAmount, OLB = nonRepaymentPenalties.OLB, OverDueInterest = nonRepaymentPenalties.OverDueInterest, OverDuePrincipal = nonRepaymentPenalties.OverDuePrincipal }; else if (nonRepaymentPenaltiesMin!=null && nonRepaymentPenaltiesMax!=null) { package.NonRepaymentPenaltiesMin = new NonRepaymentPenaltiesNullableValues { InitialAmount = nonRepaymentPenaltiesMin.InitialAmount, OLB = nonRepaymentPenaltiesMin.OLB, OverDueInterest = nonRepaymentPenaltiesMin.OverDueInterest, OverDuePrincipal = nonRepaymentPenaltiesMin.OverDuePrincipal }; package.NonRepaymentPenaltiesMax = new NonRepaymentPenaltiesNullableValues { InitialAmount = nonRepaymentPenaltiesMax.InitialAmount, OLB = nonRepaymentPenaltiesMax.OLB, OverDueInterest = nonRepaymentPenaltiesMax.OverDueInterest, OverDuePrincipal = nonRepaymentPenaltiesMax.OverDuePrincipal }; } package.AnticipatedTotalRepaymentPenalties = anticipatedTotalRepaymentPenalties; package.AnticipatedTotalRepaymentPenaltiesMin = anticipatedTotalRepaymentPenaltiesMin; package.AnticipatedTotalRepaymentPenaltiesMax = anticipatedTotalRepaymentPenaltiesMax; package.AnticipatedPartialRepaymentPenalties = anticipatedPartialRepaymentPenalties; package.AnticipatedPartialRepaymentPenaltiesMin = anticipatedPartialRepaymentPenaltiesMax; package.AnticipatedPartialRepaymentPenaltiesMax = anticipatedPartialRepaymentPenaltiesMin; package.GracePeriod = gracePeriod; package.GracePeriodMin = gracePeriodMin; package.GracePeriodMax = gracePeriodMax; package.InterestRate = interestRate; package.InterestRateMin = interestRateMin; package.InterestRateMax = interestRateMax; package.InstallmentType = type; package.ExoticProduct = product; package.CycleId = cycleId; package.LoanAmountCycleParams = amountCycles; package.MaturityCycleParams = maturityCycles; package.RateCycleParams = rateCycles; package.Code = productCode; package.AmountUnderLoc = amountUnderLoc; package.AmountUnderLocMin = amountUnderLocMin; package.AmountUnderLocMax = amountUnderLocMax; package.Currency = currency; package.CompulsoryAmount = compulsoryAmount; package.CompulsoryAmountMin = compulsoryAmountMin; package.CompulsoryAmountMax = compulsoryAmountMax; package.FundingLine = null; package.NbOfInstallments = nbOfinstallments; package.NbOfInstallmentsMin = nbOfinstallmentsMin; package.NbOfInstallmentsMax = nbOfinstallmentsMax; package.ProductClientTypes = productClientTypes; package.EntryFees = entryFees; return package; }
public void SetUp() { _monthly = new InstallmentType(); _monthly.Id = 1; _monthly.Name = "Monthly"; _monthly.NbOfMonths = 1; _biWeekly = new InstallmentType(); _biWeekly.Id = 2; _biWeekly.Name = "bi-weekly"; _biWeekly.NbOfDays = 14; mockPackageManagement = new DynamicMock(typeof(LoanProductManager)); mockInstallmentTypeManagement = new DynamicMock(typeof(InstallmentTypeManager)); //mockFundingLineService = new DynamicMock(typeof(FundingLineManager)); InitScript(); }
public Loan(LoanProduct pAckage, OCurrency pAmount, decimal pInterestRate, int pNbOfInstallments, int pGracePeriod, DateTime pStartDate, DayOfWeek? meetingDay, User pUser, ApplicationSettings pGeneralSettings, NonWorkingDateSingleton pNwds, ProvisionTable pPt, ChartOfAccounts pChartOfAccounts) { _user = pUser; _generalSettings = pGeneralSettings; _nwdS = pNwds; Product = pAckage; NonRepaymentPenalties = new NonRepaymentPenalties(); _events = new EventStock(); _guarantors = new List<Guarantor>(); _collaterals = new List<ContractCollateral>(); _installmentType = pAckage.InstallmentType; _amount = pAmount; _interestRate = pInterestRate; _nbOfInstallments = pNbOfInstallments; GracePeriod = pGracePeriod; CreationDate = pStartDate; _startDate = pStartDate; _firstInstallmentDate = CalculateInstallmentDate(pStartDate, 1); if (meetingDay.HasValue) _firstInstallmentDate = GetMeetingDate(_firstInstallmentDate, meetingDay); _alignAlignDisbursementDate = CalculateAlignDisbursementDate(_firstInstallmentDate); //with this constructor, installment are directly calculated when a new CreditContract is instanciated _installmentList = CalculateInstallments(true); CalculateStartDates(); }
private void InitializeComboBoxInstallmentType() { comboBoxInstallmentType.Items.Clear(); List<InstallmentType> installmentTypeList = ServicesProvider.GetInstance().GetProductServices().FindAllInstallmentTypes(); if (installmentTypeList != null) { foreach (InstallmentType installmentType in installmentTypeList) { comboBoxInstallmentType.Items.Add(installmentType); } } _selectInstallmentType = new InstallmentType { Name = MultiLanguageStrings.GetString( Ressource.FrmAddLoanProduct, "messageBoxDefaultInstallmentType.Text") }; comboBoxInstallmentType.Items.Add(_selectInstallmentType); comboBoxInstallmentType.SelectedItem = _selectInstallmentType; }
private void InitializeComboBoxInstallmentType() { comboBoxInstallmentType.Items.Clear(); var allTypes = new InstallmentType { Id = 0, Name = GetString("allInstallmentTypes") }; comboBoxInstallmentType.Items.Add(allTypes); var installmentTypeList = ServicesProvider.GetInstance().GetProductServices().FindAllInstallmentTypes(); if (installmentTypeList != null) { foreach (InstallmentType installmentType in installmentTypeList) { comboBoxInstallmentType.Items.Add(installmentType); } } comboBoxInstallmentType.SelectedIndex = 0; }
public void TestSearchContractInDatabaseWithClientNameSetWhenClientIsPerson() { ApplicationSettings dataParam = ApplicationSettings.GetInstance(""); dataParam.DeleteAllParameters(); dataParam.AddParameter(OGeneralSettings.LOANOFFICERPORTFOLIOFILTER, false); dataParam.AddParameter(OGeneralSettings.ACCOUNTINGPROCESS, OAccountingProcesses.Cash); dataParam.AddParameter(OGeneralSettings.USECENTS, true); addDataForTesting.DeleteInstallments(); addDataForTesting.DeleteCreditContract(); addDataForTesting.DeletedProject(); addDataForTesting.DeleteInstallmentTypes(); addDataForTesting.DeleteTiers(); addDataForTesting.DeleteAllUser(); biWeekly = addDataForTesting.AddBiWeeklyInstallmentType(); package.Id = addDataForTesting.AddGenericPackage(); user.Id = addDataForTesting.AddUserWithIntermediaryAttributs(); addDataForTesting.AddGenericFundingLine(); credit.InstallmentType = biWeekly; credit.Product = package; credit.LoanOfficer = user; Person person = new Person(); person.Id = addDataForTesting.AddGenericTiersIntoDatabase(OClientTypes.Person); _project.Id = projectManager.Add(_project, person.Id, null); FundingLine fund = new FundingLine(); fund.Purpose = "Microsoft financement"; fund.Name = "AFD130"; fund.Deleted = false; fund.StartDate = DateTime.Now; fund.EndDate = DateTime.Now; fund.Currency = new Currency { Id = 1 }; fundingLineManager.AddFundingLine(fund, null); credit.FundingLine = fund; creditManagement.AddCredit(credit, _project.Id, null); List<CreditSearchResult> ds = creditManagement.SearchCreditInDatabase(1, "Nico"); Assert.AreEqual(1, ds.Count); Assert.AreEqual("Nicolas BARON", ds[0].ClientName); }
public void DeleteInstallmentType(InstallmentType pInstallmentType) { if (_installmentTypeManager.NumberOfLinksToInstallmentType(pInstallmentType) > 0) throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.InstallmentTypeValuesAreUsed); _installmentTypeManager.DeleteInstallmentType(pInstallmentType); }
public void PackageinstallmentTypeCorrectlySetAndRetrieved() { InstallmentType installmentType = new InstallmentType(); installmentType.Name = "Monthly"; package.InstallmentType = installmentType; Assert.IsTrue(package.InstallmentType.Equals(installmentType)); }
private static void CheckValueForPackageInstallmentType(InstallmentType pInstallmentType) { if (pInstallmentType == null) throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.InstallmentTypeIsNull); if (pInstallmentType.Id == 0) throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.InstallmentTypeIsBad); }
public int AddInstallmentType(InstallmentType pInstallmentType) { List<InstallmentType> list = _installmentTypeManager.SelectAllInstallmentTypes(); foreach (InstallmentType type in list) { if(type.Name.ToLower() == pInstallmentType.Name.ToLower()) throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.InstallmentTypeNameAlreadyExist); if(type.NbOfDays == pInstallmentType.NbOfDays && type.NbOfMonths == pInstallmentType.NbOfMonths) throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.InstallmentTypeValuesAlreadyExist); } return _installmentTypeManager.AddInstallmentType(pInstallmentType); }
public void TestUpdateUsedSavingBookProduct() { Assert.Ignore(); // Ru55 SavingsBookProduct savingsProduct = new SavingsBookProduct { Name = "Good savings account", Code = "P123", ClientType = OClientTypes.All, InitialAmountMin = 100, InitialAmountMax = 200, DepositMin = 250, DepositMax = 400, WithdrawingMin = 400, WithdrawingMax = 450, TransferMin = 100, TransferMax = 300, InterestRateMin = 0.12, InterestRateMax = 0.20, BalanceMin = 1000, BalanceMax = 2000, InterestBase = OSavingInterestBase.Daily, InterestFrequency = OSavingInterestFrequency.EndOfYear, EntryFeesMin = 10, EntryFeesMax = 20, WithdrawFeesType = OSavingsFeesType.Rate, RateWithdrawFeesMin = 0.01, RateWithdrawFeesMax = 0.05, TransferFeesType = OSavingsFeesType.Rate, RateTransferFeesMin = 0.01, RateTransferFeesMax = 0.05, Currency = new Currency { Id = 1 } }; InstallmentType managementFeeFreq = new InstallmentType { Name = "Weekly", NbOfDays = 7, NbOfMonths = 0, Id = 1}; savingsProduct.ManagementFeeFreq = managementFeeFreq; InstallmentType agioFeeFreq = new InstallmentType { Name = "Daily", NbOfDays = 1, NbOfMonths = 0, Id = 2 }; savingsProduct.AgioFeesFreq = agioFeeFreq; _savingProductManager = (SavingProductManager)container["SavingProductManager"]; _savingProductManager.Add(savingsProduct); SavingBookContract saving = new SavingBookContract(ApplicationSettings.GetInstance(""), new User() {Id = 1}, new DateTime(2009, 01, 01), savingsProduct, null) { Code = "S/CR/2009/P123/BAR-1", Status = OSavingsStatus.Active, InterestRate = 0.01 }; _savingManager = (SavingManager)container["SavingManager"]; _savingManager.Add(saving, new Person { Id = 6 }); SavingsBookProduct loadedProduct = _savingProductManager.SelectSavingsBookProduct(savingsProduct.Id); savingsProduct.Name = "Good updating product"; savingsProduct.ClientType = OClientTypes.Person; savingsProduct.Code = "P125"; savingsProduct.InitialAmountMin = 200; savingsProduct.InitialAmountMax = 400; savingsProduct.DepositMin = 500; savingsProduct.DepositMax = 800; savingsProduct.WithdrawingMin = 800; savingsProduct.WithdrawingMax = 900; savingsProduct.TransferMin = 500; savingsProduct.TransferMax = 1000; savingsProduct.InterestRateMin = 0.24; savingsProduct.InterestRateMax = 0.20; savingsProduct.BalanceMin = 2000; savingsProduct.BalanceMax = 4000; savingsProduct.InterestBase = OSavingInterestBase.Monthly; savingsProduct.InterestFrequency = OSavingInterestFrequency.EndOfMonth; savingsProduct.EntryFees = 15; savingsProduct.EntryFeesMax = null; savingsProduct.EntryFeesMin = null; savingsProduct.WithdrawFeesType = OSavingsFeesType.Rate; savingsProduct.RateWithdrawFees = 0.03; savingsProduct.RateWithdrawFeesMin = null; savingsProduct.RateWithdrawFeesMax = null; savingsProduct.FlatWithdrawFeesMin = null; savingsProduct.FlatWithdrawFeesMax = null; savingsProduct.TransferFeesType = OSavingsFeesType.Rate; savingsProduct.RateTransferFees = 0.03; savingsProduct.RateTransferFeesMin = null; savingsProduct.RateTransferFeesMax = null; savingsProduct.FlatTransferFeesMin = null; savingsProduct.FlatTransferFeesMax = null; savingsProduct.Currency = new Currency { Id = 2 }; _savingProductManager.Update(savingsProduct); loadedProduct = _savingProductManager.SelectSavingsBookProduct(savingsProduct.Id); Assert.AreEqual(savingsProduct.Id, loadedProduct.Id); Assert.AreEqual(OClientTypes.All, loadedProduct.ClientType); Assert.AreEqual("Good savings account", loadedProduct.Name); Assert.AreEqual("P123", loadedProduct.Code); Assert.AreEqual(savingsProduct.BalanceMax.Value, loadedProduct.BalanceMax.Value); Assert.AreEqual(savingsProduct.BalanceMin.Value, loadedProduct.BalanceMin.Value); Assert.AreEqual(savingsProduct.InitialAmountMax.Value, loadedProduct.InitialAmountMax.Value); Assert.AreEqual(savingsProduct.InitialAmountMin.Value, loadedProduct.InitialAmountMin.Value); Assert.AreEqual(savingsProduct.DepositMax.Value, loadedProduct.DepositMax.Value); Assert.AreEqual(savingsProduct.DepositMin.Value, loadedProduct.DepositMin.Value); Assert.AreEqual(savingsProduct.WithdrawingMax.Value, loadedProduct.WithdrawingMax.Value); Assert.AreEqual(savingsProduct.WithdrawingMin.Value, loadedProduct.WithdrawingMin.Value); Assert.AreEqual(savingsProduct.TransferMin.Value, loadedProduct.TransferMin.Value); Assert.AreEqual(savingsProduct.TransferMax.Value, loadedProduct.TransferMax.Value); Assert.AreEqual(savingsProduct.InterestRate, loadedProduct.InterestRate); Assert.AreEqual(savingsProduct.InterestRateMax, loadedProduct.InterestRateMax); Assert.AreEqual(savingsProduct.InterestRateMin, loadedProduct.InterestRateMin); Assert.AreEqual(OSavingInterestBase.Daily, loadedProduct.InterestBase); Assert.AreEqual(OSavingInterestFrequency.EndOfYear, loadedProduct.InterestFrequency); Assert.AreEqual(savingsProduct.EntryFees, loadedProduct.EntryFees); Assert.AreEqual(savingsProduct.EntryFeesMax.HasValue, loadedProduct.EntryFeesMax.HasValue); Assert.AreEqual(savingsProduct.EntryFeesMin.HasValue, loadedProduct.EntryFeesMin.HasValue); Assert.AreEqual(savingsProduct.WithdrawFeesType, loadedProduct.WithdrawFeesType); Assert.AreEqual(savingsProduct.FlatWithdrawFees.HasValue, loadedProduct.FlatWithdrawFees.HasValue); Assert.AreEqual(savingsProduct.FlatWithdrawFeesMax.HasValue, loadedProduct.FlatWithdrawFeesMax.HasValue); Assert.AreEqual(savingsProduct.FlatWithdrawFeesMin.HasValue, loadedProduct.FlatWithdrawFeesMin.HasValue); Assert.AreEqual(savingsProduct.RateWithdrawFees, loadedProduct.RateWithdrawFees); Assert.AreEqual(savingsProduct.RateWithdrawFeesMax.HasValue, loadedProduct.RateWithdrawFeesMax.HasValue); Assert.AreEqual(savingsProduct.RateWithdrawFeesMin.HasValue, loadedProduct.RateWithdrawFeesMin.HasValue); Assert.AreEqual(savingsProduct.TransferFeesType, loadedProduct.TransferFeesType); Assert.AreEqual(savingsProduct.FlatTransferFees.HasValue, loadedProduct.FlatTransferFees.HasValue); Assert.AreEqual(savingsProduct.FlatTransferFeesMax.HasValue, loadedProduct.FlatTransferFeesMax.HasValue); Assert.AreEqual(savingsProduct.FlatTransferFeesMin.HasValue, loadedProduct.FlatTransferFeesMin.HasValue); Assert.AreEqual(savingsProduct.RateTransferFees, loadedProduct.RateTransferFees); Assert.AreEqual(savingsProduct.RateTransferFeesMax.HasValue, loadedProduct.RateTransferFeesMax.HasValue); Assert.AreEqual(savingsProduct.RateTransferFeesMin.HasValue, loadedProduct.RateTransferFeesMin.HasValue); Assert.AreEqual(1, loadedProduct.Currency.Id); }
public void EditInstallmentType(InstallmentType pInstallmentType) { _installmentTypeManager.EditInstallmentType(pInstallmentType); }
public int NumberOfLinksToInstallmentType(InstallmentType installmentType) { const string q = @"SELECT COUNT(installment_type) FROM ( SELECT installment_type FROM Credit UNION ALL SELECT installment_type FROM dbo.Packages UNION ALL SELECT installment_types_id AS [installment_type] FROM dbo.TermDepositProducts UNION ALL SELECT agio_fees_freq AS [installment_type] FROM dbo.SavingBookProducts UNION ALL SELECT management_fees_freq AS [installment_type] FROM dbo.SavingBookProducts ) AS T WHERE T.installment_type = @id"; using (SqlConnection conn = GetConnection()) using (OpenCbsCommand c = new OpenCbsCommand(q, conn)) { c.AddParam("@id", installmentType.Id); return int.Parse(c.ExecuteScalar().ToString()); } }
private void InitInstallmentType(InstallmentType installmentType) { _installmentTypeComboBox.Items.Clear(); var items = ServicesProvider.GetInstance().GetProductServices().FindAllInstallmentTypes(); var selectedIndex = 0; var i = 0; foreach (var item in items) { _installmentTypeComboBox.Items.Add(item); if (item.Id == installmentType.Id) { selectedIndex = i; } i++; } _installmentTypeComboBox.SelectedIndex = selectedIndex; _installmentTypeComboBox.Enabled = installmentType.Id == 0; if (_credit.InstallmentType == null) { _credit.InstallmentType = (InstallmentType) _installmentTypeComboBox.SelectedItem; } }
public void TestIsThisProductNameAlreadyExist() { SavingsBookProduct savingsProduct = new SavingsBookProduct { Name = "Good savings account", Code = "P123", ClientType = OClientTypes.All, InitialAmountMin = 100, InitialAmountMax = 200, DepositMin = 250, DepositMax = 400, WithdrawingMin = 400, WithdrawingMax = 450, TransferMin = 100, TransferMax = 500, InterestRateMin = 0.12, InterestRateMax = 0.20, BalanceMin = 1000, BalanceMax = 2000, Currency = new Currency { Id = 1 }, InterestBase = OSavingInterestBase.Daily, InterestFrequency = OSavingInterestFrequency.EndOfWeek }; InstallmentType managementFeeFreq = new InstallmentType { Name = "Weekly", NbOfDays = 7, NbOfMonths = 0, Id = 1 }; savingsProduct.ManagementFeeFreq = managementFeeFreq; InstallmentType agioFeeFreq = new InstallmentType { Name = "Daily", NbOfDays = 1, NbOfMonths = 0 }; savingsProduct.AgioFeesFreq = agioFeeFreq; _savingProductManager = (SavingProductManager)container["SavingProductManager"]; Assert.IsTrue(_savingProductManager.IsThisProductNameAlreadyExist("SavingProduct1")); Assert.IsFalse(_savingProductManager.IsThisProductNameAlreadyExist(savingsProduct.Name)); _savingProductManager.Add(savingsProduct); Assert.IsTrue(_savingProductManager.IsThisProductNameAlreadyExist(savingsProduct.Name)); }