Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 6
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;
        }