示例#1
0
        private void btnBestelling_Click(object sender, EventArgs e)
        {
            Bestellingen bestellingen = new Bestellingen();

            bestellingen.Show();
            this.Close();
        }
示例#2
0
        private void btnAddOrder_Click(object sender, EventArgs e)
        {
            bool   overstock = false;
            Adress ad        = new Adress();
            string s         = "";

            Order       ord   = new Order();
            OrderDetail orddt = new OrderDetail();

            ord.OrderDatum = DateTime.UtcNow;
            ord.status     = (OrderStatus)cmbStatus.SelectedItem;
            if (ord.status > OrderStatus.Geanuleerd && ord.BezorgdDoor == null)
            {
                s += "Bestellingen met staus 'Klaar' of 'Verzondzn' moet ueen bezorger hebben ? ";
            }
            if (newAd)
            {
                if (txtStraat.Text != "" && txtStraat.Text.ToCharArray().All(c => char.IsLetter(c)))
                {
                    ad.Straat = txtStraat.Text;
                }
                else
                {
                    s += "Adress: Straat ? ";
                }
                if (txtHuisNr.Text != "" && txtHuisNr.Text.ToCharArray().All(c => char.IsLetterOrDigit(c)))
                {
                    ad.Huisnummer = Convert.ToInt32(txtHuisNr.Text);
                }
                else
                {
                    s += "Adress: Huisnummer ? ";
                }
                if (txttGem.Text != "" && txttGem.Text.ToCharArray().All(c => char.IsLetter(c)))
                {
                    ad.Gemeente = txttGem.Text;
                }
                else
                {
                    s += "Adress: Gemeente ? ";
                }
                if (txtPC.Text != "" && txtPC.Text.ToCharArray().All(c => char.IsDigit(c)))
                {
                    ad.Postcode = txtPC.Text;
                }
                else
                {
                    s += "Adress: Postcode ? ";
                }
                if (txtLand.Text != "" && txtLand.Text.ToCharArray().All(c => char.IsLetterOrDigit(c)))
                {
                    ad.Land = txtLand.Text;
                }
                else
                {
                    s += "Adress: Land ? ";
                }
            }
            using (var ctx = new ProjectContext())
            {
                foreach (ProductOrdered item in ProductsOrdered)
                {
                    if (ctx.Products.FirstOrDefault(p => p.ProductId == item.ProductId).UnitsOnStock < item.aantal)
                    {
                        overstock = true;
                        s        += $"Slechts {ctx.Products.FirstOrDefault(p => p.ProductId == item.ProductId).UnitsOnStock} stuks zijn beschikbaar voor artikel: {ctx.Products.FirstOrDefault(p => p.ProductId == item.ProductId)} ";
                    }
                }
            }

            if (s == "")
            {
                using (var ctx = new ProjectContext())
                {
                    this.DialogResult = DialogResult.OK;
                    if (newAd && (ctx.Adressen.FirstOrDefault(a => a.Straat + " " + a.Huisnummer + " " + a.Gemeente + " " + a.Postcode + " " + a.Land == ad.Straat + " " + ad.Huisnummer + " " + ad.Gemeente + " " + ad.Postcode + " " + ad.Land) == null))
                    {
                        ord.BezorgdAdress = ad;
                    }
                    else if (newAd && ctx.Adressen.FirstOrDefault(a => a.Straat + " " + a.Huisnummer + " " + a.Gemeente + " " + a.Postcode + " " + a.Land == ad.Straat + " " + ad.Huisnummer + " " + ad.Gemeente + " " + ad.Postcode + " " + ad.Land) != null)
                    {
                        ord.BezorgdAdress = ctx.Adressen.FirstOrDefault(a => a.Straat + " " + a.Huisnummer + " " + a.Gemeente + " " + a.Postcode + " " + a.Land == ad.Straat + " " + ad.Huisnummer + " " + ad.Gemeente + " " + ad.Postcode + " " + ad.Land);
                    }
                    else if (!newAd)
                    {
                        ord.BezorgdAdress = ctx.Adressen.FirstOrDefault(a => a.AdressId == ((Klant)cmbKlanten.SelectedItem).adress.AdressId);
                    }
                    ord.klant = ctx.Klanten.FirstOrDefault(k => k.KlantId == ((Klant)cmbKlanten.SelectedItem).KlantId);
                    ord.user  = ctx.Users.FirstOrDefault(a => a.UserId == ((User)Login.user).UserId);
                    if (cmbBezorgers.SelectedIndex > -1)
                    {
                        ord.BezorgdDoor = ctx.Bezorgers.FirstOrDefault(b => b.BezorgerId == ((Bezorger)cmbBezorgers.SelectedItem).BezorgerId);
                    }
                    ctx.Orders.Add(ord);
                    ctx.SaveChanges();
                    foreach (ProductOrdered item in ProductsOrdered)
                    {
                        orddt.order   = ctx.Orders.FirstOrDefault(o => o.OrderId == ord.OrderId);
                        orddt.product = ctx.Products.FirstOrDefault(p => p.ProductId == item.ProductId);
                        orddt.Aantal  = item.aantal;
                        ctx.Products.FirstOrDefault(p => p.ProductId == item.ProductId).UnitsOnStock -= item.aantal;
                        ctx.OrderDetails.Add(orddt);
                        ctx.SaveChanges();
                    }
                    Bestellingen.OrderLines = ctx.Orders.Join(ctx.OrderDetails, o => o.OrderId, od => od.order.OrderId, (o, od) => new OrderLine()
                    {
                        orderid = o.OrderId, klant = o.klant, user = o.user, orderdate = o.OrderDatum, status = o.status, bezorgddoor = o.BezorgdDoor, adress = o.BezorgdAdress, orderdetailid = od.ID, product = od.product, aantal = od.Aantal
                    }).OrderByDescending(o => o.orderdate).ToList();
                    Bestellingen.loaddgvOrders();
                    DialogResult dr = MessageBox.Show("FActuur afdrukken?", "", MessageBoxButtons.YesNo);
                    if (dr == DialogResult.Yes)
                    {
                        printDocument1.Print();
                    }
                }
            }
            else
            {
                MessageBox.Show(s);
                s = "";
            }
        }