public ActionResult Create([Bind(Include = "Id,SupplierId,Description,RawMaterialId,Quantity")] OrderToSupplier orderToSupplier, int?PackageId)
        {
            orderToSupplier.DateTime = DateTime.Now;

            if (PackageId != null)
            {
                var packageOrderToSupplier = new PackageOrderToSupplier()
                {
                    OrderToSupplierId = orderToSupplier.Id,
                    PackageId         = (int)PackageId
                };
                db.PackageOrderToSuppliers.Add(packageOrderToSupplier);
            }

            if (ModelState.IsValid)
            {
                db.OrderToSuppliers.Add(orderToSupplier);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.RawMaterialId = new SelectList(db.RawMaterials, "ID", "Name", orderToSupplier.RawMaterialId);
            ViewBag.SupplierId    = new SelectList(db.Suppliers, "Id", "Name", orderToSupplier.SupplierId);
            ViewBag.PackageId     = new SelectList(db.Packages, "Id", "Name");

            return(View(orderToSupplier));
        }
        // GET: Admin/OrderToSuppliers/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrderToSupplier orderToSupplier = db.OrderToSuppliers
                                              .Include(o => o.RawMaterial)
                                              .Include(p => p.Packages)
                                              .SingleOrDefault(o => o.Id == id);

            Supplier supplier = db.Suppliers.Find(orderToSupplier.SupplierId);

            ViewBag.PackageMaterial = false;

            if (supplier.SupplyingMatetrial == SupplyingMaterial.Package)
            {
                ViewBag.PackageMaterial = true;
            }


            if (orderToSupplier == null)
            {
                return(HttpNotFound());
            }
            ViewBag.RawMaterialId = new SelectList(db.RawMaterials, "ID", "Name", orderToSupplier.RawMaterialId);
            ViewBag.SupplierId    = new SelectList(db.Suppliers, "Id", "Name", orderToSupplier.SupplierId);
            ViewBag.PackageId     = new SelectList(db.Packages, "Id", "Name");

            return(View(orderToSupplier));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            OrderToSupplier orderToSupplier = db.OrderToSuppliers.Find(id);

            db.OrderToSuppliers.Remove(orderToSupplier);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        // GET: Admin/OrderToSuppliers/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrderToSupplier orderToSupplier = db.OrderToSuppliers.Find(id);

            if (orderToSupplier == null)
            {
                return(HttpNotFound());
            }
            return(View(orderToSupplier));
        }
        public ActionResult Edit(OrderToSupplier orderToSupplier, int?PackageId)
        {
            var packageOrderToSupplier = db.PackageOrderToSuppliers.SingleOrDefault(o => o.OrderToSupplierId == orderToSupplier.Id);

            if (packageOrderToSupplier != null)
            {
                db.PackageOrderToSuppliers.Remove(packageOrderToSupplier);
                db.SaveChanges();

                var newPackageOrderToSupplier = new PackageOrderToSupplier
                {
                    OrderToSupplierId = orderToSupplier.Id,
                    PackageId         = (int)PackageId
                };

                db.PackageOrderToSuppliers.Add(newPackageOrderToSupplier);
            }


            var orderToSupplierFromDb = db.OrderToSuppliers.Find(orderToSupplier.Id);

            orderToSupplierFromDb.SupplierId           = orderToSupplier.SupplierId;
            orderToSupplierFromDb.PackageId            = orderToSupplier.PackageId;
            orderToSupplierFromDb.RawMaterialId        = orderToSupplier.RawMaterialId;
            orderToSupplierFromDb.OrderHasBeenReceived = orderToSupplier.OrderHasBeenReceived;
            orderToSupplierFromDb.Quantity             = orderToSupplier.Quantity;
            orderToSupplierFromDb.Description          = orderToSupplier.Description;



            if (ModelState.IsValid)
            {
                //db.Entry(orderToSupplier).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.RawMaterialId = new SelectList(db.RawMaterials, "ID", "Name", orderToSupplier.RawMaterialId);
            ViewBag.SupplierId    = new SelectList(db.Suppliers, "Id", "Name", orderToSupplier.SupplierId);
            ViewBag.PackageId     = new SelectList(db.Packages, "Id", "Name");

            return(View(orderToSupplier));
        }