Exemplo n.º 1
0
        public static int UpdateProductStockAdjustmentStatus(ProductStockAdjustStatus newStatus, int adjustSysNo, int userSysNo)
        {
            DataCommand cmd = DataCommandManager.GetDataCommand("UpdateProductStockAdjustmentStatus");

            cmd.SetParameterValue("@SysNo", adjustSysNo);
            cmd.SetParameterValue("@Status", (int)newStatus);
            cmd.SetParameterValue("@EditUserSysNo", userSysNo);
            return(cmd.ExecuteNonQuery());
        }
Exemplo n.º 2
0
        /// <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);
            }
        }