public List <KitchenMakeDetail> CreateKitchenMakeDetails(KitchenMake make, ICollection <OrderDetails> orderDetails) { List <KitchenMakeDetail> makeDetails = null; makeDetails = new List <KitchenMakeDetail>(); foreach (var detailItem in orderDetails) { var makeDetail = new KitchenMakeDetail(DataHelper.GetSystemID(), ExecUserId, make.Id, detailItem.SubProductId); makeDetails.Add(makeDetail); } return(makeDetails); }
public List <KitchenMake> CreateKitchenMakes(OrderBatch orderBatch, List <Orders> orders) { List <KitchenMake> makes = new List <KitchenMake>(); foreach (var item in orders) { var make = new KitchenMake(DataHelper.GetSystemID(), orderBatch.BatchNo, item.No, ExecUserId); makes.Add(make); if (item.OrderDetails != null) { var details = CreateKitchenMakeDetails(make, item.OrderDetails); context.KitchenMakeDetails.AddRange(details); } } context.KitchenMakes.AddRange(makes); return(makes); }
/// <summary> /// 往批次里增加订单 /// </summary> /// <param name="orderids">要增加的订单<list>多条</param> /// <param name="batchNo">批次号</param> /// <returns>返回是否成功,返回信息</returns> public OpResult AddOrderInBatch(List <string> orderids, string batchNo) { OpResult result = new OpResult(); result.Successed = false; try {//判断批次状态 var batchState = context.OrderBatchs.Where(p => p.BatchNo.Equals(batchNo) && p.IsDeleted != 1).FirstOrDefault(); if (batchState != null) { if (batchState.MakeStatus == OrderBatchMakeStatus.Complete) { result.Message = "该批次已是完成状态,增加订单失败"; return(result); } } else { return(null); } int count = orderids.Count(); //取得总更改行数 算订单数用 int cakeCount = 0; //蛋糕数量 算蛋糕总数用 foreach (var item in orderids) { //插入厨房制作主表 var data = context.Orders.Where(p => p.No.Equals(item) && p.IsDeleted != 1).First(); data.Status = OrderStatus.Scheduled; KitchenMake km = new KitchenMake(); km.Id = FCake.Core.Common.DataHelper.GetSystemID(); km.BatchNo = batchNo; km.OrderNo = item; km.Status = OrderBatchMakeStatus.NotStart;//到底是订单状态还是批次状态 km.IsDeleted = 0; km.CreatedOn = DateTime.Now; context.KitchenMakes.Add(km); // context.SaveChanges(); //插入厨房制作从表 var odetail = context.OrderDetails.Where(p => p.OrderNo.Equals(item) && p.IsDeleted != 1).ToList(); var otherType = CommonRules.OtherProductTypeDicValue; foreach (var num in odetail) { var product = context.Products.SingleOrDefault(p => p.Id.Equals(num.ProductId) && p.IsDeleted != 1); if (product != null) { if (product.Type != otherType) { cakeCount += Convert.ToInt32(num.Num);// } } } //cakeCount = odetail.Count(); foreach (var p in odetail) { KitchenMakeDetail detail = new KitchenMakeDetail(); detail.Id = FCake.Core.Common.DataHelper.GetSystemID(); detail.KitchenMakeId = km.Id; detail.Status = OrderBatchMakeStatus.NotStart; detail.SubProductId = p.SubProductId; detail.IsDeleted = 0; detail.CreatedOn = DateTime.Now; context.KitchenMakeDetails.Add(detail); //context.SaveChanges(); } } //更改批次表的批次订单数量 var temp = context.OrderBatchs.Single(p => p.BatchNo.Equals(batchNo) && p.IsDeleted != 1); temp.OrderNum += count; if (temp.OrderNum < 0)//订单数量不可以是负数 { temp.OrderNum = 0; } temp.CakeNum += cakeCount; if (temp.CakeNum < 0)//批次的蛋糕数量也不可以为负数 { temp.CakeNum = 0; } //保存数据 if (context.SaveChanges() > 0) { result.Successed = true; result.Message = "批次新增订单成功"; } else { result.Message = "批次新增订单失败"; } } catch (Exception e) { result.Message = "批次新增订单失败:" + e.Message; } return(result); }