public ApiMessage EnterStockFromBuy() { 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; StockManager stockManager = new StockManager(userMgr.CurrentUser, userMgr.Shop, userMgr.CurrentUserPermission); BuyManager buyManager = new BuyManager(userMgr.CurrentUser, userMgr.Shop, userMgr.CurrentUserPermission); ApiMessage message = new ApiMessage(); int[] buy_ids =null; int updateStock = 0; int shouseId = 0; buy_ids = base.ConvertToIntArrar(request["buy_ids"]); int.TryParse(request["update_stock"], out updateStock); int.TryParse(request["house_id"], out shouseId); try { if (buy_ids != null) { foreach (int buy_id in buy_ids) { BEnterStock stock = new BEnterStock(); stock.BuyID = buy_id; stock.Created = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); stock.StoreHouse = new BStoreHouse() { ID = shouseId, Shop = new BShop() { ID = stockManager.Shop.Shop_ID } }; if (updateStock == 1) { stock.UpdateStock = true; } stockManager.CreateEnterStock(stock); } } message.Status = "ok"; message.Message = ""; } catch (JXC.Common.KMException.KMJXCException kex) { message.Status = "failed"; message.Message = kex.Message; } catch (Exception ex) { message.Status = "failed"; message.Message = "未知错误"; } finally { } return message; }
/// <summary> /// Add new enter stock record /// </summary> /// <param name="stock">Instance of Enter_Stock object</param> /// <returns></returns> public bool CreateEnterStock(BEnterStock stock) { bool result = false; if (stock == null) { return result; } if (stock.BuyID <= 0) { throw new KMJXCException("入库单未包含验货单信息"); } if (stock.Shop==null) { stock.Shop = new BShop() { ID = this.Shop_Id, Title=this.Shop.Name }; } if (stock.StoreHouse ==null) { throw new KMJXCException("入库单未包含仓库信息"); } if (stock.Created_By == null) { stock.Created_By = this.CurrentUser; } if (this.CurrentUserPermission.ADD_ENTER_STOCK == 0) { throw new KMJXCException("没有新增入库单的权限"); } using (KuanMaiEntities db = new KuanMaiEntities()) { //update buy Buy dbBuy = (from buy in db.Buy where buy.Buy_ID == stock.BuyID select buy).FirstOrDefault<Buy>(); if (dbBuy == null) { throw new KMJXCException("编号为:"+stock.BuyID+" 的验货单没有找到"); } if (dbBuy.Shop_ID != this.Shop.Shop_ID) { throw new KMJXCException("编号为:" + stock.BuyID + " 为别的店铺的验货单,您不能操作,请不要再次尝试"); } if (dbBuy.Status == 1) { throw new KMJXCException("编号为:" + stock.BuyID + " 的验货单已经入库,不能再次入库"); } Enter_Stock dbStock = new Enter_Stock(); dbStock.Buy_ID = stock.BuyID; dbStock.Enter_Date = stock.Created; dbStock.Enter_Stock_ID = 0; dbStock.Shop_ID = this.Shop.Shop_ID; dbStock.StoreHouse_ID = stock.StoreHouse.ID; dbStock.User_ID = stock.Created_By.ID; dbStock.Status = 0; db.Enter_Stock.Add(dbStock); db.SaveChanges(); if (dbStock.Enter_Stock_ID <= 0) { throw new KMJXCException("入库单创建失败"); } result = true; if (stock.Details == null || stock.Details.Count == 0) { stock.Details = (from d in db.Buy_Detail where d.Buy_ID == stock.BuyID select new BEnterStockDetail { Price = d.Price, Product = new BProduct() { ID=d.Product_ID }, Quantity=d.Quantity }).ToList<BEnterStockDetail>(); } result = result & this.CreateEnterStockDetails(dbStock, stock.Details, stock.UpdateStock); if (result) { if (stock.UpdateStock) { dbStock.Status = 1; } if (dbBuy != null) { base.CreateActionLog(new BUserActionLog() { Shop = new BShop { ID = dbBuy.Shop_ID }, Action = new BUserAction() { Action_ID = UserLogAction.CREATE_ENTER_STOCK }, Description = "" }); dbBuy.Status = 1; db.SaveChanges(); } } } return result; }