예제 #1
0
        /// <summary>
        /// 获得采购退货单详细
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public override List <PurchaseReturnDetailEntity> GetOrderDetail(PurchaseReturnDetailEntity entity)
        {
            PurchaseReturnDetailEntity detail = new PurchaseReturnDetailEntity();

            detail.IncludeAll();
            detail.Where(a => a.OrderSnNum == entity.OrderSnNum)
            .And(a => a.CompanyID == this.CompanyID)
            ;
            List <PurchaseReturnDetailEntity> list = this.PurchaseReturnDetail.GetList(detail);

            if (!list.IsNullOrEmpty())
            {
                List <ProductEntity> listProducts = new ProductProvider(this.CompanyID).GetList();
                listProducts = listProducts.IsNull() ? new List <ProductEntity>() : listProducts;

                foreach (PurchaseReturnDetailEntity item in list)
                {
                    ProductEntity product = listProducts.FirstOrDefault(a => a.SnNum == item.ProductNum);
                    if (product != null)
                    {
                        item.UnitNum  = product.UnitNum;
                        item.UnitName = product.UnitName;
                        item.Size     = product.Size;
                    }
                }
            }
            return(list);
        }
예제 #2
0
        /// <summary>
        /// 获得单据详细信息
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public override List <InStorDetailEntity> GetOrderDetail(InStorDetailEntity entity)
        {
            InStorDetailEntity detail = new InStorDetailEntity();

            detail.IncludeAll();
            detail.Where(a => a.OrderSnNum == entity.OrderSnNum)
            .And(a => a.CompanyID == this.CompanyID)
            ;
            List <InStorDetailEntity> list = this.InStorDetail.GetList(detail);

            if (!list.IsNullOrEmpty())
            {
                List <LocationEntity> listLocation = new LocationProvider(this.CompanyID).GetList();
                listLocation = listLocation == null ? new List <LocationEntity>() : listLocation;
                List <ProductEntity> listProduct = new ProductProvider(this.CompanyID).GetList();
                listProduct = listProduct == null ? new List <ProductEntity>() : listProduct;
                foreach (InStorDetailEntity item in list)
                {
                    LocationEntity location = listLocation.FirstOrDefault(a => a.LocalNum == item.LocalNum);
                    item.LocalName   = location == null ? "" : location.LocalName;
                    item.StorageName = location == null ? "" : location.StorageName;

                    ProductEntity product = listProduct.FirstOrDefault(a => a.SnNum == item.ProductNum);
                    item.Size = product.IsNull() ? string.Empty : product.Size;
                }
            }
            return(list);
        }
예제 #3
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.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));
        }
예제 #4
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());
        }