public ResultJson PurchasingSubmenu(PurchasingSubmenuRequest request) { var NumCount = 0; foreach (var item in request.SubmenuList) { NumCount = NumCount + item.number; } if (NumCount == 0) { return(new ResultJson { HttpCode = 300, Message = "品检数量不能为0!" }); } var listId = request.SubmenuList.Select(p => p.itemid.ToString()).ToList(); var deliverList = DeliverFunc.Instance.SelectByKeys("Id", listId); foreach (var item in deliverList) { var submenuItem = request.SubmenuList.Where(p => p.itemid == item.Id).FirstOrDefault(); if (submenuItem != null) { if ((submenuItem.number + item.AlreadyQuantity) > item.buyerCount) { return(new ResultJson { HttpCode = 300, Message = "此次数量不能大于未到数量!" }); } } } var buyer = BuyerFunc.Instance.CrateSubmenu(request); return(null); }
/// <summary> /// 筛选单个采购表数据 /// </summary> /// <param name="Id"></param> /// <returns></returns> public bool CrateSubmenu(PurchasingSubmenuRequest request) { var MysqlHelper = SqlHelper.GetMySqlHelper("transaction"); var connection = MysqlHelper.CreatConn(); var transaction = MysqlHelper.GetTransaction(); try { #region 基础数据填充 var buyer = BuyerOper.Instance.SelectById(request.PurchasingId.Value, connection, transaction); var buyerList = BuyerOper.Instance.SelectAll(new Buyer { ParentId = buyer.Id }, null, connection, transaction); var DeliverList = DeliverOper.Instance.SelectByKeys("Id", request.SubmenuList.Select(p => p.itemid.ToString()).ToList(), connection, transaction); var newbuyer = new Buyer { AmountOfWare = 0, buyerContext = buyer.buyerContext, buyerMoney = buyer.buyerMoney, BuyerNo = $"{buyer.BuyerNo}-{buyerList.Count + 1}", buyerStatus = buyer.buyerStatus, buyerTime = buyer.buyerTime, checkStatus = buyer.checkStatus, CreateTime = buyer.CreateTime, DeeliverExpressNo = buyer.DeeliverExpressNo, paidTime = buyer.paidTime, ParentId = buyer.Id, producerId = buyer.producerId, SignedTime = buyer.SignedTime, SinglePerson = buyer.SinglePerson, wantmoney = buyer.wantmoney, wantTime = buyer.wantTime, DeliverSingleTime = DateTime.Now }; var newDeliverList = new List <Deliver>(); foreach (var item in DeliverList) { var subMenuModel = request.SubmenuList.Where(p => p.itemid == item.Id).FirstOrDefault(); if (subMenuModel.number > 0) { item.AlreadyQuantity = item.AlreadyQuantity == null ? subMenuModel.number : item.AlreadyQuantity + subMenuModel.number; if (!DeliverOper.Instance.Update(item, connection, transaction)) { transaction.Rollback(); connection.Close(); return(false); } newDeliverList.Add(new Deliver { Raw_materialsId = item.Raw_materialsId, ProducerId = item.ProducerId, buyerPrice = item.buyerPrice, buyerCount = subMenuModel.number, DeliverMoney = (item.buyerPrice * subMenuModel.number), IsStatus = "待品检", Color = item.Color }); } } #endregion #region 数据更新 newbuyer.buyerMoney = newDeliverList.Sum(p => p.DeliverMoney); var key = BuyerOper.Instance.InsertReturnKey(newbuyer, connection, transaction); if (key <= 0) { transaction.Rollback(); connection.Close(); return(false); } foreach (var item in newDeliverList) { item.buyerId = key; if (!DeliverOper.Instance.Insert(item, connection, transaction)) { transaction.Rollback(); connection.Close(); return(false); } } #endregion transaction.Commit(); connection.Close(); } catch (Exception e) { transaction.Rollback(); connection.Close(); throw e; } return(false); }