public OrderReportViewModel Get(int orderId) { var order = _orderRepository.Get(orderId); var viewModel = new OrderReportViewModel { OrderId = orderId, CustomerId = order.CustomerId, CustomerName = order.Customer.Name, StatusName = order.Status.Name, RequestedProcessDate = order.RequestedProcessDate, ExpectedHeadNumber = order.ExpectedHeadNumber }; return(viewModel); }
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 PartialViewResult GenerateReport(OrderReportViewModel viewModel) { string reportType = ReportService.GetReportType(viewModel.ReportType); if (reportType == null) { ModelState.AddModelError("ReportType", "Report Type is invalid"); } if (!viewModel.ReportIds.Any()) { ModelState.AddModelError("ReportIds", "Report type is required"); } Dictionary <string, string> files = null; if (ModelState.IsValid) { var orderId = viewModel.OrderId; var reportsFolder = string.Format("~/Documents/Reports/{0}/", orderId); var order = _orderRepository.Get(orderId); bool isCustom = order.Customer.CustomerTypeId == OmsCustomerType.Custom; List <CustomerLocation> locations = null; List <AnimalOrderDetail> animalOrderDetails = null; List <ColdWeightEntryDetail> coldWeightDetails = null; if (isCustom) { var coldWeightEntry = _coldWeightEntryRepository.GetByOrderId(orderId); if (coldWeightEntry == null) { ModelState.AddModelError("ColdWeight", "No AnimalNumbers"); OrderReportViewModel reportViewModel = _orderReportService.Get(viewModel.OrderId); return(PartialView("_Report", reportViewModel)); } coldWeightDetails = coldWeightEntry.ColdWeightEntryDetails.ToList(); // All records from dbo.AnimalOrderDetail by Order animalOrderDetails = coldWeightDetails.SelectMany(cw => cw.AnimalOrderDetails).ToList(); } foreach (var report in viewModel.ReportIds) { var reportName = ReportService.GetReportName(report); DeleteOldReports(reportsFolder, reportName + "*." + reportType); if (isCustom) { foreach (var detail in coldWeightDetails) { var sides = _coldWeightEntryDetailRepository.GetSideWeigths(detail.Id); foreach (var side in sides) { if (!side.Value.HasValue) { continue; } var orderDetailsForSides = animalOrderDetails.Where(a => a.ColdWeightDetailId == detail.Id) .Select(a => a.OrderDetail).ToList() .FindAll(x => x.SideTypeId == side.Key); var path = string.Format("{0}{1}BackTag{2}{3}{4}.{5}", reportsFolder, reportName, detail.AnimalNumber, side.Key, side.Value, reportType); var filename = GetFilenameSafe(path); switch (reportName) { case OrderReportViewModel.ReportTypes.ProductionManifest: ReportService.GenerateProductionManifest(order, orderDetailsForSides, filename, reportType, (UnitsType)viewModel.UnitsType, viewModel.SuppressWeights); break; case OrderReportViewModel.ReportTypes.ShippingManifest: var location = _customerLocationRepository.Get(side.Value.Value); ReportService.GenerateShippingManifest(order, orderDetailsForSides, filename, location, reportType, (UnitsType)viewModel.UnitsType, viewModel.SuppressWeights); break; case OrderReportViewModel.ReportTypes.ProductionDetail: { var currentLocation = _customerLocationRepository.Get(side.Value.Value); var labels = GetLabelsByOrderDetailsId(orderDetailsForSides); ReportService.GenerateProductionManifestDetail(order, labels, filename, currentLocation, reportType, (UnitsType)viewModel.UnitsType, viewModel.SuppressWeights); break; } case OrderReportViewModel.ReportTypes.YieldReport: { var coldWeightsDeatails = _coldWeightEntryService.GetItems(orderId).ToList(); var labels = GetLabelsByOrderDetailsId(orderDetailsForSides); ReportService.GenerateYield(order, labels, filename, reportType, coldWeightsDeatails, (UnitsType)viewModel.UnitsType); break; } } } } } else { if (reportName == OrderReportViewModel.ReportTypes.ProductionManifest) { var path = string.Format("{0}{1}.{2}", reportsFolder, reportName, reportType); var filename = GetFilenameSafe(path); var orderDetails = _orderDetailRepository.FindAll(x => x.OrderId == order.Id).ToList(); ReportService.GenerateProductionManifest(order, orderDetails, filename, reportType, (UnitsType)viewModel.UnitsType, viewModel.SuppressWeights); } if (reportName == OrderReportViewModel.ReportTypes.ShippingManifest) { locations = GetLocations(order).ToList(); foreach (var currentLocation in locations) { var location = currentLocation; var path = string.Format("{0}{1}_{2}.{3}", reportsFolder, reportName, location.Id, reportType); var filename = GetFilenameSafe(path); var orderDetails = _orderDetailRepository .FindAll(x => x.OrderId == orderId && x.CustomerLocationId == location.Id) .ToArray(); ReportService.GenerateShippingManifest(order, orderDetails, filename, location, reportType, (UnitsType)viewModel.UnitsType, viewModel.SuppressWeights); } } if (reportName == OrderReportViewModel.ReportTypes.ProductionDetail) { locations = locations ?? GetLocations(order).ToList(); foreach (var currentLocation in locations) { var location = currentLocation; var path = string.Format("{0}{1}{2}.{3}", reportsFolder, reportName, location.Id, reportType); var filename = GetFilenameSafe(path); var orderDetailsForSides = _orderDetailRepository .FindAll(x => x.OrderId == orderId && x.CustomerLocationId == location.Id).ToList(); var labels = GetLabelsByOrderDetailsId(orderDetailsForSides); ReportService.GenerateProductionManifestDetail(order, labels, filename, currentLocation, reportType, (UnitsType)viewModel.UnitsType, viewModel.SuppressWeights); } } if (reportName == OrderReportViewModel.ReportTypes.YieldReport) { var path = string.Format("{0}{1}.{2}", reportsFolder, reportName, reportType); var filename = GetFilenameSafe(path); var coldWeightsDeatails = _coldWeightEntryService.GetItems(order.Id).ToList(); var orderDetails = _orderDetailRepository.FindAll(x => x.OrderId == order.Id).ToList(); var labels = GetLabelsByOrderDetailsId(orderDetails); ReportService.GenerateYield(order, labels, filename, reportType, coldWeightsDeatails); } } } files = Directory.GetFiles(GetFilenameSafe(reportsFolder), "*." + reportType, SearchOption.TopDirectoryOnly) .Select(Path.GetFileName) .ToDictionary(x => x, x => string.Format("{0}{1}", reportsFolder, x)); } FillLookups(); OrderReportViewModel model = _orderReportService.Get(viewModel.OrderId); model.ReportIds = viewModel.ReportIds; model.ReportFiles = files; return(PartialView("_Report", model)); }