public ActionResult DetailOpenOrder(DetailOpenOrderModelFilter filter = null, int pageNumber = 1) { int totalRecords = 0; var model = _eventReportingService.GetDetailOpenOrderModel(pageNumber, _pageSize, filter, out totalRecords); if (model == null) { model = new DetailOpenOrderListModel(); } model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.FromDate, filter.ToDate, filter.IsRetailEvent, filter.IsCorporateEvent, filter.IsPublicEvent, filter.IsPrivateEvent }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }
public DetailOpenOrderListModel Create(IEnumerable <Event> events, IEnumerable <Host> hosts, IEnumerable <Pod> pods, IEnumerable <OrderedPair <long, int> > bookedSlots, IEnumerable <OrderedPair <long, int> > unservicedAppts, IEnumerable <OrderedPair <long, int> > noShowAppts, IEnumerable <OrderedPair <long, int> > cancelledAppts, IEnumerable <OrderedPair <long, decimal> > eventIdOpenOrderTotalPairs, IEnumerable <OrderedPair <long, decimal> > eventIdTotalOutstandingRevenuePairs, IEnumerable <OrderedPair <long, decimal> > eventIdNoShowOutstandingRevenuePairs, IEnumerable <OrderedPair <long, decimal> > eventIdCancelledOutstandingRevenuePairs) { var model = new DetailOpenOrderListModel(); var detailOpenOrdersModels = new List <DetailOpenOrdersModel>(); events.ToList().ForEach(e => { var host = hosts.Where(h => h.Id == e.HostId).FirstOrDefault(); var eventPods = pods.Where(p => e.PodIds.Contains(p.Id)).ToList(); var slotCount = bookedSlots.Where(bs => bs.FirstValue == e.Id).FirstOrDefault().SecondValue; var unservicedAppt = unservicedAppts.Where(ua => ua.FirstValue == e.Id).Select(ua => ua.SecondValue).SingleOrDefault(); var noShowAppt = noShowAppts.Where(ns => ns.FirstValue == e.Id).Select(ns => ns.SecondValue).SingleOrDefault(); var cencelledAppt = cancelledAppts.Where(ca => ca.FirstValue == e.Id).Select(ca => ca.SecondValue).SingleOrDefault(); var orderAmount = eventIdOpenOrderTotalPairs.Where(eo => eo.FirstValue == e.Id).Select(eo => eo.SecondValue).SingleOrDefault(); var totalOutstandingRevenue = eventIdTotalOutstandingRevenuePairs.Where(or => or.FirstValue == e.Id).Select(or => or.SecondValue).SingleOrDefault(); var noShowOutstandingRevenue = eventIdNoShowOutstandingRevenuePairs.Where(or => or.FirstValue == e.Id).Select(or => or.SecondValue).SingleOrDefault(); var cancelledOutstandingRevenue = eventIdCancelledOutstandingRevenuePairs.Where(or => or.FirstValue == e.Id).Select(or => or.SecondValue).SingleOrDefault(); detailOpenOrdersModels.Add(new DetailOpenOrdersModel() { EventDate = e.EventDate, Location = host.OrganizationName + " - " + host.Address.City + ", " + host.Address.State, Pod = string.Join(", ", eventPods.Select( ep => ep.Name)), OpenOrderTotal = orderAmount, OutstandingUnservicedRevenue = totalOutstandingRevenue - cancelledOutstandingRevenue, OutstandingNoShowRevenue = noShowOutstandingRevenue, OutstandingCancelledRevenue = cancelledOutstandingRevenue, OutstandingTotalRevenue = totalOutstandingRevenue, UnPaid = orderAmount - totalOutstandingRevenue, ScheduledAppointments = slotCount, UnServicedAppointments = unservicedAppt, NoShowAppointments = noShowAppt, CancelledAppointments = cencelledAppt, EventId = e.Id }); }); model.Collection = detailOpenOrdersModels; return(model); }