public AddProductToOrder(Заказы or, List <ЗаказаноТоваров> l) { InitializeComponent(); bCancel.Click += BCancel_Click; bOk.Click += BOk_Click; var r1 = context1.СкладТоваров; foreach (СкладТоваров item in r1) { gb.Items.Add(item.Наименование); } lst = l; order1 = or; add.IsDefault = true; add.Click += Add_Click; }
public DialChangingOrder(Заказы a) { InitializeComponent(); this.ToolTip = "Для изменения данных о товарах, щелкните правой кнопкой мыши над соответсвующим товаром в заказе!"; bCancel.Click += BCancel_Click; bOK.Click += BOK_Click; tb1.ToolTip = "Образец ввода : 2007-07-07 или 2007.07.07"; tb2.ToolTip = "Образец ввода : 2007-07-07 или 2007.07.07"; tb4.ToolTip = "Образец ввода : 2007-07-07 или 2007.07.07"; //вставляем текущее состояние заказа в комбобокс var sost = context.СостояниеЗаказа; foreach (СостояниеЗаказа item in sost) { cb1.Items.Add(item.Состояние); } foreach (СостояниеЗаказа item1 in sost) { if (item1.СостояниеID == a.СостояниеID) { cb1.SelectedItem = item1.Состояние; buf = item1.Состояние; } } //--------------------------------------------------- tb1.Text = a.СрокПоставки.ToShortDateString(); if ((string)cb1.SelectedItem == "Доставлен") { DateTime?value = a.ДатаДоставки; if (value.HasValue) { tb2.Text = value.Value.ToShortDateString(); } } tb3.Text = a.МестоНазначения; tb4.Text = a.ДатаЗаказа.ToShortDateString(); cb1.SelectionChanged += Cb1_SelectionChanged; }
private void AddProductToOrder_Click(object sender, RoutedEventArgs e) //добавление товара в заказ { var r = context1.ЗаказаноТоваров; List <ЗаказаноТоваров> lst = new List <ЗаказаноТоваров>(); if (dg2.SelectedItem != null) { Заказы order = dg2.SelectedItem as Заказы; foreach (ЗаказаноТоваров item in r) { if (item.ЗаказID == order.ЗаказID) { lst.Add(item); } } AddProductToOrder d = new AddProductToOrder(order, lst); if (d.ShowDialog() == true) { context1.SaveChanges(); var show1 = context1.ЗаказаноТоваров; dg1.ItemsSource = null; dg1.Items.Clear(); foreach (ЗаказаноТоваров m in show1) { if (m.ЗаказID == order.ЗаказID) { dg1.Items.Add(m); } } dg1.Items.Refresh(); } } else { MessageBox.Show("Выберите заказ для добавления товара(в)", "Внимание", MessageBoxButton.OK, MessageBoxImage.Information); } }
private async void BOk_Click(object sender, RoutedEventArgs e) { if (rbSave.IsChecked is true) { XDocument xdoc = new XDocument(); XElement xroot = new XElement("Заказы"); XElement orders = new XElement("Товары"); var rez = context1.Заказы; var rez2 = context2.ЗаказаноТоваров; var rez3 = context3.СостояниеЗаказа; var rez4 = context4.Клиенты; var rez5 = context5.Водители; var rez6 = context6.ТранспортноеСредство; foreach (Заказы i in rez) { //Первый элемент XElement elId = new XElement("Заказ"); //Элементы этого элемента XElement elDataDostavki; XAttribute elAttr = new XAttribute("id", i.ЗаказID.ToString()); XElement elSrokPostavki = new XElement("СрокПоставки", i.СрокПоставки.ToShortDateString()); if (i.ДатаДоставки != null) { elDataDostavki = new XElement("ДатаДоставки", i.ДатаДоставки.Value.ToShortDateString()); } else { elDataDostavki = new XElement("ДатаДоставки", ""); } XElement elDataZakaza = new XElement("ДатаЗаказа", i.ДатаЗаказа.ToShortDateString()); XElement elDestinationPlace = new XElement("МестоНазначения", i.МестоНазначения.ToString()); elId.Add(elAttr); elId.Add(elSrokPostavki); elId.Add(elDataDostavki); elId.Add(elDataZakaza); elId.Add(elDestinationPlace); //данные о заказанных товарах foreach (ЗаказаноТоваров i2 in rez2) { if (i.ЗаказID == i2.ЗаказID) { XElement elOrderedItem = new XElement("Товар"); XAttribute elAttrItem = new XAttribute("id", i2.КодТовара.ToString()); XElement elItemWeightCost = new XElement("РасценкаТоннЗаКм", i2.асценкаТоннЗаКм); XElement elItemAmount = new XElement("Количество", i2.Количество); XElement elItemWeigth = new XElement("Масса", i2.Масса); //Привязка к товару elOrderedItem.Add(elAttrItem); elOrderedItem.Add(elItemWeightCost); elOrderedItem.Add(elItemAmount); elOrderedItem.Add(elItemWeigth); //вставляем данные о заказанных товарах в одному заказу orders = new XElement(elOrderedItem); ///обязательно через NEW!!!!!!!!!!!!!!!! //вставляем данные с товарами о заказе elId.Add(orders); } } //СОстояние товара foreach (СостояниеЗаказа i3 in rez3) { if (i.СостояниеID == i3.СостояниеID) { XElement elStat = new XElement("СостояниеЗаказа"); XAttribute elAtt = new XAttribute("id", i3.СостояниеID.ToString()); XElement elStatName = new XElement("Состояние", i3.Состояние.ToString()); elStat.Add(elAtt); elStat.Add(elStatName); elId.Add(elStat); } } //Клиент заказа foreach (Клиенты i4 in rez4) { if (i.КлиентID == i4.КлиентID) { XElement elClient = new XElement("Клиент"); XAttribute elAttCli = new XAttribute("id", i4.КлиентID.ToString()); XElement elFIO = new XElement("ФИО", i4.ФИО.ToString()); XElement elTel = new XElement("Телефон", i4.Телефон.ToString()); XElement elAdress = new XElement("Адрес", i4.Адрес.ToString()); elClient.Add(elAttCli); elClient.Add(elFIO); elClient.Add(elTel); elClient.Add(elAdress); //Добавляем клиента elId.Add(elClient); } } //Водитель foreach (Водители i5 in rez5) { if (i.ВодительID == i5.ВодительID) { XElement elDriver = new XElement("Водитель"); XAttribute elAttDri = new XAttribute("id", i5.ВодительID.ToString()); XElement elFIOdriver = new XElement("ФИО", i5.ФИО); XElement elTeldriver = new XElement("МобТелефон", i5.МобТелефон); elDriver.Add(elAttDri); elDriver.Add(elFIOdriver); elDriver.Add(elTeldriver); elId.Add(elDriver); } } //Грузовик foreach (ТранспортноеСредство i6 in rez6) { if (i.ТрСредствоID == i6.ТрСредствоID) { XElement elCar = new XElement("Грузовик"); XAttribute elAttCar = new XAttribute("id", i6.ТрСредствоID.ToString()); XElement elCarType = new XElement("Марка", i6.Марка); XElement elCarWeight = new XElement("Грузоподъемность", i6.Грузоподъемность); elCar.Add(elAttCar); elCar.Add(elCarType); elCar.Add(elCarWeight); elId.Add(elCar); } } //Добалвяем в корень данные из таблицы Заказы xroot.Add(elId); } //Запись в документ xdoc.Add(xroot); //Сохраняем документ xdoc.Save("Data1.xml"); //Сообщение об успешном сохранении в файл MessageBox.Show("Данные были успешно сохранены.", "Окей", MessageBoxButton.OK, MessageBoxImage.Information); DialogResult = true; } //чтение из файла if (rbLoad.IsChecked is true) { DriverId = 0; clientId = 0; CarId = 0; flag = false; flagCar = false; var col = context1.Заказы; XDocument xdoc = XDocument.Load("Data1.xml"); var xroot = xdoc.Root; //Заказы Заказы order; int orderId; //Обход коллекции Заказы foreach (XElement el in xdoc.Element("Заказы").Elements("Заказ")) //ищем по порядку { //обнуляем флаги и состояния DriverId = 0; clientId = 0; CarId = 0; flag = false; flagCar = false; int item = int.Parse(el.Attribute("id").Value); order = col.FirstOrDefault(s => s.ЗаказID == item);// ищем id заказа в базе if (order == null) { //Если ID заказа нет в xml файле, добавляем, данные о клиенте, затем, сам заказ, затем товары и все остальное... //Добаляем клента Клиенты addClient = new Клиенты { //КлиентID = int.Parse(el.Element("Клиент").Attribute("id").Value), ФИО = el.Element("Клиент").Element("ФИО").Value, Адрес = el.Element("Клиент").Element("Адрес").Value, Телефон = el.Element("Клиент").Element("Телефон").Value }; context1.Клиенты.Add(addClient); context1.SaveChanges(); clientId = addClient.КлиентID; var dr = context1.Водители; //Проверяем наличие водителей foreach (Водители drivers in dr) { if (drivers.ФИО == el.Element("Водитель").Element("ФИО").Value) { flag = true; break; } } //Проверяем наличие транпортного средства var ts = context1.ТранспортноеСредство; foreach (ТранспортноеСредство t in ts) { if (t.Марка == el.Element("Грузовик").Element("Марка").Value) { flagCar = true; break; } } if (flag == false) //Если водителя нет в базе { if (flagCar) //если машина в базе { CarId = int.Parse(el.Element("Грузовик").Attribute("id").Value); } if (flagCar == false) //иначе... { ТранспортноеСредство car = new ТранспортноеСредство { Марка = el.Element("Грузовик").Element("Марка").Value, Грузоподъемность = double.Parse(el.Element("Грузовик").Element("Грузоподъемность").Value) }; context1.ТранспортноеСредство.Add(car); context1.SaveChanges(); CarId = car.ТрСредствоID; } //Добавляем водителя Водители addDriver = new Водители { ФИО = el.Element("Водитель").Element("ФИО").Value, МобТелефон = el.Element("Водитель").Element("МобТелефон").Value }; context1.Водители.Add(addDriver); context1.SaveChanges(); DriverId = addDriver.ВодительID; //Добавляем сам заказ с новым водителем if (el.Element("ДатаДоставки").Value != "") { Заказы addOrder = new Заказы { //ЗаказID = int.Parse(el.Attribute("id").Value), СрокПоставки = DateTime.Parse(el.Element("СрокПоставки").Value).Date, ДатаДоставки = DateTime.Parse(el.Element("ДатаДоставки").Value).Date, ДатаЗаказа = DateTime.Parse(el.Element("ДатаЗаказа").Value).Date, МестоНазначения = el.Element("МестоНазначения").Value, ВодительID = DriverId, СостояниеID = int.Parse(el.Element("СостояниеЗаказа").Attribute("id").Value), ТрСредствоID = CarId, КлиентID = clientId }; context1.Заказы.Add(addOrder); context1.SaveChanges(); orderId = addOrder.ЗаказID; } else { Заказы addOrder = new Заказы { // ЗаказID = int.Parse(el.Attribute("id").Value), СрокПоставки = DateTime.Parse(el.Element("СрокПоставки").Value).Date, ДатаЗаказа = DateTime.Parse(el.Element("ДатаЗаказа").Value).Date, МестоНазначения = el.Element("МестоНазначения").Value, ВодительID = DriverId, СостояниеID = int.Parse(el.Element("СостояниеЗаказа").Attribute("id").Value), ТрСредствоID = CarId, КлиентID = clientId }; context1.Заказы.Add(addOrder); context1.SaveChanges(); orderId = addOrder.ЗаказID; } } else //если водитель есть в базе { if (flagCar) //если машина в базе { CarId = int.Parse(el.Element("Грузовик").Attribute("id").Value); } if (flagCar == false) //иначе... { ТранспортноеСредство car = new ТранспортноеСредство { Марка = el.Element("Грузовик").Element("Марка").Value, Грузоподъемность = double.Parse(el.Element("Грузовик").Element("Грузоподъемность").Value) }; context1.ТранспортноеСредство.Add(car); context1.SaveChanges(); CarId = car.ТрСредствоID; } //Добавляем сам заказ if (el.Element("ДатаДоставки").Value != "") { Заказы addOrder = new Заказы { СрокПоставки = DateTime.Parse(el.Element("СрокПоставки").Value).Date, ДатаДоставки = DateTime.Parse(el.Element("ДатаДоставки").Value).Date, ДатаЗаказа = DateTime.Parse(el.Element("ДатаЗаказа").Value).Date, МестоНазначения = el.Element("МестоНазначения").Value, ТрСредствоID = CarId, ВодительID = int.Parse(el.Element("Водитель").Attribute("id").Value), СостояниеID = int.Parse(el.Element("СостояниеЗаказа").Attribute("id").Value), КлиентID = clientId }; context1.Заказы.Add(addOrder); context1.SaveChanges(); orderId = addOrder.ЗаказID; } else { Заказы addOrder = new Заказы { СрокПоставки = DateTime.Parse(el.Element("СрокПоставки").Value).Date, ДатаЗаказа = DateTime.Parse(el.Element("ДатаЗаказа").Value).Date, МестоНазначения = el.Element("МестоНазначения").Value, ВодительID = int.Parse(el.Element("Водитель").Attribute("id").Value), СостояниеID = int.Parse(el.Element("СостояниеЗаказа").Attribute("id").Value), ТрСредствоID = CarId, КлиентID = clientId }; context1.Заказы.Add(addOrder); context1.SaveChanges(); orderId = addOrder.ЗаказID; } } //Добавляем товары к заказу //Ищем товары в заказе с текущим id var items = from xe in xdoc.Element("Заказы").Elements("Заказ") where xe.Attribute("id").Value == item.ToString() select xe.Element("Товар"); //Перебираем найденные товары и добавляем в заказ foreach (var i in items) { ЗаказаноТоваров addingGoods = new ЗаказаноТоваров { ЗаказID = orderId, КодТовара = int.Parse(i.Attribute("id").Value), асценкаТоннЗаКм = decimal.Parse(i.Element("РасценкаТоннЗаКм").Value, CultureInfo.CreateSpecificCulture("en-US")), Количество = int.Parse(i.Element("Количество").Value), Масса = int.Parse(i.Element("Масса").Value) }; context1.ЗаказаноТоваров.Add(addingGoods); context1.SaveChanges(); } await context1.SaveChangesAsync(); MessageBox.Show("Так как товара в базе нет, вставляем новый заказ.", "Внимание!"); } } MessageBox.Show("Данные были успешно импортированы.", "Окей", MessageBoxButton.OK, MessageBoxImage.Information); DialogResult = true; } }