Beispiel #1
0
        // Öppnar en inputbox som tillåter användaren att specifiera hur många exemplar
        // som ska läggas till för en produkt.
        // "Leverans från grossit"
        private void BTNAddStock_Click(object sender, EventArgs e)
        {
            Product product = GetSelectedProductFromListView(ListViewProducts);

            // Kolla så att en produkt valts.
            if (product != null)
            {
                string input = Interaction.InputBox("Specify stock increment amount for \"" + product.name + "\"", "Add stock", "1", -1, -1);
                if (int.TryParse(input, out int stock) && stock > 0)
                {
                    if (!(product.stock + stock > 9999))
                    {
                        product.stock += stock;
                        productController.Update(product);
                        BTNSearch.PerformClick();
                    }
                    else
                    {
                        MessageBox.Show("Max stock is 9999");
                    }
                }
            }
            else
            {
                MessageBox.Show("Select a product to increment stock.");
            }
        }
Beispiel #2
0
        // Tar bort en produkt. Kräver att användaren valt en produkt från listan först.
        private void BTNRemoveProduct_Click(object sender, EventArgs e)
        {
            Product product = GetSelectedProductFromListView(ListViewProducts);

            // Kolla så att användare valt en produkt från listan.
            if (product != null)
            {
                // Kontrollfunktion om produkten verkligen vill tas bort. Om stock > 0 måste användaren
                // bekräfta att produkten ska tas bort. Om stock <= 0 tas produkten bort direkt.
                if (product.stock > 0)
                {
                    if (MessageBox.Show(
                            "The product \"" + product.name + "\" still have units in stock. Are you sure you want to remove it?",
                            "Confirm Removal",
                            MessageBoxButtons.OKCancel) == DialogResult.OK)
                    {
                        RemoveProduct(product);
                        BTNSearch.PerformClick();
                    }
                }
                else
                {
                    RemoveProduct(product);
                    BTNSearch.PerformClick();
                }
            }
            else
            {
                MessageBox.Show("Select a product to remove.");
            }
        }
Beispiel #3
0
        //--------------- Cashier Tab Interactives ---------------//
        // Denna funktion lägger till en produkt i carten.
        // Detta kräver att användaren vlat en produkt från listan först.
        private void BTNAddToCart_Click(object sender, EventArgs e)
        {
            try
            {
                ListViewItem selectedItem = ListViewProducts.SelectedItems[0];
                ListViewItem cartItem     = (ListViewItem)selectedItem.Clone();
                int.TryParse(cartItem.SubItems[1].Text, out int id);
                Product selectedProduct = productController.GetById(id);

                // Kolla så att produkten finns i lagret, annars meddela användaren att den är s**t.
                if (selectedProduct.stock > 0)
                {
                    ListViewCart.Items.Add(cartItem);
                    cartProducts.Add(selectedProduct);
                    ListProductsInCart();
                    selectedProduct.stock--;
                    productController.Update(selectedProduct);
                    BTNSearch.PerformClick();
                }
                else
                {
                    MessageBox.Show("Product is out of stock.");
                }
            }
            catch (ArgumentOutOfRangeException exc)
            {
                System.Diagnostics.Debug.WriteLine(exc.Message);
                MessageBox.Show("Select a product to add it to the cart.");
            }
        }
Beispiel #4
0
        // Ger användaren bekräftelse på att köpet genomförts, och skapar ett kvitto med de köpta produkterna.
        private void BTNCheckout_Click(object sender, EventArgs e)
        {
            // Kolla först så att carten inte är tom.
            if (cartProducts.Count > 0)
            {
                double totalPrice = 0;
                string products   = "";
                foreach (Product product in cartProducts)
                {
                    totalPrice += product.price;
                    products   += product.name + ":    " + product.price.ToString() + " SEK" + "\n";
                }
                DialogResult dR = MessageBox.Show(products + "\nTotal price: " + totalPrice.ToString() + " SEK", "Checkout", MessageBoxButtons.OKCancel);
                if (dR == DialogResult.OK)
                {
                    MessageBox.Show("Get receipt?", "Receipt", MessageBoxButtons.OK);

                    // Skapa kvitto
                    Receipt receipt = new Receipt();
                    foreach (Product product in cartProducts)
                    {
                        receipt.products.Add(product);
                    }
                    receiptController.Add(receipt);

                    // Töm carten.
                    cartProducts.Clear();
                    // Uppdatera listan så att vi ser att stock i köpta produkter minskat.
                    BTNSearch.PerformClick();
                    ListProductsInCart();
                    MessageBox.Show("Purchase done!");
                }
            }
            else
            {
                MessageBox.Show("Cart is empty.");
            }
        }