示例#1
0
        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;
        }
示例#2
0
        /// <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;
        }