/// <summary> /// 库存处理(此方法不包含事务,必须在事务下执行) /// </summary> /// <param name="stockLog">库存流水</param> /// <param name="stockLogAttach">库存流水附件</param> /// <param name="user">当前用户</param> /// <param name="bdStyleDetail">库存操作类型</param> /// <returns></returns> public NFMT.Common.ResultModel StockHandle(NFMT.Common.UserModel user, NFMT.WareHouse.Model.StockLog stockLog, List<NFMT.WareHouse.Model.StockLogAttach> stockLogAttachs, StockOperateEnum stockOperate) { NFMT.Common.ResultModel result = new NFMT.Common.ResultModel(); //result = CheckUser(user); //if (result.ResultStatus != 0) // return result; try { //获取stock NFMT.WareHouse.BLL.StockBLL stockBLL = new NFMT.WareHouse.BLL.StockBLL(); result = stockBLL.Get(user, stockLog.StockId); if (result.ResultStatus != 0) return result; NFMT.WareHouse.Model.Stock stock = result.ReturnValue as NFMT.WareHouse.Model.Stock; //根据库存处理类型修改库存状态 result = stockBLL.UpdateStockStatus(user, stock, stockOperate); if (result.ResultStatus != 0) return result; //写库存流水 NFMT.WareHouse.DAL.StockLogDAL stockLogDAL = new StockLogDAL(); result = stockLogDAL.Insert(user, stockLog); if (result.ResultStatus != 0) return result; int stockLogId = (int)result.ReturnValue; //写库存流水附件 if (stockLogAttachs != null) { NFMT.WareHouse.DAL.StockLogAttachDAL stockLogAttachDAL = new StockLogAttachDAL(); foreach (NFMT.WareHouse.Model.StockLogAttach stockLogAttach in stockLogAttachs) { stockLogAttach.StockLogId = stockLogId; result = stockLogAttachDAL.Insert(user, stockLogAttach); if (result.ResultStatus != 0) return result; } } } catch (Exception e) { result.Message = e.Message; result.ResultStatus = -1; } finally { if (result.ResultStatus != 0) log.ErrorFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue); else if (log.IsInfoEnabled) log.InfoFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue); } return result; }
public ResultModel UpdateStockStatus(UserModel user, Stock stock, StockOperateEnum operate) { ResultModel result = new ResultModel(); try { using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { ResultModel stockResult = this.Get(user, stock.StockId); stock = stockResult.ReturnValue as Stock; if (stock == null || stock.StockId <= 0) { result.Message = "库存不存在"; result.ResultStatus = -1; return result; } switch (operate) { case StockOperateEnum.出库: if (stock.StockStatus != StockStatusEnum.在库正常) { result.Message = "非正常库存不能进行出库操作"; return result; } result = stockDAL.UpdateStockStatus(stock, StockStatusEnum.预售库存); break; case StockOperateEnum.入库: result = stockDAL.UpdateStockStatus(stock, StockStatusEnum.预入库存); break; case StockOperateEnum.质押: if (stock.StockStatus != StockStatusEnum.在库正常) { result.Message = "非正常库存不能进行质押操作"; return result; } result = stockDAL.UpdateStockStatus(stock, StockStatusEnum.预押库存); break; case StockOperateEnum.回购: if (stock.StockStatus != StockStatusEnum.质押库存) { result.Message = "非质押库存不能进行回购操作"; return result; } result = stockDAL.UpdateStockStatus(stock, StockStatusEnum.预回购库存); break; default: result.Message = "不存在库存操作类型"; result.ResultStatus = -1; break; } scope.Complete(); } } catch (Exception ex) { result.Message = ex.Message; } finally { if (result.ResultStatus != 0) log.ErrorFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue); else if (log.IsInfoEnabled) log.InfoFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue); } return result; }