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); }
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); }
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; } } }
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); }
public void Close(ISession session) { ERPUtil.CommitWHTrans(session, this); }
/// <summary> /// 签核完成 /// </summary> /// <param name="session"></param> public virtual void PostApprove(ISession session) { ERPUtil.CommitWHTrans(session, this); }