Exemple #1
0
        protected void OnButtonAddDocumentClicked(object sender, EventArgs e)
        {
            EmployeeDocDlg dlg = new EmployeeDocDlg(UoW, null);

            dlg.Save += (object sender1, EventArgs e1) => Entity.ObservableDocuments.Add(dlg.Entity);
            TabParent.AddSlaveTab(this, dlg);
        }
        protected void OnButtonAddClicked(object sender, EventArgs e)
        {
            ormtableview.Selection.UnselectAll();
            var classDiscript = OrmMain.GetObjectDescription(objectType);

            if (classDiscript.SimpleDialog)
            {
                EntityEditSimpleDialog.RunSimpleDialog(this.Toplevel as Window, objectType, null);
            }
            else if (RepresentationModel is IRepresentationModelWithParent)
            {
                var dlg = OrmMain.CreateObjectDialog(objectType, (RepresentationModel as IRepresentationModelWithParent).GetParent);
                TabParent.OpenTab(OrmMain.GenerateDialogHashName(objectType, 0),
                                  () => dlg,
                                  this
                                  );
                dlg.EntitySaved += dlg_EntitySaved;
            }
            else
            {
                var dlg = OrmMain.CreateObjectDialog(objectType);
                dlg.EntitySaved += dlg_EntitySaved;
                TabParent.AddTab(dlg, this, true);
                if (TabParent is TdiSliderTab)
                {
                    ((TdiSliderTab)TabParent).IsHideJournal = true;
                }
            }
        }
Exemple #3
0
        protected void OnBtnAddOtherGoodsClicked(object sender, EventArgs e)
        {
            var nomenclatureSelector = _nomenclatureSelectorFactory.CreateNomenclatureOfGoodsWithoutEmptyBottlesSelector();

            nomenclatureSelector.OnEntitySelectedResult += NomenclatureSelectorOnEntitySelectedResult;
            TabParent.AddTab(nomenclatureSelector, this);
        }
Exemple #4
0
        void RunAgreementCreateDialog(CounterpartyContract contract)
        {
            ITdiTab dlg;
            string  paymentTypeString = "";

            switch (UoWGeneric.Root.Payment)
            {
            case PaymentType.cash:
                paymentTypeString = "наличной";
                break;

            case PaymentType.cashless:
                paymentTypeString = "безналичной";
                break;

            case PaymentType.barter:
                paymentTypeString = "бартерной";
                break;
            }
            string question = "Отсутствует доп. соглашение сервиса с клиентом в договоре для " +
                              paymentTypeString +
                              " формы оплаты. Создать?";

            if (MessageDialogWorks.RunQuestionDialog(question))
            {
                dlg = new RepairAgreementDlg(contract);
                (dlg as IAgreementSaved).AgreementSaved += (sender, e) => {
                    UoWGeneric.Root.InitialOrder?.CreateOrderAgreementDocument(e.Agreement);
                };
                TabParent.AddSlaveTab(this, dlg);
            }
        }
        protected void OnYtreeviewAddressesRowActivated(object o, Gtk.RowActivatedArgs args)
        {
            var        node = ytreeviewAddresses.GetSelectedObject() as AddressNode;
            ITdiDialog dlg  = new DeliveryPointDlg(node.Address);

            TabParent.AddSlaveTab(this, dlg);
        }
        protected void OnButtonOpenClicked(object sender, EventArgs e)
        {
            var node = tableReadyForReception.GetSelectedNode() as ViewModel.ReadyForReceptionVMNode;
            var dlg  = new CarUnloadDocumentDlg(node.Id, viewModel.Filter.RestrictWarehouse?.Id);

            TabParent.AddTab(dlg, this);
        }
 private void CreateAddWriteoffItemCommand()
 {
     AddWriteoffItemCommand = new DelegateCommand(
         () => {
         var fuelTypeJournalViewModel = new SimpleEntityJournalViewModel <FuelType, FuelTypeViewModel>(x => x.Name,
                                                                                                       () => new FuelTypeViewModel(EntityUoWBuilder.ForCreate(), unitOfWorkFactory, commonServices),
                                                                                                       (node) => new FuelTypeViewModel(EntityUoWBuilder.ForOpen(node.Id), unitOfWorkFactory, commonServices),
                                                                                                       QS.DomainModel.UoW.UnitOfWorkFactory.GetDefaultFactory,
                                                                                                       commonServices
                                                                                                       );
         fuelTypeJournalViewModel.SetRestriction(() => {
             return(Restrictions.Not(Restrictions.In(Projections.Id(), Entity.ObservableFuelWriteoffDocumentItems.Select(x => x.FuelType.Id).ToArray())));
         });
         fuelTypeJournalViewModel.SelectionMode           = JournalSelectionMode.Single;
         fuelTypeJournalViewModel.OnEntitySelectedResult += (sender, e) => {
             var node = e.SelectedNodes.FirstOrDefault();
             if (node == null)
             {
                 return;
             }
             Entity.AddNewWriteoffItem(UoW.GetById <FuelType>(node.Id));
         };
         TabParent.AddSlaveTab(this, fuelTypeJournalViewModel);
     },
         () => CanEdit
         );
     AddWriteoffItemCommand.CanExecuteChangedWith(this, x => CanEdit);
 }
Exemple #8
0
        protected void OnBtnShowUndeliveryClicked(object sender, EventArgs e)
        {
            var undeliveredOrdersFilter = new UndeliveredOrdersFilterViewModel(
                ServicesConfig.CommonServices,
                new OrderSelectorFactory(),
                new EmployeeJournalFactory(),
                new CounterpartyJournalFactory(),
                new DeliveryPointJournalFactory(),
                new SubdivisionJournalFactory())
            {
                HidenByDefault            = true,
                RestrictOldOrder          = Entity.UndeliveredOrder.OldOrder,
                RestrictOldOrderStartDate = Entity.UndeliveredOrder.OldOrder.DeliveryDate,
                RestrictOldOrderEndDate   = Entity.UndeliveredOrder.OldOrder.DeliveryDate,
                RestrictUndeliveryStatus  = Entity.UndeliveredOrder.UndeliveryStatus
            };

            var dlg = new UndeliveredOrdersJournalViewModel(
                undeliveredOrdersFilter,
                UnitOfWorkFactory.GetDefaultFactory,
                ServicesConfig.CommonServices,
                new GtkTabsOpener(),
                new EmployeeJournalFactory(),
                VodovozGtkServicesConfig.EmployeeService,
                new UndeliveredOrdersJournalOpener(),
                new OrderSelectorFactory(),
                new UndeliveredOrdersRepository()
                );

            TabParent.AddSlaveTab(this, dlg);
        }
Exemple #9
0
        protected void OnYtreeviewAddressesRowActivated(object o, Gtk.RowActivatedArgs args)
        {
            var id          = ytreeviewAddresses.GetSelectedObject <AddressNode>().Address.Id;
            var dpViewModel = _deliveryPointViewModelFactory.GetForOpenDeliveryPointViewModel(id);

            TabParent.AddSlaveTab(this, dpViewModel);
        }
Exemple #10
0
        /// <summary>
        /// Добавить вкладку, указав, скрыт ли по умолчанию журнал.
        /// </summary>
        /// <param name="tab">Основная вкладка.</param>
        /// <param name="afterTab">Дочерняя вкладка.</param>
        /// <param name="canSlided">Если true, то открываются в одной вкладке.</param>
        public void AddTab(ITdiTab tab, ITdiTab afterTab, bool canSlided = true)
        {
            if (tab.FailInitialize)
            {
                logger.Warn("Вкладка <{0}> не добавлена, так как сообщает что построена с ошибкой(Свойство FailInitialize) .",
                            tab.TabName
                            );
                return;
            }

            if (canSlided && afterTab == Journal)
            {
                if (ActiveDialog != null)
                {
                    var askSave = (ActiveDialog as IAskSaveOnCloseViewModel)?.AskSaveOnClose ?? true;
                    CloseDialog(CloseSource.FromParentPage, askSave);
                }
                ActiveDialog = tab;
                return;
            }

            if (afterTab == null || afterTab == Journal || afterTab == ActiveDialog)
            {
                TabParent.AddTab(tab, this as ITdiTab);
            }
            else
            {
                TabParent.AddTab(tab, afterTab);
            }
        }
        protected void OnButtonBottleAddEditFineClicked(object sender, EventArgs e)
        {
            string fineReason       = "Недосдача";
            var    bottleDifference = bottlesReturnedTotal - bottlesReturnedToWarehouse;
            var    summ             = DefaultBottle.SumOfDamage * (bottleDifference > 0 ? bottleDifference : (decimal)0);

            summ += routelistdiscrepancyview.Items.Where(x => x.UseFine).Sum(x => x.SumOfDamage);
            var nomenclatures = routelistdiscrepancyview.Items.Where(x => x.UseFine)
                                .ToDictionary(x => x.Nomenclature, x => - x.Remainder);

            if (checkUseBottleFine.Active)
            {
                nomenclatures.Add(DefaultBottle, bottleDifference);
            }

            FineDlg fineDlg;

            if (Entity.BottleFine != null)
            {
                fineDlg = new FineDlg(Entity.BottleFine);

                Entity.BottleFine.UpdateNomenclature(nomenclatures);
                fineDlg.Entity.TotalMoney = summ;
                fineDlg.EntitySaved      += FineDlgExist_EntitySaved;
            }
            else
            {
                fineDlg = new FineDlg(summ, Entity, fineReason, Entity.Date, Entity.Driver);
                fineDlg.Entity.AddNomenclature(nomenclatures);
                fineDlg.EntitySaved += FineDlgNew_EntitySaved;
            }
            TabParent.AddSlaveTab(this, fineDlg);
        }
        void OnRouteListItemActivated(object sender, RowActivatedArgs args)
        {
            var node = routeListAddressesView.GetSelectedRouteListItem();
            var dlg  = new OrderReturnsView(node, UoW);

            TabParent.AddSlaveTab(this, dlg);
        }
 void PrintSelectedDocument(RouteListPrintableDocuments choise)
 {
     TabParent.OpenTab(
         QS.Dialog.Gtk.TdiTabBase.GenerateHashName <DocumentsPrinterDlg>(),
         () => CreateDocumentsPrinterDlg(choise)
         );
 }
Exemple #14
0
 void OpenCounterparty(object sender, EventArgs e)
 {
     TabParent.OpenTab(
         OrmMain.GenerateDialogHashName <Counterparty>(Entity.Counterparty.Id),
         () => new CounterpartyDlg(Entity.Counterparty.Id)
         );
 }
Exemple #15
0
 protected void OnButtonOpenExpenseClicked(object sender, EventArgs e)
 {
     if (FuelDocument.FuelCashExpense?.Id > 0)
     {
         TabParent.AddSlaveTab(this, new CashExpenseDlg(FuelDocument.FuelCashExpense.Id));
     }
 }
        protected void OnButtonOpenClicked(object sender, EventArgs e)
        {
            var node = treeRouteLists.GetSelectedNode() as ViewModel.RouteListsVMNode;
            var dlg  = new RouteListKeepingDlg(node.Id);

            TabParent.AddTab(dlg, this);
        }
        private void Configure()
        {
            var journal = new PermissionControlledRepresentationJournal(model);

            journal.Mode            = multipleSelect ? JournalSelectMode.Multiple : JournalSelectMode.Single;
            journal.ObjectSelected += (sender, e) => {
                List <EntityNode> selectedResult = new List <EntityNode>();
                foreach (int selectedId in e.GetSelectedIds())
                {
                    selectedResult.Add(new EntityNode(selectedId, entityType));
                }
                OnEntitySelectedResult?.Invoke(sender, new JournalSelectedNodesEventArgs(selectedResult.ToArray()));
            };
            JournalTab = journal;
            JournalTab.TabNameChanged += (sender, e) => TabNameChanged?.Invoke(sender, e);
            JournalTab.TabClosed      += (sender, e) => {
                TabParent?.ForceCloseTab(this);
                journal.Destroy();
                Dispose();
            };
            journal.Destroyed += (sender, e) => {
                TabParent?.ForceCloseTab(this);
                journal.Destroy();
                Dispose();
            };
        }
        protected void OnEnumPrintEnumItemClicked(object sender, QS.Widgets.EnumItemClickedEventArgs e)
        {
            if (UoWGeneric.HasChanges)
            {
                if (CommonDialogs.SaveBeforePrint(typeof(CarLoadDocument), "талона"))
                {
                    if (!Save())
                    {
                        return;
                    }
                }
                else
                {
                    return;
                }
            }

            var reportInfo = new QS.Report.ReportInfo {
                Title      = Entity.Title,
                Identifier = "Store.CarLoadDocument",
                Parameters = new System.Collections.Generic.Dictionary <string, object>
                {
                    { "id", Entity.Id }
                },
                PrintType = ReportInfo.PrintingType.MultiplePrinters
            };

            TabParent.OpenTab(
                QSReport.ReportViewDlg.GenerateHashName(reportInfo),
                () => new QSReport.ReportViewDlg(reportInfo),
                this);
        }
Exemple #19
0
        /// <summary>
        /// Добавить вкладку, указав, скрыт ли по умолчанию журнал.
        /// </summary>
        /// <param name="tab">Основная вкладка.</param>
        /// <param name="afterTab">Дочерняя вкладка.</param>
        /// <param name="CanSlided">Если true, то открываются в одной вкладке.</param>
        public void AddTab(ITdiTab tab, ITdiTab afterTab, bool CanSlided = true)
        {
            if (tab.FailInitialize)
            {
                logger.Warn("Вкладка <{0}> не добавлена, так как сообщает что построена с ошибкой(Свойство FailInitialize) .",
                            tab.TabName
                            );
                return;
            }

            if (CanSlided && afterTab == Journal && tab is ITdiDialog)
            {
                ActiveDialog = (ITdiDialog)tab;
                return;
            }

            if (afterTab == null || afterTab == Journal || afterTab == ActiveDialog)
            {
                TabParent.AddTab(tab, this as ITdiTab);
            }
            else
            {
                TabParent.AddTab(tab, afterTab);
            }
        }
        private IJournalAction CreateGiveFuelAction()
        {
            return(new JournalAction(
                       "Выдать топливо",
                       selectedItems => selectedItems.FirstOrDefault() is RouteListJournalNode node &&
                       _fuelIssuingStatuses.Contains(node.StatusEnum),
                       selectedItems => true,
                       selectedItems =>
            {
                if (!(selectedItems.FirstOrDefault() is RouteListJournalNode selectedNode))
                {
                    return;
                }

                var routeList = UoW.GetById <RouteList>(selectedNode.Id);
                TabParent.OpenTab(
                    DialogHelper.GenerateDialogHashName <RouteList>(selectedNode.Id),
                    () => new FuelDocumentViewModel(
                        routeList,
                        commonServices,
                        _subdivisionRepository,
                        _employeeRepository,
                        _fuelRepository,
                        NavigationManagerProvider.NavigationManager,
                        _trackRepository,
                        _categoryRepository,
                        _employeeJournalFactory,
                        _carJournalFactory
                        )
                    );
            }
                       ));
        }
Exemple #21
0
        protected void OnButtonChangeDeliveryTimeClicked(object sender, EventArgs e)
        {
            if (ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("logistic_changedeliverytime"))
            {
                var selectedObjects = ytreeviewAddresses.GetSelectedObjects();
                if (selectedObjects.Count() != 1)
                {
                    return;
                }
                var selectedAddress = selectedObjects
                                      .Cast <RouteListKeepingItemNode>()
                                      .FirstOrDefault();

                OrmReference SelectDialog;

                ICriteria ItemsCriteria = UoWGeneric.Session.CreateCriteria(typeof(DeliverySchedule));
                SelectDialog = new OrmReference(typeof(DeliverySchedule), UoWGeneric, ItemsCriteria)
                {
                    Mode = OrmReferenceMode.Select
                };
                SelectDialog.ObjectSelected += (selectSender, selectE) => {
                    if (selectedAddress.RouteListItem.Order.DeliverySchedule != (DeliverySchedule)selectE.Subject)
                    {
                        selectedAddress.RouteListItem.Order.DeliverySchedule = (DeliverySchedule)selectE.Subject;
                        selectedAddress.ChangedDeliverySchedule = true;
                    }
                };
                TabParent.AddSlaveTab(this, SelectDialog);
            }
        }
Exemple #22
0
 private void CreateActivateNodeAction()
 {
     PopupActionsList.Add(
         new JournalAction(
             "Активировать",
             selectedItems => canActivateDistrictsSet && canUpdate &&
             selectedItems.OfType <DistrictsSetJournalNode>().FirstOrDefault()?.Status == DistrictsSetStatus.Draft,
             selectedItems => true,
             selectedItems => {
         var selectedNodes = selectedItems.OfType <DistrictsSetJournalNode>();
         var selectedNode  = selectedNodes.FirstOrDefault();
         if (selectedNode == null)
         {
             return;
         }
         var activeDistrictsSet = UoW.Session.QueryOver <DistrictsSet>().Where(x => x.Status == DistrictsSetStatus.Active).Take(1).SingleOrDefault();
         if (activeDistrictsSet?.DateCreated > selectedNode.DateCreated)
         {
             commonServices.InteractiveService.ShowMessage(ImportanceLevel.Warning, "Нельзя активировать, так как дата создания выбранной версии меньше чем дата создания активной версии");
             return;
         }
         var selectedDistrictsSet = UoW.GetById <DistrictsSet>(selectedNode.Id);
         if (selectedDistrictsSet.Districts.All(x => x.CopyOf == null) &&
             !commonServices.InteractiveService.Question("Для выбранной версии невозможно перенести все приоритеты работы водителей\nПродолжить?"))
         {
             return;
         }
         TabParent.AddSlaveTab(this,
                               new DistrictsSetActivationViewModel(EntityUoWBuilder.ForOpen(selectedNode.Id), QS.DomainModel.UoW.UnitOfWorkFactory.GetDefaultFactory, commonServices)
                               );
     }
             )
         );
 }
 private IJournalAction CreateOpenAnalysisDialogAction()
 {
     return(new JournalAction(
                "Открыть диалог разбора",
                selectedItems => selectedItems.FirstOrDefault() is RouteListJournalNode node &&
                _analysisViewModelStatuses.Contains(node.StatusEnum),
                selectedItems => true,
                selectedItems =>
     {
         if (selectedItems.FirstOrDefault() is RouteListJournalNode selectedNode)
         {
             TabParent.AddTab(
                 new RouteListAnalysisViewModel(
                     EntityUoWBuilder.ForOpen(selectedNode.Id),
                     UnitOfWorkFactory,
                     commonServices,
                     _orderSelectorFactory,
                     _employeeJournalFactory,
                     _counterpartyJournalFactory,
                     _deliveryPointJournalFactory,
                     _subdivisionJournalFactory,
                     _gtkTabsOpener,
                     _undeliveredOrdersJournalOpener,
                     _deliveryShiftRepository,
                     _employeeSettings,
                     _undeliveredOrdersRepository
                     ),
                 this,
                 false
                 );
         }
     }
                ));
 }
Exemple #24
0
        protected void OnBtnAddNomenclatureClicked(object sender, System.EventArgs e)
        {
            var nomenclatureFilter = new NomenclatureRepFilter(UoWGeneric);

            nomenclatureFilter.SetAndRefilterAtOnce(
                x => x.AvailableCategories         = Nomenclature.GetCategoriesForSaleToOrder(),
                x => x.DefaultSelectedCategory     = NomenclatureCategory.water,
                x => x.DefaultSelectedSaleCategory = SaleCategory.forSale
                );
            PermissionControlledRepresentationJournal SelectDialog = new PermissionControlledRepresentationJournal(new NomenclatureForSaleVM(nomenclatureFilter))
            {
                Mode       = JournalSelectMode.Multiple,
                ShowFilter = true
            };

            SelectDialog.CustomTabName("Номенклатура на продажу");
            SelectDialog.ObjectSelected += (s, ea) => {
                var selectedNodes = ea.GetNodes <NomenclatureForSaleVMNode>();
                if (!selectedNodes.Any())
                {
                    return;
                }
                foreach (var node in selectedNodes)
                {
                    Nomenclature n = UoWGeneric.GetById <Nomenclature>(node.Id);
                    if (n != null && !Entity.ObservableNomenclatures.Any(x => x == n))
                    {
                        Entity.ObservableNomenclatures.Add(n);
                    }
                }
            };
            TabParent.AddSlaveTab(this, SelectDialog);
        }
Exemple #25
0
        protected void InitPopupActions()
        {
            var callTaskWorker = new CallTaskWorker(
                CallTaskSingletonFactory.GetInstance(),
                _callTaskRepository,
                new OrderRepository(),
                new EmployeeRepository(),
                _baseParametersProvider,
                commonServices.UserService,
                ErrorReporter.Instance);

            PopupActionsList.Add(new JournalAction(
                                     "Закрытие МЛ",
                                     (selectedItems) => selectedItems.Any(x => _closingDlgStatuses.Contains((x as RouteListJournalNode).StatusEnum)),
                                     (selectedItems) => selectedItems.Any(x => _closingDlgStatuses.Contains((x as RouteListJournalNode).StatusEnum)),
                                     (selectedItems) =>
            {
                if (selectedItems.FirstOrDefault() is RouteListJournalNode selectedNode &&
                    _closingDlgStatuses.Contains(selectedNode.StatusEnum))
                {
                    TabParent.OpenTab(
                        DialogHelper.GenerateDialogHashName <RouteList>(selectedNode.Id),
                        () => new RouteListClosingDlg(selectedNode.Id, true)
                        );
                }
            }
Exemple #26
0
 private void OpenDocument()
 {
     TabParent.OpenTab(DialogHelper.GenerateDialogHashName(RepresentationModel.GetEntityType(tableview.GetSelectedObject()), 0),
                       () => RepresentationModel.GetOpenEntityDlg(tableview.GetSelectedObject()),
                       this
                       );
 }
Exemple #27
0
        protected void OnButtonAddClicked(object sender, EventArgs e)
        {
            var nomenclatureSelector = _nomenclatureSelectorFactory.CreateNomenclatureSelector();

            nomenclatureSelector.OnEntitySelectedResult += NomenclatureSelectorOnEntitySelectedResult;
            TabParent.AddSlaveTab(this, nomenclatureSelector);
        }
Exemple #28
0
		protected void OnButtonFillClicked (object sender, EventArgs e)
		{
			OrmReference SelectDialog = new OrmReference (typeof(ProductSpecification), UoWGeneric);
			SelectDialog.Mode = OrmReferenceMode.Select;
			SelectDialog.ObjectSelected += SelectDialog_ObjectSelected;

			TabParent.AddSlaveTab (this, SelectDialog);
		}
        protected void OnButtonAddEnumItemClicked(object sender, QS.Widgets.EnumItemClickedEventArgs e)
        {
            ProxyDocumentType type = (ProxyDocumentType)e.ItemEnum;
            var dlg = OrmMain.CreateObjectDialog(ProxyDocument.GetProxyDocumentClass(type));

            dlg.EntitySaved += Dlg_EntitySaved;
            TabParent.AddSlaveTab(this, dlg);
        }
Exemple #30
0
        protected void OnButtonAddDeliveryPointsClicked(object sender, EventArgs e)
        {
            var dlg = new PermissionControlledRepresentationJournal(new ViewModel.ClientDeliveryPointsVM(UoW, Entity.Counterparty));

            dlg.Mode            = JournalSelectMode.Multiple;
            dlg.ObjectSelected += Dlg_ObjectSelected;
            TabParent.AddSlaveTab(this, dlg);
        }