Example #1
0
        private void BChange_Click(object sender, RoutedEventArgs e)
        {
            СкладТоваров selectedRow = lb1.SelectedItem as СкладТоваров;

            if (lb1.SelectedItem != null)
            {
                string s = selectedRow.Наименование;

                if (s != null)
                {
                    if ((tb4.Text != "") || (tb5.Text != ""))
                    {
                        if (tb4.Text != "")
                        {
                            Store = int.Parse(tb4.Text);
                            if (Store < 0)
                            {
                                DialogResult = false;
                            }
                        }
                        if (tb5.Text != "")
                        {
                            Cost = decimal.Parse(tb5.Text);
                            if (Cost < 0)
                            {
                                MessageBox.Show("Цена не может быть отрицательной.", "Ошибка!", MessageBoxButton.OK, MessageBoxImage.Error);
                            }
                        }
                        MessageBox.Show("Данные изменены.", "ОК", MessageBoxButton.OK, MessageBoxImage.Information);
                        Productname  = selectedRow.Наименование;
                        FlagOk       = true;
                        DialogResult = true;
                    }
                    else
                    {
                        MessageBox.Show("Для изменения данных, заполните соответствующие поля.", "Внимание!", MessageBoxButton.OK, MessageBoxImage.Stop);
                    }
                }
                else
                {
                    MessageBox.Show("Выберите элемент из списка.", "Внимание", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
            else
            {
                MessageBox.Show("Заполните соответствующие поля.", "Внимание!", MessageBoxButton.OK, MessageBoxImage.Stop);
            }
        }
        private void Goods_Click(object sender, RoutedEventArgs e) //Изменение данных о товарах на складе
        {
            int id = 0;
            var d  = context1.СкладТоваров;
            List <СкладТоваров> l      = d.ToList();
            SkladTovarov        dialog = new SkladTovarov(l);

            if (dialog.ShowDialog() == true)
            {
                if (dialog.FlagOk == false)
                {
                    СкладТоваров st = new СкладТоваров
                    {
                        Наименование = dialog.Productname,
                        Цена         = dialog.Cost,
                        Остаток      = dialog.Store
                    };
                    context1.СкладТоваров.Add(st);
                    context1.SaveChanges();
                    tb.Text = "Товар успешно добавлен на склад!";
                }
                if (dialog.FlagOk == true)
                {
                    foreach (СкладТоваров i in d)
                    {
                        if (i.Наименование == dialog.Productname)
                        {
                            id = i.КодТовара;
                        }
                    }
                    if (id != 0)
                    {
                        //МЕняем цену товара
                        СкладТоваров s = context1.СкладТоваров.Find(id);
                        if (s.Остаток != dialog.Store & dialog.Store != 0)
                        {
                            s.Остаток = dialog.Store;
                        }
                        if (s.Цена != dialog.Cost & dialog.Cost != 0)
                        {
                            s.Цена = dialog.Cost;
                        }
                        context1.SaveChanges();
                    }
                }
            }
        }
        private void Add_order_Click(object sender, RoutedEventArgs e) //добавление заказа
        {
            //ищем свободных клиентов в таблице и заносим

            int           count;
            List <string> clients = new List <string>();
            var           r1      = context1.Клиенты;
            var           rez     = context2.Заказы;

            foreach (Клиенты item1 in r1)
            {
                count = 0;
                foreach (Заказы item2 in rez)
                {
                    if (item2.КлиентID == item1.КлиентID)
                    {
                        count++;
                        break;
                    }
                }
                if (count == 0)
                {
                    clients.Add(item1.ФИО);
                }
            }
            //добавляем список состояний
            List <string> stat = new List <string>();
            var           r2   = context3.СостояниеЗаказа;

            foreach (СостояниеЗаказа item3 in r2)
            {
                stat.Add(item3.Состояние);
            }
            //добавляем список водил
            List <string> driv = new List <string>();
            var           r3   = context1.Водители;

            foreach (Водители item4 in r3)
            {
                driv.Add(item4.ФИО);
            }
            //добавляем список транспорта
            List <string> transp = new List <string>();
            var           r4     = context1.ТранспортноеСредство;

            foreach (ТранспортноеСредство item5 in r4)
            {
                transp.Add(item5.Марка);
            }
            //добавляем список товаров
            List <string> goods1 = new List <string>();
            var           r5     = context4.СкладТоваров;

            foreach (СкладТоваров item6 in r5)
            {
                goods1.Add(item6.Наименование);
            }
            int clienID  = 0;
            int sostID   = 0;
            int carID    = 0;
            int driverID = 0;

            DialAddOrder dial = new DialAddOrder(clients, stat, driv, transp, goods1);

            if (dial.ShowDialog() == true)
            {
                foreach (Клиенты i in r1)
                {
                    if (i.ФИО == dial.klient)
                    {
                        clienID = i.КлиентID;
                    }
                }
                foreach (СостояниеЗаказа itm in r2)
                {
                    if (itm.Состояние == dial.sostoyanie)
                    {
                        sostID = itm.СостояниеID;
                    }
                }
                foreach (ТранспортноеСредство item in r4)
                {
                    if (item.Марка == dial.transport)
                    {
                        carID = item.ТрСредствоID;
                    }
                }
                foreach (Водители it in r3)
                {
                    if (it.ФИО == dial.vodila)
                    {
                        driverID = it.ВодительID;
                    }
                }
                int zakazID = 0;
                if (dial.DataDostavki == "")
                {
                    Заказы addZakaz = new Заказы
                    {
                        СрокПоставки    = DateTime.Parse(dial.SrokPostavki),
                        ДатаЗаказа      = DateTime.Parse(dial.DataZakaza),
                        КлиентID        = clienID,
                        МестоНазначения = dial.mestoNaznachenia,
                        СостояниеID     = sostID,
                        ТрСредствоID    = carID,
                        ВодительID      = driverID
                    };
                    context1.Заказы.Add(addZakaz);
                    context1.SaveChanges();
                    zakazID = addZakaz.ЗаказID;
                }
                else
                {
                    Заказы addZakaz = new Заказы
                    {
                        СрокПоставки    = DateTime.Parse(dial.SrokPostavki),
                        ДатаЗаказа      = DateTime.Parse(dial.DataZakaza),
                        КлиентID        = clienID,
                        МестоНазначения = dial.mestoNaznachenia,
                        СостояниеID     = sostID,
                        ДатаДоставки    = DateTime.Parse(dial.DataDostavki),
                        ТрСредствоID    = carID,
                        ВодительID      = driverID
                    };
                    context1.Заказы.Add(addZakaz);
                    context1.SaveChanges();
                    zakazID = addZakaz.ЗаказID;
                }

                hTable = dial.l;
                int     mass              = 1;
                decimal rascenka          = 1;
                int     kodID             = 0;
                int     kolichestvoTovara = 0;
                foreach (DictionaryEntry i in hTable)
                {
                    foreach (СкладТоваров item in r5)
                    {
                        if (item.Наименование == (string)i.Key)
                        {
                            kodID             = item.КодТовара;
                            kolichestvoTovara = int.Parse(i.Value.ToString());
                        }
                    }

                    СкладТоваров deletFromSklad = context1.СкладТоваров.Find(kodID);
                    deletFromSklad.Остаток = deletFromSklad.Остаток - kolichestvoTovara;

                    if (deletFromSklad == null || deletFromSklad.Остаток < 0)
                    {
                        MessageBox.Show("Ошибка по складу товаров!", "Внимание!", MessageBoxButton.OK, MessageBoxImage.Error);
                        deletFromSklad.Остаток = deletFromSklad.Остаток + kolichestvoTovara;
                        endOperationOK         = false;
                        Заказы delZakaz = context1.Заказы.Find(zakazID);
                        context1.Заказы.Remove(delZakaz);
                        context1.SaveChanges();
                        break;
                    }
                    else
                    {
                        ЗаказаноТоваров addTovari = new ЗаказаноТоваров
                        {
                            ЗаказID         = zakazID,
                            КодТовара       = kodID,
                            асценкаТоннЗаКм = rascenka,
                            Количество      = kolichestvoTovara,
                            Масса           = mass
                        };
                        context1.ЗаказаноТоваров.Add(addTovari);
                        context1.SaveChanges();



                        endOperationOK = true;
                    }
                }
                if (endOperationOK == true)
                {
                    var success = context1.Заказы;
                    dg2.Items.Clear();
                    foreach (Заказы item in success)
                    {
                        dg2.Items.Add(item);
                    }
                    MessageBox.Show("Заказ успешно добавлен", "Успех!", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
        }