Exemplo n.º 1
0
 public ActionResult AddProduct([ModelBinder(typeof(JsonBinder<List<LocalProductEntity>>))] List<LocalProductEntity> list)
 {
     List<OutStoDetailEntity> ListCache = Session[CacheKey.TEMPDATA_CACHE_OUTSTORDETAIL] as List<OutStoDetailEntity>;
     ListCache = ListCache.IsNull() ? new List<OutStoDetailEntity>() : ListCache;
     if (!list.IsNullOrEmpty())
     {
         List<ProductEntity> ListSource = new ProductProvider().GetListByCache();
         foreach (LocalProductEntity item in list)
         {
             ProductEntity product = ListSource.FirstOrDefault(a => a.SnNum == item.ProductNum);
             if (product.IsNotNull())
             {
                 if (!ListCache.Exists(a => a.ProductNum == item.ProductNum && a.BatchNum == item.BatchNum && a.LocalNum == item.LocalNum))
                 {
                     OutStoDetailEntity entity = new OutStoDetailEntity();
                     entity.SnNum = SequenceProvider.GetSequence(typeof(OutStoDetailEntity));
                     entity.ProductName = product.ProductName;
                     entity.BarCode = product.BarCode;
                     entity.BatchNum = item.BatchNum;
                     entity.ProductNum = product.SnNum;
                     entity.LocalNum = item.LocalNum;
                     entity.LocalName = item.LocalName;
                     entity.StorageNum = this.DefaultStore;
                     entity.Num = item.Num;
                     entity.IsPick = (int)EBool.No;
                     entity.Size = product.Size.IsEmpty() ? "" : product.Size;
                     entity.RealNum = 0;
                     entity.OutPrice = product.InPrice;
                     entity.Amount = product.InPrice * entity.Num;
                     entity.CreateTime = DateTime.Now;
                     ListCache.Add(entity);
                 }
                 else
                 {
                     OutStoDetailEntity entity = ListCache.First(a => a.ProductNum == item.ProductNum && a.BatchNum == item.BatchNum && a.LocalNum == item.LocalNum);
                     entity.Num += item.Num;
                     entity.OutPrice = product.InPrice;
                     entity.Amount = product.InPrice * entity.Num;
                     entity.CreateTime = DateTime.Now;
                 }
             }
         }
     }
     if (!ListCache.IsNullOrEmpty())
     {
         Session[CacheKey.TEMPDATA_CACHE_OUTSTORDETAIL] = ListCache;
     }
     return Content(string.Empty);
 }
Exemplo n.º 2
0
        public ActionResult Edit()
        {
            string orderNum = WebUtil.GetQueryStringValue<string>("OrderNum", string.Empty);
            Bill<CheckStockEntity, CheckStockInfoEntity> bill = new CheckOrder();
            CheckStockEntity entity = new CheckStockEntity();
            entity.OrderNum = orderNum;
            entity = bill.GetOrder(entity);
            if (entity.IsNull())
            {
                return Redirect("/Check/Product/List");
            }
            string checkType = EnumHelper.GetOptions<ECheckType>(entity.Type);
            ViewBag.CheckType = checkType;
            ViewBag.ProductType = EnumHelper.GetOptions<EProductType>(entity.ProductType);
            ViewBag.Entity = entity;
            CheckStockInfoEntity info = new CheckStockInfoEntity();
            info.OrderNum = orderNum;
            List<CheckStockInfoEntity> list = bill.GetOrderDetail(info);

            List<ProductEntity> ListProducts = new List<ProductEntity>();
            List<ProductEntity> ListSource = new ProductProvider().GetListByCache();
            if (!list.IsNullOrEmpty())
            {
                Parallel.ForEach(list, item =>
                {
                    if (ListSource.Exists(a => a.SnNum == item.TargetNum))
                    {
                        ProductEntity target = ListSource.FirstOrDefault(a => a.SnNum == item.TargetNum);
                        ListProducts.Add(target);
                    }
                });
            }
            Session[CacheKey.JOOSHOW_CHECKDETAIL_CACHE] = ListProducts;
            return View();
        }