/// <summary>
        /// Metoda odświeżająca listBox z listą przedmiotów po usunięciu przedmiotu z bazy danych
        /// </summary>
        public void OdswiezListePrzedmiotowPoUsunieciu()
        {
            using (var ctx = new Model1())
            {
                List <Produkt> prodList = (from p in ctx.Produkty select p).ToList <Produkt>();

                try
                {
                    foreach (var produktListy in listBoxPrzedmioty.Items)
                    {
                        Produkt produkt = new Produkt(produktListy.ToString());

                        if (!prodList.Contains(produkt))
                        {
                            listBoxPrzedmioty.Items.Remove(produkt.ProduktName);
                        }
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
            }
        }
Пример #2
0
        private void btnAddProduct(object sender, RoutedEventArgs e)
        {
            Produkt product   = comboProducts.SelectedItem as Produkt;
            var     productID = product.ID_Produktu;

            var sql = "SELECT P.ID_Produktu, ID_Towaru, Nazwa_Produktu, Data, Ilosc, Cena FROM Produkt P INNER JOIN Towary T ON P.ID_Produktu = T.ID_Produktu WHERE T.ID_Produktu=@product ORDER BY Data";

            FullInfo[] fullInfos   = _sqlConnection.Query <FullInfo>(sql, new { product = productID }).ToArray();
            float      finallPrice = 0;

            var sqlChceck = "SELECT SUM(Ilosc) FROM Towary T WHERE ID_Produktu =@id_p";
            int suma      = _sqlConnection.Query <int>(sqlChceck, new { id_p = productID }).SingleOrDefault();

            errorQuan.Content  = "";
            errorEmpty.Content = "";
            int res;

            if (String.IsNullOrEmpty(txtQuantity.Text))
            {
                errorQuan.Content += ("Pole ilosc nie może być" + Environment.NewLine + "puste!");
            }

            else if (!int.TryParse(txtQuantity.Text.Trim(), out res))
            {
                errorQuan.Content += "Pole ilosc musi być" + Environment.NewLine + "liczbą nieujamną!";
            }

            else if (int.TryParse(txtQuantity.Text.Trim(), out res) && int.Parse(txtQuantity.Text.Trim()) <= 0)
            {
                errorQuan.Content += "Pole ilosc nie może być" + Environment.NewLine + "ujemne!";
            }

            else if (suma < Int32.Parse(txtQuantity.Text))
            {
                errorEmpty.Content += "Brak wystarczającej ilosci" + Environment.NewLine + "prodoktów!";
            }
            else
            {
                string name     = fullInfos[0].Nazwa_Produktu;
                int    quantity = Int32.Parse(txtQuantity.Text);
                foreach (FullInfo full in fullInfos)
                {
                    if (quantity != 0)
                    {
                        if (full.Ilosc > quantity)
                        {
                            var sqlU = "UPDATE Towary SET Ilosc = @ilosc WHERE ID_Towaru = @idT";
                            finallPrice = quantity * full.Cena;
                            int    ammount  = full.Ilosc - quantity;
                            string ammountS = ammount.ToString();
                            string xd       = full.ID_Towaru.ToString();
                            _sqlConnection.Execute(sqlU, new { ilosc = ammountS, idT = full.ID_Towaru.ToString() });

                            break;
                        }

                        else if (full.Ilosc <= quantity)
                        {
                            var sqlD = "DELETE FROM Towary WHERE ID_Towaru=@idT";
                            finallPrice += full.Ilosc * full.Cena;
                            quantity    -= full.Ilosc;
                            _sqlConnection.Execute(sqlD, new { idT = full.ID_Towaru });
                        }
                    }
                }
                Opisy_zamowien opis = new Opisy_zamowien();

                opis.Cena           = finallPrice;
                opis.ID_Produktu    = productID;
                opis.Ilosc          = quantity;
                opis.Nazwa_Produktu = name;
                var sqlGetLastID = "SELECT TOP 1 ID_Zamowienia from Zamowienia ORDER BY ID_Zamowienia DESC";


                Zamowienia lastID = _sqlConnection.Query <Zamowienia>(sqlGetLastID).SingleOrDefault();

                var sqlI = "INSERT INTO Opisy_zamowien (ID_Zamowienia, ID_Produktu, Ilosc, Cena) VALUES (@id_z, @id_p, @quan, @value)";
                _sqlConnection.Execute(sqlI, new { id_z = lastID.ID_Zamowienia + 1, id_p = productID, quan = quantity, value = finallPrice });

                ordersList.Add(opis);
                ListBoxRefresh(ordersList);
                progressID = lastID.ID_Zamowienia;
            }
        }