コード例 #1
0
        /// <summary>
        /// 审核
        /// </summary>
        /// <param name="otherIn"></param>
        /// <returns></returns>
        public ResultData <string> ApproveOtherIn(WOtherIn otherIn)
        {
            if (otherIn.Lines.Count < 1)
            {
                otherIn.Lines = oilRepository.GetLinesByParentId(otherIn.ID);
            }

            ResultData <string> rData     = new ResultData <string>();
            DatabaseContext     dbContext = oiRepository.DbCondext;

            try
            {
                dbContext.BeginTransaction();
                //入库记录
                List <WStockIn> stockIns = new List <WStockIn>(otherIn.Lines.Count);

                //添加其他入库
                int result = oiRepository.ApproveOtherIn(otherIn);
                if (result < 1)
                {
                    rData.status  = -1;
                    rData.message = "单据已经审核或删除.";
                    dbContext.AbortTransaction();
                    return(rData);
                }

                foreach (var line in otherIn.Lines)
                {
                    stockIns.Add(CloneOtherIn(line, otherIn));
                }

                //更新库存
                WStockService sService = new WStockService(dbContext);
                rData = sService.AddStocks(stockIns);
                if (rData.status != 0)
                {
                    dbContext.AbortTransaction();
                }
                else
                {
                    dbContext.CompleteTransaction();
                }
            }
            catch (Exception ex)
            {
                dbContext.AbortTransaction();
                throw ex;
            }
            return(rData);
        }