Ejemplo n.º 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.");
            }
        }