Example #1
0
        public virtual ActionResult OnCreateItem(long styleId)
        {
            LogI("OnCreateItem, id=" + styleId);

            var model = SealedBoxViewModel.BuildFromStyleId(Db, styleId);

            ViewBag.PartialViewName = "SealedBoxViewModel";
            return(View("EditNew", model));
        }
Example #2
0
        public virtual ActionResult DeleteBox(int id)
        {
            LogI("DeleteBox, Id=" + id);

            SealedBoxViewModel.Remove(Db,
                                      id,
                                      QuantityManager,
                                      Cache,
                                      Time.GetAppNowTime(),
                                      AccessManager.UserId);

            return(Json(MessageResult.Success(), JsonRequestBehavior.AllowGet));
        }
Example #3
0
        public virtual ActionResult GetSealedBox([DataSourceRequest] DataSourceRequest request, long styleId)
        {
            LogI("GetSealedBox, styleId=" + styleId);

            var items = SealedBoxViewModel.GetAll(Db,
                                                  styleId,
                                                  includeArchive: AccessManager.IsAdmin).ToList();
            var dataSource = items.ToDataSourceResult(request);

            return(new JsonResult {
                Data = dataSource, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
Example #4
0
        public virtual ActionResult CopyBox(int id)
        {
            LogI("CopyBox, Id=" + id);

            var model = SealedBoxViewModel.CopyBox(Db,
                                                   id,
                                                   Time.GetAppNowTime(),
                                                   AccessManager.UserId);

            Cache.RequestStyleIdUpdates(Db,
                                        new List <long>()
            {
                model.StyleId
            },
                                        UpdateCacheMode.IncludeChild,
                                        AccessManager.UserId);

            return(Json(MessageResult.Success(), JsonRequestBehavior.AllowGet));
        }
        public SealedBoxCountingViewModel(IUnitOfWork db, long styleId)
        {
            StyleId = styleId;

            var styleItems = db.StyleItems.GetByStyleIdWithSizeGroupAsDto(styleId)
                             .OrderBy(si => SizeHelper.GetSizeIndex(si.Size))
                             .ThenBy(si => si.Color)
                             .ToList();

            StyleItems = new StyleItemCollection()
            {
                DisplayMode = StyleItemDisplayMode.BoxBreakdown,
                Items       = styleItems.Select(si => new StyleItemViewModel(si)).ToList()
            };

            SealedBoxViewModel.SetDefaultBreakdowns(StyleItems.Items.ToList());

            CreateDate = DateHelper.GetAppNowTime().Date;
        }
Example #6
0
        public virtual ActionResult Submit(SealedBoxViewModel model)
        {
            LogI("Submit, model=" + model);

            //Save
            if (ModelState.IsValid)
            {
                var id = model.Apply(Db, QuantityManager, Time.GetAppNowTime(), AccessManager.UserId);

                Cache.RequestStyleIdUpdates(Db,
                                            new List <long>()
                {
                    model.StyleId
                },
                                            UpdateCacheMode.IncludeChild,
                                            AccessManager.UserId);

                return(Json(new UpdateRowViewModel(model, "SealedBox_" + id, null, true)));
            }
            return(View("SealedBoxViewModel", model));
        }
        public void Apply(IUnitOfWork db,
                          IQuantityManager quantityManager,
                          ILogService log,
                          ICacheService cache,
                          ISystemActionService actionService,
                          DateTime when,
                          long?by)
        {
            log.Info("AddSealedBoxWizardViewModel.Apply, StyleId=" + StyleId);

            if (IncomeType == (int)BoxIncomePackType.PPK)
            {
                var box = new SealedBoxViewModel();
                box.StyleId     = StyleId;
                box.BoxBarcode  = BoxBarcode;
                box.BoxQuantity = BoxQuantity;
                box.Price       = Price ?? 0;

                box.Owned    = Owned;
                box.PolyBags = false;
                box.Printed  = Printed;

                box.CreateDate = CreateDate.HasValue ? DateHelper.ConvertUtcToApp(CreateDate.Value.ToUniversalTime()) : when;

                box.StyleItems = new StyleItemCollection()
                {
                    Items = Sizes.Select(s => new StyleItemViewModel()
                    {
                        Id        = s.Id,
                        Breakdown = s.Breakdown,
                    }).ToList()
                };

                box.Apply(db, quantityManager, when, by);
            }

            if (IncomeType == (int)BoxIncomePackType.PolyBagged)
            {
                foreach (var size in Sizes.Where(si => si.Quantity > 0))
                {
                    var box = new SealedBoxViewModel();
                    box.StyleId     = StyleId;
                    box.BoxBarcode  = BoxBarcode;
                    box.BoxQuantity = size.Quantity ?? 0;
                    box.Price       = Price ?? 0;

                    box.Owned    = Owned;
                    box.PolyBags = true;
                    box.Printed  = Printed;

                    box.CreateDate = CreateDate.HasValue ? DateHelper.ConvertUtcToApp(CreateDate.Value.ToUniversalTime()) : when;

                    box.StyleItems = new StyleItemCollection()
                    {
                        Items = new List <StyleItemViewModel>()
                        {
                            new StyleItemViewModel()
                            {
                                Id        = size.Id,
                                Breakdown = UnitsPerBox
                            }
                        }
                    };

                    box.Apply(db, quantityManager, when, by);
                }
            }

            if (IncomeType == (int)BoxIncomePackType.Other)
            {
                var box = new OpenBoxViewModel();
                box.StyleId     = StyleId;
                box.BoxBarcode  = BoxBarcode;
                box.BoxQuantity = 1;
                box.Price       = Price ?? 0;

                box.Owned    = Owned;
                box.PolyBags = false;
                box.Printed  = Printed;

                box.CreateDate = CreateDate.HasValue ? DateHelper.ConvertUtcToApp(CreateDate.Value.ToUniversalTime()) : when;

                box.StyleItems = new StyleItemCollection()
                {
                    Items = Sizes.Select(s => new StyleItemViewModel()
                    {
                        Id       = s.Id,
                        Quantity = s.Quantity,
                    }).ToList()
                };

                box.Apply(db, quantityManager, when, by);
            }

            foreach (var size in Sizes)
            {
                var styleItem = db.StyleItems.Get(size.Id);
                if (size.UseBoxQuantity &&
                    styleItem.Quantity.HasValue)
                {
                    log.Info("Switch to box quantity, styleItemId=" + size.Id);

                    var oldQuantity = styleItem.Quantity;

                    styleItem.Quantity        = null;
                    styleItem.QuantitySetBy   = null;
                    styleItem.QuantitySetDate = null;
                    styleItem.RestockDate     = null;

                    db.Commit();

                    quantityManager.LogStyleItemQuantity(db,
                                                         styleItem.Id,
                                                         null,
                                                         oldQuantity,
                                                         QuantityChangeSourceType.UseBoxQuantity,
                                                         null,
                                                         null,
                                                         BoxBarcode,
                                                         when,
                                                         by);
                }
            }

            cache.RequestStyleIdUpdates(db,
                                        new List <long>()
            {
                StyleId
            },
                                        UpdateCacheMode.IncludeChild,
                                        by);

            SystemActionHelper.RequestQuantityDistribution(db, actionService, StyleId, by);
        }