private void ChangeSalesman(OrderDispatchItemSummary selected) { using (var c = NestedContainer) { var newSalesman = Using<IChangeSalesmanToDeliveryPopUp>(c).ShowPopUp(selected.OrderRoute); if( newSalesman!=null) { var item= OrderDispatchItemSummaryList.FirstOrDefault(s => s.OrderId == selected.OrderId); if (item != null) item.ChangeToSalesman = newSalesman; } } }
private void LoadOrderPendingDispatch() { OrderDispatchItemSummaryList.Clear(); using (var container = NestedContainer) { DateTime startDate = DateTime.Now.AddDays(-30); Guid? routeId = (SelectedRoute != null && SelectedRoute.Id != Guid.Empty) ? SelectedRoute.Id : (Guid?) null; Guid? salesmanId = (SelectedSalesman != null && SelectedSalesman.Id != Guid.Empty) ? SelectedSalesman.Id : (Guid?) null; var order = Using<IMainOrderRepository>(container).GetPendingDispatch(routeId,salesmanId); var costCentreRepository = Using<ICostCentreRepository>(container); var priceService = Using<IDiscountProWorkflow>(container); int sequenceNo = 1; foreach (var item in order) { var outlet = costCentreRepository.GetById(item.OutletId) as Outlet; var salesman = costCentreRepository.GetById(item.SalesmanId) as DistributorSalesman; var vitem = new OrderDispatchItemSummary { GrossAmount =item.GrossAmount.GetTotalGross(), IsChecked = false, NetAmount = item.NetAmount.GetTotalGross(), OrderId = item.OrderId, OrderReference = item.OrderReference, OutstandingAmount = item.OutstandingAmount, PaidAmount = item.PaidAmount, Required = item.Required, Salesman = item.Salesman, Status = item.Status, TotalVat = item.TotalVat, SequenceNo = sequenceNo }; if (outlet != null) vitem.OrderRoute = outlet.Route; if (salesman != null) vitem.ChangeToSalesman = salesman; OrderDispatchItemSummaryList.Add(vitem); sequenceNo++; } } }
private async Task ProcessDispatch(OrderDispatchItemSummary item) { await Task.Run(() => { using(var c = NestedContainer) { var mainOrderRepository = Using<IMainOrderRepository>(c); var mainOrderworkflow = Using<IOrderWorkflow>(c); MainOrder order = mainOrderRepository.GetById(item.OrderId); Config config = Using<IConfigService>(c).Load(); Guid costCentreApplicationid = config.CostCentreApplicationId; order.ChangeccId(costCentreApplicationid); if(item.ChangeToSalesman!=null) { var envelope = new CommandEnvelope(); envelope.DocumentId = order.Id; envelope.RecipientCostCentreId = item.ChangeToSalesman.Id; envelope.DocumentTypeId = (int) DocumentType.Order; envelope.EnvelopeGeneratedTick = DateTime.Now.Ticks; envelope.GeneratedByCostCentreId = config.CostCentreId; envelope.Id = Guid.NewGuid(); envelope.ParentDocumentId = order.Id; envelope.IsSystemEnvelope = true; var commandEnvelopeRouter = Using< IOutgoingCommandEnvelopeRouter >(c); order.ChangeSaleman(item.ChangeToSalesman); ReRouteDocumentCommand cmd = new ReRouteDocumentCommand(); cmd.CommandGeneratedByCostCentreApplicationId = config.CostCentreApplicationId; cmd.CommandId = Guid.NewGuid(); cmd.DocumentId = order.Id; cmd.ReciepientCostCentreId = item.ChangeToSalesman.Id; envelope.CommandsList.Add(new CommandEnvelopeItem(1, cmd)); commandEnvelopeRouter.RouteCommandEnvelope(envelope); } order.DispatchPendingLineItems(); mainOrderworkflow.Submit(order,config); } } ).ConfigureAwait(false); //t.Wait(); // return t; }