Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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(); };
        }
Beispiel #4
0
        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 контрагента не найдено.");
            }
        }