Example #1
0
        /// <summary>
        /// Конструктор принимает объект выбранного счета
        /// </summary>
        /// <param name="inclusionModel"></param>
        public TransferViewModel(InclusionModel inclusionModel)
        {
            GetTransferClients getTransferClients = ClientViewModel.AllClientsForTransfer;

            AllClients = getTransferClients();

            BillOfTransfer = inclusionModel;
        }
        /// <summary>
        /// Метод загрузки измененных данных в БД
        /// </summary>
        /// <param name="temp"></param>
        public static void UpdateBills(InclusionModel temp)
        {
            SqlCommand sqlCommand = new SqlCommand($"UPDATE Bills SET InclusionDateEnd='{temp.DateEndInclusion}', " +
                                                   $"InclusionSum='{temp.Inclusion}', " +
                                                   $"Percents='{temp.Percents}', " +
                                                   $"Capitalize='{temp.Capitalize}', " +
                                                   $"Total='{Convert.ToInt32(temp.Sum)}', " +
                                                   $"StatusInclusion='{temp.StatusInclusion}' WHERE BillNum={temp.Bill}", ConnectionInfo.connection);

            sqlCommand.ExecuteNonQuery();
        }
Example #3
0
        /// <summary>
        /// Метод загрузки измененных данных в БД
        /// </summary>
        /// <param name="temp"></param>
        public static void UpdateBills(InclusionModel temp)
        {
            TestBankLocalDBEntities billToSql = new TestBankLocalDBEntities();

            // Получение определенного счета
            var newBill = billToSql.Bills.Where(x => x.BillNum == temp.Bill).FirstOrDefault();

            if (newBill != null)
            {
                // Тут пытался заполнить свойства рефлексией, но, ели я правильно понял, то работать это будет только для однотипных объектов.
                #region Попытка изменения свойств рефлексией
                //foreach (var t in temp.GetType().GetProperties())
                //{
                //    t.SetValue(newBill, t.GetValue(temp));
                //}
                #endregion

                // Изменение значений для отдельного счета в БД
                newBill.InclusionDateEnd = temp.DateEndInclusion;
                newBill.InclusionSum     = temp.Inclusion;
                newBill.Percents         = temp.Percents;
                newBill.Capitalize       = temp.Capitalize;
                newBill.Total            = Convert.ToInt32(temp.Sum);
                newBill.StatusInclusion  = temp.StatusInclusion;
            }

            try
            {
                // Сохранение данных в БД
                billToSql.SaveChanges();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }

            #region Запрос на изменение данных в БД

            //SqlCommand sqlCommand = new SqlCommand($"UPDATE Bills SET InclusionDateEnd='{temp.DateEndInclusion}', " +
            //    $"InclusionSum='{temp.Inclusion}', " +
            //    $"Percents='{temp.Percents}', " +
            //    $"Capitalize='{temp.Capitalize}', " +
            //    $"Total='{Convert.ToInt32(temp.Sum)}', " +
            //    $"StatusInclusion='{temp.StatusInclusion}' WHERE BillNum={temp.Bill}", ConnectionInfo.connection);

            //sqlCommand.ExecuteNonQuery();

            #endregion
        }
        /// <summary>
        /// Метод меняет сумму вклада в зависимости от действия совершенного со вкладом
        /// </summary>
        private void ChangeMoneyMethod()
        {
            try
            {
                if (SelectInclusion != null)
                {
                    if (RadioAdd == true)
                    {
                        // Прибавление вносимой суммы в выбранный вклад
                        SelectInclusion.Inclusion = SelectInclusion.Inclusion + AddMoney;

                        InclusionMoneyEvent?.Invoke($"Внесена сумма {AddMoney} на счет {SelectInclusion.Bill}");
                    }
                    if (RadioWithdraw == true && SelectInclusion.Inclusion >= AddMoney)
                    {
                        // Вычитание вносимой суммы в выбранный вклад
                        SelectInclusion.Inclusion = SelectInclusion.Inclusion - AddMoney;

                        InclusionMoneyEvent?.Invoke($"Сумма {AddMoney} снята со счета {SelectInclusion.Bill}");
                    }
                    else if (RadioWithdraw == true && SelectInclusion.Inclusion < AddMoney)
                    {
                        InclusionMoneyEvent?.Invoke($"На вашем счете недостаточно средств. Максимальная сума которую вы можете снять {SelectInclusion.Inclusion}");
                    }

                    InclusionModel inclusionModel = new InclusionModel();

                    // Расчет итоговой суммы внесении дополнительной суммы
                    SelectInclusion.Sum = inclusionModel.Calculate(SelectInclusion.DateInclusion, SelectInclusion.DateEndInclusion,
                                                                   SelectInclusion.Inclusion, SelectInclusion.Percents, SelectInclusion.Capitalize);
                }
                else
                {
                    // Исключение вызывается если отсутствует фокус на один из счетов
                    throw new BankException(2, "Не выбран счет", @"Выберите счет пополнения\списания");
                }
            }
            catch (BankException e) when(e.Error == 2)
            {
                MessageBox.Show($"Код ошибки = {e.Error}. {e.Message}. {e.Recommendations}");
            }
        }
        /// <summary>
        /// Консруктор, принимающий переданный объект клиента
        /// </summary>
        /// <param name="incModel"></param>
        public InclusionViewModel(Client incModel)
        {
            InclusionModel inclusionModel = new InclusionModel();

            // Расчет итоговой суммы по всем вкладам при открытии окна управления
            foreach (var t in incModel.Inclusions)
            {
                t.Sum = inclusionModel.Calculate(t.DateInclusion, t.DateEndInclusion, t.Inclusion, t.Percents);
            }

            IncModel = incModel;

            Percents = IncModel.Percents;

            this.inclusions = IncModel.Inclusions;

            DateEndInclusion = DateTime.Today.AddMonths(12);

            // Вызов метода определения статуса вклада
            InclusionStatus();
        }