public void PostReturnList(UnitOfWork uow)
        {
            if (this.Status == ProdOrderReturnListStatus.Waiting)
            {
                if (Qty > ProdBom.RemainReturnQty)
                    throw new Exception(string.Format("入仓数 {0} 必需小于余数 {1}", Qty, ProdBom.RemainReturnQty));

                WHHistory WHHistory = new WHHistory(uow);
                WHHistory.Item = this.Item;
                WHHistory.OriginalQty = this.Qty;
                WHHistory.Warehouse = this.Warehouse;
                WHHistory.OriginalUnit = this.Item.Unit;
                WHHistory.RefNo = ProdOrder.OrderNo;
                WHHistory.RefType = WHHistory.ReferenceType.Production;

                if (ProdOrder.GetFirstProdRoute() != null)
                    WHHistory.FromTo = ProdOrder.GetFirstProdRoute().WorkCenter.WorkCenterNo;

                WHHistory.Save();

                _Status = ProdOrderReturnListStatus.Complete;
                OnChanged("Status");

                _PostedBy = base.CurrentUser;
                OnChanged("PostedBy");
                _PostedDate = ServerHelper.GetCurrentDateTime();
                OnChanged("PostedDate");

                this.Save();

                ProdBom.UpdateReturnQty();
                ProdBom.Save();

                ProdOrder.UpdateKitQty();
                ProdOrder.Save();
            }
        }
        public void CancelProdOrderReturnList(UnitOfWork uow)
        {
            if (Status == ProdOrderReturnListStatus.Waiting)
            {
                _Status = ProdOrderReturnListStatus.Cancel;
                OnChanged("Status");

                _CancelBy = base.CurrentUser;
                OnChanged("CancelBy");

                _CancelDate = ServerHelper.GetCurrentDateTime();
                OnChanged("CancelDate");

                this.Save();
            }
        }