/// <summary> /// Order 筛选 /// </summary> /// <param name="filter"></param> /// <returns></returns> private static Expression <Func <Order, bool> > OrderFilter(RmaQueryRequest filter) { var query = PredicateBuilder.True <Order>(); if (filter != null) { if (filter.OrderProductType != null) { query = PredicateBuilder.And(query, v => v.OrderProductType == filter.OrderProductType); } //购买时间 if (filter.BuyStartDate != null) { query = PredicateBuilder.And(query, v => v.CreateDate >= filter.BuyStartDate.Value); } if (filter.BuyEndDate != null) { query = PredicateBuilder.And(query, v => v.CreateDate < filter.BuyEndDate.Value); } if (!String.IsNullOrEmpty(filter.PayType)) { query = PredicateBuilder.And(query, v => v.PaymentMethodCode == filter.PayType); } } return(query); }
public PagerInfo <RMADto> GetPagedList(RmaQueryRequest request) { if (request == null) { throw new ArgumentNullException("request"); } return(_rmaRepository.GetPagedList(request)); }
private IHttpActionResult GetPagedList4RmaPagedInfo(RmaQueryRequest request, UserProfile userProfile) { IHttpActionResult httpActionResult; var result = CheckDataRoleAndArrangeParams(request, userProfile, out httpActionResult); if (!result) { return(httpActionResult); } var dto = _rmaService.GetPagedList(request); return(RetrunHttpActionResult(dto)); }
public IHttpActionResult GetList([FromUri] RmaQueryRequest request, [UserProfile] UserProfile userProfile) { IHttpActionResult httpActionResult; var result = CheckDataRoleAndArrangeParams(request, userProfile, out httpActionResult); if (!result) { return(httpActionResult); } var dto = _rmaService.GetPagedList(request); return(RetrunHttpActionResult(dto)); }
/// <summary> /// 销售单 筛选 /// </summary> /// <param name="filter"></param> /// <returns></returns> private static Expression <Func <OPC_Sale, bool> > SalesOrderFilter(RmaQueryRequest filter) { var query = PredicateBuilder.True <OPC_Sale>(); if (filter != null) { if (!String.IsNullOrEmpty(filter.SalesOrderNo)) { query = PredicateBuilder.And(query, v => v.SaleOrderNo == filter.SalesOrderNo); } } return(query); }
private IHttpActionResult GetPagedList4RmaPagedResult(RmaQueryRequest request, UserProfile userProfile) { IHttpActionResult httpActionResult; var result = CheckDataRoleAndArrangeParams(request, userProfile, out httpActionResult); if (!result) { return(httpActionResult); } var dto = _rmaService.GetPagedList(request); var restResult = new PageResult <RMADto>(dto.Datas, dto.TotalCount); return(RetrunHttpActionResult(restResult)); }
/// <summary> /// RMA 筛选 /// </summary> /// <param name="filter"></param> /// <returns></returns> private static Expression <Func <OPC_RMA, bool> > RMAFilter(RmaQueryRequest filter) { var query = PredicateBuilder.True <OPC_RMA>(); if (filter != null) { if (filter.StoreId != null) { query = PredicateBuilder.And(query, v => v.StoreId == filter.StoreId.Value); } if (filter.DataRoleStores != null && filter.StoreId == null) { query = PredicateBuilder.And(query, v => filter.DataRoleStores.Contains(v.StoreId)); } if (filter.Status != null) { query = PredicateBuilder.And(query, v => v.Status == filter.Status.Value); } if (filter.Statuses != null && filter.Statuses.Count > 0) { query = PredicateBuilder.And(query, v => filter.Statuses.Contains(v.Status)); } if (filter.ReturnGoodsStatus != null) { query = PredicateBuilder.And(query, v => v.RMAStatus == filter.ReturnGoodsStatus.AsId()); } //根据业务 Orderno 与以下互斥 if (!String.IsNullOrWhiteSpace(filter.OrderNo)) { query = PredicateBuilder.And(query, v => v.OrderNo == filter.OrderNo); return(query); } if (!String.IsNullOrEmpty(filter.Telephone)) { query = PredicateBuilder.And(query, v => v.ContactPhone == filter.Telephone); return(query); } if (!String.IsNullOrEmpty(filter.RMANo)) { query = PredicateBuilder.And(query, v => v.RMANo == filter.RMANo); return(query); } if (filter.StartDate != null) { query = PredicateBuilder.And(query, v => v.CreatedDate >= filter.StartDate.Value); } if (filter.EndDate != null) { query = PredicateBuilder.And(query, v => v.CreatedDate < filter.EndDate.Value); } //退货时间 if (filter.ReturnStartDate != null) { query = PredicateBuilder.And(query, v => v.BackDate >= filter.ReturnStartDate.Value); } if (filter.ReturnEndDate != null) { query = PredicateBuilder.And(query, v => v.BackDate < filter.ReturnEndDate.Value); } //收货时间 if (filter.ReceiptStartDate != null) { query = PredicateBuilder.And(query, v => v.BackDate >= filter.ReceiptStartDate.Value); } if (filter.ReceiptEndDate != null) { query = PredicateBuilder.And(query, v => v.BackDate < filter.ReceiptEndDate.Value); } } return(query); }
///// <summary> ///// dynamic to dto ///// </summary> ///// <param name="t"></param> ///// <returns></returns> //private static RMADto ConvertRMADto(dynamic t) //{ // if (t == null) // { // throw new ArgumentNullException("t"); // } // var o = new RMADto // { // Id = t.rma.Id, // OrderNo = t.rma.OrderNo, // SaleOrderNo = t.rma.SaleOrderNo, // CashDate = t.sale.CashDate, // CashNum = t.sale.CashNum, // Count = t.rma.Count, // CreatedDate = t.rma.CreatedDate, // RMAAmount = t.rma.RMAAmount, // RMANo = t.rma.RMANo, // BackDate = t.rma.BackDate ?? DateTime.MinValue.AddYears(1), // CompensationFee = t.rma.CompensationFee, // RecoverableSumMoney = t.rma.RecoverableSumMoney, // RMAReason = t.rma.Reason, // RMAType = t.rma.RMAType, // RefundAmount = t.rma.RefundAmount, // RmaCashDate = t.rma.RmaCashDate, // RmaCashNum = t.rma.RmaCashNum, // PayType = t.order.PaymentMethodName, // BuyDate = t.order.CreateDate, // PaymentMethodName = t.order.PaymentMethodName, // RmaCashStatusName = ((EnumRMACashStatus)(t.rma.RMACashStatus ?? 0)).GetDescription(), // Status = t.rma.Status, // StatusName = ((EnumRMAStatus)t.rma.Status).GetDescription(), // SourceDesc = t.rma.SaleRMASource, // RmaStatusName = ((EnumReturnGoodsStatus)(t.rma.RMAStatus ?? 0)).GetDescription(), // StoreName = t.store.Name, // SectionCode = t.section.SectionCode, // SectionName = t.section.Name, // StoreFee = t.rma.StoreFee, // CustomFee = t.rma.CustomFee, // ServiceAgreeDate = t.rma.CreatedDate, // OrderProductType = t.order.OrderProductType ?? 1 // }; // return o; //} #endregion /// <summary> /// rma pagelist /// </summary> /// <param name="request"></param> /// <returns></returns> public PagerInfo <RMADto> GetPagedList(RmaQueryRequest request) { var rmafilter = RMAFilter(request); var orderfilter = OrderFilter(request); var salesOrderFilter = SalesOrderFilter(request); using (var db = new YintaiHZhouContext()) { var rmas = db.OPC_RMAs; var orders = db.Orders; var sales = db.OPC_Sales; var stores = db.Stores; var sections = db.Sections; var ordertrans = db.OrderTransactions; var paymentMethods = db.PaymentMethods; var otps = from tran in ordertrans join payment in paymentMethods on tran.PaymentCode equals payment.Code select new { tran, payment }; //var storesections = sections.Join(stores, s => s.StoreId, // x => x.Id, (section, store) => new { section, store }); var q = from rma in rmas.AsExpandable().Where(rmafilter) join order in orders.AsExpandable().Where(orderfilter) on rma.OrderNo equals order.OrderNo join sale in sales.AsExpandable().Where(salesOrderFilter) on rma.SaleOrderNo equals sale.SaleOrderNo //join ss in storesections on rma.StoreId equals ss.store.Id join section in sections on rma.SectionId equals section.Id join store in stores on rma.StoreId equals store.Id let otpss = (from otp in otps where rma.OrderNo == otp.tran.OrderNo select otp ) //where // rma.StoreId == ss.store.Id //select new //{ // rma, // order, // sale, // store = ss.store, // section = ss.section, // trans //}; select new RMADto { Id = rma.Id, OrderNo = rma.OrderNo, SaleOrderNo = rma.SaleOrderNo, CashDate = sale.CashDate, CashNum = sale.CashNum, Count = rma.Count, CreatedDate = rma.CreatedDate, RMAAmount = rma.RMAAmount, RMANo = rma.RMANo, BackDate = rma.BackDate, CompensationFee = rma.CompensationFee, RecoverableSumMoney = rma.RecoverableSumMoney, RMAReason = rma.Reason, RMAType = rma.RMAType, RefundAmount = rma.RefundAmount, RmaCashDate = rma.RmaCashDate, RmaCashNum = rma.RmaCashNum, BuyDate = order.CreateDate, // RmaCashStatusName = ((EnumRMACashStatus)(rma.RMACashStatus ?? 0)).GetDescription(), RmaCashStatus = rma.RMACashStatus ?? 0, Status = rma.Status, //StatusName = ((EnumRMAStatus)rma.Status).GetDescription(), SourceDesc = rma.SaleRMASource, //RmaStatusName = ((EnumReturnGoodsStatus)(rma.RMAStatus ?? 0)).GetDescription(), RmaStatus = rma.RMAStatus ?? 0, StoreName = store.Name, SectionCode = section.SectionCode, SectionName = section.Name, StoreFee = rma.StoreFee, CustomFee = rma.CustomFee, ServiceAgreeDate = rma.CreatedDate, RMACount = rma.Count ?? 0, OrderProductType = order.OrderProductType ?? 1, OrderTransactions = otpss.Select(s => new OrderTransactionDto { PaymentCode = s.payment.Code, PaymentName = s.payment.Name, TransNo = s.tran.TransNo, Amount = s.tran.Amount }) }; var total = q.Count(); var datas = q.OrderByDescending(v => v.Id).Skip(request.PagerRequest.SkipCount).Take(request.PagerRequest.PageSize).ToList(); return(new PagerInfo <RMADto>(request.PagerRequest, total, datas)); } }