public BSP_ViewModel() { warenFuellen(); Gewaehlt = Waren[0]; // Der Command wird erstellt bestellen = new Command <Slider>( execute: (Slider bestellmenge) => { Lagermenge -= bestellmenge.Value; OnPropertyChanged("Waren"); /* Die Liste wird durchgegangen und wenn das Model mit * der gleichen Bezeichnung gefunden wurde, wird dessen * Lagermenge um die Bestellmenge reduziert*/ foreach (BSP_Model model in Waren) { if (model.Bezeichnung.Equals(Gewaehlt.Bezeichnung)) { Waren[Waren.IndexOf(model)].LagerMenge = Gewaehlt.LagerMenge; OnPropertyChanged("Waren"); break; } } } ); }
private void Goodsreceipt() { //Listen neu zuweisen WarenListe = ctx.Waren.ToList(); LiefererListe = ctx.Lieferer.ToList(); //gehe zum selektiertem Gut string ProduktName = lbxgoodsreceiptgoods.SelectedItem.ToString(); Produkte produkte = (Produkte)lbxgoodsreceiptgoods.SelectedItem; Waren waren = ctx.Waren.Where(x => x.Produkte.ProduktNummer.Equals(produkte.ProduktNummer)).FirstOrDefault(); //wenn es gefunden wurde führe Aktion aus if (waren != null) { //fragen ob die Transaktion wirklich durchgeführt werden soll MessageBoxResult messageBox = MessageBox.Show($"Sie wollen in Ihr Lager {tbxgoodsreceiptdelivered.Text} Stück des Artikels {waren.Produkte.ProduktName} hinzufügen?", "Frage", MessageBoxButton.YesNo, MessageBoxImage.Question); if (messageBox.Equals(MessageBoxResult.Yes)) { //aktueller Bestand anpassen waren.AktBestand = waren.AktBestand + Convert.ToInt32(tbxgoodsreceiptdelivered.Text); ctx.SaveChanges(); } else { //Benutzer darauf hinweisen das die Transaktion nicht durchgeführt wurde MessageBox.Show("Transaktion abgebrochen!", "Info", MessageBoxButton.OK, MessageBoxImage.Information); return; } //Wareneingang Tabelle eintrag hinzufügen Wareneingang wareneingang = new Wareneingang(); Lieferer lieferer = (Lieferer)lbxgoodsreceiptdeliverer.SelectedItem; wareneingang.WareneingangID = ctx.Wareneingang.Count() + 1; wareneingang.Artikel = waren.ArtikelNr; wareneingang.Lieferer = lieferer.LiefererNR; wareneingang.Bestellmenge = Convert.ToInt32(tbxgoodsreceiptdelivered.Text); //Daten in Tabelle hinzufügen ctx.Wareneingang.Add(wareneingang); ctx.SaveChanges(); //Kontrollausgabe für den Benutzer MessageBox.Show($"Artikel: {waren.Produkte.ProduktName}\nMenge: {tbxgoodsreceiptdelivered.Text}\nLieferer: {lieferer.LiefererName}"); //Template erstellen mit RazorEngine string htmlFile = System.IO.File.ReadAllText("wareneingangtemplate.cshtml"); int weid = ctx.Wareneingang.Count(); string result = Engine.Razor.RunCompile(htmlFile, $"WETemplate{weid}", null, wareneingang); int warenEingangAnz = ctx.Wareneingang.Count(); System.IO.File.WriteAllText($"Wareneingang{warenEingangAnz}.html", result); tbxgoodsreceiptdelivered.Clear(); } else { MessageBox.Show("Fehler"); } }
//Produkte in Datenbank hinzufügen internal void ProdukteHinzufuegen(int ANR, int PNR, float VAL, string PN, LagerverwaltungContext ctx) { //lege Produkt und Ware an Waren neueWare = new Waren(); Produkte neuesProdukt = new Produkte(); //Fülle alle Daten aus neueWare.ArtikelNr = ANR; neueWare.AktBestand = 0; neueWare.ProduktNummer = PNR; neuesProdukt.ProduktNummer = PNR; neuesProdukt.ProduktName = PN; neuesProdukt.ProduktWert = VAL; //füge Daten in Datenbank ein ctx.Produkte.Add(neuesProdukt); ctx.Waren.Add(neueWare); ctx.SaveChanges(); }
public static decimal GetProductValue(int ArtikelNummer) { Waren artikel = ctx.Waren.Where(x => x.ArtikelNr.Equals(ArtikelNummer)).FirstOrDefault(); return(Convert.ToDecimal(artikel.Produkte.ProduktWert)); }
public static string GetProductName(int ArtikelNummer) { Waren artikel = ctx.Waren.Where(x => x.ArtikelNr.Equals(ArtikelNummer)).FirstOrDefault(); return(artikel.Produkte.ProduktName); }
private void Btngoodsissue_Click(object sender, RoutedEventArgs e) { //Wähle Produkt anhand von Produknummer aus Produkte produkte = (Produkte)lbxgoodsissuegoods.SelectedItem; Waren waren = ctx.Waren.Where(x => x.Produkte.ProduktNummer.Equals(produkte.ProduktNummer)).FirstOrDefault(); //Prüfe ob Produkt gefunden wurde if (waren != null) { //Prüfe ob Mindestbestand unterschritten wird int aktBestand = Convert.ToInt32(waren.AktBestand); int Menge; if (Int32.TryParse(tbxgoodsissueamount.Text, out Menge)) { } else { MessageBox.Show("Warenmenge darf keine Kommazahl sein oder Buchstaben enthalten!", "Warnung", MessageBoxButton.OK, MessageBoxImage.Error); return; } if (waren.AktBestand >= Menge) { MessageBoxResult messageBoxResult = MessageBox.Show($"Sie aus ihrem Lager {tbxgoodsissueamount.Text} Stück des Artikels {waren.Produkte.ProduktName} entfernen?", "Frage", MessageBoxButton.YesNo, MessageBoxImage.Question); if (messageBoxResult.Equals(MessageBoxResult.Yes)) { if (waren.Mindestbestand > (aktBestand = Convert.ToInt32(waren.AktBestand) - Menge)) { //Frage ob Mindesbestand unterschritten werden soll! MessageBoxResult messageBox = MessageBox.Show($"Mit dieser Transaktion wird der Mindesbestand " + $"des Produktes unterschritten, wollen Sie fortfahren?", "Warnung", MessageBoxButton.YesNo, MessageBoxImage.Question); if (messageBox == MessageBoxResult.Yes) { //Buche Vorgang waren.AktBestand = waren.AktBestand - Menge; ctx.SaveChanges(); } else { //Breche Vorgang ab MessageBox.Show("Transaktion abgebrochen!", "Info", MessageBoxButton.OK, MessageBoxImage.Information); return; } } else { //Buche Vorgang waren.AktBestand = waren.AktBestand - Menge; ctx.SaveChanges(); } } else { //Benutzer darauf hinweisen das die Transaktion nicht durchgeführt wurde MessageBox.Show("Transaktion abgebrochen!", "Info", MessageBoxButton.OK, MessageBoxImage.Information); return; } } else { MessageBox.Show("Nicht genügend Artikel im Bestand!", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } //Fülle Daten in Warenausgangstabelle ein Warenausgang warenausgang = new Warenausgang(); Kunde kunde = (Kunde)lbxgoodsissuecustomer.SelectedItem; warenausgang.WarenausgangID = ctx.Warenausgang.Count() + 1; warenausgang.Artikel = waren.ArtikelNr; warenausgang.Kunde = kunde.KundenNr; warenausgang.Bestellmenge = Convert.ToInt32(tbxgoodsissueamount.Text); ctx.Warenausgang.Add(warenausgang); ctx.SaveChanges(); //Kontrollausgabe für den Benutzer MessageBox.Show($"Artikel: {waren.Produkte.ProduktName}\nMenge: {tbxgoodsissueamount.Text}\nKunde: {kunde.KundenName}"); //Template erstellen mit RazorEngine string htmlFile = System.IO.File.ReadAllText("warenausgangtemplate.cshtml"); int waid = ctx.Warenausgang.Count(); string result = Engine.Razor.RunCompile(htmlFile, $"WATemplate{waid}", null, warenausgang); int warenAusgangAnz = ctx.Warenausgang.Count(); System.IO.File.WriteAllText($"Warenausgang{warenAusgangAnz}.html", result); } //Textbox leeren tbxgoodsissueamount.Clear(); //Setze selektierte Items auf 0, damit keine Fehler entstehen können lbxgoodsissuecustomer.SelectedIndex = 0; lbxgoodsissuegoods.SelectedIndex = 0; }