public void Setup() { _repaymentService.Settings.Loan = _loan.Copy(); _view.PrincipalMax = _loan.OLB; _view.PaymentMethods = ServicesProvider.GetInstance().GetPaymentMethodServices().GetAllPaymentMethods(); _view.PaymentTypes = new Dictionary <int, string> { { 0, _translationService.Translate("Normal") }, { 1, _translationService.Translate("Early") } }; _view.Title = _loan.Project.Client.Name + " " + _loan.Code; _balanceString = _translationService.Translate("Available balance: "); if (ApplicationSettings.GetInstance(User.CurrentUser.Md5).ShowExtraInterestColumn) { _view.ShowExtraColumn(); } if (!ApplicationSettings.GetInstance(User.CurrentUser.Md5).UseMandatorySavingAccount) { return; } _saving = (from item in _loan.Project.Client.Savings where item.Product.Code == "default" select item) .FirstOrDefault(); if (_saving != null) { _saving = ServicesProvider.GetInstance().GetSavingServices().GetSaving(_saving.Id); } }
public void _compareSavings(ISavingsContract originalSaving, ISavingsContract retrievedSaving) { Assert.AreEqual(originalSaving.Id, retrievedSaving.Id); Assert.AreEqual(originalSaving.InterestRate, retrievedSaving.InterestRate); Assert.AreEqual(originalSaving.Product.Id, retrievedSaving.Product.Id); Assert.AreEqual(originalSaving.GetBalance(), retrievedSaving.GetBalance()); Assert.AreEqual(originalSaving.Code, retrievedSaving.Code); Assert.AreEqual(originalSaving.CreationDate, retrievedSaving.CreationDate); Assert.AreEqual(originalSaving.Status, retrievedSaving.Status); Assert.AreEqual(((SavingBookContract)originalSaving).FlatWithdrawFees.HasValue, ((SavingBookContract)retrievedSaving).FlatWithdrawFees.HasValue); if (((SavingBookContract)originalSaving).FlatWithdrawFees.HasValue) { Assert.AreEqual(((SavingBookContract)originalSaving).FlatWithdrawFees.Value, ((SavingBookContract)retrievedSaving).FlatWithdrawFees.Value); } Assert.AreEqual(((SavingBookContract)originalSaving).RateWithdrawFees.HasValue, ((SavingBookContract)retrievedSaving).RateWithdrawFees.HasValue); if (((SavingBookContract)originalSaving).RateWithdrawFees.HasValue) { Assert.AreEqual(((SavingBookContract)originalSaving).RateWithdrawFees.Value, ((SavingBookContract)retrievedSaving).RateWithdrawFees.Value); } Assert.AreEqual(((SavingBookContract)originalSaving).FlatTransferFees.HasValue, ((SavingBookContract)retrievedSaving).FlatTransferFees.HasValue); if (((SavingBookContract)originalSaving).FlatTransferFees.HasValue) { Assert.AreEqual(((SavingBookContract)originalSaving).FlatTransferFees.Value, ((SavingBookContract)retrievedSaving).FlatTransferFees.Value); } Assert.AreEqual(((SavingBookContract)originalSaving).RateTransferFees.HasValue, ((SavingBookContract)retrievedSaving).RateTransferFees.HasValue); if (((SavingBookContract)originalSaving).RateTransferFees.HasValue) { Assert.AreEqual(((SavingBookContract)originalSaving).RateTransferFees.Value, ((SavingBookContract)retrievedSaving).RateTransferFees.Value); } }
public virtual SavingEvent CreditTransfer(ISavingsContract from, OCurrency amount, DateTime date, string description) { SavingTransferEvent e; bool ib = Branch.Id != from.Branch.Id; // inter-branch if (ib) { e = new SavingCreditInterBranchTransferEvent(); } else { e = new SavingCreditTransferEvent(); } e.Description = ib ? "Inter-branch transfer" : "Transfer"; e.RelatedContractCode = from.Code; e.Amount = amount; e.Fee = 0; e.Date = date; e.User = User.CurrentUser; e.Description = description; e.ProductType = Product.GetType(); e.Target = this; Events.Add(e); return(e); }
public override List <SavingEvent> DebitTransfer(OCurrency pAmount, ISavingsContract pCreditAccount, DateTime pDate, string pDescription, User pUser, bool pIsDesactivateFees) { List <SavingEvent> events = new List <SavingEvent>(); SavingDebitTransferEvent transferEvent = new SavingDebitTransferEvent { Amount = pAmount, Date = pDate, Description = pDescription, User = pUser, Cancelable = false, RelatedContractCode = pCreditAccount.Code, ProductType = typeof(SavingsBookProduct) }; events.Add(transferEvent); Events.Add(transferEvent); if (Status != OSavingsStatus.Closed && !pIsDesactivateFees) { transferEvent.Fee = Product.TransferFeesType == OSavingsFeesType.Flat ? FlatTransferFees : pAmount * RateTransferFees.Value; } return(events); }
public CalculateInterestsStrategy(ISavingsContract pSaving, User pUser, int pWeekEndDay2) { if (((SavingBookContract)pSaving).Product.InterestBase == OSavingInterestBase.Daily) { _ici = new Accrual.Daily(pSaving, pUser); } else if (((SavingBookContract)pSaving).Product.InterestBase == OSavingInterestBase.Monthly) { if (((SavingBookContract)pSaving).Product.CalculAmountBase == OSavingCalculAmountBase.MinimalAmount) { _ici = new Accrual.MinimalAmount.Monthly((SavingBookContract)pSaving, pUser); } else if (((SavingBookContract)pSaving).Product.CalculAmountBase == OSavingCalculAmountBase.Usage) { _ici = new Accrual.MinimalAmount.Monthly((SavingBookContract)pSaving, pUser, true); } } else if (((SavingBookContract)pSaving).Product.InterestBase == OSavingInterestBase.Weekly) { if (((SavingBookContract)pSaving).Product.CalculAmountBase == OSavingCalculAmountBase.MinimalAmount) { _ici = new Accrual.MinimalAmount.Weekly((SavingBookContract)pSaving, pUser, pWeekEndDay2); } } }
public CalculateInterestsStrategy(ISavingsContract pSaving, User pUser, int pWeekEndDay2) { if (pSaving is Saving) { if (((Saving)pSaving).Product.InterestBase == OSavingInterestBase.Daily) _ici = new Accrual.Daily(pSaving, pUser); else if (((Saving)pSaving).Product.InterestBase == OSavingInterestBase.Monthly) { if (((Saving)pSaving).Product.CalculAmountBase == OSavingCalculAmountBase.MinimalAmount) _ici = new Accrual.MinimalAmount.Monthly((Saving)pSaving, pUser); } else if (((Saving)pSaving).Product.InterestBase == OSavingInterestBase.Weekly) { if (((Saving)pSaving).Product.CalculAmountBase == OSavingCalculAmountBase.MinimalAmount) _ici = new Accrual.MinimalAmount.Weekly((Saving)pSaving, pUser, pWeekEndDay2); } } else if (pSaving is SavingDeposit) { if (((SavingDeposit)pSaving).Product.InterestFrequency == OTermDepositInterestFrequency.Daily) _ici = new Accrual.Daily(pSaving, pUser); else if (((SavingDeposit)pSaving).Product.InterestFrequency == OTermDepositInterestFrequency.Maturity) _ici = new Accrual.Maturity((SavingDeposit)pSaving, pUser); } }
public void SavingServicesAccountAtMaturity(ISavingsContract savingContract, DateTime date, User user) { if (savingContract.Rollover == OSavingsRollover.None) { CloseAndTransfer(savingContract, savingContract.TransferAccount, date, user, savingContract.GetBalance(date), true, Teller.CurrentTeller); } if (savingContract.Rollover == OSavingsRollover.Principal) { DateTime lastMaturity = DateCalculationStrategy.GetLastMaturity(date, savingContract.Product.Periodicity, savingContract.NumberOfPeriods); OCurrency interests = savingContract.Events.Where( item => item is SavingInterestsPostingEvent && item.Date.Date > lastMaturity && item.Date.Date <= date ). Sum(item => item.Amount.Value); // TODO: replace the fee of zero with a meaningful value Transfer(TransferAccount, interests, 0, date, "Transfer interests"); } }
public SavingsOperationForm(ISavingsContract pSaving, OSavingsOperation pDirections) { InitializeComponent(); _bookingDirection = pDirections; _saving = pSaving; SwitchBookingDirection(); Initialize(); }
public Account GetAccountByNumber(string pNumber, int pCurrencyId, ISavingsContract pSavingsContract, OBookingDirections pBookingDirection) { if (_accountingRules != null) { var specificAccount = _accountingRules.GetSpecificAccount(pNumber, pSavingsContract, pBookingDirection); if (specificAccount != null) pNumber = specificAccount.Number; } return _getAccountByNumber(pNumber, pCurrencyId); }
public SavingsOperationForm(ISavingsContract pSaving, OSavingsOperation pDirections) { InitializeComponent(); _bookingDirection = pDirections; _saving = pSaving; SwitchBookingDirection(); Initialize(); dtpDate.Format = DateTimePickerFormat.Custom; dtpDate.CustomFormat = ApplicationSettings.GetInstance("").SHORT_DATE_FORMAT; }
public Account GetAccountByNumber(string pNumber, int pCurrencyId, ISavingsContract pSavingsContract, OBookingDirections pBookingDirection) { //if (_accountingRules != null) //{ // var specificAccount = _accountingRules.GetSpecificAccount(pNumber, pSavingsContract, pBookingDirection); // if (specificAccount != null) // pNumber = specificAccount.Number; //} return(_getAccountByNumber(pNumber, pCurrencyId)); }
public PostingInterestsStrategy(ISavingsContract pSaving, User pUser, int pWeekEndDay2) { if (((SavingBookContract)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfYear) _ipi = new Posting.EndOfYear(pSaving, pUser); else if (((SavingBookContract)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfMonth) _ipi = new Posting.EndOfMonth((SavingBookContract)pSaving, pUser); else if (((SavingBookContract)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfWeek) _ipi = new Posting.EndOfWeek((SavingBookContract)pSaving, pUser, pWeekEndDay2); else if (((SavingBookContract)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfDay || ((SavingBookContract)pSaving).UseTermDeposit ) _ipi = new Posting.PostingMethods((SavingBookContract)pSaving, pUser); }
public virtual List <SavingEvent> Transfer(ISavingsContract to, OCurrency amount, OCurrency fee, DateTime date, string description) { List <SavingEvent> events = new List <SavingEvent>(3); events.Add(DebitTransfer(to, amount, fee, date, description)); events.Add(to.CreditTransfer(this, amount, date, description)); if (GetBalance() < 0) { SavingOverdraftFeeEvent e = ChargeOverdraftFee(date, User.CurrentUser); events.Add(e); } return(events); }
public CalculateInterestsStrategy(ISavingsContract pSaving, User pUser, int pWeekEndDay2) { if (((SavingBookContract)pSaving).Product.InterestBase == OSavingInterestBase.Daily) _ici = new Accrual.Daily(pSaving, pUser); else if (((SavingBookContract)pSaving).Product.InterestBase == OSavingInterestBase.Monthly) { if (((SavingBookContract)pSaving).Product.CalculAmountBase == OSavingCalculAmountBase.MinimalAmount) _ici = new Accrual.MinimalAmount.Monthly((SavingBookContract)pSaving, pUser); } else if (((SavingBookContract)pSaving).Product.InterestBase == OSavingInterestBase.Weekly) { if (((SavingBookContract)pSaving).Product.CalculAmountBase == OSavingCalculAmountBase.MinimalAmount) _ici = new Accrual.MinimalAmount.Weekly((SavingBookContract)pSaving, pUser, pWeekEndDay2); } }
private void btSearchContract_Click(object sender, EventArgs e) { SearchCreditContractForm searchCreditContractForm = SearchCreditContractForm.GetInstance(null); searchCreditContractForm.BringToFront(); searchCreditContractForm.WindowState = FormWindowState.Normal; if (searchCreditContractForm.ShowForSearchSavingsContractForTransfer("") == DialogResult.OK) { SavingSearchResult saving = searchCreditContractForm.SelectedSavingContract; lblClientName.Text = saving.ClientName; tbTargetAccount.Text = saving.ContractCode; _savingTarget = ServicesProvider.GetInstance().GetAccountServices().GetSaving(saving.Id); lblInterBranch.Visible = !IsNormalTransfer(); LoadTransferFee(); } }
public PostingInterestsStrategy(ISavingsContract pSaving, User pUser, int pWeekEndDay2) { if (pSaving is Saving) { if (((Saving)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfYear) _ipi = new Posting.EndOfYear(pSaving, pUser); else if (((Saving)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfMonth) _ipi = new Posting.EndOfMonth((Saving)pSaving, pUser); else if (((Saving)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfWeek) _ipi = new Posting.EndOfWeek((Saving)pSaving, pUser, pWeekEndDay2); else if (((Saving)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfDay) _ipi = new Posting.EndOfDay((Saving)pSaving, pUser); } else if (pSaving is SavingDeposit) { _ipi = new Posting.Maturity((SavingDeposit)pSaving, pUser); } }
public SavingCreditTransferEvent CreditTransfer(OCurrency pAmount, ISavingsContract pDebitAccount, DateTime pDate, string pDescription, User pUser) { SavingCreditTransferEvent transferEvent = new SavingCreditTransferEvent { Amount = pAmount, Date = pDate, Description = pDescription, User = pUser, Fee = 0, Cancelable = false, RelatedContractCode = pDebitAccount.Code, ProductType = Product.GetType(), ContracId = Id }; Events.Add(transferEvent); return(transferEvent); }
public virtual List <SavingEvent> DebitTransfer(OCurrency pAmount, ISavingsContract pCreditAccount, DateTime pDate, string pDescription, User pUser, bool pIsDesactivateFees) { List <SavingEvent> events = new List <SavingEvent>(); SavingDebitTransferEvent transferEvent = new SavingDebitTransferEvent { Amount = pAmount, Date = pDate, Description = pDescription, User = pUser, Cancelable = false, RelatedContractCode = pCreditAccount.Code, ProductType = Product.GetType(), ContracId = Id }; events.Add(transferEvent); Events.Add(transferEvent); return(events); }
public PostingInterestsStrategy(ISavingsContract pSaving, User pUser, int pWeekEndDay2) { if (((SavingBookContract)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfYear) { _ipi = new Posting.EndOfYear(pSaving, pUser); } else if (((SavingBookContract)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfMonth) { _ipi = new Posting.EndOfMonth((SavingBookContract)pSaving, pUser); } else if (((SavingBookContract)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfWeek) { _ipi = new Posting.EndOfWeek((SavingBookContract)pSaving, pUser, pWeekEndDay2); } else if (((SavingBookContract)pSaving).Product.InterestFrequency == OSavingInterestFrequency.EndOfDay || ((SavingBookContract)pSaving).UseTermDeposit ) { _ipi = new Posting.PostingMethods((SavingBookContract)pSaving, pUser); } }
public void Setup() { _repaymentService.Settings.Loan = _loan.Copy(); _view.PrincipalMax = _loan.OLB; _view.RepaymentScripts = _repaymentService.GetAllRepaymentScriptsWithTypes(); _view.PaymentMethods = ServicesProvider.GetInstance().GetPaymentMethodServices().GetAllPaymentMethods(); _view.Title = _loan.Project.Client.Name + " " + _loan.Code; _repaymentService.Settings.ScriptName = _view.SelectedScript; _balanceString = _translationService.Translate("Available balance: "); if (!ApplicationSettings.GetInstance(User.CurrentUser.Md5).UseMandatorySavingAccount) { return; } _saving = (from item in _loan.Project.Client.Savings where item.Product.Code == "default" select item) .FirstOrDefault(); if (_saving != null) { _saving = ServicesProvider.GetInstance().GetSavingServices().GetSaving(_saving.Id); } }
public int SendNotification(SavingEvent savingEvent, ISavingsContract savingsContract, string savingsOperation) { if (person == null) { throw new ArgumentNullException("client"); } var messageTemplate = GetLocalizedActiveMessageTemplate("Client.AccountOperationNotification"); if (messageTemplate == null) { return(0); } //tokens var tokens = new List <Token>(); MessageTokenProvider.AddPersonTokens(tokens, person); MessageTokenProvider.AddSavingEventTokens(tokens, savingEvent, savingsContract); //Add messaging operation code tokens.Add(new Token("Messaging.OperationCode", savingsOperation)); tokens.Add(new Token("Messaging.CurrentDate", DateTime.Now.ToShortDateString())); tokens.Add(new Token("Messaging.CurrentTime", DateTime.Now.ToShortTimeString())); //event notification EventPublisher.MessageTokensAdded(messageTemplate, tokens); var emailAccount = GetEmailAccountOfMessageTemplate(messageTemplate); var toEmail = person.Email; var toName = person.FullName; return(SendNotification(messageTemplate, emailAccount, tokens, toEmail, toName, null, null, savingsContract)); }
private void btnOK_Click(object sender, EventArgs e) { foreach (ListViewItem item in lvContracts.Items) { if (!item.Checked) { continue; } if (item == _itemTotal) { continue; } ISavingsContract saving = item.Tag as ISavingsContract; OCurrency amount = (OCurrency)item.SubItems[idxAmount].Tag; // ServicesProvider.GetInstance().GetSavingServices().Deposit(saving, TimeProvider.Today, amount, // "", User.CurrentUser, false, OPaymentMethods.Cash, null, null); ServicesProvider.GetInstance().GetSavingServices().Deposit(saving, TimeProvider.Now, amount, "", User.CurrentUser, false, OSavingsMethods.Cash, null, null); } }
private void DisplaySavingLoans(ISavingsContract saving) { if (saving is SavingBookContract) { if (((SavingBookContract)saving).Loans != null) { if (((SavingBookContract)saving).Loans.Count > 0) { olvColumnStatus.AspectToStringConverter = delegate(object value) { if (value.ToString().Length > 0) { string status = GetString(value.ToString() + ".Text"); return status; } return null; }; olvColumnAmount.AspectToStringConverter = delegate(object value) { if (value.ToString().Length > 0) { OCurrency amount = (OCurrency)value; return amount.GetFormatedValue(true); } return null; }; olvColumnStratDate.AspectToStringConverter = delegate(object value) { if (value.ToString().Length > 0) { return ((DateTime)value). ToShortDateString(); } return null; }; olvColumnCreationDate.AspectToStringConverter = delegate(object value) { if (value.ToString().Length > 0) { return ((DateTime)value). ToShortDateString(); } return null; }; olvColumnCloseDate.AspectToStringConverter = delegate(object value) { if (value.ToString().Length > 0) { return ((DateTime)value). ToShortDateString(); } return null; }; olvLoans.SetObjects(((SavingBookContract)saving).Loans); tabControlSavingsDetails.SelectedIndex = 0; return; } } } //tabcSavingsDettails.TabPages.Remove(tabPageLoans); }
private void DisplaySaving(ISavingsContract saving) { saving = SavingServices.GetSaving(saving.Id); ((SavingBookContract)saving).Loans = SavingServices.SelectLoansBySavingsId(saving.Id); if (!tabControlPerson.TabPages.Contains(tabPageContracts)) { tabControlPerson.TabPages.Add(tabPageContracts); panelLoansContracts.Controls.Add(pnlLoans); } tabControlPerson.TabPages.Remove(tabPageSavingDetails); tabControlPerson.TabPages.Add(tabPageSavingDetails); _saving = (SavingBookContract)saving; DisplaySavingProduct(_saving.Product); InitializeTabPageTermDeposit(); nudDownInterestRate.Enabled = false; nudDownInitialAmount.Enabled = false; nudWithdrawFees.Enabled = false; nudEntryFees.Enabled = false; nudTransferFees.Enabled = false; nudIbtFee.Enabled = false; nudDepositFees.Enabled = false; nudChequeDepositFees.Enabled = false; nudCloseFees.Enabled = false; nudManagementFees.Enabled = false; nudOverdraftFees.Enabled = false; nudAgioFees.Enabled = false; nudReopenFees.Enabled = false; btSavingsUpdate.Visible = false; nudNumberOfPeriods.Enabled = false; btSearchContract2.Enabled = false; cmbRollover2.Enabled = false; cmbSavingsOfficer.Enabled = false; cmbSavingsOfficer.Items.Add(User.CurrentUser); foreach (User subordinate in User.CurrentUser.Subordinates) { cmbSavingsOfficer.Items.Add(subordinate); } int index = -1; for (int i = 0; i < cmbSavingsOfficer.Items.Count; i++) { User u = (User)cmbSavingsOfficer.Items[i]; if (u.Id != saving.SavingsOfficer.Id) continue; index = i; break; } cmbSavingsOfficer.SelectedIndex = index; tabControlPerson.SelectedTab = tabPageSavingDetails; Text = string.Format("{0} - {1}", _title, _saving.Code); groupBoxSaving.Name += string.Format(" {0}", _saving.Product.Name); groupBoxSaving.Text = string.Format("{0} : {1}", MultiLanguageStrings.GetString(Ressource.ClientForm, _saving is SavingBookContract ? "SavingsBook.Text" : "CompulsorySavings.Text"), MultiLanguageStrings.GetString(Ressource.ClientForm, "Savings" + _saving.Status + ".Text")); switch (_saving.Status) { case OSavingsStatus.Pending: { groupBoxSaving.ForeColor = Color.FromArgb(246, 137, 56); pnlSavingsButtons.Enabled = false; buttonFirstDeposit.Visible = true; buttonCloseSaving.Visible = false; buttonReopenSaving.Visible = false; break; } case OSavingsStatus.Active: { groupBoxSaving.ForeColor = Color.FromArgb(61, 153, 57); pnlSavingsButtons.Enabled = true; buttonFirstDeposit.Visible = false; buttonCloseSaving.Visible = true; buttonReopenSaving.Visible = false; break; } case OSavingsStatus.Closed: { groupBoxSaving.ForeColor = Color.Red; pnlSavingsButtons.Enabled = true; buttonSavingsOperations.Enabled = false; buttonFirstDeposit.Visible = false; buttonCloseSaving.Visible = false; buttonReopenSaving.Visible = true; break; } } tBSavingCode.Text = _saving.Code; DisplaySavingEvent(_saving); DisplaySavingLoans(_saving); buttonSaveSaving.Visible = false; InitSavingsBookPrintButton(); if (saving != null && saving.Id > 0) { //InitializeCustomizableFields(OCustomizableFieldEntities.Savings, saving.Id, true); //InitialDoclistSaving(); } else { //InitializeCustomizableFields(OCustomizableFieldEntities.Savings, null, false); //dlcSaving.Clear(); } LoadSavingsExtensions(); }
public virtual List<SavingEvent> DebitTransfer(OCurrency pAmount, ISavingsContract pCreditAccount, DateTime pDate, string pDescription, User pUser, bool pIsDesactivateFees) { List<SavingEvent> events = new List<SavingEvent>(); SavingDebitTransferEvent transferEvent = new SavingDebitTransferEvent { Amount = pAmount, Date = pDate, Description = pDescription, User = pUser, Cancelable = false, RelatedContractCode = pCreditAccount.Code, ProductType = Product.GetType(), ContracId = Id }; events.Add(transferEvent); Events.Add(transferEvent); return events; }
public SavingCreditTransferEvent CreditTransfer(OCurrency pAmount, ISavingsContract pDebitAccount, DateTime pDate, string pDescription, User pUser) { SavingCreditTransferEvent transferEvent = new SavingCreditTransferEvent { Amount = pAmount, Date = pDate, Description = pDescription, User = pUser, Fee = 0, Cancelable = false, RelatedContractCode = pDebitAccount.Code, ProductType = Product.GetType(), ContracId = Id }; Events.Add(transferEvent); return transferEvent; }
public int Add(ISavingsContract savings, Client client, SqlTransaction sqlTransac) { const string sqlText = @"INSERT INTO [SavingContracts] ( [product_id], [user_id], [code], [status], [tiers_id], [creation_date], [interest_rate], [closed_date], [savings_officer_id], [initial_amount], [entry_fees], [nsg_id] ) VALUES ( @product_id, @user_id, @code, @status, @tiers_id, @creation_date, @interest_rate, @closedDate, @savings_officer_id, @initial_amount, @entry_fees, @nsg_id ) SELECT CONVERT(int, SCOPE_IDENTITY())"; using (OpenCbsCommand cmd = new OpenCbsCommand(sqlText, sqlTransac.Connection, sqlTransac)) { cmd.AddParam("@product_id", savings.Product.Id); cmd.AddParam("@user_id", savings.User.Id); cmd.AddParam("@code", savings.Code); cmd.AddParam("@status", (int)savings.Status); cmd.AddParam("@tiers_id", client.Id); cmd.AddParam("@creation_date", savings.CreationDate); cmd.AddParam("@interest_rate", savings.InterestRate); cmd.AddParam("@closedDate", savings.ClosedDate); cmd.AddParam("@savings_officer_id", savings.SavingsOfficer.Id); cmd.AddParam("@initial_amount", savings.InitialAmount); cmd.AddParam("@entry_fees", savings.EntryFees); cmd.AddParam("@nsg_id", savings.NsgID); savings.Id = int.Parse(cmd.ExecuteScalar().ToString()); } AddSavingsBookContract((SavingBookContract)savings, sqlTransac); return savings.Id; }
public EndOfYear(ISavingsContract pSaving, User pUser) { _saving = pSaving; _user = pUser; }
private void btnSave_Click(object sender, EventArgs e) { if (!_nsgForm.Save()) { return; } bool isError = false; ISavingsContract saving = null; try { foreach (ListViewItem item in lvMembers.Items) { if (item == _itemTotal) { continue; } if (!item.Checked) { continue; } var member = item.Tag as VillageMember; IClient client = member.Tiers; OCurrency initialAmount = (OCurrency)item.SubItems[idxInitialAmount].Tag; double interestRate = (double)item.SubItems[idxInterestRate].Tag; OCurrency entryFees = (OCurrency)item.SubItems[idxEntryFees].Tag; if (_product is SavingsBookProduct) { SavingsBookProduct sbp = (SavingsBookProduct)_product; decimal withdrawFees = (decimal)item.SubItems[idxWithdrawFees].Tag; decimal transferFees = (decimal)item.SubItems[idxTransferFees].Tag; decimal ibtFees = Convert.ToDecimal(item.SubItems[idxIbtFees].Tag); decimal depositFees = (decimal)item.SubItems[idxDepositFees].Tag; decimal chequeDepositFees = (decimal)item.SubItems[idxChequeDepositFees].Tag; decimal closeFees = (decimal)item.SubItems[idxCloseFees].Tag; decimal managementFees = (decimal)item.SubItems[idxManagementFees].Tag; decimal overdraftFees = (decimal)item.SubItems[idxOverdraftFees].Tag; decimal agioFees = (decimal)item.SubItems[idxAgioFees].Tag; decimal reopenFees = (decimal)item.SubItems[idxReopenFees].Tag; saving = new SavingBookContract(ServicesProvider.GetInstance().GetGeneralSettings(), User.CurrentUser, TimeProvider.Today, sbp, client) { InterestRate = interestRate / 100 }; SavingBookContract s = (SavingBookContract)saving; if (sbp.WithdrawFeesType == OSavingsFeesType.Flat) { s.FlatWithdrawFees = withdrawFees; } else { s.RateWithdrawFees = (double)withdrawFees / 100; } if (sbp.TransferFeesType == OSavingsFeesType.Flat) { s.FlatTransferFees = transferFees; } else { s.RateTransferFees = (double)transferFees / 100; } if (sbp.InterBranchTransferFee.IsFlat) { s.FlatInterBranchTransferFee = ibtFees; } else { s.RateInterBranchTransferFee = Convert.ToDouble(ibtFees); } s.DepositFees = depositFees; s.ChequeDepositFees = chequeDepositFees; s.CloseFees = closeFees; s.ManagementFees = managementFees; s.OverdraftFees = overdraftFees; s.AgioFees = (double)agioFees / 100; s.ReopenFees = reopenFees; } saving.SavingsOfficer = _village.LoanOfficer; saving.InitialAmount = initialAmount; saving.EntryFees = entryFees; saving.NsgID = _village.Id; saving.Id = ServicesProvider.GetInstance().GetSavingServices().SaveContract(saving, (Client)member.Tiers); saving = ServicesProvider.GetInstance().GetSavingServices().GetSaving(saving.Id); ServicesProvider.GetInstance().GetSavingServices().FirstDeposit(saving, initialAmount, TimeProvider.Now, entryFees, User.CurrentUser, Teller.CurrentTeller); ServicesProvider.GetInstance().GetSavingServices().UpdateInitialData(saving.Id, initialAmount, entryFees); saving = ServicesProvider.GetInstance().GetSavingServices().GetSaving(saving.Id); ((Client)member.Tiers).AddSaving(saving); } } catch (Exception ex) { isError = true; new frmShowError(CustomExceptionHandler.ShowExceptionText(ex)).ShowDialog(); } finally { InitializeControls(); } if (!isError) { DialogResult = DialogResult.OK; Close(); } }
public void FireEvent(SavingEvent e, ISavingsContract pSaving, SqlTransaction sqlTransac) { e.IsFired = true; SavingEventOrigination(e, pSaving, sqlTransac); }
private void CloseAndTransfer(ISavingsContract from, ISavingsContract to, DateTime date, User pUser, OCurrency amount, bool pIsDesactivateFees, Teller teller) { from.Transfer(to, amount, 0, date, "Closing transfer"); from.Close(date, pUser, "Close savings contract", pIsDesactivateFees, teller, true); }
public void SpecialOperation(ISavingsContract saving, DateTime pDate, OCurrency amount, string description, User pUser, OSavingsMethods savingsMethod, bool isCredit, Booking booking) { if (booking == null) throw new OpenCbsBookingException(OpenCbsBookingExceptionsEnum.BookingIsEmpty); booking.Amount = amount; booking.Description = description; booking.ExchangeRate = 1; booking.Date = TimeProvider.Now; booking.Currency = saving.Product.Currency; booking.User = User.CurrentUser; SavingEvent e; if (isCredit) { e = SpecialOperationCredit(saving, pDate, amount, description, User.CurrentUser, savingsMethod); } else { e = SpecialOperationDebit(saving, pDate, amount, description, User.CurrentUser, savingsMethod); } booking.EventId = e.Id; ServicesProvider.GetInstance().GetAccountingServices().BookManualEntry(booking, User.CurrentUser); }
public ISavingsContract SimulateCloseAccount(ISavingsContract saving, DateTime date, User user, bool isDesactivateFees, Teller teller) { ISavingsContract savingSimulation = (ISavingsContract) saving.Clone(); savingSimulation.SimulateClose(date, user, "Close savings contract", isDesactivateFees, teller); return savingSimulation; }
public void AddSaving(ISavingsContract pSavings) { pSavings.Client = this; _savings.Add(pSavings); }
private void SavingEventOrigination(SavingEvent savingEvent, ISavingsContract savingsContract, SqlTransaction sqlTransac) { _savingEventManagement.Add(savingEvent, savingsContract.Id, sqlTransac); }
public void Save(ISavingsContract savings, SqlTransaction tx) { }
public TabPage[] GetTabPages(ISavingsContract savings) { var tabPage = new TabPage("TEST SAVINGS"); return(new[] { tabPage }); }
public int Add(ISavingsContract savings, Client client) { using (SqlConnection connection = GetConnection()) using (SqlTransaction transaction = connection.BeginTransaction()) try { int result = Add(savings, client, transaction); transaction.Commit(); return result; } catch (Exception) { transaction.Rollback(); throw; } }
public Account GetSpecificAccount(string pNumber, ISavingsContract pSavings, OBookingDirections pBookingDirection) { var query = GetContractAccountingRules(); query = query.Where(item => item.DebitAccount.Number == pNumber && item.Deleted == false).ToList(); if (query.Count() == 0) { return(null); } query = query.Where(item => item.ProductType == OProductTypes.All || (item.ProductType == OProductTypes.Saving && (item.SavingProduct == null || item.SavingProduct.Id == pSavings.Product.Id))).ToList(); if (query.Count == 0) { return(null); } query = query.Where(item => item.BookingDirection == OBookingDirections.Both || item.BookingDirection == pBookingDirection).ToList(); if (query.Count == 0) { return(null); } OClientTypes clientType; if (pSavings.Client is Person) { clientType = OClientTypes.Person; } else if (pSavings.Client is Group) { clientType = OClientTypes.Group; } else if (pSavings.Client is Corporate) { clientType = OClientTypes.Corporate; } else { clientType = OClientTypes.Village; } query = query.Where(item => item.ClientType == OClientTypes.All || item.ClientType == clientType).ToList(); if (query.Count == 0) { return(null); } if (pSavings.Client is Person) { query = query.Where(item => item.EconomicActivity == null || item.EconomicActivity.Id == ((Person)pSavings.Client).Activity.Id).ToList(); } else if (pSavings.Client is Corporate) { query = query.Where(item => item.EconomicActivity == null || item.EconomicActivity.Id == ((Corporate)pSavings.Client).Activity.Id).ToList(); } else { query = query.Where(item => item.EconomicActivity == null).ToList(); } if (query.Count == 0) { return(null); } return(query[0].CreditAccount); }
public virtual SavingEvent DebitTransfer(ISavingsContract to, OCurrency amount, OCurrency fee, DateTime date, string description) { SavingTransferEvent e; bool ib = Branch.Id != to.Branch.Id; // inter-branch if (ib) { e = new SavingDebitInterBranchTransferEvent(); } else { e = new SavingDebitTransferEvent(); } e.Description = ib ? "Inter-branch transfer" : "Transfer"; e.RelatedContractCode = to.Code; e.Amount = amount; e.Fee = fee; e.Date = date; e.User = User.CurrentUser; e.Description = description; e.ProductType = Product.GetType(); e.Target = this; Events.Add(e); return e; }
protected int SendNotification(MessageTemplate messageTemplate, EmailAccount emailAccount, IEnumerable <Token> tokens, string toEmailAddress, string toName, string replyTo = null, string replyToName = null, ISavingsContract savingsContract = null) { #region Email routine if (person.EmailDelivery.HasValue && person.EmailDelivery.Value && messageTemplate.SendEmail.HasValue && messageTemplate.SendEmail.Value) { var bcc = messageTemplate.BccEmailAddresses; var subject = messageTemplate.Subject; var body = messageTemplate.EmailBody; // Replace subject and body tokens var subjectReplaced = Tokenizer.Replace(subject, tokens, false); var bodyReplaced = Tokenizer.Replace(body, tokens, true); var email = new QueuedEmail() { Priority = 5, From = emailAccount.Email, FromName = emailAccount.DisplayName, To = toEmailAddress, ToName = toName, CC = string.Empty, SentTries = 0, Bcc = bcc, ReplyTo = replyTo, ReplyToName = replyToName, Subject = subjectReplaced, Body = bodyReplaced, CreatedOnUtc = DateTime.UtcNow, EmailAccountId = emailAccount.Id }; _queuedEmailService.Add(email); //return email.Id; } #endregion #region SMS routine if (person.SmsDelivery.HasValue && person.SmsDelivery.Value && messageTemplate.SendSMS.HasValue && messageTemplate.SendSMS.Value) { var message = messageTemplate.Body; var messageReplaced = Tokenizer.Replace(message, tokens, false); var sms = new QueuedSMS() { From = Convert.ToString(ServicesProvider.GetInstance().GetGeneralSettings().GetSpecificParameter(OGeneralSettings.SMS_FROM_NUMBER)), Recipient = person.PersonalPhone, RecipientId = person.Id, ContractId = savingsContract != null ? savingsContract.Id : 0, Charged = false, Message = messageReplaced, SentTries = 0, CreatedOnUtc = DateTime.UtcNow, }; _queuedSMSService.Add(sms); //return sms.Id; } #endregion return(0); }
public virtual List<SavingEvent> Transfer(ISavingsContract to, OCurrency amount, OCurrency fee, DateTime date, string description) { List<SavingEvent> events = new List<SavingEvent>(3); events.Add(DebitTransfer(to, amount, fee, date, description)); events.Add(to.CreditTransfer(this, amount, date, description)); if (GetBalance() < 0) { SavingOverdraftFeeEvent e = ChargeOverdraftFee(date, User.CurrentUser); events.Add(e); } return events; }
public Daily(ISavingsContract pSaving, User pUser) { _saving = pSaving; _user = pUser; }
private void DisplaySavingEvent(ISavingsContract pSaving) { btCancelLastSavingEvent.Enabled = false; if (pSaving.Id != 0) { nudDownInterestRate.Value = nudDownInterestRate.Minimum = nudDownInterestRate.Maximum = (decimal)pSaving.InterestRate * 100; nudDownInitialAmount.Value = nudDownInitialAmount.Minimum = nudDownInitialAmount.Maximum = pSaving.InitialAmount.Value; SavingBookContract s = (SavingBookContract)pSaving; nudEntryFees.Value = nudEntryFees.Minimum = nudEntryFees.Maximum = s.EntryFees.Value; nudWithdrawFees.Value = nudWithdrawFees.Minimum = nudWithdrawFees.Maximum = s.FlatWithdrawFees.HasValue ? s.FlatWithdrawFees.Value : (decimal)s.RateWithdrawFees.Value * 100; nudTransferFees.Value = nudTransferFees.Minimum = nudTransferFees.Maximum = s.FlatTransferFees.HasValue ? s.FlatTransferFees.Value : (decimal)s.RateTransferFees.Value * 100; nudIbtFee.Value = s.FlatInterBranchTransferFee.HasValue ? s.FlatInterBranchTransferFee.Value : Convert.ToDecimal(s.RateInterBranchTransferFee.Value); nudIbtFee.Minimum = nudIbtFee.Maximum = nudIbtFee.Value; nudDepositFees.Value = nudDepositFees.Minimum = nudDepositFees.Maximum = ((SavingBookContract)pSaving).DepositFees.Value; nudChequeDepositFees.Value = nudChequeDepositFees.Minimum = nudChequeDepositFees.Maximum = ((SavingBookContract)pSaving).ChequeDepositFees.Value; nudCloseFees.Value = nudCloseFees.Minimum = nudCloseFees.Maximum = ((SavingBookContract)pSaving).CloseFees.Value; nudManagementFees.Value = nudManagementFees.Minimum = nudManagementFees.Maximum = ((SavingBookContract)pSaving).ManagementFees.Value; nudOverdraftFees.Value = nudOverdraftFees.Minimum = nudOverdraftFees.Maximum = ((SavingBookContract)pSaving).OverdraftFees.Value; nudAgioFees.Value = nudAgioFees.Minimum = nudAgioFees.Maximum = (decimal)((SavingBookContract)pSaving).AgioFees.Value * 100; nudReopenFees.Value = nudReopenFees.Minimum = nudReopenFees.Maximum = ((SavingBookContract)pSaving).ReopenFees.Value; } lbSavingBalanceValue.Text = pSaving.GetFmtBalance(true); lbSavingAvBalanceValue.Text = pSaving.GetFmtAvailBalance(true); btCancelLastSavingEvent.Enabled = _saving.HasCancelableEvents(); lvSavingEvent.Items.Clear(); IEnumerable<SavingEvent> events = pSaving.Events.OrderBy(item => item.Date.Date); bool useCents = pSaving.Product.Currency.UseCents; foreach (SavingEvent e in events) { ListViewItem item = new ListViewItem(e.Date.ToString("dd/MM/yyyy HH:mm:ss")); item.SubItems.Add(e.Fee.GetFormatedValue(useCents)); string amt = e.Amount.GetFormatedValue(useCents); item.SubItems.Add(e.IsDebit ? amt : string.Empty); item.SubItems.Add(e.IsDebit ? string.Empty : amt); item.SubItems.Add(e.ExtraInfo); item.SubItems.Add(e.Code); item.SubItems.Add(e.SavingsMethod.HasValue ? GetString("SavingsOperationForm", e.SavingsMethod + ".Text") : "-"); item.SubItems.Add(e.User.Name); item.SubItems.Add(e.Description); item.SubItems.Add(e.CancelDate.HasValue ? e.CancelDate.Value.ToString("dd/MM/yyyy HH:mm:ss") : string.Empty); if (e.IsPending) { item.BackColor = Color.Orange; item.ForeColor = Color.White; } if (e.Deleted) { item.BackColor = Color.FromArgb(188, 209, 199); item.ForeColor = Color.White; } item.Tag = e; lvSavingEvent.Items.Add(item); } }
public void _compareSavings(ISavingsContract originalSaving, ISavingsContract retrievedSaving) { Assert.AreEqual(originalSaving.Id, retrievedSaving.Id); Assert.AreEqual(originalSaving.InterestRate, retrievedSaving.InterestRate); Assert.AreEqual(originalSaving.Product.Id, retrievedSaving.Product.Id); Assert.AreEqual(originalSaving.GetBalance(), retrievedSaving.GetBalance()); Assert.AreEqual(originalSaving.Code, retrievedSaving.Code); Assert.AreEqual(originalSaving.CreationDate, retrievedSaving.CreationDate); Assert.AreEqual(originalSaving.Status, retrievedSaving.Status); Assert.AreEqual(((SavingBookContract)originalSaving).FlatWithdrawFees.HasValue, ((SavingBookContract)retrievedSaving).FlatWithdrawFees.HasValue); if (((SavingBookContract)originalSaving).FlatWithdrawFees.HasValue) Assert.AreEqual(((SavingBookContract)originalSaving).FlatWithdrawFees.Value, ((SavingBookContract)retrievedSaving).FlatWithdrawFees.Value); Assert.AreEqual(((SavingBookContract)originalSaving).RateWithdrawFees.HasValue, ((SavingBookContract)retrievedSaving).RateWithdrawFees.HasValue); if (((SavingBookContract)originalSaving).RateWithdrawFees.HasValue) Assert.AreEqual(((SavingBookContract)originalSaving).RateWithdrawFees.Value, ((SavingBookContract)retrievedSaving).RateWithdrawFees.Value); Assert.AreEqual(((SavingBookContract)originalSaving).FlatTransferFees.HasValue, ((SavingBookContract)retrievedSaving).FlatTransferFees.HasValue); if (((SavingBookContract)originalSaving).FlatTransferFees.HasValue) Assert.AreEqual(((SavingBookContract)originalSaving).FlatTransferFees.Value, ((SavingBookContract)retrievedSaving).FlatTransferFees.Value); Assert.AreEqual(((SavingBookContract)originalSaving).RateTransferFees.HasValue, ((SavingBookContract)retrievedSaving).RateTransferFees.HasValue); if (((SavingBookContract)originalSaving).RateTransferFees.HasValue) Assert.AreEqual(((SavingBookContract) originalSaving).RateTransferFees.Value, ((SavingBookContract) retrievedSaving).RateTransferFees.Value); }
public SavingDebitOperationEvent SpecialOperationDebit(ISavingsContract pSaving, DateTime pDate, OCurrency debitAmount, string pDescription, User pUser, OSavingsMethods savingsMethod) { using (SqlConnection conn = _savingManager.GetConnection()) using (SqlTransaction sqlTransaction = conn.BeginTransaction()) { try { if (pSaving is SavingBookContract) { decimal vBalance = CheckVirtualBalance((SavingBookContract) pSaving, debitAmount); if (vBalance > 0) { List<string> messages = new List<string> { ServicesHelper.ConvertDecimalToString( ((SavingBookContract) pSaving).GetBalance().Value), ServicesHelper.ConvertDecimalToString(vBalance), ((SavingBookContract) pSaving).Loans.Count.ToString(), ServicesHelper.ConvertDecimalToString( ((SavingBookContract) pSaving).GetBalance().Value - vBalance) }; throw new OpenCbsSavingException( OpenCbsSavingExceptionEnum.BalanceOnCurrentSavingAccountForTransfer, messages); } } //// Create a fake Saving object ISavingsContract savingSimulation = (ISavingsContract) pSaving.Clone(); // Do deposit to the fake Saving object savingSimulation.SpecialOperationDebit(debitAmount, pDate, pDescription, pUser); // Check balance simulation if (!IsSavingBalanceCorrect(savingSimulation)) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.BalanceIsInvalid); SavingDebitOperationEvent events = pSaving.SpecialOperationDebit(debitAmount, pDate, pDescription, pUser); _ePS.FireEvent(events, pSaving, sqlTransaction); // Change overdraft state if (pSaving is SavingBookContract) { if (pSaving.GetBalance() > 0) { ((SavingBookContract) pSaving).InOverdraft = false; UpdateOverdraftStatus(pSaving.Id, false); } } sqlTransaction.Commit(); return events; } catch (Exception) { sqlTransaction.Rollback(); throw; } } }
public void AddSavingEventTokens(List <Token> tokens, SavingEvent savingEvent, ISavingsContract savingsContract) { string description = savingEvent.Description; string formatedAccountNumber = "******" + savingsContract.Code.Substring(savingsContract.Code.Length - 4); if (description.Contains(savingsContract.Code)) { description.Replace(savingsContract.Code, formatedAccountNumber); } tokens.Add(new Token("SavingEvent.Id", savingEvent.Id.ToString())); tokens.Add(new Token("SavingEvent.Code", savingEvent.Code)); tokens.Add(new Token("SavingEvent.Description", description)); tokens.Add(new Token("SavingEvent.ReferenceNumber", savingEvent.ReferenceNumber)); tokens.Add(new Token("SavingEvent.PaymentsMethod", savingEvent.PaymentsMethod != null ? savingEvent.PaymentsMethod.Name : "")); tokens.Add(new Token("SavingEvent.Date", savingEvent.Date.ToShortDateString())); tokens.Add(new Token("SavingEvent.Currency", savingEvent.Currency != null ? savingEvent.Currency.Name : "NAIRA")); tokens.Add(new Token("SavingEvent.Amount", savingEvent.Amount.GetFormatedValue(true))); tokens.Add(new Token("SavingEvent.Branch", savingEvent.Branch != null ? savingEvent.Branch.Name : "")); tokens.Add(new Token("SavingEvent.Comment", savingEvent.Comment)); tokens.Add(new Token("SavingEvent.IsPending", savingEvent.IsPending.ToString())); tokens.Add(new Token("SavingEvent.SavingProduct.Code", savingEvent.SavingProduct != null ? savingEvent.SavingProduct.Code : "")); tokens.Add(new Token("SavingEvent.SavingsMethod", savingEvent.SavingsMethod != null ? savingEvent.SavingsMethod.Description() : "")); tokens.Add(new Token("SavingEvent.AccountNumber", formatedAccountNumber)); tokens.Add(new Token("SavingEvent.AccountBalance", savingsContract.GetFmtBalance(true))); tokens.Add(new Token("SavingEvent.AccountAvailableBalance", savingsContract.GetFmtAvailBalance(true))); }
public override List<SavingEvent> DebitTransfer(OCurrency pAmount, ISavingsContract pCreditAccount, DateTime pDate, string pDescription, User pUser, bool pIsDesactivateFees) { List<SavingEvent> events = new List<SavingEvent>(); SavingDebitTransferEvent transferEvent = new SavingDebitTransferEvent { Amount = pAmount, Date = pDate, Description = pDescription, User = pUser, Cancelable = false, RelatedContractCode = pCreditAccount.Code, ProductType = typeof(SavingsBookProduct) }; events.Add(transferEvent); Events.Add(transferEvent); if (Status != OSavingsStatus.Closed && !pIsDesactivateFees) transferEvent.Fee = Product.TransferFeesType == OSavingsFeesType.Flat ? FlatTransferFees : pAmount * RateTransferFees.Value; return events; }
public List<SavingEvent> Transfer(ISavingsContract from, ISavingsContract to, DateTime date, OCurrency amount, OCurrency fee, string description, User user, bool noFee) { CheckTransfer(to, from, amount, fee, date, description); List<SavingEvent> events = from.Transfer(to, amount, fee, date, description); foreach (SavingEvent e in events) _ePS.FireEvent(e); return events; }
public void SavingServicesAccountAtMaturity(ISavingsContract savingContract, DateTime date, User user) { if (savingContract.Rollover == OSavingsRollover.Principal) { DateTime lastMaturity = DateCalculationStrategy.GetLastMaturity(date, savingContract.Product.Periodicity, savingContract.NumberOfPeriods); OCurrency interests = savingContract.Events.Where( item => item is SavingInterestsPostingEvent && item.Date.Date > lastMaturity && item.Date.Date <= date ). Sum(item => item.Amount.Value); // TODO: replace the fee of zero with a meaningful value Transfer(TransferAccount, interests, 0, date, "Transfer interests"); } }
public bool ValidateSavingsContract(ISavingsContract saving, Client client) { if (!IsProductCorrect(saving)) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.ProductIsInvalid); if (!IsInterestRateCorrect(saving)) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.InterestRateIsInvalid); if (!IsWithdrawFeesCorrect((SavingBookContract)saving)) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.WithdrawFeesIsInvalid); if (!IsTransferFeesCorrect((SavingBookContract)saving)) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.TransferFeesIsInvalid); if (!IsDepositFeesCorrect((SavingBookContract)saving)) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.DepositFeesIsInvalid); if (!IsCloseFeesCorrect((SavingBookContract)saving)) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.CloseFeesIsInvalid); if (!IsManagementFeesCorrect((SavingBookContract)saving)) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.ManagementFeesIsInvalid); if (!IsAgioFeesCorrect((SavingBookContract)saving)) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.AgioFeesIsInvalid); if (((SavingBookContract)saving).Loans != null) { //IsLoanValid((Saving)saving, pClient); //if (!_IsLoanAmountCorrect((Saving)saving, ((Saving)saving).Loan)) // throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.InitialAmountIsInvalid); } else { if (!IsInitialAmountCorrect(saving)) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.InitialAmountIsInvalid); } if (((SavingBookContract)saving).UseTermDeposit) { if (((SavingBookContract)saving).Rollover != OSavingsRollover.PrincipalAndInterests) { if (((SavingBookContract)saving).TransferAccount == null) throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.TransferAccountIsInvalid); } } return true; }
private void btSearchContract_Click(object sender, EventArgs e) { SearchCreditContractForm searchCreditContractForm = SearchCreditContractForm.GetInstance(null); searchCreditContractForm.BringToFront(); searchCreditContractForm.WindowState = FormWindowState.Normal; if (searchCreditContractForm.ShowForSearchSavingsContractForTransfer("") == DialogResult.OK) { SavingSearchResult saving = searchCreditContractForm.SelectedSavingContract; lblClientName.Text = saving.ClientName; tbTargetAccount.Text = saving.ContractCode; _savingTarget = ServicesProvider.GetInstance().GetSavingServices().GetSaving(saving.Id); lblInterBranch.Visible = !IsNormalTransfer(); LoadTransferFee(); } }