public ApiMessage VerifyOrder() { ApiMessage message = new ApiMessage(); HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"]; HttpRequestBase request = context.Request; string user_id = User.Identity.Name; UserManager userMgr = new UserManager(int.Parse(user_id), null); BUser user = userMgr.CurrentUser; BuyManager buyManager = new BuyManager(userMgr.CurrentUser, userMgr.Shop, userMgr.CurrentUserPermission); try { int oid = 0; long comeDate = 0; string odetails = request["order_products"]; string desc = request["description"]; int.TryParse(request["oid"], out oid); if (!string.IsNullOrEmpty(request["comedate"])) { comeDate = DateTimeUtil.ConvertDateTimeToInt(Convert.ToDateTime(request["comedate"])); } BBuy buy = new BBuy(); buy.ID = 0; buy.Order = new BBuyOrder() { ID = oid }; buy.ComeDate = comeDate; buy.Description = desc; buy.Created = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); buy.Shop = new BShop() { ID = buyManager.Shop.Shop_ID }; buy.User = new BUser() { ID = buyManager.CurrentUser.ID }; if (!string.IsNullOrEmpty(odetails)) { odetails = HttpUtility.UrlDecode(odetails); buy.Details = new List<BBuyDetail>(); JArray jsons = JArray.Parse(odetails); if (jsons != null && jsons.Count > 0) { for (int i = 0; i < jsons.Count; i++) { JObject jOrder = (JObject)jsons[i]; int parent_product_id = (int)jOrder["product_id"]; JArray cjorders = (JArray)jOrder["orders"]; if (cjorders != null && cjorders.Count > 0) { for (int j = 0; j < cjorders.Count; j++) { JObject json = (JObject)cjorders[j]; BBuyDetail oDetail = new BBuyDetail(); oDetail.Buy_Order_ID = oid; double price = 0; int quantity = 0; double.TryParse(json["price"].ToString(), out price); int.TryParse(json["quantity"].ToString(), out quantity); oDetail.Price = price; oDetail.Product = new BProduct() { ID = (int)json["child_id"] }; oDetail.Quantity = quantity; if (quantity <= 0) { continue; } oDetail.Parent_Product_ID = parent_product_id; buy.Details.Add(oDetail); } } } } } bool result = buyManager.VerifyBuyOrder(buy); if (result) { message.Status = "ok"; } else { message.Status = "failed"; message.Message = "验货单创建失败"; } } catch (KM.JXC.Common.KMException.KMJXCException kex) { message.Status = "failed"; message.Message = kex.Message; } catch (Exception ex) { message.Status = "failed"; message.Message = ex.Message; } finally { } return message; }
/// <summary> /// Create single buy detail /// </summary> /// <param name="detail"></param> /// <returns></returns> public bool CreateNewBuyDetail(int buyId,BBuyDetail detail) { bool ret = false; if (this.CurrentUserPermission.ADD_BUY == 0) { throw new KMJXCException("没有权限创建验货单信息"); } using (KuanMaiEntities db = new KuanMaiEntities()) { var d = from bdo in db.Buy_Detail where bdo.Buy_Order_ID == detail.Buy_Order_ID && bdo.Product_ID == detail.Product.ID select bdo; if (d != null && d.ToList<Buy_Detail>().Count > 0) { throw new KMJXCException("已经验过货"); } if (buyId<=0) { var d2 = from bdo in db.Buy_Detail where bdo.Buy_Order_ID == detail.Buy_Order_ID select bdo; List<Buy_Detail> existed = d2.ToList<Buy_Detail>(); if (existed.Count > 0) { buyId = existed[0].Buy_ID; } } Buy_Detail dbDetail = new Buy_Detail(); dbDetail.Buy_ID = buyId; dbDetail.Buy_Order_ID = detail.Buy_Order_ID; dbDetail.Create_Date = detail.CreateDate; dbDetail.Price = detail.Price; dbDetail.Product_ID = detail.Product.ID; dbDetail.Quantity = detail.Quantity; db.Buy_Detail.Add(dbDetail); Buy_Order_Detail boDetail = null; var d3 = from bod in db.Buy_Order_Detail where bod.Buy_Order_ID == detail.Buy_Order_ID && bod.Product_ID == detail.Product.ID select bod; if (d3.ToList<Buy_Order_Detail>().Count == 1) { boDetail = d3.ToList<Buy_Order_Detail>()[0]; } boDetail.Status = 1; db.SaveChanges(); //Verify buy order status this.VerifyBuyOrder((int)detail.Buy_Order_ID); ret = true; } return ret; }