private void Delete_LitTurnover_Click(object sender, EventArgs e) { if (dgv_LitTurnover.Rows.Count > 0) { LiteratureTurnoverClass litTurnover = dgv_LitTurnover.Rows[0].Tag as LiteratureTurnoverClass; DbModel.init().LiteratureTurnover.Remove(litTurnover); DbModel.init().SaveChanges(); updatData(); } }
private void bt_PlusBookListPurchase_Click(object sender, EventArgs e) { //Заполнение таблицы про закупку одной книги PurchaseAccountingClass purchaseAccounting = new PurchaseAccountingClass { price = Convert.ToDecimal(tb_PricePurchase.Text), count = Convert.ToInt32(tb_CountPurchase.Text), }; // purchaseAccounting.literatureTurnover = LiteratureTurnoverClass.addNewLitherature(cb_BookPurchase.SelectedItem as BookClass, purchaseAccounting.count); //выдадим в dgv информацию о закупаемой книге: количество, цену, стоимость int r = dgv_PurchaseList.Rows.Add((cb_BookPurchase.SelectedItem as BookClass).ToString(), purchaseAccounting.count, purchaseAccounting.price, (purchaseAccounting.count * purchaseAccounting.price)); //получаем тег строки (её номер) dgv_PurchaseList.Rows[r].Tag = purchaseAccounting; updateResult(); }
private void bt_import_Purchase_Click(object sender, EventArgs e) { if (ofd_load_Purchase.ShowDialog() == DialogResult.OK)//Вызываем диалог выбора файла и проверяем, что полльзователь выбрал файл { DataTable table; if (ExcelClass.loadExcel(ofd_load_Purchase.FileName, out table))//Если загрузка данных(ИмяФайла,ТаблицаСРезультатом) прошел успешно { PurchaseListClass purchaseList = new PurchaseListClass { datePurchase = DateTime.Now }; foreach (DataRow row in table.Rows)//перебираем полученные строки { StringBuilder builder = new StringBuilder(); //Проверка на наличие такого типа литературы с такими данными string typename = row["Тип"].ToString(); TypeClass type = DbModel.init().Types.Where(t => t.type == typename).FirstOrDefault(); //Если книга не существует, то выдается сообщение об ошибке if (type == null) { type = new TypeClass { type = Convert.ToString(typename) }; } //проверка на наличие авторов в базе List <AuthorClass> authors = new List <AuthorClass>(); //разделение авторов сначала на двух разных, а затем каждого на инициалы string FIO_Authors = Convert.ToString(row["Автор"]); string[] split_Author = FIO_Authors.Split(','); //перебираем инициаллы foreach (string strF_IO in split_Author) { string[] F_I_O = strF_IO.Split(' ', '.'); AuthorClass author = null; string fam = F_I_O[0], name = F_I_O[1], otch = F_I_O[2]; //сравниваем инициалы на наличие соотношениий в базе. Инициалы И.О. сверяются с первыми бууквами значений. author = DbModel.init().Authors.Where(a => a.family_name.StartsWith(fam) && a.first_name.StartsWith(name) && a.middle_name.StartsWith(otch)).FirstOrDefault(); //если такой автор в базе найден, то..... if (author != null) { //в класс (таблицу) автора добавляется новой значение authors.Add(author); } else { //если данные не найдены, то открывается форма "AddAvtor" для того, чтобы пользователь расшифровал значение. //От формы данные добавляются в базу AddAvtorForm addAvtor = new AddAvtorForm(fam, name, otch); if (addAvtor.ShowDialog() != DialogResult.OK) { builder.AppendLine(String.Format("Fio author {0} not found!", strF_IO)); } else { author = addAvtor.GetAuthor(); authors.Add(author); } } } //Проверка на наличие издательства с такими данными. !!!!!!!!!Действия схожи с данными об авторах!!!!!!! List <PublisherClass> publishers = new List <PublisherClass>(); string publicher_str = Convert.ToString(row["Издательство"]); string[] split_publisher = publicher_str.Split(':'); PublisherClass publisher = null; string publisher_name = split_publisher[1], publisher_city = split_publisher[0]; publisher = DbModel.init().Publishers.Where(p => p.city.StartsWith(publisher_city) && p.name.StartsWith(publisher_name)).FirstOrDefault(); if (publisher != null) { publishers.Add(publisher); } else { AddPublisherForm addPublisher = new AddPublisherForm(publisher_city, publisher_name); if (addPublisher.ShowDialog() != DialogResult.OK) { builder.AppendLine(String.Format("Издательство не найдено!", publicher_str)); } else { publisher = addPublisher.GetPublisher(); publishers.Add(publisher); } } //Проверка на наличие данной литературы BookClass book = null; string bookname = row["Название"].ToString(); int? bookclassnum = null; try { bookclassnum = Convert.ToInt32(row["Класс"]); } catch { } book = DbModel.init().Books.Include(b => b.publisher).Include(b => b.type).Include(b => b.Authors) .Where(b => b.classnum == bookclassnum && b.name_book == bookname && b.publisher.idPublisher == publisher.idPublisher && b.type.idType == type.idType ).FirstOrDefault(); if (book == null) { AddBookForm addBook = new AddBookForm(bookclassnum, bookname, publisher, type, authors); if (addBook.ShowDialog() != DialogResult.OK) { builder.AppendLine(String.Format("Литература не найдена!", bookname)); } book = addBook.GetBook(); } int Litheraturecount = Convert.ToInt32(row["Количество"]); purchaseList.purchaseAccountings.Add( new PurchaseAccountingClass { count = Litheraturecount, price = Convert.ToDecimal(row["Цена"]), literatureTurnover = LiteratureTurnoverClass.addNewLitherature(book, Litheraturecount) } ); } AddPurchaseForm addPurchase = new AddPurchaseForm(purchaseList); addPurchase.ShowDialog(); MessageBox.Show("Boooozhe! ONO RABOTAET!"); } } }
private void bt_Import_Issuance_Click(object sender, EventArgs e) { if (ofd_load_Issuance.ShowDialog() == DialogResult.OK)//Вызываем диалог выбора файла и проверяем, что полльзователь выбрал файл { DataTable table; if (ExcelClass.loadExcel(ofd_load_Issuance.FileName, out table)) //Если загрузка данных(ИмяФайла,ТаблицаСРезультатом) прошел успешно { StringBuilder stringBuilder = new StringBuilder(); //конструктор ошибок foreach (DataRow row in table.Rows) //перебираем полученные строки { //Проверка на наличие обучающегося с такими данными TrainessClass trainess = DbModel.init().Trainesses.Where(t => t.classTrainess == Convert.ToInt32(row["Класс"]) && t.family_name == Convert.ToString(row["фамилия"]) && t.first_name == Convert.ToString(row["Имя"]) ).FirstOrDefault(); //Проверка на наличие книги с такими данными BookClass book = DbModel.init().Books.Where(b => b.name_book == Convert.ToString(row["Название книги"])).FirstOrDefault(); //Если книга не существует, то выдается сообщение об ошибке if (book == null) { stringBuilder.AppendLine(String.Format("Book with name {0} not found!", Convert.ToString(row["Название книги"]))); continue; } LiteratureTurnoverClass literature = (book.literatureTurnovers.Where(l => l.status == LiteratureTurnoverClass.e_literature_state.storage).FirstOrDefault()); if (literature == null) { stringBuilder.AppendLine("Book not found in storage!"); continue; } //Если такого обучающегося не существует, то он создаётся if (trainess == null) { trainess = new TrainessClass { classTrainess = Convert.ToInt32(row["Класс"]), family_name = Convert.ToString(row["Фамилия"]), first_name = Convert.ToString(row["Имя"]) }; } //Когда подбор данных осуществлен, происходит импорт (добавление данных) DbModel.init().Issuances.Add( new IssuanceClass { user = Authmanager.user, date_of_issue = Convert.ToDateTime(row["Дата выдачи"]), trainess = trainess, literature = literature } ); } //Если найдена ошибка, то выдается сообщение и обращение к ползователю, где спрашивается его согласие на сохранение данных с ошибкой if (stringBuilder.Length > 0) { MessageBox.Show(stringBuilder.ToString()); if (MessageBox.Show("Save?", "save", MessageBoxButtons.YesNo) == DialogResult.Yes) { DbModel.init().SaveChanges(); updatData(); } } else { DbModel.init().SaveChanges(); updatData(); } } } }