/// <summary> /// 更新商品库存调整单状态 /// </summary> /// <param name="newStatus"></param> /// <returns></returns> public static int UpdateProductStockAdjustmentStatus(ProductStockAdjustStatus newStatus, int adjustSysNo, int currentUserSysNo) { var currentAdjustInfo = GetProductStockAdjustmentInfo(adjustSysNo); if (null == currentAdjustInfo) { throw new BusinessException(string.Format("找不到编号为{0}的商品库存调整单据!")); } switch (newStatus) { case ProductStockAdjustStatus.Abandon: case ProductStockAdjustStatus.WaitingAudit: if (currentAdjustInfo.Status != ProductStockAdjustStatus.Origin) { throw new BusinessException(string.Format("操作失败:编号为{0}的商品库存调整单据当前状态不为\"初始态\"!", adjustSysNo)); } break; case ProductStockAdjustStatus.AuditFaild: case ProductStockAdjustStatus.AuditPass: if (currentAdjustInfo.Status != ProductStockAdjustStatus.WaitingAudit) { throw new BusinessException(string.Format("操作失败:编号为{0}的商品库存调整单据当前状态不为\"待审核\"!", adjustSysNo)); } break; default: break; } using (TransactionScope ts = new TransactionScope()) { var result = ProductDA.UpdateProductStockAdjustmentStatus(newStatus, adjustSysNo, currentUserSysNo); if (newStatus == ProductStockAdjustStatus.AuditPass || newStatus == ProductStockAdjustStatus.AuditFaild) { ProductDA.UpdateProductStockAdjustmentAuditDate(adjustSysNo, currentUserSysNo); if (newStatus == ProductStockAdjustStatus.AuditPass) { //审核库存调整单通过,调整商品相关库存(可用库存): foreach (var item in currentAdjustInfo.AdjustItemList) { ProductPurchaseDA.UpdateStockInfoForAdjust(currentAdjustInfo.StockSysNo.Value, item.ProductSysNo.Value, item.AdjustQty.Value); } } } ts.Complete(); return(result); } }