/// <summary> /// Delete single buy order detail from buy order /// </summary> /// <param name="detail">Buy_Order_Detail object</param> /// <returns>TRUE/FALSE</returns> public bool DeleteBuyOrderDetail(BBuyOrderDetail detail) { bool result = false; if (this.CurrentUserPermission.DELETE_BUY_ORDER == 0) { throw new KMJXCException("没有权限删除采购单合同里的产品信息"); } if (detail == null || detail.BuyOrder==null || detail.BuyOrder.ID == 0) { throw new KMJXCException("请选择采购单合同"); } if (detail.Product == null || detail.Product.ID == 0) { throw new KMJXCException("请选择产品"); } using (KuanMaiEntities db = new KuanMaiEntities()) { var o = from oo in db.Buy_Order where oo.Buy_Order_ID == detail.BuyOrder.ID select oo; Buy_Order order = (Buy_Order)o; if (order.Status == 1) { throw new KMJXCException("此采购单已经验货通过,不能删除任何产品采购信息"); } if (order.Status == 3) { throw new KMJXCException("此采购单被冻结,不能删除任何产品采购信息"); } Buy_Order_Detail dbOrderDetail = (from dbdetail in db.Buy_Order_Detail where dbdetail.Buy_Order_ID==detail.BuyOrder.ID && dbdetail.Product_ID==detail.Product.ID select dbdetail).FirstOrDefault<Buy_Order_Detail>(); if (dbOrderDetail != null) { db.Buy_Order_Detail.Remove(dbOrderDetail); db.SaveChanges(); } result = true; } return result; }
public ApiMessage UpdateBuyOrder() { 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 writedate = 0; long issuedate = 0; long enddate = 0; int supplier_id = 0; int order_user = 0; string odetails = request["order_products"]; string desc = request["description"]; int.TryParse(request["oid"],out oid); if (!string.IsNullOrEmpty(odetails)) { odetails = HttpUtility.UrlDecode(odetails); } if (!string.IsNullOrEmpty(request["writedate"])) { writedate = DateTimeUtil.ConvertDateTimeToInt(Convert.ToDateTime(request["writedate"])); } if (!string.IsNullOrEmpty(request["issuedate"])) { issuedate = DateTimeUtil.ConvertDateTimeToInt(Convert.ToDateTime(request["issuedate"])); } if (!string.IsNullOrEmpty(request["enddate"])) { enddate = DateTimeUtil.ConvertDateTimeToInt(Convert.ToDateTime(request["enddate"])); } int.TryParse(request["supplier"], out supplier_id); int.TryParse(request["order_user"], out order_user); BBuyOrder order = new BBuyOrder(); order.ID = oid; //order.Created = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); //order.Created_By = new BUser() { ID = buyManager.CurrentUser.ID }; order.Description = desc; order.EndTime = enddate; order.InsureTime = issuedate; order.OrderUser = new BUser() { ID = order_user }; order.Shop = new BShop() { ID = buyManager.Shop.Shop_ID }; order.Status = 0; order.Supplier = new Supplier() { Supplier_ID = supplier_id }; order.WriteTime = writedate; if (!string.IsNullOrEmpty(odetails)) { JArray jOrders = JArray.Parse(odetails); order.Details = new List<BBuyOrderDetail>(); if (jOrders != null && jOrders.Count > 0) { for (int i = 0; i < jOrders.Count; i++) { JObject jOrder = (JObject)jOrders[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++) { BBuyOrderDetail oDetail = new BBuyOrderDetail(); oDetail.Parent_Product_ID = parent_product_id; double price = 0; int quantity = 0; double.TryParse(cjorders[j]["price"].ToString(), out price); int.TryParse(cjorders[j]["quantity"].ToString(), out quantity); oDetail.Product = new BProduct() { ID = (int)cjorders[j]["child_id"] }; oDetail.Quantity = quantity; oDetail.Status = 0; oDetail.Price = price; if (quantity <= 0) { continue; } order.Details.Add(oDetail); } } } } } bool result = buyManager.UpdateBuyOrder(order); 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> /// /// </summary> /// <param name="detail"></param> /// <returns></returns> public bool CreateNewBuyOrderDetail(int buyOrderId,BBuyOrderDetail detail) { if (this.CurrentUserPermission.ADD_BUY_ORDER == 0) { throw new KMJXCException("没有权限创建采购单合同"); } bool result = false; if (detail == null || detail.BuyOrder.ID == 0 || detail.Product.ID == 0 || detail.Quantity == 0) { throw new KMJXCException("采购单合同不能为空,产品不能为空,数量不能为零"); } using (KuanMaiEntities db = new KuanMaiEntities()) { var o = from oo in db.Buy_Order where oo.Buy_Order_ID == detail.BuyOrder.ID select oo; Buy_Order order = (Buy_Order)o; if (order.Status != 0) { throw new KMJXCException("此采购单已经验货或者验货未通过,所以不能继续添加"); } Buy_Order_Detail dbOrderDetail = new Buy_Order_Detail(); if (buyOrderId <= 0) { dbOrderDetail.Buy_Order_ID = detail.BuyOrder.ID; } else { dbOrderDetail.Buy_Order_ID = buyOrderId; } dbOrderDetail.Price = detail.Price; dbOrderDetail.Product_ID = detail.Product.ID; dbOrderDetail.Quantity = detail.Quantity; dbOrderDetail.Status = detail.Status; db.Buy_Order_Detail.Add(dbOrderDetail); db.SaveChanges(); result = true; } return result; }