void ExistingCounterparty_PageClosed(object sender, QS.Project.Journal.JournalSelectedNodesEventArgs e) { var counterpartyNode = e.SelectedNodes.First() as CounterpartyJournalNode; Counterparty client = _uow.GetById <Counterparty>(counterpartyNode.Id); if (!CounterpartyOrdersViewModels.Any(c => c.Client.Id == client.Id)) { if (_interactiveService.Question($"Добавить телефон к контрагенту {client.Name} ?", "Телефон контрагента")) { client.Phones.Add(ActiveCall.Phone); _uow.Save <Counterparty>(client); _uow.Commit(); } CounterpartyOrderViewModel model = new CounterpartyOrderViewModel( client, UnitOfWorkFactory.GetDefaultFactory, _tdiNavigation, _routedListRepository, MangoManager, _orderParametersProvider, _employeeJournalFactory, _counterpartyJournalFactory, _nomenclatureRepository, _parametersProvider, _deliveryRulesParametersProvider); CounterpartyOrdersViewModels.Add(model); currentCounterparty = client; MangoManager.AddCounterpartyToCall(client.Id); CounterpartyOrdersModelsUpdateEvent(); } }
private void OnNewCounterpartyPageClosed(object sender, PageClosedEventArgs e) { if (e.CloseSource == CloseSource.Save) { Counterparty client = ((sender as TdiTabPage).TdiTab as CounterpartyDlg).Counterparty; CounterpartyOrderViewModel model = new CounterpartyOrderViewModel( client, UnitOfWorkFactory.GetDefaultFactory, _tdiNavigation, _routedListRepository, MangoManager, _orderParametersProvider, _employeeJournalFactory, _counterpartyJournalFactory, _nomenclatureRepository, _parametersProvider, _deliveryRulesParametersProvider); CounterpartyOrdersViewModels.Add(model); currentCounterparty = client; MangoManager.AddCounterpartyToCall(client.Id); CounterpartyOrdersModelsUpdateEvent(); } (sender as IPage).PageClosed -= OnNewCounterpartyPageClosed; }
public void NewOrderCommand() { if (currentCounterparty.IsForRetail) { _interactiveService.ShowMessage(ImportanceLevel.Warning, "Заказ поступает от контрагента дистрибуции"); } var model = CounterpartyOrdersViewModels.Find(m => m.Client.Id == currentCounterparty.Id); IPage page = _tdiNavigation.OpenTdiTab <OrderDlg, Counterparty>(null, currentCounterparty); page.PageClosed += (sender, e) => { model.RefreshOrders(); }; }
public CounterpartyTalkViewModel( INavigationManager navigation, ITdiCompatibilityNavigation tdinavigation, IUnitOfWorkFactory unitOfWorkFactory, IRouteListRepository routedListRepository, IInteractiveService interactiveService, IOrderParametersProvider orderParametersProvider, MangoManager manager, IEmployeeJournalFactory employeeJournalFactory, ICounterpartyJournalFactory counterpartyJournalFactory, INomenclatureRepository nomenclatureRepository, IOrderRepository orderRepository, IParametersProvider parametersProvider, IDeliveryRulesParametersProvider deliveryRulesParametersProvider, IDeliveryPointJournalFactory deliveryPointJournalFactory) : base(navigation, manager) { NavigationManager = navigation ?? throw new ArgumentNullException(nameof(navigation)); _tdiNavigation = tdinavigation ?? throw new ArgumentNullException(nameof(navigation)); _routedListRepository = routedListRepository; _interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService)); _orderParametersProvider = orderParametersProvider ?? throw new ArgumentNullException(nameof(orderParametersProvider)); _employeeJournalFactory = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory)); _counterpartyJournalFactory = counterpartyJournalFactory ?? throw new ArgumentNullException(nameof(counterpartyJournalFactory)); _nomenclatureRepository = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository)); _orderRepository = orderRepository ?? throw new ArgumentNullException(nameof(orderRepository)); _parametersProvider = parametersProvider ?? throw new ArgumentNullException(nameof(parametersProvider)); _deliveryRulesParametersProvider = deliveryRulesParametersProvider ?? throw new ArgumentNullException(nameof(deliveryRulesParametersProvider)); _uow = unitOfWorkFactory.CreateWithoutRoot(); _deliveryPointJournalFactory = deliveryPointJournalFactory ?? throw new ArgumentNullException(nameof(deliveryPointJournalFactory)); if (ActiveCall.CounterpartyIds.Any()) { var clients = _uow.GetById <Counterparty>(ActiveCall.CounterpartyIds); foreach (Counterparty client in clients) { CounterpartyOrderViewModel model = new CounterpartyOrderViewModel( client, unitOfWorkFactory, tdinavigation, routedListRepository, MangoManager, _orderParametersProvider, _employeeJournalFactory, _counterpartyJournalFactory, _nomenclatureRepository, _parametersProvider, _deliveryRulesParametersProvider); CounterpartyOrdersViewModels.Add(model); } currentCounterparty = CounterpartyOrdersViewModels.FirstOrDefault().Client; } else { throw new InvalidProgramException("Открыт диалог разговора с имеющимся контрагентом, но ни одного id контрагента не найдено."); } }