/// <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()); } } }
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; } }