public virtual ActionResult Index() { LogI("Index"); var model = new OrderReportSearchFilterViewModel() { OrderStatus = String.Join(";", OrderStatusEnumEx.AllUnshippedWithShipped) }; return(View(model)); }
public static MemoryStream ExportToExcel(ILogService log, ITime time, IUnitOfWork db, OrderReportSearchFilterViewModel filter) { var templateName = AppSettings.OrderReportTemplate; var gridItems = GetItems(db, filter); return(ExcelHelper.ExportIntoFile(HttpContext.Current.Server.MapPath(templateName), "Template", gridItems.Items, null, 1)); }
public virtual ActionResult GetAll(GridRequest request, long?dropShipperId, string orderString, string orderStatus, int?market, DateTime?fromDate, DateTime?toDate) { LogI("GetAll, fromDate=" + fromDate + ", toDate=" + toDate + ", orderString=" + orderString + ", dropShipperId=" + dropShipperId + ", orderStatus=" + orderStatus + ", market=" + market); var pageSize = request.ItemsPerPage; var searchFilter = new OrderReportSearchFilterViewModel() { FromDate = fromDate, ToDate = toDate, DropShipperId = dropShipperId, Market = market, OrderString = orderString, OrderStatus = orderStatus, StartIndex = (request.Page - 1) * pageSize, LimitCount = pageSize, SortField = request.SortField, SortMode = request.SortMode == "asc" ? 0 : 1, }; var gridResult = OrderReportViewModel.GetAll(Db, searchFilter); //var data = new GridResponse<StyleViewModel>(items, items.Count, Time.GetAppNowTime()); return(Json(gridResult, JsonRequestBehavior.AllowGet)); }
public virtual ActionResult ExportToExcel(long?dropShipperId, string orderString, string orderStatus, int?market, DateTime?fromDate, DateTime?toDate) { LogI("ExportToExcel, fromDate=" + fromDate + ", toDate=" + toDate + ", orderString=" + orderString + ", dropShipperId=" + dropShipperId + ", orderStatus=" + orderStatus + ", market=" + market); var searchFilter = new OrderReportSearchFilterViewModel() { FromDate = fromDate, ToDate = toDate, DropShipperId = dropShipperId, Market = market, OrderString = orderString, OrderStatus = orderStatus, StartIndex = 0, LimitCount = 100000, }; string filename = "OrderReport_" + Time.GetAppNowTime().ToString("ddMMyyyyHHmmss") + ".xls"; var output = OrderReportViewModel.ExportToExcel(LogService, Time, Db, searchFilter); return(File(output.ToArray(), //The binary data of the XLS file "application/vnd.ms-excel", //MIME type of Excel files filename)); //Suggested file name in the "Save as" dialog which will be displayed to the end user }
public static GridResponse <OrderReportViewModel> GetAll(IUnitOfWork db, OrderReportSearchFilterViewModel filter) { return(GetItems(db, filter)); }
public static GridResponse <OrderReportViewModel> GetItems(IUnitOfWork db, OrderReportSearchFilterViewModel filter) { if (filter.LimitCount == 0) { filter.LimitCount = 50; } var query = db.OrderReports.GetAllAsDto(); if (filter.FromDate.HasValue) { query = query.Where(i => i.OrderDate >= filter.FromDate.Value); } if (filter.ToDate.HasValue) { query = query.Where(i => i.OrderDate <= filter.ToDate.Value); } if (filter.DropShipperId.HasValue) { query = query.Where(i => i.DropShipperId == filter.DropShipperId.Value); } if (filter.Market.HasValue) { query = query.Where(i => i.Market == filter.Market.Value); } if (!String.IsNullOrEmpty(filter.OrderString)) { var digitalString = StringHelper.GetAllDigitSequences(filter.OrderString); query = query.Where(i => (i.Market != (int)MarketType.eBay && (i.CustomerOrderId.Contains(filter.OrderString) || i.CustomerOrderId.Contains(digitalString))) || (i.Market == (int)MarketType.eBay && (i.AmazonIdentifier.Contains(filter.OrderString) || i.AmazonIdentifier.Contains(digitalString))) ); //i.CustomerOrderId.Contains(filter.OrderString) || } if (!String.IsNullOrEmpty(filter.OrderStatus)) { var orderStatuses = new List <string>(); if (filter.OrderStatus == OrderStatusEnumEx.Canceled) { orderStatuses = new List <string>() { OrderStatusEnumEx.Canceled }; query = query.Where(i => orderStatuses.Contains(i.OrderStatus) || ((i.ItemRefunded ?? 0) + (i.ShippingRefunded ?? 0) == (i.ItemPaid ?? 0) + (i.ShippingPaid ?? 0))); } if (filter.OrderStatus == OrderStatusEnumEx.Refunded) { orderStatuses = OrderStatusEnumEx.AllUnshippedWithShipped.ToList(); query = query.Where(i => //orderStatuses.Contains(i.OrderStatus) // && ((i.ItemRefunded ?? 0) + (i.ShippingRefunded ?? 0)) > 0) || (i.OrderStatus == "Refund")); } if (filter.OrderStatus == OrderStatusEnumEx.Shipped) { orderStatuses = new List <string>() { OrderStatusEnumEx.Shipped }; query = query.Where(i => orderStatuses.Contains(i.OrderStatus)); } if (filter.OrderStatus == OrderStatusEnumEx.Unshipped) { orderStatuses = new List <string>() { OrderStatusEnumEx.Unshipped }; query = query.Where(i => orderStatuses.Contains(i.OrderStatus)); } if (filter.OrderStatus == String.Join(";", OrderStatusEnumEx.AllUnshippedWithShipped)) { orderStatuses = OrderStatusEnumEx.AllUnshippedWithShipped.ToList(); orderStatuses.Add("Refund"); query = query.Where(i => orderStatuses.Contains(i.OrderStatus)); } } var totalCount = query.Count(); if (!String.IsNullOrEmpty(filter.SortField)) { switch (filter.SortField) { case "DropShipperName": if (filter.SortMode == 0) { query = query.OrderBy(s => s.DropShipperName).ThenByDescending(s => s.OrderDate); } else { query = query.OrderByDescending(s => s.DropShipperName).ThenByDescending(s => s.OrderDate); } break; case "OrderDate": if (filter.SortMode == 0) { query = query.OrderBy(s => s.OrderDate); } else { query = query.OrderByDescending(s => s.OrderDate); } break; case "ShippingState": if (filter.SortMode == 0) { query = query.OrderBy(s => s.ShippingState).ThenByDescending(s => s.OrderDate); } else { query = query.OrderByDescending(s => s.ShippingState).ThenByDescending(s => s.OrderDate); } break; default: query = query.OrderByDescending(s => s.OrderDate); break; } } else { query = query.OrderByDescending(s => s.OrderDate); } var itemList = query .Skip(filter.StartIndex) .Take(filter.LimitCount) .ToList() .Select(i => new OrderReportViewModel(i)) .ToList(); return(new GridResponse <OrderReportViewModel>(itemList, totalCount)); }