/// <summary>
        /// 修改出库单的数量
        /// </summary>
        /// <param name="snNum"></param>
        /// <param name="num"></param>
        /// <returns></returns>
        public int EditInOrderNum(string snNum, double num)
        {
            OutStoDetailEntity detail = new OutStoDetailEntity();
            detail = new OutStoDetailEntity();
            detail.Include(a => new { a.OrderNum, a.Num,a.OutPrice,a.Amount });
            detail.Where(a => a.SnNum == snNum);
            detail = this.OutStoDetail.GetSingle(detail);

            int line = 0;
            if (detail != null)
            {
                string orderNum = detail.OrderNum;
                OutStoDetailEntity editDetail = new OutStoDetailEntity();
                editDetail.Num = num;
                editDetail.Amount = editDetail.Num * editDetail.OutPrice;
                editDetail.IncludeNum(true).IncludeAmount(true);
                editDetail.Where(a => a.SnNum == snNum);
                line = this.OutStoDetail.Update(editDetail);

                OutStoDetailEntity orderDetail = new OutStoDetailEntity();
                orderDetail.Include(a => new { a.Num, a.Amount });
                orderDetail.Where(a => a.OrderNum == orderNum);
                List<OutStoDetailEntity> list = this.OutStoDetail.GetList(orderDetail);

                OutStorageEntity entity = new OutStorageEntity();
                entity.Num = list.Sum(a=>a.Num);
                entity.Amount = list.Sum(a => a.Amount);
                entity.IncludeNum(true).IncludeAmount(true);
                entity.Where(a => a.OrderNum == orderNum);
                line += this.OutStorage.Update(entity);
            }
            return line;
        }
        public ActionResult AddOrderDetailProduct([ModelBinder(typeof(JsonBinder<string[]>))] string[] ProductItems,
            [ModelBinder(typeof(JsonBinder<string[]>))] string[] SnItems,
            [ModelBinder(typeof(JsonBinder<int[]>))]int[] QtyItems)
        {
            List<OutStoDetailEntity> list = Session[CacheKey.TEMPDATA_CACHE_OUTSTORDETAIL] as List<OutStoDetailEntity>;
            list = list.IsNull() ? new List<OutStoDetailEntity>() : list;

            OrderProvider provider = new OrderProvider();
            for (int i = 0; i < ProductItems.Length; i++)
            {
                string snNum = SnItems[i];
                int qty = QtyItems[i];
                string productNum = ProductItems[i];
                OrderDetailEntity detail = provider.GetOrderDetailBySnNum(snNum);
                detail = detail.IsNull() ? new OrderDetailEntity() : detail;
                if (detail.IsNotNull())
                {
                    list.Remove(a => a.ContractSn == detail.SnNum);
                    OutStoDetailEntity entity = new OutStoDetailEntity();
                    entity.SnNum = SequenceProvider.GetSequence(typeof(OutStoDetailEntity));
                    entity.ProductName = detail.ProductName;
                    entity.BarCode = detail.BarCode;
                    entity.ContractOrder = detail.OrderNum;
                    entity.ContractSn = detail.SnNum;
                    entity.BatchNum = "";
                    entity.ProductNum = detail.ProductNum;
                    entity.LocalNum = ResourceManager.GetSettingEntity("STORE_DEFAULT_MATERIAL_LocalNum").Value;//detail.LocalNum;
                    entity.LocalName = ResourceManager.GetSettingEntity("STORE_DEFAULT_MATERIAL_LocalName").Value;//detail.LocalName;
                    entity.StorageNum = this.DefaultStore;
                    entity.Num = qty;
                    entity.IsPick = (int)EBool.No;
                    entity.Size = detail.Size.IsEmpty() ? "" : detail.Size;
                    entity.RealNum = detail.RealNum;
                    entity.OutPrice = 0;//detail.InPrice;
                    entity.Amount = 0;//detail.InPrice * entity.Num;
                    entity.CreateTime = DateTime.Now;
                    list.Add(entity);
                }
            }
            if (!list.IsNullOrEmpty())
            {
                Session[CacheKey.TEMPDATA_CACHE_OUTSTORDETAIL] = list;
            }
            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();
        }
Exemple #4
0
 public static OutStoDetail_CE ToCE(OutStoDetailEntity item)
 {
     OutStoDetail_CE target = new OutStoDetail_CE();
     target.ID=item.ID;
     target.SnNum=item.SnNum;
     target.OrderNum=item.OrderNum;
     target.ProductName=item.ProductName;
     target.BarCode=item.BarCode;
     target.ProductNum=item.ProductNum;
     target.BatchNum=item.BatchNum;
     target.LocalNum=item.LocalNum;
     target.StorageNum=item.StorageNum;
     target.Num=item.Num;
     target.IsPick=item.IsPick;
     target.RealNum=item.RealNum;
     target.OutPrice=item.OutPrice;
     target.Amount=item.Amount;
     target.CreateTime=item.CreateTime;
     return target;
 }
 public ActionResult Load()
 {
     string OrderNum = WebUtil.GetFormValue<string>("OrderNum", string.Empty);
     if (!OrderNum.IsEmpty())
     {
         ReturnProvider provider = new ReturnProvider();
         ReturnOrderEntity backEntity = provider.CheckOrder(OrderNum);
         if (backEntity != null && backEntity.Status == (int)EAudite.Wait)
         {
             this.ReturnJson.AddProperty("d", "1001");
             return Content(this.ReturnJson.ToString());
         }
         Bill<OutStorageEntity, OutStoDetailEntity> bill = new OutStorageOrder();
         OutStorageEntity entity = new OutStorageEntity();
         entity.OrderNum = OrderNum;
         entity = bill.GetOrder(entity);
         if (entity.IsNotNull())
         {
             if (entity.Status != (int)EAudite.Pass)
             {
                 this.ReturnJson.AddProperty("d", "1002");
                 return Content(this.ReturnJson.ToString());
             }
             this.ReturnJson.AddProperty("CusNum", entity.CusNum);
             this.ReturnJson.AddProperty("CusName", entity.CusName);
             this.ReturnJson.AddProperty("Address", entity.Address);
             this.ReturnJson.AddProperty("Contact", entity.Contact);
             this.ReturnJson.AddProperty("Phone", entity.Phone);
             //加载详细内容
             OutStoDetailEntity detail = new OutStoDetailEntity();
             detail.OrderNum = OrderNum;
             List<OutStoDetailEntity> list = bill.GetOrderDetail(detail);
             list = list.IsNull() ? new List<OutStoDetailEntity>() : list;
             //获得已经退货的数量
             List<ReturnDetailEntity> listResult = provider.GetDetailByOrder(OrderNum);
             if (!listResult.IsNullOrEmpty())
             {
                 list.ForEach(a =>
                 {
                     double qty = listResult.Where(b => b.BarCode == a.BarCode && b.ProductNum == a.ProductNum && b.LocalNum == a.LocalNum && b.StorageNum == a.StorageNum && b.BatchNum==a.BatchNum).Sum(b => b.BackNum);
                     a.BackNum = qty;
                 });
             }
             Session[CacheKey.TEMPDATE_CACHE_RETURNPRODUCTDETAIL] = list;
             string json = ConvertJson.ListToJson<OutStoDetailEntity>(list, "List");
             this.ReturnJson.AddProperty("data", json);
         }
     }
     return Content(this.ReturnJson.ToString());
 }
        public ActionResult Edit()
        {
            //退货单号
            string OrderNum = WebUtil.GetFormValue<string>("OrderNum", string.Empty);
            if (!OrderNum.IsEmpty())
            {
                //退货单部分
                Bill<ReturnOrderEntity, ReturnDetailEntity> bill = new ReturnOrder();
                ReturnOrderEntity entity = new ReturnOrderEntity();
                entity.OrderNum = OrderNum;
                entity = bill.GetOrder(entity);
                if (entity.Status != (int)EAudite.Wait)
                {
                    this.ReturnJson.AddProperty("d", "1001");
                    return Content(this.ReturnJson.ToString());
                }
                ReturnDetailEntity detail = new ReturnDetailEntity();
                detail.OrderNum = OrderNum;
                List<ReturnDetailEntity> listDetails = bill.GetOrderDetail(detail);
                //出货单部分
                Bill<OutStorageEntity, OutStoDetailEntity> provider = new OutStorageOrder();
                OutStoDetailEntity items = new OutStoDetailEntity();
                items.OrderNum = entity.ContractOrder;
                List<OutStoDetailEntity> list = provider.GetOrderDetail(items);

                //已经退货部分
                ReturnProvider returnProvider = new ReturnProvider();
                List<ReturnDetailEntity> listResult = returnProvider.GetDetailByOrder(entity.ContractOrder);

                if (!list.IsNullOrEmpty())
                {
                    list.ForEach(a =>
                    {
                        ReturnDetailEntity item = listDetails.FirstOrDefault(b => b.BarCode == a.BarCode && b.ProductNum == a.ProductNum && b.LocalNum == a.LocalNum && b.StorageNum == a.StorageNum);
                        if (item != null)
                        {
                            a.Qty = item.BackNum;
                        }
                        a.BackNum = listResult.Where(b => b.BarCode == a.BarCode && b.ProductNum == a.ProductNum && b.LocalNum == a.LocalNum && b.StorageNum == a.StorageNum).Sum(b => b.BackNum);
                    });
                }
                Session[CacheKey.TEMPDATE_CACHE_RETURNPRODUCTDETAIL] = list;
                string json = ConvertJson.ListToJson<OutStoDetailEntity>(list, "List");
                this.ReturnJson.AddProperty("data", json);
            }
            return Content(this.ReturnJson.ToString());
        }
 public ActionResult GetList()
 {
     int Status = WebUtil.GetFormValue<int>("Status", 0);
     string OrderNum = WebUtil.GetFormValue<string>("OrderNum", string.Empty);
     string CusName = WebUtil.GetFormValue<string>("CusName", string.Empty);
     string beginTime = WebUtil.GetFormValue<string>("beginTime", string.Empty);
     string endTime = WebUtil.GetFormValue<string>("endTime", string.Empty);
     string order = WebUtil.GetFormValue<string>("order", string.Empty);
     int OutType = WebUtil.GetFormValue<int>("OutType", 0);
     string planNum = WebUtil.GetFormValue<string>("planNum");
     int pageSize = WebUtil.GetFormValue<int>("PageSize", 10);
     int pageIndex = WebUtil.GetFormValue<int>("PageIndex", 1);
     PageInfo pageInfo = new PageInfo() { PageIndex = pageIndex, PageSize = pageSize };
     OutStorageEntity entity = new OutStorageEntity();
     if (Status > 0)
     {
         entity.Where(a => a.Status == Status);
     }
     if (!OrderNum.IsEmpty())
     {
         entity.Where("OrderNum", ECondition.Like, "%" + OrderNum + "%");
     }
     if (!CusName.IsEmpty())
     {
         entity.Begin<OutStorageEntity>()
             .And<OutStorageEntity>("CusNum", ECondition.Like, "%" + CusName + "%")
             .Or<OutStorageEntity>("CusName", ECondition.Like, "%" + CusName + "%")
             .End<OutStorageEntity>()
             ;
     }
     if (!beginTime.IsEmpty() && !endTime.IsEmpty())
     {
         entity.Where("OrderTime", ECondition.Between, ConvertHelper.ToType<DateTime>(beginTime), ConvertHelper.ToType<DateTime>(endTime));
     }
     entity.And(a => a.StorageNum == this.DefaultStore);
     if (!order.IsEmpty())
     {
         OrderProvider orderProvider = new OrderProvider();
         List<string> listContractOrder = orderProvider.GetOrderPlan(order);
         listContractOrder = listContractOrder.IsNull() ? new List<string>() : listContractOrder;
         if (listContractOrder.Count == 0)
         {
             listContractOrder.Add(order);
         }
         entity.And("ContractOrder", ECondition.In, listContractOrder.ToArray());
     }
     if (OutType > 0)
     {
         entity.And(a => a.OutType == OutType);
     }
     if (!planNum.IsEmpty())
     {
         OutStoDetailEntity detail = new OutStoDetailEntity();
         detail.Where("ContractOrder", ECondition.Like, "%" + planNum + "%");
         entity.Left<OutStoDetailEntity>(detail, new Params<string, string>() { Item1 = "OrderNum", Item2 = "OrderNum" });
     }
     Bill<OutStorageEntity, OutStoDetailEntity> bill = new OutStorageOrder();
     List<OutStorageEntity> listResult = bill.GetList(entity, ref pageInfo);
     listResult = listResult == null ? new List<OutStorageEntity>() : listResult;
     string json = ConvertJson.ListToJson<OutStorageEntity>(listResult, "List");
     this.ReturnJson.AddProperty("Data", json);
     this.ReturnJson.AddProperty("RowCount", pageInfo.RowCount);
     return Content(this.ReturnJson.ToString());
 }
 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);
 }
 /// <summary>
 /// 获得订单详细查询
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public List<OutStoDetailEntity> GetOrderDetail(OutStoDetailEntity entity)
 {
     entity.IncludeAll();
     List<OutStoDetailEntity> list = this.OutStoDetail.GetList(entity);
     if (!list.IsNullOrEmpty())
     {
         List<LocationEntity> listLocation = new LocationProvider().GetList();
         listLocation = listLocation == null ? new List<LocationEntity>() : listLocation;
         foreach (OutStoDetailEntity item in list)
         {
             LocationEntity location = listLocation.FirstOrDefault(a => a.LocalNum == item.LocalNum);
             item.LocalName = location == null ? "" : location.LocalName;
             if (item.Amount == 0)
             {
                 item.Amount = item.OutPrice * item.Num;
             }
         }
     }
     return list;
 }
        public ActionResult Print()
        {
            string orderNum = WebUtil.GetQueryStringValue<string>("orderNum", 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;

            OutStoDetailEntity detail = new OutStoDetailEntity();
            detail.OrderNum = orderNum;
            List<OutStoDetailEntity> listResult = bill.GetOrderDetail(detail);
            listResult = listResult.IsNull() ? new List<OutStoDetailEntity>() : listResult;
            OrderProvider orderProvider = new OrderProvider();
            foreach (OutStoDetailEntity item in listResult)
            {
                OrderDetailEntity orderDetail = new OrderDetailEntity();
                orderDetail.Where(a => a.SnNum == item.ContractSn).And(a => a.OrderNum == item.ContractOrder);
                orderDetail = orderProvider.GetOrderDetail(orderDetail);
                if (orderDetail != null)
                {
                    item.Qty = orderDetail.Num;
                }
            }
            ViewBag.Detail = listResult;
            return View();
        }
        public ActionResult Edit()
        {
            string orderNum = WebUtil.GetQueryStringValue<string>("orderNum", 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.GetOptions<EInType>(entity.OutType, "请选择入库单类型");
            ViewBag.ProductType = EnumHelper.GetOptions<EProductType>(entity.ProductType, "请选择入库产品类型");

            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);
                }
                a.OutPrice = product != null ? product.OutPrice : 0;
                if (product != null)
                {
                    a.Size = product.Size.IsEmpty() ? "" : product.Size;
                }
                else
                {
                    a.Size = "";
                }
            });
            Session[CacheKey.TEMPDATA_CACHE_OUTSTORDETAIL] = listResult;
            return View();
        }