Esempio n. 1
0
 public void Close(ISession session)
 {
     if (this.Status != ReturnStatus.Open)
     {
         throw new Exception("退货单不是待入库状态,无法执行该操作");
     }
     this.Status = ReturnStatus.Close;
     this.Update(session, "Status");
     ERPUtil.CommitWHTrans(session, this);
 }
Esempio n. 2
0
 public void Close(ISession session)
 {
     if (this._status != INVCheckStatus.Release || this._approveResult != ApproveStatus.Approve)
     {
         throw new Exception("只有发布后的盘点单能够执行关闭操作");
     }
     ERPUtil.CommitWHTrans(session, this);
     this._status = INVCheckStatus.Close;
     this.Update(session, "Status");
 }
 public void Close(ISession session)
 {
     if (this.Status != WHTransferStatus.Open)
     {
         log.ErrorFormat("移库单{0}不是待移库状态,无法执行关闭操作", this.OrderNumber);
         throw new Exception(string.Format("移库单{0}不是待移库状态,无法执行关闭操作", this.OrderNumber));
     }
     this.Status = WHTransferStatus.Close;
     this.Update(session, "Status");
     ERPUtil.CommitWHTrans(session, this);
 }
Esempio n. 4
0
        public void Close(ISession session, bool throwException)
        {
            if (this._status != ReceiveStatus.Open)
            {
                log.ErrorFormat("收货单{0}不是待发货状态,无法执行关闭操作", this._orderNumber);
                if (throwException)
                {
                    throw new Exception(string.Format("收货单{0}不是待发货状态,无法执行关闭操作", this._orderNumber));
                }
                return;
            }

            //签核完成后会调用这个方法,尝试将收货单自动关闭,如果这个方法发生异常,签核处理正常完成,需要手工来关闭这个单据
            //签核完成的关闭动作将新开一个session来完成,确保关闭时的异常不会影响签核操作的结束;手工关闭时由界面开session来执行这个方法
            try
            {
                //库存交易
                ERPUtil.CommitWHTrans(session, this);
                //更新PO行的冗余字段值
                if (this._orderTypeCode == RCVHead.ORD_TYPE_PUR &&
                    !string.IsNullOrEmpty(this._refOrderNumber) && this._refOrderNumber.Trim().Length > 0)
                {
                    IList <RCVLine> rcvLines = session.CreateEntityQuery <RCVLine>()
                                               .Where(Exp.Eq("OrderNumber", this._orderNumber))
                                               .OrderBy("LineNumber")
                                               .List <RCVLine>();
                    foreach (RCVLine rcv in rcvLines)
                    {
                        if (!string.IsNullOrEmpty(rcv.RefOrderLine) && rcv.RefOrderLine.Trim().Length > 0)
                        {
                            POLine poLine = POLine.Retrieve(session, this._refOrderNumber, rcv.RefOrderLine);
                            if (poLine != null)
                            {
                                poLine.ReceiveFinish(session, rcv.RCVTotalQty, rcv.QualifiedQty);
                            }
                        }
                    }
                }
                //更新本身状态
                this._status = ReceiveStatus.Close;
                this.Update(session, "Status");
            }
            catch (Exception er)
            {
                log.Error(string.Format("收货单{0}关闭时发生异常", this._orderNumber), er);
                if (throwException)
                {
                    throw er;
                }
            }
        }
Esempio n. 5
0
        public void WHTransactionDo(ISession session)
        {
            SOHead saleOrder = SOHead.Retrieve(session, this._saleOrderID);

            if (saleOrder.OrderType == SaleOrderType.Exchange)
            {
                this._orderTypeCode = ORDER_TYPE_CODE_ED;
            }
            else
            {
                this._orderTypeCode = ORDER_TYPE_CODE_SD;
            }
            ERPUtil.CommitWHTrans(session, this);
        }
Esempio n. 6
0
 public void Close(ISession session)
 {
     ERPUtil.CommitWHTrans(session, this);
 }
Esempio n. 7
0
 /// <summary>
 /// 签核完成
 /// </summary>
 /// <param name="session"></param>
 public virtual void PostApprove(ISession session)
 {
     ERPUtil.CommitWHTrans(session, this);
 }