Esempio n. 1
0
        public void SetApproved(ApplyApprovedRequest request)
        {
            var item = GetItem(request.ApplyId);

            if (item == null)
            {
                throw new OpcException(String.Format("申请单{0}未找到", request.ApplyId));
            }

            using (var ts = new TransactionScope())
            {
                using (var db = GetYintaiHZhouContext())
                {
                    var approved = request.Approved == 1;

                    var stdField = new List <string>
                    {
                        "Approved",
                        "ApprovedDate",
                        "ApprovedBy",
                        "UpdateDate",
                        "UpdateUser",
                        "Status"
                    };

                    item.Approved     = approved;
                    item.ApprovedDate = DateTime.Now;
                    item.ApprovedBy   = request.CurrentUserId;
                    item.UpdateDate   = DateTime.Now;
                    item.UpdateUser   = request.CurrentUserId ?? 0;
                    item.Status       = approved ? InviteCodeRequestStatus.Approved.AsId() : InviteCodeRequestStatus.Reject.AsId();

                    if (!approved)
                    {
                        item.RejectReason = request.Reason;
                        stdField.Add("RejectReason");
                    }

                    EFHelper.UpdateEntityFields(db, item, stdField, false);

                    if (approved)
                    {
                        //init
                        InitializeAssociateTables(db, item, request.CurrentUserId ?? 0);
                    }

                    db.SaveChanges();
                }

                ts.Complete();
            }
        }
        public ExectueResult <ShopApplicationDto> SetApproved(ApplyApprovedRequest request)
        {
            //1 ok 2 reject
            var approved = new[] { 1, 3 };

            if (approved.Contains(v => v == request.Approved))
            {
                _inviteCodeRequestRepository.SetApproved(request);
            }
            else
            {
                return(SetDemotion(request));
            }

            return(GetItem(request.ApplyId));
        }
Esempio n. 3
0
        public IHttpActionResult PutApproved(int id, [FromBody] ApplyApprovedRequest request, [UserProfile] UserProfile userProfile)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            IHttpActionResult httpActionResult;
            var result = CheckDataRoleAndArrangeParams(request, userProfile, out httpActionResult);

            if (!result)
            {
                return(httpActionResult);
            }

            request.ApplyId = id;

            var exectueResult = _shopApplicationService.SetApproved(request);

            return(RetrunHttpActionResult4ExectueResult(exectueResult));
        }
Esempio n. 4
0
        /// <summary>
        /// 降级
        /// </summary>
        /// <param name="request"></param>
        public void SetDemotion(ApplyApprovedRequest request)
        {
            throw new NotImplementedException();

            var item = GetItem(request.ApplyId);

            if (item == null)
            {
                throw new OpcException(String.Format("申请单{0}未找到", request.ApplyId));
            }

            if (!item.Approved.HasValue || !item.Approved.Value)
            {
                throw new OpcException(String.Format("申请单{0}还未通过审核", request.ApplyId));
            }

            using (var ts = new TransactionScope())
            {
                using (var db = GetYintaiHZhouContext())
                {
                    var imsAssociate = db.Set <IMS_Associate>();
                    var sections     = db.Set <Section>();

                    var section =
                        sections.FirstOrDefault(v => v.StoreId == item.StoreId && v.SectionCode == item.SectionCode);

                    if (section == null)
                    {
                        throw new OpcException(String.Format("申请单{0}门店{1}专柜码{2}专柜未找到", item.Id, item.StoreId,
                                                             item.SectionCode));
                    }

                    var associate =
                        imsAssociate.FirstOrDefault(
                            v =>
                            v.UserId == item.UserId && v.Status == 1 && v.SectionId == section.Id &&
                            v.StoreId == section.StoreId && v.OperatorCode == item.OperatorCode);

                    if (associate == null)
                    {
                        throw new OpcException(String.Format("申请单{0}未找到关联表", item.Id));
                    }

                    if (associate.OperateRight == null)
                    {
                        throw new OpcException(String.Format("申请单{0}未找到关联表{1}OperateRight=null", item.Id,
                                                             associate.OperateRight));
                    }

                    var uor = (UserOperatorRight)associate.OperateRight;

                    var b = (uor & UserOperatorRight.SelfProduct) != 0;
                    if (!b)
                    {
                        throw new OpcException(String.Format("申请单{0}已经是{1}({2})", item.Id, uor.GetDescription(), uor));
                    }

                    associate.OperateRight = (uor & (~UserOperatorRight.SelfProduct)).AsId();

                    // item.Status = InviteCodeRequestStatus.Demotion.AsID();

                    EFHelper.UpdateEntityFields(db, item, new[] { "Status" });

                    EFHelper.UpdateEntityFields(db, associate, new[] { "OperateRight" });
                }
                ts.Complete();
            }
        }
        /// <summary>
        /// 降权
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ExectueResult <ShopApplicationDto> SetDemotion(ApplyApprovedRequest request)
        {
            _inviteCodeRequestRepository.SetDemotion(request);

            return(GetItem(request.ApplyId));
        }