Exemple #1
0
        protected void OnBtnChooseOrderClicked(object sender, EventArgs e)
        {
            var filter = new OrderJournalFilterViewModel(new CounterpartyJournalFactory(), new DeliveryPointJournalFactory());

            filter.SetAndRefilterAtOnce(
                x => x.RestrictCounterparty = _oldOrder.Client,
                x => x.HideStatuses         = new Enum[] { OrderStatus.WaitForPayment }
                );
            var orderFactory = new OrderSelectorFactory(filter);
            var orderJournal = orderFactory.CreateOrderJournalViewModel();

            orderJournal.SelectionMode = JournalSelectionMode.Single;

            MyTab.TabParent.AddTab(orderJournal, MyTab, false);

            orderJournal.OnEntitySelectedResult += (s, ea) =>
            {
                var selectedId = ea.SelectedNodes.FirstOrDefault()?.Id ?? 0;
                if (selectedId == 0)
                {
                    return;
                }
                if (_oldOrder.Id == selectedId)
                {
                    MessageDialogHelper.RunErrorDialog("Перенесённый заказ не может совпадать с недовезённым!");
                    OnBtnChooseOrderClicked(sender, ea);
                    return;
                }
                _newOrder        = _undelivery.NewOrder = UoW.GetById <Order>(selectedId);
                _newOrder.Author = this._oldOrder.Author;
                SetLabelsAcordingToNewOrder();
                _undelivery.NewDeliverySchedule = _newOrder.DeliverySchedule;
                if ((_oldOrder.PaymentType == Domain.Client.PaymentType.ByCard) &&
                    (_oldOrder.OrderSum == _newOrder.OrderSum) &&
                    MessageDialogHelper.RunQuestionDialog("Перенести на выбранный заказ Оплату по Карте?"))
                {
                    _newOrder.PaymentType       = _oldOrder.PaymentType;
                    _newOrder.OnlineOrder       = _oldOrder.OnlineOrder;
                    _newOrder.PaymentByCardFrom = _oldOrder.PaymentByCardFrom;
                }
            };
        }