internal static bank_account OpenDeposite(deposite_type depositeType, bank_account accountFrom, double sum) { if (accountFrom.bank_deposit == null) { if (accountFrom.Sum >= sum) { accountFrom.Sum -= sum; bank_deposit newDeposit = new bank_deposit(); bank_account newAccount = GenerateNewAccount(); newAccount.Sum = sum; newAccount.bank_deposit = newDeposit; newDeposit.Account_id = newAccount.id; newDeposit.bank_account = newAccount; newDeposit.deposite_type = depositeType; newDeposit.Opening_date = DateTime.Now.Date; newDeposit.Expiry_date = newDeposit.Opening_date.AddMonths(depositeType.Term); newDeposit.Start_sum = sum; return(newAccount); } else { MessageBox.Show("This account is deposit!!!Transfer is not possible while the deposit is not closed!"); } } else { MessageBox.Show("There is not enough money in the write-off account!"); } return(null); }
internal static bool CloseDepositCheck(bank_deposit closingDeposit) { if ((closingDeposit.deposite_type.Early_closure) | (closingDeposit.Expiry_date.CompareTo(DateTime.Now.Date) <= 0)) { return(true); } return(false); }
private void buttonViewDepositInfo_Click(object sender, EventArgs e) { if (dataGridViewDeposits.SelectedRows.Count > 0) { int selectedDepositAccountId = Convert.ToInt32(dataGridViewDeposits.SelectedRows[0].Cells[0].Value); bank_deposit selectedDeposit = userContext.FindDepositeByAccountId(selectedDepositAccountId); InfoAboutDepositForm infoForm = new InfoAboutDepositForm(selectedDeposit); infoForm.Show(); } else { MessageBox.Show("Deposit is not selected!"); } }
internal static bool InterestAccrual(bank_deposit deposit) //возвращает истёк ли срок { bool expired = false; var total = deposit.bank_account.Sum; double amountOfaccrual = 0; double sumStart = 0; //от чего начисляем проценты int mouths = 0; //сколько месяцев прошло с момента открытия sumStart = deposit.Start_sum; if (deposit.Expiry_date.CompareTo(DateTime.Now.Date) <= 0) { mouths = deposit.deposite_type.Term; expired = true; } else { DateTime tmp = deposit.Opening_date; while (tmp < DateTime.Now.Date) { mouths++; tmp = tmp.AddMonths(1); } } if (deposit.deposite_type.Capitalization) { int mouth; //месяц с момента открытия for (mouth = 1; mouth <= mouths; mouth++) //начислить проценты за каждый месяц { amountOfaccrual += (sumStart / 100) * (deposit.deposite_type.Interest_rate / 12); sumStart += amountOfaccrual; } } else { amountOfaccrual = (sumStart / 100) * (deposit.deposite_type.Interest_rate / 12) * mouths; } total += amountOfaccrual; deposit.bank_account.Sum = total; return(expired); }
private void buttonCloseDeposit_Click(object sender, EventArgs e) { if (dataGridViewDeposits.SelectedRows.Count > 0) { int selectedDepositAccountId = Convert.ToInt32(dataGridViewDeposits.SelectedRows[0].Cells[0].Value); bank_deposit closingDeposit = userContext.FindDepositeByAccountId(selectedDepositAccountId); if (AccountsAndDepositsRegulator.CloseDepositCheck(closingDeposit)) { userContext.DeleteBankDeposit(closingDeposit); userContext.UpdateUser(user); viewUserDeposits(); MessageBox.Show("Deposit is closed!"); } else { MessageBox.Show("A deposit without the possibility of early closure can not be closed until the expiration date!"); } } else { MessageBox.Show("Deposit is not selected!"); } }
public InfoAboutDepositForm(bank_deposit selectedDeposit) { this.selectedDeposit = selectedDeposit; InitializeComponent(); }