public ActionResult CreateWayBill(WayBillModel wayBillModel) { ViewBag.DefaultSelected = "Выберите адрес доставки"; ViewBag.SelectedItem = wayBillModel.SelectedAdress; ViewBag.BillsCount = _billsList_view.Count; if ((_billsList_view.Count > 0) && (wayBillModel.SelectedAdress != null)) { // todo: add to bd and clean list // Что бы получить id для WayBill нужно его добавить в ДБ, затем считать int idSelectedAdress = Convert.ToInt32(wayBillModel.SelectedAdress); int futureId = 0; WayBill wayBill = new WayBill { SalesPointId = idSelectedAdress }; context.WayBills.Add(wayBill); context.SaveChanges(); foreach (var item in _billsList_view) { ProductToWayBill productToWayBill = new ProductToWayBill { Count = item.Value, ProductId = item.Key.Id, WayBillId = wayBill.Id }; context.ProductToWayBills.Add(productToWayBill); } context.SaveChanges(); _billsList_view.Clear(); ViewBag.IsError = false; ViewBag.Success = true; } else { ViewBag.Success = false; ViewBag.IsError = true; // todo: make some validation msg } return View(GetWayBillModel()); }
public ActionResult CreateWayBill(WayBillModel wayBillModel) { ViewBag.DefaultSelected = "Выберите адрес доставки"; ViewBag.SelectedItem = wayBillModel.SelectedAdress; ViewBag.BillsCount = _billsList_view.Count; if ((_billsList_view.Count > 0) && (wayBillModel.SelectedAdress != null)) { // todo: add to bd and clean list // Что бы получить id для WayBill нужно его добавить в ДБ, затем считать int idSelectedAdress = Convert.ToInt32(wayBillModel.SelectedAdress); int futureId = 0; WayBill wayBill = new WayBill { SalesPointId = idSelectedAdress, Date = DateTime.Now //TODO: должно быть UserId, так как важно знать не от какой точки была накладная, а кто создал накладную }; context.WayBills.Add(wayBill); context.SaveChanges(); foreach (var item in _billsList_view) { ProductToWayBill productToWayBill = new ProductToWayBill { Count = item.Value, ProductId = item.Key.Id, WayBillId = wayBill.Id }; // добавляем продукт в хранилище точки var hasProduct = context.SalePoints.Find(idSelectedAdress).Storage.FirstOrDefault(u => u.ProductId == item.Key.Id); if (hasProduct == null) { context.SalePoints.Find(idSelectedAdress).Storage.Add( new SaleStorage { Count = item.Value, SalePointId = idSelectedAdress, ProductId = item.Key.Id }); } else { context.SalePoints.Find(idSelectedAdress).Storage.First(s => s.ProductId == hasProduct.ProductId).Count += item.Value; } context.ProductToWayBills.Add(productToWayBill); } context.SaveChanges(); _billsList_view.Clear(); ViewBag.IsError = false; ViewBag.Success = true; } else { ViewBag.Success = false; ViewBag.IsError = true; // todo: make some validation msg } return View(GetWayBillModel()); }