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.Color = item.Color; entity.Count = item.Count; entity.StorageNum = this.DefaultStore; entity.Num = item.Num; entity.IsPick = (int)EBool.No; entity.Size = item.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)); }
public ActionResult Detail() { string orderNum = WebUtil.GetQueryStringValue <string>("orderNum", string.Empty); string flag = WebUtil.GetQueryStringValue <string>("flag", string.Empty); Bill <OutStorageEntity, OutStoDetailEntity> bill = new OutStorageOrder(); OutStorageEntity entity = new OutStorageEntity(); entity.OrderNum = orderNum; entity = bill.GetOrder(entity); entity = entity.IsNull() ? new OutStorageEntity() : entity; ViewBag.Entity = entity; ViewBag.OutType = EnumHelper.GetEnumDesc <EOutType>(entity.OutType); ViewBag.Status = EnumHelper.GetEnumDesc <EAudite>(entity.Status); OutStoDetailEntity detail = new OutStoDetailEntity(); detail.OrderNum = orderNum; List <OutStoDetailEntity> listResult = bill.GetOrderDetail(detail); listResult = listResult.IsNull() ? new List <OutStoDetailEntity>() : listResult; ProductProvider provider = new ProductProvider(); List <ProductEntity> list = provider.GetListByCache(); list = list.IsNull() ? new List <ProductEntity>() : list; listResult.ForEach(a => { ProductEntity product = null; if (a.BarCode.IsEmpty()) { product = list.SingleOrDefault(b => b.SnNum == a.ProductNum); } else { product = list.SingleOrDefault(b => b.SnNum == a.ProductNum && b.BarCode == a.BarCode); } if (product.IsNotNull()) { a.Size = product.Size.IsEmpty() ? "" : product.Size; } else { a.Size = ""; } }); ViewBag.Detail = listResult; ViewBag.Flag = flag; return(View()); }