コード例 #1
0
        /// <summary>
        /// Добавление компьютера в БД
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Cf_btn_addComputer_Click(object sender, EventArgs e)
        {
            if (cf_tb_computerName.Text != "")
            {
                if (cf_lv_components.Items.Count != 0)
                {
                    if (Regex.IsMatch(cf_tb_computerName.Text, regText))
                    {
                        using (var transaction = cf_db.Database.BeginTransaction())
                        {
                            try
                            {
                                //Сохранение компьютера в БД
                                Computer comp = new Computer();
                                comp.Title = cf_tb_computerName.Text;
                                comp.Price = Convert.ToDecimal(string.Format("{0:0.00}", totalPrice.ToString()));
                                cf_db.Computer.Add(comp);
                                cf_db.SaveChanges();


                                //Сохранение компонентов в БД
                                foreach (ListViewItem item in cf_lv_components.Items)
                                {
                                    ComputerItem ci = new ComputerItem();
                                    ci.ComputerId  = comp.Id;
                                    ci.ComponentId = Convert.ToInt32(item.Text.ToString());

                                    cf_db.ComputerItem.Add(ci);
                                    cf_db.SaveChanges();
                                }
                                transaction.Commit();
                            }
                            catch (Exception ex)
                            {
                                ShowMessage(ex.Message);
                                transaction.Rollback();
                            }
                        }
                    }
                    else
                    {
                        ShowMessage("Ошибка в названии компьютера");
                        this.DialogResult = DialogResult.None;
                    }
                }
                else
                {
                    ShowMessage("Компоненты не добавлены!");
                    this.DialogResult = DialogResult.None;
                }
            }
            else
            {
                ShowMessage("Введите название компьютера!");
                this.DialogResult = DialogResult.None;
            }
        }
コード例 #2
0
        private void Sf_btn_createCheck_Click(object sender, EventArgs e)
        {
            if (sf_cb_buyer.SelectedIndex != -1)
            {
                if (sf_lv_checkItems.Items.Count > 0)
                {
                    using (var transaction = sf_db.Database.BeginTransaction())
                    {
                        try
                        {
                            //Сохранение чека в БД
                            Check check = new Check();
                            check.BuyerId    = (int)sf_cb_buyer.SelectedValue;
                            check.Date       = DateTime.Now;
                            check.CheckCoast = Convert.ToDouble(string.Format("{0:0.00}", totalPrice.ToString()));
                            sf_db.Check.Add(check);
                            sf_db.SaveChanges();


                            //Сохранение компонентов в БД
                            foreach (ListViewItem item in sf_lv_checkItems.Items)
                            {
                                CheckItem ci = new CheckItem();
                                ci.CheckId = check.Id;

                                if (item.Text != "N/A")
                                {
                                    int quantity = Convert.ToInt32(item.SubItems[1].Text);
                                    ci.ItemId       = sf_db.Component.FirstOrDefault(tmp => tmp.Vendor_code == item.Text).Id;
                                    ci.ItemQuantity = quantity;
                                    ci.IsComputer   = 0;

                                    //Изменение количества комплектующего
                                    Component cmpnt = sf_db.Component.FirstOrDefault(c => c.Id == ci.ItemId);
                                    quantity       = cmpnt.Quantity - quantity;
                                    cmpnt.Quantity = (short)quantity;
                                }
                                else
                                {
                                    string   title    = item.SubItems[2].Text;
                                    int      quantity = Convert.ToInt32(item.SubItems[1].Text);
                                    Computer _tmp     = sf_db.Computer.FirstOrDefault(tmp => tmp.Title == title);
                                    ci.ItemId       = _tmp.Id;
                                    ci.ItemQuantity = quantity;
                                    ci.IsComputer   = 1;

                                    //Изменение количества комплектующего компьютера
                                    foreach (ComputerItem compItem in _tmp.ComputerItem)
                                    {
                                        compItem.Component.Quantity = (short)(compItem.Component.Quantity - quantity);
                                    }
                                }
                                sf_db.CheckItem.Add(ci);
                                sf_db.SaveChanges();
                            }
                            transaction.Commit();
                        }
                        catch (Exception ex)
                        {
                            ShowMessage(ex.Message);
                            transaction.Rollback();
                        }
                    }
                }
                else
                {
                    ShowMessage("Вы не добавили в чек товар!");
                }
            }
            else
            {
                ShowMessage("Вы не выбрали покупателя");
            }
        }