예제 #1
0
        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());
        }
예제 #2
0
        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());
        }