public override IMS_VC_DJT GetEntity(object id) { var entity = base.GetEntity(id); if (entity == null) { return(entity); } var currentState = FunctionHelp.GetEnum <EnumOrderFormState>(entity.DJZT); var canStatus = OrderStateWorkFlow.CanUseNextStepOrderFormStateList(currentState); // 下一步骤可用状态是修改过提交则,为可修改状态 if (canStatus.Exists(n => n == EnumOrderFormState.VHSTS_Ready || n == EnumOrderFormState.VHSTS_Submit)) { entity.CanModify = true; } else { entity.CanModify = false; } return(entity); }
public List <V_IMS_VC_DJH> GetDataListByDJBH(string djbh) { var data = base.DbContext.V_IMS_VC_DJH_S.Where(n => n.DJBH == djbh); var list = data.ToList(); foreach (var d in list) { OrderStateWorkFlow.SetOrderDataProp(d); } return(list); }
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); } } }
public virtual List <V_IMS_VC_DJT> GetDataViewByPageDynamic(int intPageIndex , int intPageSize , out int rowCount , string orderBy , string where , params object[] whereParams) { IQueryable <V_IMS_VC_DJT> query = null; if (!string.IsNullOrEmpty(where)) { query = DbContext.Set <V_IMS_VC_DJT>() .Where(where, whereParams) .OrderBy(orderBy) .Skip((intPageIndex - 1) * intPageSize) .Take(intPageSize); rowCount = DbContext.Set <V_IMS_VC_DJT>().Where(where, whereParams).Count(); } else { query = DbContext.Set <V_IMS_VC_DJT>() .OrderBy(orderBy) .Skip((intPageIndex - 1) * intPageSize) .Take(intPageSize); rowCount = DbContext.Set <V_IMS_VC_DJT>().Count(); } var list = query.ToList(); foreach (var d in list) { OrderStateWorkFlow.SetOrderFormProp(d); } return(list); }
public void UpdateOrderData(long id, string userid, EnumOrderDataState nextState) { var ent = GetEntity(id); var currentState = FunctionHelp.GetEnum <EnumOrderDataState>(ent.ZT); if (!OrderStateWorkFlow.ContainNextOrderDataState(currentState, nextState)) { throw new JsMiracleException(string.Format("当前状态:{0},下一状态不得是:{1}", currentState, nextState)); } ent.ZT = (int)nextState; // 单据释放时需要把单据行信息加入业务任务中 IMS_WT_YWRW bizTask = null; if (nextState == EnumOrderDataState.VLSTS_Released) { bizTask = DbContext.IMS_WT_YWRW_S.Where(n => n.DJH_ID == ent.ID).FirstOrDefault(); if (bizTask == null) { bizTask = new IMS_WT_YWRW() { DJBH = ent.DJBH, CJR = userid, DJH_ID = ent.ID, CJSJ = System.DateTime.Now, DJSL = ent.DJSL, HXW = ent.HXW, HH = ent.HH, LYD = ent.LYD, LYSYZ = ent.LYSYZ, MDD = ent.MDD, MDSYZ = ent.MDSYZ, PCBH = ent.PCBH, SKU = ent.SKU, ZT = (int)EnumWorkTaskState.WTSTS_New, }; } else { bizTask.LYD = ent.LYD; bizTask.LYSYZ = ent.LYSYZ; bizTask.MDSYZ = ent.MDSYZ; bizTask.MDD = ent.MDD; bizTask.PCBH = ent.PCBH; bizTask.SKU = ent.SKU; } } using (var tran = new System.Transactions.TransactionScope()) { try { if (bizTask != null) { if (bizTask.ID == 0) { DbContext.IMS_WT_YWRW_S.Add(bizTask); } DbContext.SaveChanges(); } SaveOrUpdate(ent); tran.Complete(); } catch (Exception ex) { throw new JsMiracleException(string.Format("单据更新失败:{0}", ex.Message)); } } }