public virtual JsonResult GenerateOpenBox(long styleId)
        {
            LogI("GenerateOpenBox, styleId=" + styleId);

            var messages = new List <MessageString>();

            StyleQuantityViewModel.ValidateGenerateOpenBox(Db, styleId, out messages);
            if (!messages.Any())
            {
                var quantityManager = new QuantityManager(LogService, Time);
                StyleQuantityViewModel.GenerateOpenBox(Db,
                                                       Cache,
                                                       quantityManager,
                                                       styleId,
                                                       Time.GetAppNowTime(),
                                                       AccessManager.UserId);

                return(JsonGet(new MessagesResult(true)));
            }
            else
            {
                return(JsonGet(new MessagesResult(false)
                {
                    Messages = messages
                }));
            }
        }
        public virtual ActionResult EditStyleQuantity(long styleId)
        {
            LogI("EditStyleQuantity, id=" + styleId);

            var model = new StyleQuantityViewModel(Db, styleId, Time.GetAppNowTime());

            ViewBag.PartialViewName = PopupContentView;
            return(View("EditEmpty", model));
        }
        public virtual ActionResult Validate(StyleQuantityViewModel model)
        {
            LogI("Validate, model=" + model);
            var messages = model.Validate(Db, LogService, Time.GetAppNowTime());

            foreach (var message in messages)
            {
                LogI("Validate, message=" + message.Message);
            }
            return(JsonGet(new ValueResult <IList <MessageString> >(true, "", messages)));
        }
        public virtual ActionResult Submit(StyleQuantityViewModel model)
        {
            LogI("Submit, model=" + model);

            //Save
            if (ModelState.IsValid)
            {
                var quantityManager = new QuantityManager(LogService, Time);

                model.Apply(Db,
                            Cache,
                            quantityManager,
                            StyleHistoryService,
                            SystemActions,
                            Time.GetAppNowTime(),
                            AccessManager.UserId);

                var outputModel = StyleViewModel.GetAll(Db, new StyleSearchFilterViewModel()
                {
                    StyleId = model.StyleId
                }).Items?.FirstOrDefault();

                return(Json(new UpdateRowViewModel(outputModel,
                                                   "Styles",
                                                   new[]
                {
                    "UsedBoxQuantity",
                    "HasManuallyQuantity",
                    "ManuallyQuantity",
                    "RemainingQuantity",
                    "TotalQuantity",
                    "BoxQuantity",
                    "InventoryQuantity",
                    "MarketsSoldQuantity",
                    "ScannedSoldQuantity",
                    "SentToFBAQuantity",
                    "SpecialCaseQuantity",
                    "TotalMarketsSoldQuantity",
                    "TotalScannedSoldQuantity",
                    "TotalSentToFBAQuantity",
                    "TotalSpecialCaseQuantity",
                    "QuantityModeName",
                    "StyleItemCaches",
                },
                                                   false)));
            }
            return(View(PopupContentView, model));
        }