Beispiel #1
0
        private static readonly object _locker = new object(); // 互斥锁

        /// <summary>
        /// 入库存操作
        /// </summary>
        /// <param name="db"></param>
        /// <param name="item"></param>
        private static void AddWareGoods(IRepository db, Sales_Contract_ItemEntity item)
        {
            lock (_locker)
            {
                POS_ProductEntity op = db.FindEntity <POS_ProductEntity>(t => t.Id.Equals(item.ProductId));
                if (op != null)
                {
                    op.Stock += item.Count;
                    db.Update(op);
                }
                else
                {
                    throw new Exception(string.Format("系统中不存在:{0},请先维护该产品。", item.ProductName));
                }
            }
        }
Beispiel #2
0
 /// <summary>
 /// 出库存操作
 /// </summary>
 /// <param name="db"></param>
 /// <param name="item"></param>
 private static void MinusWareGoods(IRepository db, Sales_Contract_ItemEntity item)
 {
     lock (_locker)
     {
         POS_ProductEntity op = db.FindEntity <POS_ProductEntity>(t => t.Id.Equals(item.ProductId));
         if (op != null)
         {
             op.Stock -= item.Count;
             if (op.Stock >= 0)
             {
                 db.Update(op);
             }
             else
             {
                 throw new Exception(string.Format("仓库存货库存不足,存货信息:{0}, 存货数量:{1}, 出库数量:{2}", item.ProductName, op.Stock, item.Count));
             }
         }
         else
         {
             throw new Exception(string.Format("仓库存货库存不足,存货信息:{0}, 存货数量:{1}, 出库数量:{2}", item.ProductName, op.Stock, item.Count));
         }
     }
 }