示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
                }
            }
        }
示例#4
0
        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);
        }
示例#5
0
        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));
                }
            }
        }