Beispiel #1
0
        /// <summary>
        /// 库存调整单添加或更新明细
        /// <para>以StockDetailID判断INVCheckLine明细对象是否已经存在,不存在则新增,存在则更新</para>
        /// <para>如果是新增,lines中对象的各个属性必须都已经设置好;如果是更新,只更新CurrentQty属性</para>
        /// </summary>
        /// <param name="session"></param>
        /// <param name="lines"></param>
        public void CreateOrUpdateLines(ISession session, IList <INVCheckLine> lines)
        {
            if (this.Status != INVCheckStatus.New && this.Status != INVCheckStatus.Confirm)
            {
                log.WarnFormat("status of sto {0} {1} is {2}, attemping to update lines is denied", this.OrderTypeCode == ORDER_TYPE_CHK ? "chk" : "adj", this.OrderNumber, this.Status.ToString());
                throw new Exception("不可以更新");
            }
            bool needUpdateHead = false;

            foreach (INVCheckLine line in lines)
            {
                INVCheckLine temp = this.GetLine(session, line.StockDetailID);
                if (temp != null)
                {
                    temp.CurrentQty = line.CurrentQty;
                    temp.Update(session, "CurrentQty");
                }
                else
                {
                    line.LineNumber = this.NextLineNumber();
                    needUpdateHead  = true;
                    line.Create(session);
                }
            }
            if (needUpdateHead)
            {
                this.Update(session, "CurrentLineNumber");
            }
        }
Beispiel #2
0
 /// <summary>
 /// 保存库存盘点明细,lines中每个对象必须设置好LineNumber、CurrentQty这2个属性
 /// </summary>
 /// <param name="session"></param>
 /// <param name="orderNumber"></param>
 /// <param name="lines"></param>
 public void UpdateLines(ISession session, IList <INVCheckLine> lines)
 {
     if (lines == null || lines.Count <= 0)
     {
         return;
     }
     foreach (INVCheckLine line in lines)
     {
         INVCheckLine lineToSave = INVCheckLine.Retrieve(session, this.OrderNumber, line.LineNumber);
         if (lineToSave == null)
         {
             throw new Exception("库存盘点单" + this.OrderNumber + "中不存在明细项目" + line.LineNumber);
         }
         lineToSave.CurrentQty = line.CurrentQty;
         lineToSave.Update(session, "CurrentQty");
     }
 }