/// <summary>
 /// Used to instantiate a new transaction
 /// </summary>
 /// <param name="invoiceID">The invoice the transaction belongs to</param>
 /// <param name="item">The item being sold</param>
 /// <param name="quantity">How many of the item is being sold</param>
 public DBTransaction(int invoiceID, DBItem item, int quantity)
 {
     this.invoiceID   = invoiceID;
     this.ItemID      = item.GetItemID();
     this.Desc        = item.GetDescription();
     this.ItemType    = item.GetItemType();
     this.Edition     = item.GetEdition();
     this.Condition   = item.GetConditionType();
     this.conditionID = item.GetConditionID();
     this.Price       = item.GetPrice();
     this.Quantity    = quantity;
     this.itemStock   = item.GetQuantity();
 }
        private void BtnRemoveItem_Click(object sender, EventArgs e)
        {
            MasterForm master = (this.Parent.Parent as MasterForm);

            if (this.cbxSelectedItem.SelectedItem is DBItem)
            {
                try
                {
                    DBItem tempItem = (this.cbxSelectedItem.SelectedItem as DBItem);

                    //Attempt to deactivate
                    if (tempItem.DeactivateItem())
                    {
                        //Deactivation successful

                        master.SetStatus("Item " + tempItem.GetDescription() + " has been deactivated");

                        //Remove all related datagridview rows
                        for (var i = 0; i < this.dgvItems.Rows.Count; i++)
                        {
                            if ((int)this.dgvItems.Rows[i].Cells[0].Value == tempItem.GetItemID())
                            {
                                this.dgvItems.Rows.RemoveAt(i);
                            }
                        }
                        if (rbnBook.Checked)
                        {
                            this.books.Remove(tempItem as DBBook);
                        }
                        else if (rbnMap.Checked)
                        {
                            this.maps.Remove(tempItem as DBMap);
                        }
                        else if (rbnPeriodical.Checked)
                        {
                            this.periodicals.Remove(tempItem as DBPeriodical);
                        }
                    }
                }
                catch (Exception ex)
                {
                    master.SetStatus("Error! Deactivation failed: " + ex.Message);
                }
            }
            else
            {
                master.SetStatus("Error! You must select an item to deactivate");
            }
        }