示例#1
0
        public ActionResult Detail(int id = 0)
        {
            Produkte meinProdukt = Functions.GetProdukteByIDForDetail(id);

            if (meinProdukt.ID == 0)
            {
                return(Redirect("~/Home/Index/"));
            }
            return(View(meinProdukt));
        }
        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");
            }
        }
示例#3
0
        // GET: Produkte
        public ActionResult Index()
        {
            Produkte produkte = Produkte.GetProdukte(Request, out string message);

            if (!message.IsNullOrEmpty())
            {
                ModelState.AddModelError("Error", message);
            }

            return(View(produkte));
        }
 private void Btnproducttodeliverer_Click(object sender, RoutedEventArgs e)
 {
     if (comboboxproduct.SelectedItem != null && cbxdeliverer.SelectedItem != null)
     {
         //Dem Lieferer das Produkt zuweisen
         Produkte produkte = (Produkte)comboboxproduct.SelectedItem;
         Lieferer lieferer = (Lieferer)cbxdeliverer.SelectedItem;
         lieferer.Produkte.Add(produkte);
         ctx.SaveChanges();
         btnproducttodeliverer.IsEnabled = false;
     }
 }
示例#5
0
 private void BtnCustomerProduct_Click(object sender, RoutedEventArgs e)
 {
     if (comboboxproduct.SelectedItem != null && cbxchoosecustomer.SelectedItem != null)
     {
         //Dem Kunden das gewählte Produkt zuweisen
         Produkte produkte = (Produkte)comboboxproduct.SelectedItem;
         Kunde    kunde    = (Kunde)cbxchoosecustomer.SelectedItem;
         kunde.Produkte.Add(produkte);
         ctx.SaveChanges();
         btnCustomerProduct.IsEnabled = false;
     }
 }
示例#6
0
        public ActionResult Detail(string id)
        {
            try
            {
                ViewBag.message = TempData["message"].ToString();
                ViewBag.error   = TempData["error"].ToString();
            }
            catch { }
            var    p      = new Produkte();
            double price  = 0.0;
            int    vorrat = 1;
            uint   xid    = Convert.ToUInt32(id);

            using (var MensaContext = new Mensa())
            {
                var query = from be in MensaContext.Mahlzeiten
                            where be.ID == Convert.ToUInt32(id)
                            select be.Vorrat;
                try
                {
                    vorrat = query.Sum();
                }
                catch (Exception e)
                {
                    var x = e.Message;
                }
            }
            try {
                uint t = Convert.ToUInt32(id);
                p = Produkte.GetByID(t);

                if (Session["role"] == null)
                {
                    price = Produkte.GetPrice("Gast", p);
                }
                else
                {
                    Models.Benutzer b = new Models.Benutzer();
                    b     = Models.Benutzer.GetByNutzername(Session["name"].ToString());
                    price = Produkte.GetPrice(Models.Benutzer.Rolle(b), p);
                }
                ViewData["p"]     = p;
                ViewData["price"] = price;
                return(View());
            }catch (Exception ex)
            {
                ViewData["price"] = price;
                ViewData["p"]     = p;
                return(View());
            }
        }
        //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();
        }
示例#8
0
        // GET: Produkte
        public ActionResult Index(string bez, string vege, string vega, string vorrat)
        {
            string tname = "0";

            if (bez != null)
            {
                tname = bez;
            }
            bool tvege = false;

            if (vege == "1")
            {
                tvege = true;
            }

            bool tvega = false;

            if (vega == "1")
            {
                tvega = true;
            }

            bool tvorrat = false;

            if (vorrat == "1")
            {
                tvorrat = true;
            }

            var p = Produkte.Filter(tname, tvege, tvega, tvorrat);
            var z = Models.Kategorien.GetAll();

            ViewData["Kategorien"] = z;
            ViewData["Produkte"]   = p;
            ViewData["bez"]        = tname;
            ViewData["vege"]       = tvege;
            ViewData["vega"]       = tvega;
            ViewData["vorrat"]     = tvorrat;
            return(View());
        }
        private void deletefromdb(int ProduktNummer)
        {
            //weise zu löschendes Produkt zu
            Produkte delProdukt = ctx.Produkte.Where(x => x.ProduktNummer.Equals(ProduktNummer)).FirstOrDefault();

            //Lösche Produkt wenn es gefunden wurde
            if (delProdukt != null)
            {
                //Alle Warenbewegungen und das Produkt löschen
                string delProductName      = delProdukt.ProduktName;
                List <Wareneingang> delWEs = ctx.Wareneingang.Where(x => x.Waren.Produkte.ProduktNummer.Equals(delProdukt.ProduktNummer)).ToList();
                List <Warenausgang> delWAs = ctx.Warenausgang.Where(x => x.Waren.Produkte.ProduktNummer.Equals(delProdukt.ProduktNummer)).ToList();

                //alle Warenbewegungen löschen, die mit dem Produkt angesprochen wurden!
                foreach (Wareneingang wedel in delWEs)
                {
                    if (wedel != null)
                    {
                        ctx.Wareneingang.Remove(wedel);
                        ctx.SaveChanges();
                    }
                }
                foreach (Warenausgang wadel in delWAs)
                {
                    if (wadel != null)
                    {
                        ctx.Warenausgang.Remove(wadel);
                        ctx.SaveChanges();
                    }
                }

                ctx.Produkte.Remove(delProdukt);
                //Meldung für den Benutzer
                MessageBox.Show(delProductName + " wurde gelöscht");
                ctx.SaveChanges();
            }
        }
示例#10
0
        // GET: Produkte
        public ActionResult Index()
        {
            string   constr   = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
            Produkte produkte = new Produkte()
            {
                rows       = 5, columns = 4,
                kategorien = new List <Kategorie>(),
                mahlzeiten = new List <Mahlzeit>()
            };
            string filter = "";
            bool   isPost = Request.HttpMethod == "POST";

            if (isPost)
            {
                bool   checkCategory = !Request["filterCategory"].IsEmpty() && Request["filterCategory"] != "-1";
                string category      = Request["filterCategory"];

                bool available = Request["filterAvailable"] == "available";

                bool vegetarian = Request["filterVegetarian"] == "vegetarian";

                bool vegan = Request["filterVegan"] == "vegan";
                if (checkCategory || available || vegetarian || vegan)
                {
                    filter = " WHERE";
                    if (checkCategory)
                    {
                        filter += $" inKategorie = {category} AND";
                    }
                    if (available)
                    {
                        filter += " verfügbar = 1 AND";
                    }
                    if (vegetarian)
                    {
                        filter += $" vegetarisch = 1 AND";
                    }
                    if (vegan)
                    {
                        filter += $" vegan = 1 AND";
                    }
                    filter += " 1 = 1";
                }
            }
            using (MySqlConnection con = new MySqlConnection(constr))
            {
                try
                {
                    con.Open();
                    // Get Kategorien
                    string query = "SELECT ID, Bezeichnung, Parent FROM Kategorien";
                    using (MySqlCommand cmd = new MySqlCommand(query, con))
                    {
                        using (MySqlDataReader reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                produkte.kategorien.Add(new Kategorie
                                {
                                    ID          = Convert.ToInt32(reader["ID"]),
                                    Bezeichnung = reader["Bezeichnung"].ToString(),
                                    Parent      = (reader["Parent"] != DBNull.Value
                                                                        ? Convert.ToInt32(reader["Parent"])
                                                                        : -1)
                                });
                            }
                        }
                    }

                    // Get Mahlzeiten
                    query = $"SELECT ID, Name, verfügbar, Titel, `Alt-Text`, Binärdaten FROM Produkte{filter}";
                    using (MySqlCommand cmd = new MySqlCommand(query, con))
                    {
                        using (MySqlDataReader reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                produkte.mahlzeiten.Add(new Mahlzeit
                                {
                                    ID        = Convert.ToInt32(reader["ID"]),
                                    Name      = reader["Name"].ToString(),
                                    Verfügbar = Convert.ToBoolean(reader["verfügbar"]),
                                    Bilder    = (reader["Alt-Text"] != DBNull.Value ? new List <Bild>()
                                    {
                                        new Bild()
                                        {
                                            Alttext = reader["Alt-Text"].ToString(),
                                            Titel = reader["Titel"].ToString(),
                                            Binärdaten = "data:image/jpg;base64," + Convert.ToBase64String((byte[])reader["Binärdaten"])
                                        }
                                    } : null)
                                });
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    con.Close();
                    ModelState.AddModelError("Error", e.Message);
                    return(View(produkte));
                }
            }

            return(View(produkte));
        }
示例#11
0
        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;
        }
示例#12
0
文件: Main.cs 项目: BabsiL/oom
        public static void Main(string[] args)
        {
            //Aray aus Objekten verschiedener Klassen
            var produkte = new Produkte[]
            {
                //Neue Objekte der Klassen erzeugen
                new Lebensmittel("Ja! Bio Zitronen 4Stück", 409346, 1.99m, "Obst und Gemüse"),
                new Lebensmittel("Billa Doppelschoko-Kuchen", 339574, 1.59m, "Feinkost"),
                new Lebensmittel("Finis Feinstes Dinkelmehl", 869039, 2.09m, "Lebensmittel"),
                new Lebensmittel("Bonduelle Goldmais", 413600, 1.49m, "Konserven"),
                new Lebensmittel("Steirische Freilandeier mittel", 337984, 3.49m, "Frischdienst"),
                new Lebensmittel("Ben & Jerrys Cookie Dough", 693076, 5.49m, "Tiefkühl"),
                new Lebensmittel("Nöm Frische Vollmilch 3,5%", 411357, 1.09m, "Frischdienst"),
                new Getraenke("Wegenstein Zweigelt Rosé", 614732, 2.49m, "Getränke"),
                new Getraenke("Moet &Chandon imperial", 213110, 42.90m, "Getränke"),
                new Sonstiges("Vivo Glas 2er Set- 180 ml", 403957, 14.99m, "Non food"),
                new Sonstiges("Ariel Flüssig Colour", 417462, 7.99m, "Parfumerie"),
            };

            //Ausgabe von allen Produkten
            foreach (var x in produkte)
            {
                Console.WriteLine("Neues Produkt");
                Console.WriteLine("Name: " + x.Name + " \n" + "Artikelnummer: " + x.Artikelnummer + " \n" + "Preis: " + x.Preis + " \n" + "Warengruppenbereich: " + x.Warengruppenbereich + " \n");
            }


            //serialisieren
            var einstellungen = new JsonSerializerSettings()
            {
                Formatting = Formatting.Indented, TypeNameHandling = TypeNameHandling.Auto
            };
            string text = (JsonConvert.SerializeObject(produkte, einstellungen));

            //serialisierte Produkte ausgeben
            Console.WriteLine(text);
            //File namens produkte.json wird nach dem hineinschreibem am Desktop gespeichert
            var desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            var file    = Path.Combine(desktop, "produkte.json");

            //alle serialisierten Produkte ins File am Desktop schreiben
            File.WriteAllText(file, text);
            //Produkte aus File lesen
            var TextAusFile = File.ReadAllText(file);
            //Deserialisieren
            var ProdukteAusFile = JsonConvert.DeserializeObject <Produkte[]>(TextAusFile, einstellungen);

            //ausgabe Für deserialisierte Produkte aus dem File
            foreach (var x in ProdukteAusFile)
            {
                Console.WriteLine("Neues Produkt");
                Console.WriteLine("Name: " + x.Name + " \n" + "Artikelnummer: " + x.Artikelnummer + " \n" + "Preis: " + x.Preis + " \n" + "Warengruppenbereich: " + x.Warengruppenbereich + " \n");
            }

            //Ausgabe für die Produkte aus dem File für die Funktion Artikelnummern_aktualisieren
            foreach (var x in ProdukteAusFile)
            {
                //Console.WriteLine("neue Artikelnummer eingeben: \n");
                //int neuenummer = Int32.Parse(Console.ReadLine());
                //x.Artikelnummern_aktualisieren(neuenummer);

                int neuenummer = x.Artikelnummer + 012384;
                x.Artikelnummern_aktualisieren(neuenummer);
                Console.WriteLine("Die neue Artikelnummer für {0} ist {1}", x.Name, x.Artikelnummer);
            }



            /*foreach (var x in produkte)
             * {
             * x.Preis = x.RabatteEinlösen(x.Preis);
             *
             * }*/

            //2 Tasks ->Gibt Getränkepreise einer Liste aus
            asyncawait.Asyncawait().ContinueWith((t) => Console.WriteLine(".")).Wait();
            //Gibt Lebensmittel mit einer halben Sekunde Abstand aus
            Push_Lebensmittel.Push();

            Tasks.Run();
        }