/// <summary> /// 是否包含订单头下一步状态 /// </summary> /// <param name="currentState">当前状态</param> /// <param name="nextState">下一状态</param> /// <returns></returns> public static bool ContainNextOrderFormState(EnumOrderFormState currentState, EnumOrderFormState nextState) { List<EnumOrderFormState> allNextStateList = CanUseNextStepOrderFormStateList(currentState); // 输入的下一步是否在可操作的步骤内 return (allNextStateList.Exists(n => n == nextState)); }
/// <summary> /// 是否包含订单头下一步状态 /// </summary> /// <param name="currentState">当前状态</param> /// <param name="nextState">下一状态</param> /// <returns></returns> public static bool ContainNextOrderFormState(EnumOrderFormState currentState, EnumOrderFormState nextState) { List <EnumOrderFormState> allNextStateList = CanUseNextStepOrderFormStateList(currentState); // 输入的下一步是否在可操作的步骤内 return(allNextStateList.Exists(n => n == nextState)); }
/// <summary> /// 下一步骤可使用的订单头状态 /// </summary> /// <param name="currentState"></param> /// <returns></returns> public static List<EnumOrderFormState> CanUseNextStepOrderFormStateList(EnumOrderFormState currentState) { List<EnumOrderFormState> allNextStateList = new List<EnumOrderFormState>(); switch (currentState) { case EnumOrderFormState.VHSTS_New: case EnumOrderFormState.VHSTS_Submit: allNextStateList.Add(EnumOrderFormState.VHSTS_Ready); allNextStateList.Add(EnumOrderFormState.VHSTS_Submit); break; case EnumOrderFormState.VHSTS_Ready: allNextStateList.Add(EnumOrderFormState.VHSTS_Closed); allNextStateList.Add(EnumOrderFormState.VHSTS_Completed); allNextStateList.Add(EnumOrderFormState.VHSTS_Cancel); break; case EnumOrderFormState.VHSTS_Cancel: case EnumOrderFormState.VHSTS_Completed: allNextStateList.Add(EnumOrderFormState.VHSTS_Closed); break; case EnumOrderFormState.VHSTS_Closed: // 没有下一步 break; default: throw new Exception("未知状态" + currentState.ToString()); } return allNextStateList; }
/// <summary> /// 下一步骤可使用的订单头状态 /// </summary> /// <param name="currentState"></param> /// <returns></returns> public static List <EnumOrderFormState> CanUseNextStepOrderFormStateList(EnumOrderFormState currentState) { List <EnumOrderFormState> allNextStateList = new List <EnumOrderFormState>(); switch (currentState) { case EnumOrderFormState.VHSTS_New: case EnumOrderFormState.VHSTS_Submit: allNextStateList.Add(EnumOrderFormState.VHSTS_Ready); allNextStateList.Add(EnumOrderFormState.VHSTS_Submit); break; case EnumOrderFormState.VHSTS_Ready: allNextStateList.Add(EnumOrderFormState.VHSTS_Closed); allNextStateList.Add(EnumOrderFormState.VHSTS_Completed); allNextStateList.Add(EnumOrderFormState.VHSTS_Cancel); break; case EnumOrderFormState.VHSTS_Cancel: case EnumOrderFormState.VHSTS_Completed: allNextStateList.Add(EnumOrderFormState.VHSTS_Closed); break; case EnumOrderFormState.VHSTS_Closed: // 没有下一步 break; default: throw new Exception("未知状态" + currentState.ToString()); } return(allNextStateList); }
/// <summary> /// 根据单据头的状态得到可用于更新单据行的状态 /// </summary> /// <param name="currentState">当前状态</param> /// <returns></returns> public static EnumOrderDataState GetOrderDataStateByOrderFormState(EnumOrderFormState currentState) { // 默认为无需状态更新的值 EnumOrderDataState state = EnumOrderDataState.None; switch (currentState) { case EnumOrderFormState.VHSTS_New: state = EnumOrderDataState.VLSTS_New; break; case EnumOrderFormState.VHSTS_Submit: case EnumOrderFormState.VHSTS_Ready: state = EnumOrderDataState.VLSTS_Ready; break; case EnumOrderFormState.VHSTS_Cancel: case EnumOrderFormState.VHSTS_Completed: case EnumOrderFormState.VHSTS_Closed: // 无需状态更新,保持原状态 break; default: throw new Exception("未知状态" + currentState.ToString()); } return(state); }
public ActionResult OrderChangeState(long id, EnumOrderFormState state) { ExtResult ret = new ExtResult(); try { var userid = CurrentUser.GetCurrentUser().UserInfo.YHID; dalorderform.UpdateOrder(id, userid, state); ret.success = true; } catch (Exception ex) { ret.success = false; ret.msg = ex.Message; } return(this.JsonFormat(ret)); //var dat (dalorderform.GetEntity(id)) }
public void UpdateOrder(long id, string userid, EnumOrderFormState nextState) { var ent = GetEntity(id); var currentState = JsMiracle.Framework.FunctionHelp.GetEnum <EnumOrderFormState>(ent.DJZT); if (!OrderStateWorkFlow.ContainNextOrderFormState(currentState, nextState)) { throw new JsMiracleException(string.Format("当前状态:{0},下一状态不得是:{1}", currentState, nextState)); } ent.DJZT = (int)nextState; var orderDataState = OrderStateWorkFlow.GetOrderDataStateByOrderFormState(nextState); var orderDataList = this.DbContext.IMS_VC_DJH_S.Where(n => n.DJBH == ent.DJBH); if (orderDataList != null && orderDataState != EnumOrderDataState.None) { foreach (var data in orderDataList) { data.ZT = (int)orderDataState; } } using (var tran = this.DbContext.Database.BeginTransaction()) { try { DbContext.SaveChanges(); tran.Commit(); } catch (Exception ex) { tran.Rollback(); throw new Exception("更新单据状态失败", ex); } } }
/// <summary> /// 根据单据头的状态得到可用于更新单据行的状态 /// </summary> /// <param name="currentState">当前状态</param> /// <returns></returns> public static EnumOrderDataState GetOrderDataStateByOrderFormState(EnumOrderFormState currentState) { // 默认为无需状态更新的值 EnumOrderDataState state = EnumOrderDataState.None; switch (currentState) { case EnumOrderFormState.VHSTS_New: state = EnumOrderDataState.VLSTS_New; break; case EnumOrderFormState.VHSTS_Submit: case EnumOrderFormState.VHSTS_Ready: state = EnumOrderDataState.VLSTS_Ready; break; case EnumOrderFormState.VHSTS_Cancel: case EnumOrderFormState.VHSTS_Completed: case EnumOrderFormState.VHSTS_Closed: // 无需状态更新,保持原状态 break; default: throw new Exception("未知状态" + currentState.ToString()); } return state; }
public void UpdateOrder(long id, string userid, EnumOrderFormState nextState) { base.RequestAction <object[]>("UpdateOrder", new object[] { id, userid, nextState }); }
public ActionResult OrderChangeState(long id, EnumOrderFormState state) { ExtResult ret = new ExtResult(); try { var userid = CurrentUser.GetCurrentUser().UserInfo.YHID; dalorderform.UpdateOrder(id,userid, state); ret.success = true; } catch (Exception ex) { ret.success = false; ret.msg = ex.Message; } return this.JsonFormat(ret); //var dat (dalorderform.GetEntity(id)) }