Пример #1
0
 /// <summary>
 /// Метод обрабатывает нажатие кнопки Удалить.
 /// Отвечает за удаление записи таблицы.
 /// </summary>
 /// <param name="sender">Объект, вызвавщий метод.</param>
 /// <param name="e">Аргументы события.</param>
 private void deleteB_Click(object sender, EventArgs e)
 {
     //если строка выбрана
     if (receiptDGV.SelectedRows.Count > 0)
     {
         //формирование удаляемого продукт из строки
         Product product = Product.ProductFromRow(receiptDGV.SelectedRows[0], receipt);
         //вывод диалогового окна
         if (product != null && MessageBox.Show("Вы действительно хотите удалить строку:\n" +
                                                $"| {product.Name} | {product.Quantity} | {product.Price} | " +
                                                $"{product.Row_Summ} |", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
         {
             using (var db = new KassaDBContext())
             {
                 //удаление из БД из таблицы Purchase
                 var purchase = db.Purchase.Where(p => p.ProductId == product.Id && p.ReceiptId == receipt.Id).FirstOrDefault();
                 db.Purchase.Remove(purchase);
                 db.SaveChanges();
                 //удаление из состава чека
                 receipt.Purchase.Remove(purchase);
                 receipt.Products.Remove(product);
                 receipt.CalculateSumm();
                 //удаление из DataGridView
                 receiptDGV.Rows.Remove(receiptDGV.SelectedRows[0]);
                 //восстановление остатка
                 CountController.Recover(product.Id, product.Quantity);
             }
         }
     }
 }