public BindingList <LabelBoxItem> GetBoxesCustomList(int orderId) { var coldWeight = _coldWeightEntryRepository.GetByOrderId(orderId); if (coldWeight == null) { return(new BindingList <LabelBoxItem>()); } var list = new List <LabelBoxItem>(); var animalOrderDetails = coldWeight.ColdWeightEntryDetails.SelectMany(cw => cw.AnimalOrderDetails).ToList(); foreach (var detail in coldWeight.ColdWeightEntryDetails) { var sides = _coldWeightEntryDetailRepository.GetSideWeigths(detail.Id); foreach (var side in sides) { if (!side.Value.HasValue) { continue; } var orderDetailsForSide = animalOrderDetails.Where(a => a.ColdWeightDetailId == detail.Id).Select(a => a.OrderDetail) .ToList().FindAll(x => x.SideTypeId == side.Key).ToList(); if (!orderDetailsForSide.Any()) { continue; } var cl = orderDetailsForSide.First().CustomerLocation; var count = orderDetailsForSide.SelectMany(s => s.Label) .Where(s => s.TypeId == OmsLabelType.Box) .GroupBy(l => l.SerialNumber) .Count(); list.Add(new LabelBoxItem { QualityGrade = detail.QualityGrade, AnimalLabel = detail.AnimalLabel, OrderId = orderId, Name = string.Format("Back Tag '{0}' {2} '{1}'", detail.AnimalNumber, cl.Name, side.Key), CustomerLocationId = cl.Id, ColdWeightDetailId = detail.Id, CompletedCount = count, Side = side.Key }); } } return(new BindingList <LabelBoxItem>(list)); }
private void CustomCustomerEditBox(object sender, EventArgs e) { var coldWeightDetail = _coldWeightEntryRepository.GetByOrderId(_viewModel.SelectedCustomerLocation.OrderId) .ColdWeightEntryDetails.Single(c => c.Id == _viewModel.SelectedCustomerLocation.ColdWeightDetailId); IList <LabelEditItem> labelsToEdit = new List <LabelEditItem>(); var sides = _coldWeightEntryDetailRepository.GetSideWeigths(coldWeightDetail.Id); foreach (var side in sides) { if (!side.Value.HasValue) { continue; } var orderDetailsForSide = coldWeightDetail.AnimalOrderDetails.Where(a => a.ColdWeightDetailId == coldWeightDetail.Id) .Select(a => a.OrderDetail) .ToList().FindAll(x => x.SideTypeId == side.Key).ToList(); if (!orderDetailsForSide.Any()) { continue; } var items = orderDetailsForSide.SelectMany(s => s.Label) .Where(s => s.TypeId == OmsLabelType.Box); foreach (var label in items) { labelsToEdit.Add(new LabelEditItem() { LabelId = label.Id, LabelType = label.TypeId, LocationName = label.OrderDetail.CustomerLocation.Name, PoundWeight = LabelCreateService.GetGrossPoundWeight(label.PoundWeight, label.TypeId, label.OrderDetail), PrintedDate = label.CreatedDate, ProductName = ProductService.GetFormattedProductName(label.OrderDetail.Product) }); } } var selectedOrderId = (int)ComboOrder.SelectedValue; var form = DIService.Resolve <EditLabelsWindow>(new ConstructorArgument("orderId", selectedOrderId, false), new ConstructorArgument("labels", labelsToEdit, false)); form.Owner = this; form.ShowDialog(); Refresh(); }
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)); }