public ResultModel StockReceiptUpdate(UserModel user, int detailId, int stockId, int stockLogId, decimal receiptAmount) { ResultModel result = new ResultModel(); try { DAL.StockDAL stockDAL = new StockDAL(); DAL.StockLogDAL stockLogDAL = new StockLogDAL(); DAL.StockReceiptDetailDAL stockReceiptDetailDAL = new StockReceiptDetailDAL(); using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = stockReceiptDetailDAL.Get(user, detailId); if (result.ResultStatus != 0) return result; Model.StockReceiptDetail stockReceiptDetail = result.ReturnValue as Model.StockReceiptDetail; if (stockReceiptDetail == null || stockReceiptDetail.DetailId <= 0) { result.ResultStatus = -1; result.Message = "获取库存回执错误"; return result; } stockReceiptDetail.ReceiptAmount = receiptAmount; stockReceiptDetail.QtyMiss = receiptAmount - stockReceiptDetail.PreNetAmount; stockReceiptDetail.QtyRate = (receiptAmount / stockReceiptDetail.PreNetAmount - 1) / 100; //修改库存回执明细 result = stockReceiptDetailDAL.Update(user, stockReceiptDetail); if (result.ResultStatus != 0) return result; //获取库存回执 result = stockreceiptDAL.Get(user, stockReceiptDetail.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 = stockLogDAL.Get(user, 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 = receiptAmount - stockReceiptDetail.PreNetAmount; //更新库存流水 result = stockLogDAL.Update(user, stockLog); if (result.ResultStatus != 0) return result; //获取库存 result = stockDAL.Get(user, stockId); if (result.ResultStatus != 0) return result; Model.Stock stock = result.ReturnValue as Model.Stock; if (stock == null || stock.StockId <= 0) { result.ResultStatus = -1; result.Message = "获取库存出错"; return result; } if (stockReceipt.ReceiptType == (int)NFMT.WareHouse.ReceiptTypeEnum.入库回执) { stock.ReceiptInGap = receiptAmount - stockReceiptDetail.PreNetAmount; } else if (stockReceipt.ReceiptType == (int)NFMT.WareHouse.ReceiptTypeEnum.出库回执) { stock.ReceiptOutGap = receiptAmount - stockReceiptDetail.PreNetAmount; } stock.CurNetAmount = receiptAmount; //更新库存 result = stockDAL.Update(user, stock); if (result.ResultStatus != 0) return result; //若此库存已开业务票,则修改业务票中的净重 result = stockreceiptDAL.UpdateBussinessInvDetail(user, stockLogId, receiptAmount); if (result.ResultStatus != 0) return result; scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; 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; }