public ResultModel Close(UserModel user, int receiptId) { ResultModel result = new ResultModel(); try { DAL.StockLogDAL stockLogDAL = new StockLogDAL(); DAL.StockReceiptDetailDAL stockReceiptDetailDAL = new StockReceiptDetailDAL(); using (System.Transactions.TransactionScope scope = new TransactionScope()) { //获取回执 result = this.stockreceiptDAL.Get(user, receiptId); if (result.ResultStatus != 0) return result; Model.StockReceipt stockReceipt = result.ReturnValue as Model.StockReceipt; if (stockReceipt == null || stockReceipt.ReceiptId <= 0) { result.ResultStatus = -1; result.Message = "库存回执不存在"; return result; } //关闭回执 result = this.stockreceiptDAL.Close(user, stockReceipt); if (result.ResultStatus != 0) return result; //获取回执明细 result = stockReceiptDetailDAL.Load(user, stockReceipt.ReceiptId); if (result.ResultStatus != 0) return result; List<Model.StockReceiptDetail> details = result.ReturnValue as List<Model.StockReceiptDetail>; if (details == null || details.Count == 0) { result.ResultStatus = -1; result.Message = "回执明细获取失败"; return result; } foreach (Model.StockReceiptDetail detail in details) { //关闭回执明细 result = stockReceiptDetailDAL.Close(user, detail); if (result.ResultStatus != 0) return result; //获取库存流水 result = stockLogDAL.Get(user, detail.StockLogId); if (result.ResultStatus != 0) return result; Model.StockLog stockLog = result.ReturnValue as Model.StockLog; if (stockLog == null || stockLog.StockLogId <= 0) { result.ResultStatus = -1; result.Message = "库存流水获取失败"; return result; } //更新库存流水磅差 stockLog.GapAmount -= detail.QtyMiss; result = stockLogDAL.Update(user, stockLog); if (result.ResultStatus != 0) return result; } } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }