コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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);
        }