예제 #1
0
        // Denna funktion kräver att användaren först har valt ett kvitto från receipt-listview, och
        // sedan även valt en produkt från det valda kvittot.
        // När användaren sedan klickar Refund bekräftas återköpet och produkten tas bort från kvittot och
        // produktens lagerstatus(stock) uppdateras (OM produkten inte tagits bort från lagret).
        private void BTNRefund_Click(object sender, EventArgs e)
        {
            ListViewItem selectedProductItem = null;

            try
            {
                selectedProductItem = ListViewReceiptProducts.SelectedItems[0];
            }
            catch (Exception exc)
            {
                System.Diagnostics.Debug.WriteLine("Error when getting selected product item.");
                System.Diagnostics.Debug.WriteLine(exc.Message);
            }
            if (selectedReceipt != null && selectedProductItem != null)
            {
                int.TryParse(selectedProductItem.Tag.ToString(), out int id);
                double price = 0.0;

                foreach (Product p in selectedReceipt.products)
                {
                    if (p.id == id)
                    {
                        price = p.price;
                        selectedReceipt.products.Remove(p);
                        break;
                    }
                }
                receiptController.Update(selectedReceipt);

                Product product = productController.GetById(id);
                if (product != null)
                {
                    product.stock++;
                    productController.Update(product);
                }

                if (selectedReceipt.products.Count > 0)
                {
                    ListReceiptProducts();
                }
                else
                {
                    receiptController.Remove(selectedReceipt);
                    selectedReceipt = null;
                    ListViewReceiptProducts.Clear();
                    ListReceipts();
                }

                MessageBox.Show(selectedProductItem.SubItems[0].Text + " was refunded for " + price.ToString() + " SEK.");
            }
            else
            {
                MessageBox.Show("Select a product from receipt to refund it.");
            }
        }
예제 #2
0
        // Fyller listview för kvittots produkter med kvittots produkter.
        private void ListReceiptProducts()
        {
            ListViewItem selectedItem = null;

            try
            {
                selectedItem = ListViewReceipts.SelectedItems[0];
            }
            catch (ArgumentOutOfRangeException exc)
            {
                System.Diagnostics.Debug.WriteLine("Error when selecting receipt.");
                System.Diagnostics.Debug.WriteLine(exc.Message);
            }

            if (selectedItem != null)
            {
                string  receiptDate = selectedItem.SubItems[0].Text;
                Receipt receipt     = receiptController.GetByDate(receiptDate);
                selectedReceipt = receipt;

                ListViewReceiptProducts.Items.Clear();
                ListViewReceiptProducts.BeginUpdate();
                foreach (Product product in receipt.products)
                {
                    try
                    {
                        string[] productValues = new string[1];
                        productValues[0] = product.name;
                        ListViewItem item = new ListViewItem(productValues);
                        item.Tag = product.id;
                        ListViewReceiptProducts.Items.Add(item);
                    }
                    catch (Exception exc)
                    {
                        System.Diagnostics.Debug.WriteLine(exc.Message);
                    }
                }

                ListViewReceiptProducts.EndUpdate();
                ListViewReceiptProducts.Sort();
            }
        }