/// <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); } } } }