Esempio n. 1
0
        /// <summary>
        /// 确认结算,如果这条消费记录的卡号不属于自己的,则给下级经销商生成结算请求
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public void Close(int id)
        {
            TransactionHelper.BeginTransaction();
            var item = DistributorBrokerageService.GetDistributorBrokerageById(id);

            if (item == null)
            {
                return;
            }
            var user      = this.SecurityHelper.GetCurrentUser();
            int currentId = -1;

            if (user is DistributorUserModel)
            {
                currentId = DistributorService.GetByUserId(user.CurrentUser.Id).DistributorId;
            }
            if (item.settlementDistributorId == currentId && item.status == false)
            {
                item.status = true;
                DistributorBrokerageService.UpdateDistributorBrokerage(item);
                //增加经销商的余额
                var distributor1 = DistributorService.GetById(item.settlementDistributorId);
                distributor1.Amount += item.brokerage;
                DistributorService.Update(distributor1);
                if (item.DistributorId != item.settlementDistributorId)
                {
                    //归属他下属的卡消费,他要跟下属结算。
                    //如果是多级还要找到他的直接下属,只能向他的直接下属发起结算请求。
                    int underId = GetDirectlyUnder(item.settlementDistributorId, item.DistributorId);
                    if (underId != 0)
                    {
                        var distributor            = DistributorService.GetAccountLevelPolicyRates(underId).FirstOrDefault();
                        DistributorBrokerage model = new DistributorBrokerage();
                        model.DistributorId           = item.DistributorId;
                        model.AccountId               = item.AccountId;
                        model.Bdate                   = item.Bdate;
                        model.consume                 = item.consume;
                        model.Edate                   = item.Edate;
                        model.settlementDistributorId = underId;
                        model.Rate      = distributor.Rate;
                        model.brokerage = item.consume * distributor.Rate;
                        model.status    = false;
                        DistributorBrokerageService.CreateDistributorBrokerage(model);
                    }
                    AddMessage("update.success", item.Id);
                }
            }
            else
            {
                AddError("不是结算经销商", item.Id);
            }
            TransactionHelper.Commit();
        }
Esempio n. 2
0
        public void Query(out string pageHtml)
        {
            pageHtml = string.Empty;
            var query   = DistributorService.Query().ToList();
            var request = new UserRequest();

            if (request.PageIndex == null || request.PageIndex <= 0)
            {
                request.PageIndex = 1;
            }
            if (request.PageSize == null || request.PageSize <= 0)
            {
                request.PageSize = 10;
            }
            if (!string.IsNullOrEmpty(this.Name))
            {
                request.NameWith = Name;
            }
            var users = MembershipService.QueryUsers <DistributorUser>(request).ToList();
            var user  = this.SecurityHelper.GetCurrentUser();
            int pid   = 0;

            if (user is DistributorUserModel)
            {
                pid   = ((DistributorUserModel)user).DistributorId;
                query = query.Where(x => users.Any(u => u.UserId == x.UserId) && x.ParentId == pid).ToList();
            }
            if (this.State == 100000)
            {
            }
            else
            {
                query = query.Where(x => users.Any(u => u.UserId == x.UserId) && x.State == this.State).ToList();//.ToList(this, x => new ListDistributor(x) { Owner = users.First(u => u.UserId == x.UserId) });
            }
            List = query.ToList(this, x => new ListDistributor(x)
            {
                Owner = users.First(u => u.UserId == x.UserId)
            });
            foreach (var item in List)
            {
                var rate = DistributorService.GetAccountLevelPolicyRates(item.DistributorId).FirstOrDefault();
                if (rate != null)
                {
                    item.Rate = rate.Rate * 100;
                }
            }
            if (query.Count > 0)
            {
                pageHtml = MvcPage.AjaxPager((int)request.PageIndex, (int)request.PageSize, query.Count);
            }
        }
Esempio n. 3
0
        public List <ListDistributor> AjaxGet(UserRequest request, out string pageHtml)
        {
            var totalCount = 0;

            pageHtml = string.Empty;
            if (request.PageIndex == null || request.PageIndex <= 0)
            {
                request.PageIndex = 1;
            }
            if (request.PageSize == null || request.PageSize <= 0)
            {
                request.PageSize = 10;
            }
            var query = DistributorService.Query().ToList();

            if (!string.IsNullOrEmpty(this.Name))
            {
                request.NameWith = Name;
            }
            var users = MembershipService.QueryUsers <DistributorUser>(request).ToList();
            var user  = this.SecurityHelper.GetCurrentUser();
            int pid   = 0;

            if (user is DistributorUserModel)
            {
                pid   = ((DistributorUserModel)user).DistributorId;
                query = query.Where(x => users.Any(u => u.UserId == x.UserId) && x.ParentId == pid).ToList();
            }
            if (!(request.State == null))
            {
                query = query.Where(x => users.Any(u => u.UserId == x.UserId) && x.State == request.State).ToList();//.ToList(this, x => new ListDistributor(x) { Owner = users.First(u => u.UserId == x.UserId) });
            }
            totalCount = query.Count;
            query      = query.Skip(Convert.ToInt32(request.PageSize) * Convert.ToInt32((request.PageIndex - 1))).Take(Convert.ToInt32(request.PageSize)).ToList();
            var datas = query.Select(x => new ListDistributor(x)
            {
                Owner = users.First(u => u.UserId == x.UserId)
            }).ToList();

            foreach (var item in datas)
            {
                var rate = DistributorService.GetAccountLevelPolicyRates(item.DistributorId).FirstOrDefault();
                if (rate != null)
                {
                    item.Rate = rate.Rate * 100;
                }
            }
            foreach (var item in datas)
            {
                item.boor += "<a href='#' onclick=OperatorThis('Edit','/Distributor/Edit/" + item.DistributorId + "') class='tablelink'>编辑 </a> ";
                if (item.InnerObject.State == UserStates.Normal)
                {
                    item.boor += "<a href='#' onclick=OperatorThis('Suspend','/Distributor/Suspend/" + item.DistributorId + "') class='tablelink'>停用 </a> ";
                }
                if (item.InnerObject.State == UserStates.Invalid)
                {
                    item.boor += "<a href='#' onclick=OperatorThis('Resume','/Distributor/Resume/" + item.DistributorId + "') class='tablelink'>启用 </a> ";
                }
            }
            if (query.Count > 0)
            {
                pageHtml = MvcPage.AjaxPager((int)request.PageIndex, (int)request.PageSize, totalCount);
            }
            return(datas);
        }