private void btnInvoicePay_Click(object sender, EventArgs e) { var dbContext = AppVariables.getDbContext(); var invoice = dbContext.INVOICES.Find(this.CurrentInvoice.Id); try { if (invoice.PAID == 1) { throw new Exception("Change is impossible, invoice paid."); } invoice.PAID = 1; // сохраняем изменения dbContext.SaveChanges(); // перезагружаем изменённую запись CurrentInvoice.Load(invoice.INVOICE_ID); masterBinding.ResetCurrentItem(); } catch (Exception ex) { // отображаем ошибку MessageBox.Show(ex.Message, "Error"); } }
private void btnEditInvoice_Click(object sender, EventArgs e) { // получение контекста var dbContext = AppVariables.getDbContext(); // поиск сущности по идентификатору var invoice = dbContext.INVOICES.Find(this.CurrentInvoice.Id); if (invoice.PAID == 1) { MessageBox.Show("Change is impossible, invoice paid.", "Error"); return; } using (InvoiceEditorForm editor = new InvoiceEditorForm()) { editor.Text = "Edit invoice"; editor.Invoice = invoice; // Обработчик закрытия формы editor.FormClosing += delegate(object fSender, FormClosingEventArgs fe) { if (editor.DialogResult == DialogResult.OK) { try { // пытаемся сохранить изменения dbContext.SaveChanges(); // перезагружаем проекцию CurrentInvoice.Load(invoice.INVOICE_ID); masterBinding.ResetCurrentItem(); } catch (Exception ex) { // отображаем ошибку MessageBox.Show(ex.Message, "Error"); // не закрываем форму для возможности исправления ошибки fe.Cancel = true; } } }; // показываем модальную форму editor.ShowDialog(this); } }
private void btnDeleteInvoiceLine_Click(object sender, EventArgs e) { var result = MessageBox.Show("Are you sure you want to delete the invoice item?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { var dbContext = AppVariables.getDbContext(); // получаем текущую счёт-фактуру var invoice = dbContext.INVOICES.Find(this.CurrentInvoice.Id); try { // проверяем не оплачена ли счёт-фактура if (invoice.PAID == 1) { throw new Exception("Remove is impossible, invoice paid."); } // создаём параметры ХП var idParam = new FbParameter("INVOICE_LINE_ID", FbDbType.Integer); // инициализируем параметры значениями idParam.Value = this.CurrentInvoiceLine.Id; // выполняем хранимую процедуру dbContext.Database.ExecuteSqlCommand("EXECUTE PROCEDURE SP_DELETE_INVOICE_LINE(@INVOICE_LINE_ID)", idParam); // обновляем гриды // перезагрузка текущей записи счёт-фактуры CurrentInvoice.Load(invoice.INVOICE_ID); // перезагрузка всех записей детейл грида LoadInvoiceLineData(invoice.INVOICE_ID); // обновляем связанные даные masterBinding.ResetCurrentItem(); } catch (Exception ex) { // отображаем ошибку MessageBox.Show(ex.Message, "Error"); } } }
private void btnEditInvoiceLine_Click(object sender, EventArgs e) { var dbContext = AppVariables.getDbContext(); // получаем текущую счёт-фактуру var invoice = dbContext.INVOICES.Find(this.CurrentInvoice.Id); // проверяем не оплачена ли счёт-фактура if (invoice.PAID == 1) { MessageBox.Show("Change is impossible, invoice paid.", "Error"); return; } // получаем текущую позицию счёт-фактуры var invoiceLine = invoice.INVOICE_LINES .Where(p => p.INVOICE_LINE_ID == this.CurrentInvoiceLine.Id) .First(); // создаём редактор позиции счёт фактуры using (InvoiceLineEditorForm editor = new InvoiceLineEditorForm()) { editor.Text = "Edit invoice line"; editor.InvoiceLine = invoiceLine; // Обработчик закрытия формы editor.FormClosing += delegate(object fSender, FormClosingEventArgs fe) { if (editor.DialogResult == DialogResult.OK) { try { // создаём параметры ХП var idParam = new FbParameter("INVOICE_LINE_ID", FbDbType.Integer); var quantityParam = new FbParameter("QUANTITY", FbDbType.Integer); // инициализируем параметры значениями idParam.Value = invoiceLine.INVOICE_LINE_ID; quantityParam.Value = invoiceLine.QUANTITY; // выполняем хранимую процедуру dbContext.Database.ExecuteSqlCommand( "EXECUTE PROCEDURE SP_EDIT_INVOICE_LINE(@INVOICE_LINE_ID, @QUANTITY)", idParam, quantityParam); // обновляем гриды // перезагрузка текущей записи счёт-фактуры CurrentInvoice.Load(invoice.INVOICE_ID); // перезагрузка всех записей детейл грида LoadInvoiceLineData(invoice.INVOICE_ID); // обновляем связанные даные masterBinding.ResetCurrentItem(); } catch (Exception ex) { // отображаем ошибку MessageBox.Show(ex.Message, "Error"); // не закрываем форму для возможности исправления ошибки fe.Cancel = true; } } }; // показываем модальную форму editor.ShowDialog(this); } }