public bool RunOrderIsSelected(ListOrderViewModelItem selectedOrder) { if (selectedOrder == null) return false; ; if (!CheckRecipientIsActive(selectedOrder.SelectedRecipient)) { MessageBox.Show( "Recipient is deactivated. Please reassign the order to active recipient then dispatch.", "Distributr: Cannot Dispatch Order to " + selectedOrder.SelectedRecipient.Username, MessageBoxButton.OK); return false; } selectedOrder.Dispatch = true; return true; }
public void RunOrderIsUnSelected(ListOrderViewModelItem selectedOrder) { selectedOrder.Dispatch = false; }
void RunLoadOrderForDispatch() { using (var container = NestedContainer) { IOrderRepository _orderService = Using<IOrderRepository>(container); orderFailedToLoad = new List<Order>(); ShowProgressBar = true; List<Order> orders = null; PageTitle = "Dispatch Pending Orders"; if (SelectedRoute != null && SelectedRoute.Id != Guid.Empty && (SelectedSalesman == null || SelectedSalesman.Id == Guid.Empty)) { //load orders in that route try { orders = LoadPartiallyDispatchedOrders().Union( _orderService.GetByOrderTypeAndDocumentStatus(OrderType.OutletToDistributor, DocumentStatus.OrderPendingDispatch)). Where( n => ((Outlet) n.IssuedOnBehalfOf).Route.Id == SelectedRoute.Id).ToList(); //filter deactivated route n/or outlet orders = FilterForDeactivatedOutletsOrRoutesOrSalesmen(orders); orders.ForEach(GetOrderRouteSalesmen); OrderedSalesmen.Clear(); Salesmen.Where(n => n.Id != Guid.Empty).OrderBy(n => n.Username).ToList() .ForEach(n => { if (OrderedSalesmen.All(q => q.Id != n.Id)) OrderedSalesmen.Add(n); }); Salesmen.Where(n => n.Id != Guid.Empty).ToList().ForEach(n => Salesmen.Remove(n)); //OrderedSalesmen; OrderedSalesmen.ToList().ForEach(n => Salesmen.Add(n)); } catch { MessageBox.Show( "An error was encountered while filtering orders by route.\nOne or more of the orders may have route = null", "Distributr: Fetch Orders For Dispatch", MessageBoxButton.OK); } } else if (SelectedSalesman != null && SelectedSalesman.Id != Guid.Empty) { //LoadRoutesSalesmen(); orders = LoadPartiallyDispatchedOrders().Union( _orderService.GetByOrderTypeAndDocumentStatus(OrderType.OutletToDistributor, DocumentStatus.OrderPendingDispatch)).Where( n => n.DocumentIssuerUser.Id == SelectedSalesman.Id).ToList(); //filter deactivated route n/or outlet orders = FilterForDeactivatedOutletsOrRoutesOrSalesmen(orders); } else { orders = LoadPartiallyDispatchedOrders().Union( _orderService.GetByOrderTypeAndDocumentStatus(OrderType.OutletToDistributor, DocumentStatus.OrderPendingDispatch)).ToList(); //filter deactivated route n/or outlet orders = FilterForDeactivatedOutletsOrRoutesOrSalesmen(orders); orders.ForEach(GetOrderRouteSalesmen); OrderedSalesmen.Clear(); Salesmen.Where(n => n.Id != Guid.Empty).OrderBy(n => n.Username).ToList() .ForEach(n => { if (OrderedSalesmen.All(q => q.Id != n.Id)) OrderedSalesmen.Add(n); }); Salesmen.Where(n => n.Id != Guid.Empty).ToList().ForEach(n => Salesmen.Remove(n)); OrderedSalesmen.ToList().ForEach(n => Salesmen.Add(n)); } try { var orderItems = new List<ListOrderViewModelItem>(); int seqNo = 1; foreach (var n in orders.OrderByDescending(n => n.DocumentDateIssued)) { try { var li = new ListOrderViewModelItem { SequenceNo = seqNo, CreatedBy = n.DocumentIssuerUser == null ? "---" : n.DocumentIssuerUser.Username, DateRequired = n.DateRequired.ToString("dd-MMM-yyyy hh:mm tt"), DocumentRef = n.DocumentReference, TotalGross = n.TotalGross.ToString("#,###,###.00"), //TotalVat = n.TotalVat.ToString("G"), TotalNet = n.TotalNet.ToString("#,###,###.00"), TotalVat = n.TotalVat.ToString("#,###,###.00"), DocIssuerInfo = GetDocIssuerInfo(n), OrderId = n.Id, Status = n.Status.ToString(), Recipients = Salesmen, SelectedRecipient = Salesmen.First(s => s.Id == n.DocumentIssuerUser.Id), HasBackOrder = HasUnprocessedBackOrder(n), chkDispatchContent = n.Status == DocumentStatus.OrderDispatchedToPhone ? "*" : "" }; orderItems.Add(li); seqNo += 1; } catch { orderFailedToLoad.Add(n); } } Orders.Clear(); //orderItems.ToList().ForEach(f => Orders.Add(f)); foreach (var item in orderItems) { Orders.Add(item); } } catch { MessageBox.Show("An error was encountered while loading orders for dispatch to grid.", "Distributr: Fetch Orders For Dispatch", MessageBoxButton.OK); } ShowProgressBar = false; } }