private void RemoveItem(bool force = false) { int index = MyDataGridView.Items.IndexOf(MyDataGridView.SelectedItem); Invoices_Items[] _items = new Invoices_Items[MyDataGridView.Items.Count]; MyDataGridView.Items.CopyTo(_items, 0); foreach (Invoices_Items item in _items) { if (!force && MyDataGridView.Items.IndexOf(item) == index) { continue; } if (item.Id <= 0 && item.IsNewInvoiceItem) { context.Invoices_Items.Remove(item); MyDataGridView.UpdateLayout(); } } }
private bool AddNewItem() { if (invoicesViewSource.View.CurrentItem is Invoices invoice) { if (invoicesInvoices_ItemsViewSource.View.CurrentItem == null || !(invoicesInvoices_ItemsViewSource.View.CurrentItem as Invoices_Items).IsNewInvoiceItem) { Invoices_Items nitem = new Invoices_Items { IsNewInvoiceItem = true, Invoice_Id = invoice.InvoiceId, Quantity = 1, }; // context.Invoices_Items.Add(nitem); invoice.Invoices_Items.Add(nitem); invoicesInvoices_ItemsViewSource.View.Refresh(); invoicesInvoices_ItemsViewSource.View.MoveCurrentTo(nitem); return(true); } } return(false); }
public bool SaveItem(bool ForInvoice = false) { decimal price; decimal qty; if (!ForInvoice && invoicesViewSource.View == null || !(invoicesViewSource.View.CurrentItem is Invoices invoice)) { MessageBox.Show("Please create a new Invoice first!", "Warning", MessageBoxButton.OK, MessageBoxImage.Error); return(false); } if (InvoicedateTimePicker.SelectedDate == null || !InvoicedateTimePicker.SelectedDate.HasValue)// || !DateTime.TryParse(InvoicedateTimePicker.Text, out DateTime invoiceDT)) { MessageBox.Show("Please select a valid Invoice date and Time!", "Warning", MessageBoxButton.OK, MessageBoxImage.Error); return(false); } else if (ItemIdCBox.SelectedIndex == -1) { MessageBox.Show("Please select a valid Item ID!", "Warning", MessageBoxButton.OK, MessageBoxImage.Error); return(false); } else if (ItemCodeCBox.SelectedIndex == -1) { MessageBox.Show("Please select a valid Item Barcode!", "Warning", MessageBoxButton.OK, MessageBoxImage.Error); return(false); } else if (ItemNameCBox.SelectedIndex == -1) { MessageBox.Show("Please select a valid Item Name!", "Warning", MessageBoxButton.OK, MessageBoxImage.Error); return(false); } else if (!decimal.TryParse(QtyTBox.Text, out qty) || qty <= 0) { MessageBox.Show("Please enter a valid Quantity!", "Warning", MessageBoxButton.OK, MessageBoxImage.Error); return(false); } else if (!decimal.TryParse(PriceTBox.Text, out price) || price <= 0) { MessageBox.Show("Please enter a valid Price!", "Warning", MessageBoxButton.OK, MessageBoxImage.Error); return(false); } if (invoicesInvoices_ItemsViewSource.View == null || !(invoicesInvoices_ItemsViewSource.View.CurrentItem is Invoices_Items item)) { item = new Invoices_Items { Invoice_Id = invoice.InvoiceId, InvItem_SalesPrice = price, Quantity = qty, Item_Id = (int)ItemIdCBox.SelectedValue, IsNewInvoiceItem = true }; //context.Invoices_Items.Add(item); invoice.Invoices_Items.Add(item); } if (!ForInvoice) { if (!SaveInvoice(false)) { return(false); } } try { context.SaveChanges(); } catch (Exception ex) { MessageBox.Show("Error: " + ex.ToString()); return(false); } item.IsNewInvoiceItem = false; if (!ForInvoice) { //invoicesViewSource.View.Refresh(); invoicesInvoices_ItemsViewSource.View.Refresh(); AddNewItem(); } return(true); }