Esempio n. 1
0
        // GET: Auftrag/Create
        public ActionResult Create()
        {
            var avm = new AuftragViewModel
            {
                Waren       = new List <WareViewModel>(),
                AuftragToDo = new Auftrag
                {
                    KundenAuswahl = new List <SelectListItem>
                    {
                        new SelectListItem
                        {
                            Text  = "",
                            Value = ""
                        }
                    }
                },
                IsCreate = true
            };

            var kunden = _db.Kunden.ToList();

            foreach (var k in kunden)
            {
                avm.AuftragToDo.KundenAuswahl.Add(new SelectListItem
                {
                    Text  = k.Vorname + @" " + k.Nachname,
                    Value = k.ID.ToString()
                });
            }

            var tmpWaren = _db.LagerWaren.Include(c => c.Ware).ToList();

            foreach (var t in tmpWaren)
            {
                avm.Waren.Add(new WareViewModel
                {
                    Menge = t.Menge,
                    LWID  = t.LagerWarenID,
                    Ware  = t.Ware,
                    Lager = t.Lager.Bezeichnung
                });
            }

            avm.SelectedWaren = new List <WareViewModel>();

            return(View(avm));
        }
Esempio n. 2
0
        // GET: Auftrag/Details/5
        public ActionResult Details(Guid id)
        {
            Auftrag auftrag = _db.Auftrag.Include("Status").SingleOrDefault(c => c.ID == id);

            if (auftrag == null)
            {
                return(HttpNotFound());
            }

            var avm = new AuftragViewModel
            {
                Waren       = new List <WareViewModel>(),
                AuftragToDo = auftrag
            };

            avm.AuftragToDo.KundenAuswahl = new List <SelectListItem>
            {
                new SelectListItem
                {
                    Text  = "",
                    Value = ""
                }
            };

            var kunden = _db.Kunden.ToList();

            foreach (var k in kunden)
            {
                avm.AuftragToDo.KundenAuswahl.Add(new SelectListItem
                {
                    Text  = k.Vorname + @" " + k.Nachname,
                    Value = k.ID.ToString()
                });
            }

            var tmpWaren = _db.LagerWaren.Include(c => c.Ware).ToList();

            foreach (var t in tmpWaren)
            {
                avm.Waren.Add(new WareViewModel
                {
                    Menge = t.Menge,
                    LWID  = t.LagerWarenID,
                    Ware  = t.Ware,
                    Lager = t.Lager.Bezeichnung
                });
            }

            avm.SelectedWaren = new List <WareViewModel>();

            var aufWaren = _db.AuftragWaren.Where(c => c.AuftragID == auftrag.ID).ToList();

            foreach (var auftragWaren in aufWaren)
            {
                avm.SelectedWaren.Add(new WareViewModel
                {
                    Lager = auftragWaren.LagerWare.Lager.Bezeichnung,
                    LWID  = auftragWaren.LagerWareID,
                    Menge = auftragWaren.Menge,
                    Ware  = auftragWaren.LagerWare.Ware
                });
            }

            return(View(avm));
        }
Esempio n. 3
0
        public ActionResult Edit(AuftragViewModel auftrag)
        {
            if (auftrag.SelectedWaren == null || auftrag.SelectedWaren.Count == 0 || auftrag.SelectedWaren.All(x => (x != null && x.Menge == 0) || x == null))
            {
                ModelState.AddModelError(string.Empty, @"Auftrag muss Waren beinhalten!");
            }

            // Überprüfe ob Menge noch im Lager vorhanden
            if (auftrag.SelectedWaren != null)
            {
                foreach (var wareViewModel in auftrag.SelectedWaren)
                {
                    var lagerWare    = _db.LagerWaren.Find(wareViewModel.LWID);
                    var auftragWaren = _db.AuftragWaren.Where(x =>
                                                              ((x.Auftrag.Status != null && !x.Auftrag.Status.Bezeichnung.Equals("Abgeschlossen")) ||
                                                               x.Auftrag.Status == null) && x.Auftrag.DeletedOn == null && x.AuftragWarenID != wareViewModel.AWID && x.Auftrag != null);
                    var schwebendeMenge = auftragWaren.Where(x => x.LagerWare != null && x.LagerWare.WareID == lagerWare.WareID).ToList().Sum(x => x.Menge);

                    if ((lagerWare?.Menge - schwebendeMenge) < wareViewModel.Menge)
                    {
                        ModelState.AddModelError(string.Empty, $@"Die Ware {wareViewModel.Ware.ArtikelNummer} ist in der Menge nicht mehr vorhanden!");
                    }
                }
            }

            if (ModelState.IsValid)
            {
                _db.Entry(auftrag.AuftragToDo).State = EntityState.Modified;

                auftrag.SelectedWaren = auftrag.SelectedWaren ?? new List <WareViewModel>();
                foreach (var wareViewModel in auftrag.SelectedWaren)
                {
                    var aw = _db.AuftragWaren.SingleOrDefault(c => c.AuftragWarenID == wareViewModel.AWID);
                    if (aw != null)
                    {
                        aw.Menge = wareViewModel.Menge;
                    }
                }

                _db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            auftrag.AuftragToDo.KundenAuswahl = new List <SelectListItem>
            {
                new SelectListItem
                {
                    Text  = "",
                    Value = ""
                }
            };

            var kunden = _db.Kunden.ToList();

            foreach (var k in kunden)
            {
                auftrag.AuftragToDo.KundenAuswahl.Add(new SelectListItem
                {
                    Text  = k.Vorname + @" " + k.Nachname,
                    Value = k.ID.ToString()
                });
            }

            var tmpWaren = _db.LagerWaren.Include(c => c.Ware).ToList();

            auftrag.Waren = auftrag.Waren ?? new List <WareViewModel>();
            foreach (var t in tmpWaren)
            {
                auftrag.Waren.Add(new WareViewModel
                {
                    Menge = t.Menge,
                    LWID  = t.LagerWarenID,
                    Ware  = t.Ware,
                    Lager = t.Lager.Bezeichnung
                });
            }

            auftrag.SelectedWaren = new List <WareViewModel>();
            var aufWaren = _db.AuftragWaren.Where(c => c.AuftragID == auftrag.AuftragToDo.ID).ToList();

            foreach (var auftragWaren in aufWaren)
            {
                auftrag.SelectedWaren.Add(new WareViewModel
                {
                    Lager = auftragWaren.LagerWare.Lager.Bezeichnung,
                    LWID  = auftragWaren.LagerWareID,
                    AWID  = auftragWaren.AuftragWarenID,
                    Menge = auftragWaren.Menge,
                    Ware  = auftragWaren.LagerWare.Ware
                });
            }

            return(View(auftrag));
        }
Esempio n. 4
0
        public ActionResult Create(AuftragViewModel auftrag)
        {
            if (auftrag.SelectedWaren == null || auftrag.SelectedWaren.Count == 0 || auftrag.SelectedWaren.All(x => (x != null && x.Menge == 0) || x == null))
            {
                ModelState.AddModelError(string.Empty, @"Auftrag muss Waren beinhalten!");
            }

            // Überprüfe ob Menge noch im Lager vorhanden
            if (auftrag.SelectedWaren != null)
            {
                foreach (var wareViewModel in auftrag.SelectedWaren)
                {
                    var lagerWare    = _db.LagerWaren.Find(wareViewModel.LWID);
                    var auftragWaren = _db.AuftragWaren.Where(x =>
                                                              ((x.Auftrag.Status != null && !x.Auftrag.Status.Bezeichnung.Equals("Abgeschlossen")) ||
                                                               x.Auftrag.Status == null) && x.Auftrag.DeletedOn == null && x.AuftragWarenID != wareViewModel.AWID && x.Auftrag != null);
                    var schwebendeMenge = auftragWaren.Where(x => x.LagerWare != null && x.LagerWare.WareID == lagerWare.WareID).ToList().Sum(x => x.Menge);

                    if ((lagerWare?.Menge - schwebendeMenge) < wareViewModel.Menge)
                    {
                        ModelState.AddModelError(string.Empty, $@"Die Ware {wareViewModel.Ware.ArtikelNummer} ist in der Menge nicht mehr vorhanden!");
                    }
                }
            }

            auftrag.IsCreate = true;

            if (ModelState.IsValid)
            {
                var stat = _db.AuftragStatus.SingleOrDefault(c => c.Bezeichnung.Equals("Angelegt"));
                auftrag.AuftragToDo.StatusId = stat?.ID;
                auftrag.AuftragToDo.ID       = Guid.NewGuid();

                var auftragsnummer = 0;
                try
                {
                    _db.DisableFilter("Deleted");
                    auftragsnummer = _db.Auftrag.Max(x => x.Auftragsnummer) + 1;
                    _db.EnableFilter("Deleted");
                }
                catch
                {
                    auftragsnummer += 1;
                }
                auftrag.AuftragToDo.Auftragsnummer = auftragsnummer;

                auftrag.SelectedWaren = auftrag.SelectedWaren ?? new List <WareViewModel>();
                foreach (var ware in auftrag.SelectedWaren)
                {
                    _db.AuftragWaren.Add(new AuftragWaren
                    {
                        AuftragID   = auftrag.AuftragToDo.ID,
                        LagerWareID = ware.LWID,
                        Menge       = ware.Menge
                    });
                }

                _db.Auftrag.Add(auftrag.AuftragToDo);
                _db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            var kunden = _db.Kunden.ToList();

            if (auftrag.AuftragToDo.KundenAuswahl == null)
            {
                auftrag.AuftragToDo.KundenAuswahl = new List <SelectListItem>();
            }

            foreach (var k in kunden)
            {
                auftrag.AuftragToDo.KundenAuswahl.Add(new SelectListItem
                {
                    Text  = k.Vorname + @" " + k.Nachname,
                    Value = k.ID.ToString()
                });
            }


            var tmpWaren = _db.LagerWaren.Include(c => c.Ware).ToList();

            if (auftrag.Waren == null)
            {
                auftrag.Waren = new List <WareViewModel>();
            }

            foreach (var t in tmpWaren)
            {
                auftrag.Waren.Add(new WareViewModel
                {
                    Menge = t.Menge,
                    LWID  = t.LagerWarenID,
                    Ware  = t.Ware,
                    Lager = t.Lager.Bezeichnung
                });
            }

            if (auftrag.SelectedWaren == null)
            {
                auftrag.SelectedWaren = new List <WareViewModel>();
            }

            return(View(auftrag));
        }
 public AtgWindow(AuftragViewModel vm)
 {
     InitializeComponent();
     this.DataContext = vm;
     Messenger.Default.Register <CloseMessage>(this, CloseExecute);
 }