Example #1
0
        public IEntityAutocompleteSelectorFactory CreateOrderAutocompleteSelectorFactory()
        {
            ISubdivisionJournalFactory subdivisionJournalFactory = new SubdivisionJournalFactory();

            var counterpartyJournalFactory  = new CounterpartyJournalFactory();
            var deliveryPointJournalFactory = new DeliveryPointJournalFactory();
            var nomenclatureRepository      = new NomenclatureRepository(new NomenclatureParametersProvider(new ParametersProvider()));
            var userRepository = new UserRepository();

            var orderJournalFilterViewModel = new OrderJournalFilterViewModel(counterpartyJournalFactory, deliveryPointJournalFactory);

            return(new EntityAutocompleteSelectorFactory <OrderJournalViewModel>(typeof(Order),
                                                                                 () => new OrderJournalViewModel(
                                                                                     orderJournalFilterViewModel,
                                                                                     UnitOfWorkFactory.GetDefaultFactory,
                                                                                     ServicesConfig.CommonServices,
                                                                                     VodovozGtkServicesConfig.EmployeeService,
                                                                                     nomenclatureRepository,
                                                                                     userRepository,
                                                                                     new OrderSelectorFactory(),
                                                                                     new EmployeeJournalFactory(),
                                                                                     counterpartyJournalFactory,
                                                                                     new DeliveryPointJournalFactory(),
                                                                                     subdivisionJournalFactory,
                                                                                     new GtkTabsOpener(),
                                                                                     new UndeliveredOrdersJournalOpener(),
                                                                                     new NomenclatureSelectorFactory(),
                                                                                     new UndeliveredOrdersRepository()
                                                                                     )
                                                                                 ));
        }
Example #2
0
    void ActionSelfdeliveryOrders_Activated(object sender, System.EventArgs e)
    {
        OrderJournalFilterViewModel filter = new OrderJournalFilterViewModel();

        filter.SetAndRefilterAtOnce(
            x => x.AllowStatuses               = new OrderStatus[] { OrderStatus.WaitForPayment, OrderStatus.OnLoading, OrderStatus.Accepted, OrderStatus.Closed },
            x => x.RestrictOnlySelfDelivery    = true,
            x => x.RestrictWithoutSelfDelivery = false,
            x => x.RestrictHideService         = true,
            x => x.RestrictOnlyService         = false,
            x => x.RestrictLessThreeHours      = false
            );
        filter.HidenByDefault = true;
        var selfDeliveriesJournal = new SelfDeliveriesJournalViewModel(
            filter,
            UnitOfWorkFactory.GetDefaultFactory,
            ServicesConfig.CommonServices,
            new CallTaskWorker(CallTaskSingletonFactory.GetInstance(),
                               new CallTaskRepository(),
                               OrderSingletonRepository.GetInstance(),
                               EmployeeSingletonRepository.GetInstance(),
                               new BaseParametersProvider(),
                               ServicesConfig.CommonServices.UserService,
                               SingletonErrorReporter.Instance),
            new OrderPaymentSettings());

        tdiMain.AddTab(selfDeliveriesJournal);
    }
Example #3
0
    void ActionOrdersTableActivated(object sender, System.EventArgs e)
    {
        var nomenclatureRepository = new NomenclatureRepository(new NomenclatureParametersProvider());

        IEntityAutocompleteSelectorFactory counterpartySelectorFactory =
            new DefaultEntityAutocompleteSelectorFactory <Counterparty, CounterpartyJournalViewModel,
                                                          CounterpartyJournalFilterViewModel>(ServicesConfig.CommonServices);

        IEntityAutocompleteSelectorFactory nomenclatureSelectorFactory =
            new NomenclatureAutoCompleteSelectorFactory <Nomenclature, NomenclaturesJournalViewModel>(ServicesConfig.CommonServices,
                                                                                                      new NomenclatureFilterViewModel(), counterpartySelectorFactory, nomenclatureRepository,
                                                                                                      UserSingletonRepository.GetInstance());

        OrderJournalFilterViewModel filter = new OrderJournalFilterViewModel()
        {
            IsForRetail = false
        };
        var ordersJournal = new OrderJournalViewModel(filter,
                                                      UnitOfWorkFactory.GetDefaultFactory,
                                                      ServicesConfig.CommonServices,
                                                      VodovozGtkServicesConfig.EmployeeService,
                                                      nomenclatureSelectorFactory,
                                                      counterpartySelectorFactory,
                                                      nomenclatureRepository,
                                                      UserSingletonRepository.GetInstance());

        tdiMain.AddTab(ordersJournal);
    }
Example #4
0
        private void ConfigureDlg()
        {
            yentryName.Binding.AddBinding(ViewModel.Entity, e => e.ComplainantName, w => w.Text).InitializeFromSource();
            yentryName.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            entryCounterparty.SetEntityAutocompleteSelectorFactory(ViewModel.CounterpartySelectorFactory);
            entryCounterparty.Binding.AddBinding(ViewModel.Entity, e => e.Counterparty, w => w.Subject).InitializeFromSource();
            entryCounterparty.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();
            EntryCounterparty_ChangedByUser(this, new EventArgs());
            entryCounterparty.ChangedByUser += EntryCounterparty_ChangedByUser;

            spLstComplaintKind.SetRenderTextFunc <ComplaintKind>(k => k.GetFullName);
            spLstComplaintKind.Binding.AddBinding(ViewModel, vm => vm.ComplaintKindSource, w => w.ItemsList).InitializeFromSource();
            spLstComplaintKind.Binding.AddBinding(ViewModel.Entity, e => e.ComplaintKind, w => w.SelectedItem).InitializeFromSource();

            spLstAddress.Binding.AddBinding(ViewModel, s => s.CanSelectDeliveryPoint, w => w.Sensitive).InitializeFromSource();

            var orderSelectorFactory = new EntityAutocompleteSelectorFactory <OrderJournalViewModel>(typeof(Order), () => {
                var filter = new OrderJournalFilterViewModel();
                if (ViewModel.Entity.Counterparty != null)
                {
                    filter.RestrictCounterparty = ViewModel.Entity.Counterparty;
                }
                return(new OrderJournalViewModel(filter,
                                                 UnitOfWorkFactory.GetDefaultFactory,
                                                 ServicesConfig.CommonServices,
                                                 ViewModel.EmployeeService,
                                                 ViewModel.NomenclatureSelectorFactory,
                                                 ViewModel.CounterpartySelectorFactory,
                                                 ViewModel.NomenclatureRepository,
                                                 ViewModel.UserRepository));
            });

            entryOrder.SetEntitySelectorFactory(orderSelectorFactory);
            entryOrder.Binding.AddBinding(ViewModel.Entity, e => e.Order, w => w.Subject).InitializeFromSource();
            entryOrder.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            yentryPhone.Binding.AddBinding(ViewModel.Entity, e => e.Phone, w => w.Text).InitializeFromSource();
            yentryPhone.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            complaintfilesview.ViewModel = ViewModel.FilesViewModel;
            complaintfilesview.Sensitive = ViewModel.CanEdit;

            comboboxComplaintSource.SetRenderTextFunc <ComplaintSource>(x => x.Name);
            comboboxComplaintSource.ItemsList = ViewModel.ComplaintSources;
            comboboxComplaintSource.Binding.AddBinding(ViewModel.Entity, e => e.ComplaintSource, w => w.SelectedItem).InitializeFromSource();
            comboboxComplaintSource.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            ytextviewComplaintText.Binding.AddBinding(ViewModel.Entity, e => e.ComplaintText, w => w.Buffer.Text).InitializeFromSource();
            ytextviewComplaintText.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            guiltyitemsview.ViewModel = ViewModel.GuiltyItemsViewModel;

            buttonSave.Clicked   += (sender, e) => { ViewModel.CheckAndSave(); };
            buttonCancel.Clicked += (sender, e) => { ViewModel.Close(false, QS.Navigation.CloseSource.Cancel); };
        }
Example #5
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;
                }
            };
        }
        public IEntityAutocompleteSelectorFactory CreateCashSelfDeliveryOrderAutocompleteSelector()
        {
            var subdivisionJournalFactory   = new SubdivisionJournalFactory();
            var counterpartyJournalFactory  = new CounterpartyJournalFactory();
            var deliveryPointJournalFactory = new DeliveryPointJournalFactory();
            var nomenclatureRepository      = new NomenclatureRepository(new NomenclatureParametersProvider(new ParametersProvider()));
            var userRepository = new UserRepository();

            return(new EntityAutocompleteSelectorFactory <OrderJournalViewModel>(
                       typeof(Order),
                       () =>
            {
                var filter = new OrderJournalFilterViewModel(counterpartyJournalFactory, deliveryPointJournalFactory);
                filter.SetAndRefilterAtOnce(
                    x => x.RestrictStatus = OrderStatus.WaitForPayment,
                    x => x.AllowPaymentTypes = new[] { PaymentType.cash },
                    x => x.RestrictOnlySelfDelivery = true,
                    x => x.RestrictWithoutSelfDelivery = false,
                    x => x.RestrictHideService = true,
                    x => x.RestrictOnlyService = false);

                return new OrderJournalViewModel(
                    filter,
                    UnitOfWorkFactory.GetDefaultFactory,
                    ServicesConfig.CommonServices,
                    VodovozGtkServicesConfig.EmployeeService,
                    nomenclatureRepository,
                    userRepository,
                    new OrderSelectorFactory(),
                    new EmployeeJournalFactory(),
                    counterpartyJournalFactory,
                    new DeliveryPointJournalFactory(),
                    subdivisionJournalFactory,
                    new GtkTabsOpener(),
                    new UndeliveredOrdersJournalOpener(),
                    new NomenclatureJournalFactory(),
                    new UndeliveredOrdersRepository(),
                    new SubdivisionRepository(new ParametersProvider()),
                    new FileDialogService());
            }));
        }
Example #7
0
        private void ConfigureDlg()
        {
            yentryName.Binding.AddBinding(ViewModel.Entity, e => e.ComplainantName, w => w.Text).InitializeFromSource();
            yentryName.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            entryCounterparty.SetEntityAutocompleteSelectorFactory(ViewModel.CounterpartyJournalFactory.CreateCounterpartyAutocompleteSelectorFactory());
            entryCounterparty.Binding.AddBinding(ViewModel.Entity, e => e.Counterparty, w => w.Subject).InitializeFromSource();
            entryCounterparty.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();
            EntryCounterparty_ChangedByUser(this, new EventArgs());
            entryCounterparty.ChangedByUser += EntryCounterparty_ChangedByUser;

            spLstComplaintKind.SetRenderTextFunc <ComplaintKind>(k => k.GetFullName);
            spLstComplaintKind.Binding.AddBinding(ViewModel, vm => vm.ComplaintKindSource, w => w.ItemsList).InitializeFromSource();
            spLstComplaintKind.Binding.AddBinding(ViewModel.Entity, e => e.ComplaintKind, w => w.SelectedItem).InitializeFromSource();

            yspeccomboboxComplaintObject.ShowSpecialStateAll = true;
            yspeccomboboxComplaintObject.Binding.AddSource(ViewModel)
            .AddBinding(vm => vm.ComplaintObjectSource, w => w.ItemsList)
            .AddBinding(ViewModel, vm => vm.ComplaintObject, w => w.SelectedItem).InitializeFromSource();

            spLstAddress.Binding.AddBinding(ViewModel, s => s.CanSelectDeliveryPoint, w => w.Sensitive).InitializeFromSource();

            var orderSelectorFactory = new EntityAutocompleteSelectorFactory <OrderJournalViewModel>(typeof(Order), () => {
                var filter = new OrderJournalFilterViewModel(ViewModel.CounterpartyJournalFactory, ViewModel.DeliveryPointJournalFactory);
                if (ViewModel.Entity.Counterparty != null)
                {
                    filter.RestrictCounterparty = ViewModel.Entity.Counterparty;
                }
                return(new OrderJournalViewModel(filter,
                                                 UnitOfWorkFactory.GetDefaultFactory,
                                                 ServicesConfig.CommonServices,
                                                 ViewModel.EmployeeService,
                                                 ViewModel.NomenclatureRepository,
                                                 ViewModel.UserRepository,
                                                 ViewModel.OrderSelectorFactory,
                                                 ViewModel.EmployeeJournalFactory,
                                                 ViewModel.CounterpartyJournalFactory,
                                                 ViewModel.DeliveryPointJournalFactory,
                                                 ViewModel.SubdivisionJournalFactory,
                                                 ViewModel.GtkDialogsOpener,
                                                 ViewModel.UndeliveredOrdersJournalOpener,
                                                 ViewModel.NomenclatureSelector,
                                                 ViewModel.UndeliveredOrdersRepository,
                                                 ViewModel.SubdivisionRepository,
                                                 ViewModel.FileDialogService));
            });

            entryOrder.SetEntitySelectorFactory(orderSelectorFactory);
            entryOrder.Binding.AddBinding(ViewModel.Entity, e => e.Order, w => w.Subject).InitializeFromSource();
            entryOrder.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();
            entryOrder.ChangedByUser += (sender, e) => ViewModel.ChangeDeliveryPointCommand.Execute();

            if (ViewModel.UserHasOnlyAccessToWarehouseAndComplaints)
            {
                entryCounterparty.CanEditReference = entryOrder.CanEditReference = false;
            }

            yentryPhone.Binding.AddBinding(ViewModel.Entity, e => e.Phone, w => w.Text).InitializeFromSource();
            yentryPhone.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            complaintfilesview.ViewModel = ViewModel.FilesViewModel;
            complaintfilesview.Sensitive = ViewModel.CanEdit;

            comboboxComplaintSource.SetRenderTextFunc <ComplaintSource>(x => x.Name);
            comboboxComplaintSource.ItemsList = ViewModel.ComplaintSources;
            comboboxComplaintSource.Binding.AddBinding(ViewModel.Entity, e => e.ComplaintSource, w => w.SelectedItem).InitializeFromSource();
            comboboxComplaintSource.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            ytextviewComplaintText.Binding.AddBinding(ViewModel.Entity, e => e.ComplaintText, w => w.Buffer.Text).InitializeFromSource();
            ytextviewComplaintText.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            guiltyitemsview.ViewModel = ViewModel.GuiltyItemsViewModel;

            buttonSave.Clicked   += (sender, e) => { ViewModel.CheckAndSave(); };
            buttonCancel.Clicked += (sender, e) => { ViewModel.Close(true, QS.Navigation.CloseSource.Cancel); };
        }
Example #8
0
        private void ConfigureDlg()
        {
            ylabelSubdivisions.Binding.AddBinding(ViewModel, vm => vm.SubdivisionsInWork, w => w.LabelProp).InitializeFromSource();
            ylabelCreatedBy.Binding.AddBinding(ViewModel, e => e.CreatedByAndDate, w => w.LabelProp).InitializeFromSource();
            ylabelChangedBy.Binding.AddBinding(ViewModel, e => e.ChangedByAndDate, w => w.LabelProp).InitializeFromSource();

            yentryName.Binding.AddBinding(ViewModel.Entity, e => e.ComplainantName, w => w.Text).InitializeFromSource();
            yentryName.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();
            yentryName.Binding.AddBinding(ViewModel, vm => vm.IsClientComplaint, w => w.Visible).InitializeFromSource();
            labelName.Binding.AddBinding(ViewModel, vm => vm.IsClientComplaint, w => w.Visible).InitializeFromSource();

            yenumcomboStatus.ItemsEnum = typeof(ComplaintStatuses);
            if (!ViewModel.CanClose)
            {
                yenumcomboStatus.AddEnumToHideList(new object[] { ComplaintStatuses.Closed });
            }

            yenumcomboStatus.Binding.AddSource(ViewModel)
            .AddBinding(vm => vm.Status, w => w.SelectedItem)
            .AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive)
            .InitializeFromSource();

            yenumcomboStatus.EnumItemSelected += (sender, args) => ViewModel.CloseComplaint((ComplaintStatuses)args.SelectedItem);

            ydatepickerPlannedCompletionDate.Binding.AddBinding(ViewModel.Entity, e => e.PlannedCompletionDate, w => w.Date).InitializeFromSource();
            ydatepickerPlannedCompletionDate.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            entryCounterparty.Changed += EntryCounterparty_Changed;
            entryCounterparty.SetEntityAutocompleteSelectorFactory(ViewModel.CounterpartySelectorFactory);
            entryCounterparty.Binding.AddBinding(ViewModel.Entity, e => e.Counterparty, w => w.Subject).InitializeFromSource();
            entryCounterparty.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();
            entryCounterparty.Binding.AddBinding(ViewModel, vm => vm.IsClientComplaint, w => w.Visible).InitializeFromSource();
            labelCounterparty.Binding.AddBinding(ViewModel, vm => vm.IsClientComplaint, w => w.Visible).InitializeFromSource();

            spLstAddress.Binding.AddBinding(ViewModel, s => s.CanSelectDeliveryPoint, w => w.Sensitive).InitializeFromSource();
            spLstAddress.Binding.AddBinding(ViewModel, s => s.IsClientComplaint, w => w.Visible).InitializeFromSource();
            lblAddress.Binding.AddBinding(ViewModel, s => s.IsClientComplaint, w => w.Visible).InitializeFromSource();

            var orderSelectorFactory = new EntityAutocompleteSelectorFactory <OrderJournalViewModel>(typeof(Order), () => {
                var filter = new OrderJournalFilterViewModel(ViewModel.CounterpartyJournalFactory, ViewModel.DeliveryPointJournalFactory);

                if (ViewModel.Entity.Counterparty != null)
                {
                    filter.RestrictCounterparty = ViewModel.Entity.Counterparty;
                }

                return(new OrderJournalViewModel(filter,
                                                 UnitOfWorkFactory.GetDefaultFactory,
                                                 ServicesConfig.CommonServices,
                                                 ViewModel.EmployeeService,
                                                 ViewModel.NomenclatureRepository,
                                                 ViewModel.UserRepository,
                                                 ViewModel.OrderSelectorFactory,
                                                 ViewModel.EmployeeJournalFactory,
                                                 ViewModel.CounterpartyJournalFactory,
                                                 ViewModel.DeliveryPointJournalFactory,
                                                 ViewModel.SubdivisionJournalFactory,
                                                 ViewModel.GtkDialogsOpener,
                                                 ViewModel.UndeliveredOrdersJournalOpener,
                                                 ViewModel.NomenclatureSelector,
                                                 ViewModel.UndeliveredOrdersRepository,
                                                 ViewModel.SubdivisionRepository,
                                                 ViewModel.FileDialogService));
            });

            entryOrder.SetEntityAutocompleteSelectorFactory(orderSelectorFactory);
            entryOrder.Binding.AddBinding(ViewModel.Entity, e => e.Order, w => w.Subject).InitializeFromSource();
            entryOrder.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();
            entryOrder.Binding.AddBinding(ViewModel, vm => vm.IsClientComplaint, w => w.Visible).InitializeFromSource();
            entryOrder.ChangedByUser += (sender, e) => ViewModel.ChangeDeliveryPointCommand.Execute();
            labelOrder.Binding.AddBinding(ViewModel, vm => vm.IsClientComplaint, w => w.Visible).InitializeFromSource();

            yentryPhone.Binding.AddBinding(ViewModel.Entity, e => e.Phone, w => w.Text).InitializeFromSource();
            yhboxPhone.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();
            yhboxPhone.Binding.AddBinding(ViewModel, vm => vm.IsClientComplaint, w => w.Visible).InitializeFromSource();
            labelNamePhone.Binding.AddBinding(ViewModel, vm => vm.IsClientComplaint, w => w.Visible).InitializeFromSource();

            arrangementTextView.Binding
            .AddBinding(ViewModel.Entity, e => e.Arrangement, w => w.Buffer.Text)
            .AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive)
            .InitializeFromSource();

            cmbComplaintKind.SetRenderTextFunc <ComplaintKind>(k => k.GetFullName);
            cmbComplaintKind.Binding
            .AddBinding(ViewModel, vm => vm.ComplaintKindSource, w => w.ItemsList)
            .AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive)
            .AddBinding(ViewModel.Entity, e => e.ComplaintKind, w => w.SelectedItem)
            .InitializeFromSource();

            yspeccomboboxComplaintObject.ShowSpecialStateAll = true;
            yspeccomboboxComplaintObject.Binding.AddSource(ViewModel)
            .AddBinding(vm => vm.ComplaintObjectSource, w => w.ItemsList)
            .AddBinding(vm => vm.ComplaintObject, w => w.SelectedItem)
            .AddBinding(vm => vm.CanEdit, w => w.Sensitive)
            .InitializeFromSource();

            comboboxComplaintSource.SetRenderTextFunc <ComplaintSource>(x => x.Name);
            comboboxComplaintSource.Binding.AddBinding(ViewModel, vm => vm.ComplaintSources, w => w.ItemsList).InitializeFromSource();
            comboboxComplaintSource.Binding.AddBinding(ViewModel.Entity, e => e.ComplaintSource, w => w.SelectedItem).InitializeFromSource();
            comboboxComplaintSource.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();
            comboboxComplaintSource.Binding.AddBinding(ViewModel, vm => vm.IsClientComplaint, w => w.Visible).InitializeFromSource();
            labelSource.Binding.AddBinding(ViewModel, vm => vm.IsClientComplaint, w => w.Visible).InitializeFromSource();

            cmbComplaintResultOfCounterparty.SetRenderTextFunc <ComplaintResultOfCounterparty>(x => x.Name);
            cmbComplaintResultOfCounterparty.Binding.AddBinding(ViewModel, vm => vm.ComplaintResultsOfCounterparty, w => w.ItemsList).InitializeFromSource();
            cmbComplaintResultOfCounterparty.Binding.AddBinding(ViewModel.Entity, e => e.ComplaintResultOfCounterparty, w => w.SelectedItem).InitializeFromSource();
            cmbComplaintResultOfCounterparty.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            cmbComplaintResultOfEmployees.SetRenderTextFunc <ComplaintResultOfEmployees>(x => x.Name);
            cmbComplaintResultOfEmployees.Binding.AddBinding(ViewModel, vm => vm.ComplaintResultsOfEmployees, w => w.ItemsList).InitializeFromSource();
            cmbComplaintResultOfEmployees.Binding.AddBinding(ViewModel.Entity, e => e.ComplaintResultOfEmployees, w => w.SelectedItem).InitializeFromSource();
            cmbComplaintResultOfEmployees.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            ytextviewResultText.Binding.AddBinding(ViewModel.Entity, e => e.ResultText, w => w.Buffer.Text).InitializeFromSource();
            ytextviewResultText.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            complaintfilesview.ViewModel = ViewModel.FilesViewModel;

            ytextviewComplaintText.Binding.AddBinding(ViewModel.Entity, e => e.ComplaintText, w => w.Buffer.Text).InitializeFromSource();
            ytextviewComplaintText.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            comboType.ItemsEnum = typeof(ComplaintType);
            comboType.Binding
            .AddBinding(ViewModel.Entity, e => e.ComplaintType, w => w.SelectedItem)
            .AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive)
            .InitializeFromSource();

            guiltyitemsview.ViewModel = ViewModel.GuiltyItemsViewModel;

            guiltyitemsview.Visible   = ViewModel.CanAddGuilty;
            labelNameGuilties.Visible = ViewModel.CanAddGuilty;

            vboxDicussions.Add(new ComplaintDiscussionsView(ViewModel.DiscussionsViewModel));
            vboxDicussions.ShowAll();

            ytreeviewFines.ColumnsConfig = FluentColumnsConfig <FineItem> .Create()
                                           .AddColumn("№").AddTextRenderer(x => x.Fine.Id.ToString())
                                           .AddColumn("Сотрудник").AddTextRenderer(x => x.Employee.ShortName)
                                           .AddColumn("Сумма штрафа").AddTextRenderer(x => CurrencyWorks.GetShortCurrencyString(x.Money))
                                           .Finish();

            ytreeviewFines.Binding.AddBinding(ViewModel, vm => vm.FineItems, w => w.ItemsDataSource).InitializeFromSource();

            buttonAddFine.Clicked += (sender, e) => { ViewModel.AddFineCommand.Execute(this.Tab); };
            buttonAddFine.Binding.AddBinding(ViewModel, vm => vm.CanAddFine, w => w.Sensitive).InitializeFromSource();

            buttonAttachFine.Clicked += (sender, e) => { ViewModel.AttachFineCommand.Execute(); };
            buttonAttachFine.Binding.AddBinding(ViewModel, vm => vm.CanAttachFine, w => w.Sensitive).InitializeFromSource();

            buttonSave.Clicked += (sender, e) => { ViewModel.SaveAndClose(); };
            buttonSave.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            buttonCancel.Clicked += (sender, e) => { ViewModel.Close(ViewModel.CanEdit, QS.Navigation.CloseSource.Cancel); };

            ViewModel.FilesViewModel.ReadOnly = !ViewModel.CanEdit;

            ViewModel.Entity.PropertyChanged += (o, e) =>
            {
                if (e.PropertyName == nameof(ViewModel.Entity.Phone))
                {
                    handsetPhone.SetPhone(ViewModel.Entity.Phone);
                }
            };
        }
 public OrderSelectorFactory(OrderJournalFilterViewModel orderFilter = null)
 {
     _orderJournalFilter = orderFilter;
 }
Example #10
0
        public void ConfigureDlg(IUnitOfWork uow, UndeliveredOrder undelivery)
        {
            Sensitive = false;
            evmeOldUndeliveredOrder.Changed += OnUndeliveredOrderChanged;

            _canChangeProblemSource = _commonServices.PermissionService.ValidateUserPresetPermission("can_change_undelivery_problem_source", _commonServices.UserService.CurrentUserId);
            _undelivery             = undelivery;
            UoW       = uow;
            _oldOrder = undelivery.OldOrder;
            _newOrder = undelivery.NewOrder;
            if (undelivery.Id > 0 && undelivery.InProcessAtDepartment != null)
            {
                _initialProcDepartmentName = undelivery.InProcessAtDepartment.Name;
            }
            if (undelivery.Id > 0)
            {
                foreach (GuiltyInUndelivery g in undelivery.ObservableGuilty)
                {
                    _initialGuiltyList.Add(
                        new GuiltyInUndelivery {
                        Id = g.Id,
                        UndeliveredOrder = g.UndeliveredOrder,
                        GuiltySide       = g.GuiltySide,
                        GuiltyDepartment = g.GuiltyDepartment
                    }
                        );
                }
            }
            List <OrderStatus> hiddenStatusesList = new List <OrderStatus>();
            var grantedStatusesArray = _orderRepository.GetStatusesForOrderCancelation();

            foreach (OrderStatus status in Enum.GetValues(typeof(OrderStatus)))
            {
                if (!grantedStatusesArray.Contains(status))
                {
                    hiddenStatusesList.Add(status);
                }
            }
            var filterOrders = new OrderJournalFilterViewModel(new CounterpartyJournalFactory(), new DeliveryPointJournalFactory());

            filterOrders.SetAndRefilterAtOnce(x => x.HideStatuses = hiddenStatusesList.Cast <Enum>().ToArray());
            evmeOldUndeliveredOrder.Changed += (sender, e) => {
                _oldOrder      = undelivery.OldOrder;
                lblInfo.Markup = undelivery.GetOldOrderInfo(_orderRepository);
                if (undelivery.Id <= 0)
                {
                    undelivery.OldOrderStatus = _oldOrder.OrderStatus;
                }
                _routeListDoesNotExist = _oldOrder != null && (undelivery.OldOrderStatus == OrderStatus.NewOrder ||
                                                               undelivery.OldOrderStatus == OrderStatus.Accepted ||
                                                               undelivery.OldOrderStatus == OrderStatus.WaitForPayment);

                guiltyInUndeliveryView.ConfigureWidget(UoW, undelivery, !_routeListDoesNotExist);
                SetSensitivities();
                SetVisibilities();
                GetFines();
                RemoveItemsFromEnums();
            };
            var orderFactory = new OrderSelectorFactory(filterOrders);

            evmeOldUndeliveredOrder.SetEntityAutocompleteSelectorFactory(orderFactory.CreateOrderAutocompleteSelectorFactory());
            evmeOldUndeliveredOrder.Binding.AddBinding(undelivery, x => x.OldOrder, x => x.Subject).InitializeFromSource();
            evmeOldUndeliveredOrder.CanEditReference =
                ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_delete");

            yDateDriverCallTime.Binding.AddBinding(undelivery, t => t.DriverCallTime, w => w.DateOrNull).InitializeFromSource();
            if (undelivery.Id <= 0)
            {
                yDateDriverCallTime.DateOrNull = DateTime.Now;
            }

            yEnumCMBDriverCallPlace.ItemsEnum = typeof(DriverCallType);
            yEnumCMBDriverCallPlace.Binding.AddBinding(undelivery, p => p.DriverCallType, w => w.SelectedItem).InitializeFromSource();

            yDateDispatcherCallTime.Binding.AddBinding(undelivery, t => t.DispatcherCallTime, w => w.DateOrNull).InitializeFromSource();
            if (undelivery.Id <= 0)
            {
                yDateDispatcherCallTime.DateOrNull = DateTime.Now;
            }

            referenceNewDeliverySchedule.ItemsQuery = _deliveryScheduleRepository.AllQuery();
            referenceNewDeliverySchedule.SetObjectDisplayFunc <DeliverySchedule>(e => e.Name);
            referenceNewDeliverySchedule.Binding.AddBinding(undelivery, s => s.NewDeliverySchedule, w => w.Subject).InitializeFromSource();
            referenceNewDeliverySchedule.Sensitive = false;

            SetLabelsAcordingToNewOrder();

            yEnumCMBStatus.ItemsEnum         = typeof(UndeliveryStatus);
            yEnumCMBStatus.SelectedItem      = undelivery.UndeliveryStatus;
            yEnumCMBStatus.EnumItemSelected += (s, e) => {
                SetSensitivities();
                undelivery.SetUndeliveryStatus((UndeliveryStatus)e.SelectedItem);
            };

            yentInProcessAtDepartment.SubjectType = typeof(Subdivision);
            yentInProcessAtDepartment.Binding.AddBinding(undelivery, d => d.InProcessAtDepartment, w => w.Subject).InitializeFromSource();
            yentInProcessAtDepartment.ChangedByUser += (s, e) => {
                undelivery.AddCommentToTheField(
                    UoW,
                    CommentedFields.Reason,
                    String.Format(
                        "сменил(а) \"в работе у отдела\" \nс \"{0}\" на \"{1}\"",
                        _initialProcDepartmentName,
                        undelivery.InProcessAtDepartment.Name
                        )
                    );
            };

            if (undelivery.Id <= 0)
            {
                yentInProcessAtDepartment.Subject = _subdivisionRepository.GetQCDepartment(UoW);
            }

            var employeeFactory = new EmployeeJournalFactory();

            evmeRegisteredBy.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory());
            evmeRegisteredBy.Binding.AddBinding(undelivery, s => s.EmployeeRegistrator, w => w.Subject).InitializeFromSource();

            yEnumCMBDriverCallPlace.EnumItemSelected += CMBSelectedItemChanged;

            txtReason.Binding.AddBinding(undelivery, u => u.Reason, w => w.Buffer.Text).InitializeFromSource();

            lblInfo.Markup = undelivery.GetOldOrderInfo(_orderRepository);

            yenumcomboboxTransferType.ItemsEnum = typeof(TransferType);
            yenumcomboboxTransferType.Binding.AddBinding(undelivery, u => u.OrderTransferType, w => w.SelectedItemOrNull).InitializeFromSource();

            comboProblemSource.SetRenderTextFunc <UndeliveryProblemSource>(k => k.GetFullName);
            comboProblemSource.Binding.AddBinding(undelivery, u => u.ProblemSourceItems, w => w.ItemsList).InitializeFromSource();
            comboProblemSource.Binding.AddBinding(undelivery, u => u.ProblemSource, w => w.SelectedItem).InitializeFromSource();
            comboProblemSource.Sensitive = _canChangeProblemSource;

            comboTransferAbsenceReason.SetRenderTextFunc <UndeliveryTransferAbsenceReason>(u => u.Name);
            comboTransferAbsenceReason.Binding.AddBinding(undelivery, u => u.UndeliveryTransferAbsenceReasonItems, w => w.ItemsList).InitializeFromSource();
            comboTransferAbsenceReason.Binding.AddBinding(undelivery, u => u.UndeliveryTransferAbsenceReason, w => w.SelectedItem).InitializeFromSource();
            comboTransferAbsenceReason.Sensitive = _canChangeProblemSource;

            yTreeFines.ColumnsConfig = ColumnsConfigFactory.Create <FineItem>()
                                       .AddColumn("Номер").AddTextRenderer(node => node.Fine.Id.ToString())
                                       .AddColumn("Сотудники").AddTextRenderer(node => node.Employee.ShortName)
                                       .AddColumn("Сумма штрафа").AddTextRenderer(node => CurrencyWorks.GetShortCurrencyString(node.Money))
                                       .Finish();

            yenumcomboboxTransferType.Visible = undelivery?.NewOrder != null;

            undelivery.PropertyChanged += (sender, e) => {
                if (e.PropertyName != "NewOrder")
                {
                    return;
                }

                if (undelivery.NewOrder == null)
                {
                    yenumcomboboxTransferType.Visible = false;
                    undelivery.OrderTransferType      = null;
                    return;
                }

                yenumcomboboxTransferType.Visible = true;
            };

            GetFines();
            SetVisibilities();
            SetSensitivities();
        }