示例#1
0
        /// <summary>
        /// 礼品卡表 筛选
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        private static Expression <Func <IMS_GiftCardOrder, bool> > GiftCardOrderFilter(GiftCardSalesStatisticsReportRequest filter)
        {
            var query = PredicateBuilder.True <IMS_GiftCardOrder>();

            if (!String.IsNullOrEmpty(filter.GiftCardNo))
            {
                query = PredicateBuilder.And(query, v => v.No == filter.GiftCardNo);
                return(query);
            }

            if (!String.IsNullOrEmpty(filter.TransNo))
            {
            }
            else
            {
                if (filter.BuyStartDate != null)
                {
                    query = PredicateBuilder.And(query, v => v.CreateDate >= filter.BuyStartDate);
                }

                if (filter.BuyEndDate != null)
                {
                    query = PredicateBuilder.And(query, v => v.CreateDate < filter.BuyEndDate);
                }
            }

            return(query);
        }
示例#2
0
        public IHttpActionResult GetList4GiftCardSalesReport([FromUri] GiftCardSalesStatisticsReportRequest request, [UserProfile] UserProfile userProfile)
        {
            IHttpActionResult httpActionResult;
            var result = CheckDataRoleAndArrangeParams(request, userProfile, out httpActionResult);

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

            var pagerRequest = request.PagerRequest;

            List <GiftCardSalesStatisticsReportDto> datas;
            int totalCount;

            var giftcardorderFilter = GiftCardOrderFilter(request);
            var transFilter         = OrderTransactionFilter(request.TransNo);
            var paymentFilter       = PaymentFilter(request.PaymentMethodCode);
            var storeFilter         = StoreFilter(request.StoreId, request.DataRoleStores);

            using (var db = new YintaiHZhouContext())
            {
                var giftcardorders         = db.IMS_GiftCardOrder.AsExpandable().Where(giftcardorderFilter);
                var ordertransactions      = db.OrderTransactions.AsExpandable().Where(transFilter);
                var payments               = db.PaymentMethods.AsExpandable().Where(paymentFilter);
                var associateIncomeHistory = db.IMS_AssociateIncomeHistory;
                var associates             = db.IMS_Associate;
                var stores = db.Stores.AsExpandable().Where(storeFilter);

                var sql = from gco in giftcardorders
                          join ot in ordertransactions on gco.No equals ot.OrderNo
                          join pm in payments on ot.PaymentCode equals pm.Code
                          join aih in associateIncomeHistory on gco.No equals aih.SourceNo
                          join a in associates on aih.AssociateUserId equals a.UserId
                          join store in stores on a.StoreId equals store.Id
                          where aih.SourceType == 1 && a.Status == 1//<---------------礼品卡
                          select new GiftCardSalesStatisticsReportDto
                {
                    Amount            = gco.Amount,
                    SalesAmount       = gco.Price,
                    Id                = gco.Id,
                    BuyDate           = gco.CreateDate,
                    OrderNo           = ot.OrderNo,
                    PaymentMethodCode = pm.Code,
                    PaymentMethodName = pm.Name,
                    Status            = gco.Status,
                    StoreId           = store.Id,
                    StoreName         = store.Name,
                    TransNo           = ot.TransNo
                };

                totalCount = sql.Count();

                datas = sql.OrderByDescending(v => v.BuyDate).Skip(pagerRequest.SkipCount).Take(pagerRequest.PageSize).ToList();
            }

            var pager      = new PagerInfo <GiftCardSalesStatisticsReportDto>(pagerRequest, totalCount, datas);
            var execresult = new OkExectueResult <PagerInfo <GiftCardSalesStatisticsReportDto> >(pager);

            return(RetrunHttpActionResult4ExectueResult(execresult));
        }