void EnummenuRLActions_EnumItemClicked(object sender, EnumItemClickedEventArgs e) { switch ((RouteListActions)e.ItemEnum) { case RouteListActions.CreateNewFine: this.TabParent.AddSlaveTab( this, new FineDlg(default(decimal), Entity) ); break; case RouteListActions.TransferReceptionToAnotherRL: this.TabParent.AddSlaveTab( this, new TransferGoodsBetweenRLDlg(Entity, TransferGoodsBetweenRLDlg.OpenParameter.Sender) ); break; case RouteListActions.TransferReceptionToThisRL: this.TabParent.AddSlaveTab( this, new TransferGoodsBetweenRLDlg(Entity, TransferGoodsBetweenRLDlg.OpenParameter.Receiver) ); break; case RouteListActions.TransferAddressesToThisRL: if (UoW.HasChanges) { if (MessageDialogHelper.RunQuestionDialog("Необходимо сохранить документ.\nСохранить?")) { this.Save(); } else { return; } } this.TabParent.AddSlaveTab( this, new RouteListAddressesTransferringDlg(Entity, RouteListAddressesTransferringDlg.OpenParameter.Receiver) ); break; case RouteListActions.TransferAddressesToAnotherRL: if (UoW.HasChanges) { if (MessageDialogHelper.RunQuestionDialog("Необходимо сохранить документ.\nСохранить?")) { this.Save(); } else { return; } } this.TabParent.AddSlaveTab( this, new RouteListAddressesTransferringDlg(Entity, RouteListAddressesTransferringDlg.OpenParameter.Sender) ); break; default: break; } }
public static void CheckBanksUpdate(bool forceUpdate) { if (!forceUpdate) { dynamic parameters = new ParametersService(Connection.ConnectionDB); DateTime.TryParse(parameters.last_banks_update, out DateTime lastModified); int withoutUpdate = (int)DateTime.Now.Subtract(lastModified).TotalDays; if (withoutUpdate < UpdatePeriod) { return; } var runUpdate = MessageDialogHelper.RunQuestionDialog( lastModified == default(DateTime) ? "Справочник банков никогда не обновлялся. Обновить?" : NumberToTextRus.FormatCase( withoutUpdate, "Cправочник банков обновлялся\n{0} день назад. Обновить?", "Cправочник банков обновлялся\n{0} дня назад. Обновить?", "Cправочник банков обновлялся\n{0} дней назад. Обновить?")); if (!runUpdate) { return; } } BanksUpdateWindow updateWindow = new BanksUpdateWindow(); updateWindow.Show(); }
public bool AskToCloseTab(ITdiTab tab, CloseSource source) { if (MessageDialogHelper.RunQuestionDialog("Вы действительно хотите закрыть окно?")) { tab.OnTabClosed(); } return(true); }
protected void OnButtonChangeToEmployeeClicked(object sender, EventArgs e) { if (UoW.HasChanges || Entity.Id == 0) { if (!MessageDialogHelper.RunQuestionDialog("Для продолжения необходимо сохранить изменения, сохранить и продолжить?")) { return; } if (Save()) { OnEntitySaved(true); } else { return; } } var employeeUow = UnitOfWorkFactory.CreateWithNewRoot <Employee>(); Personnel.ChangeTraineeToEmployee(employeeUow, Entity); var cs = new ConfigurationSection(new ConfigurationRoot(new List <IConfigurationProvider> { new MemoryConfigurationProvider(new MemoryConfigurationSource()) }), ""); cs["BaseUri"] = "https://driverapi.vod.qsolution.ru:7090/api/"; var apiHelper = new ApiClientProvider.ApiClientProvider(cs); var driverApiRegisterEndpoint = new DriverApiUserRegisterEndpoint(apiHelper); var employeeViewModel = new EmployeeViewModel( _authorizationService, _employeeWageParametersFactory, _employeeJournalFactory, _subdivisionJournalFactory, _employeePostsJournalFactory, _cashDistributionCommonOrganisationProvider, _subdivisionService, _emailServiceSettingAdapter, _wageCalculationRepository, _employeeRepository, employeeUow, ServicesConfig.CommonServices, _validationContextFactory, _phonesViewModelFactory, _warehouseRepository, _routeListRepository, driverApiRegisterEndpoint, CurrentUserSettings.Settings, _userRepository, _baseParametersProvider, true); TabParent.OpenTab(DialogHelper.GenerateDialogHashName <Employee>(Entity.Id), () => employeeViewModel); OnCloseTab(false); }
public void OpenIssuenceSheet() { if (UoW.HasChanges) { if (!MessageDialogHelper.RunQuestionDialog("Сохранить документ выдачи перед открытием ведомости?") || !Save()) { return; } } MainClass.MainWin.NavigationManager.OpenViewModel <IssuanceSheetViewModel, IEntityUoWBuilder>(this, EntityUoWBuilder.ForOpen(Entity.IssuanceSheet.Id)); }
void dlg_EntitySaved(object sender, EntitySavedEventArgs e) { if (e.Entity != null && dialog.Mode == JournalSelectMode.Single) { if (!MessageDialogHelper.RunQuestionDialog("Выбрать созданный объект и вернуться к предыдущему диалогу?")) { return; } dialog.OnObjectSelected(e.Entity); } }
protected void OnButtonAcceptClicked(object sender, EventArgs e) { var casher = EmployeeRepository.GetEmployeeForCurrentUser(UoW); if (casher == null) { MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете закрыть МЛ, так как некого указывать в качестве кассира."); return; } if (!isConsistentWithUnloadDocument()) { return; } if (!checkSendToMileageCheck.Active) { Entity.ConfirmedDistance = Entity.ActualDistance; } var valid = new QSValidator <RouteList>(UoWGeneric.Root, new Dictionary <object, object> { { "NewStatus", RouteListStatus.MileageCheck } }); if (valid.RunDlgIfNotValid((Window)this.Toplevel)) { return; } if (advanceCheckbox.Active && advanceSpinbutton.Value > 0) { EmployeeAdvanceOrder((decimal)advanceSpinbutton.Value); } Entity.Cashier = casher; Entity.Confirm(checkSendToMileageCheck.Active); if (!MessageDialogHelper.RunQuestionDialog("Перед выходом распечатать документ?")) { SaveAndClose(); } else { Save(); PrintRouteList(); UpdateButtonState(); this.OnCloseTab(false); } }
/// <summary> /// Открытие существующего заказа /// </summary> /// <param name="order">Заказ, который требуется открыть</param> void OpenOrder(Order order) { if (MessageDialogHelper.RunQuestionDialog("Требуется сохранить недовоз. Сохранить?")) { UoW.Save(); UoW.Commit(); var dlg = new OrderDlg(order); MyTab.TabParent.OpenTab( DialogHelper.GenerateDialogHashName <Order>(order.Id), () => dlg ); } }
public override bool Save() { var all = _deliveryScheduleRepository.All(UoWGeneric); var notArchivedList = all.Where(ds => ds.IsArchive == false && ds.From == Entity.From && ds.To == Entity.To).ToList(); if (notArchivedList.Any() && UoWGeneric.Root.IsArchive == false) { //при архивировании интервала эти проверки не нужны //есть вероятность, что среди активных интервалов есть дубликаты, так что берем первый var active = notArchivedList.First(); MessageDialogHelper.RunWarningDialog("Уже существует интервал с таким же периодом.\n" + "Создание нового интервала невозможно.\n" + "Существующий интервал:\n" + $"Код: {active.Id}\n" + $"Название: {active.Name}\n" + $"Период: {active.DeliveryTime}\n"); return(false); // нашли активный } var archivedList = all.Where(ds => ds.IsArchive && ds.From == Entity.From && ds.To == Entity.To).ToList(); if (archivedList.Any() && UoWGeneric.Root.IsArchive == false) { //при архивировании интервала эти проверки не нужны //т.к. интервалы нельзя удалять, архивными могут быть несколько, так что берем первый var archived = archivedList.First(); if (MessageDialogHelper.RunQuestionDialog("Уже существует архивный интервал с таким же периодом.\n" + "Создание нового интервала невозможно.\n" + "Разархивировать существующий интервал?")) { //отменяем изменения текущей сущности интервала и обновляем найденный архивный UoWGeneric.Delete(UoWGeneric.Root); archived.IsArchive = false; UoWGeneric.Save(archived); UoWGeneric.Commit(); MessageDialogHelper.RunInfoDialog("Разархивирован интервал:\n" + $"Код: {archived.Id}\n" + $"Название: {archived.Name}\n" + $"Период: {archived.DeliveryTime}\n"); } return(false); // нашли/разархивировали старый } var valid = new QSValidator <DeliverySchedule> (UoWGeneric.Root); if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel)) { return(false); } logger.Info("Сохраняем график доставки..."); UoWGeneric.Save(); return(true); }
private void Configure() { ylabelCurrentDistrictsSetStr.Text = ViewModel.ActiveDistrictsSet?.Name ?? "-"; ylabelSelectedDistrictsSetStr.Text = ViewModel.Entity?.Name ?? ""; ybuttonActivate.Clicked += async(sender, args) => { if (!MessageDialogHelper.RunQuestionDialog($"Переключить базу на версию районов \"{ViewModel.Entity.Name}\"")) { return; } try { await ViewModel.ActivateAsync(); } catch (Exception ex) { Application.Invoke((s, e) => throw ex); } }; ytreePrioritiesToDelete.ColumnsConfig = ColumnsConfigFactory.Create <DriverDistrictPriority>() .AddColumn("Код").AddTextRenderer(x => x.Id.ToString()) .AddColumn("Водитель").AddTextRenderer(x => x.DriverDistrictPrioritySet.Driver.ShortName) .AddColumn("Старый район").AddTextRenderer(x => x.District.DistrictName) .AddColumn("") .Finish(); ViewModel.PropertyChanged += (sender, args) => { Application.Invoke((s, e) => { if (args.PropertyName == nameof(ViewModel.ActivationStatus)) { ylabelActivationStatus.Text = ViewModel.ActivationStatus; } if (args.PropertyName == nameof(ViewModel.ActivationInProgress) || args.PropertyName == nameof(ViewModel.WasActivated)) { ybuttonActivate.Sensitive = !ViewModel.ActivationInProgress && !ViewModel.WasActivated; } if (args.PropertyName == nameof(ViewModel.ActiveDistrictsSet)) { ylabelCurrentDistrictsSetStr.Text = ViewModel.ActiveDistrictsSet.Name; } if (args.PropertyName == nameof(ViewModel.NotCopiedPriorities)) { ytreePrioritiesToDelete.ItemsDataSource = ViewModel.NotCopiedPriorities; } }); }; }
protected void OnButtonEditCloseDeliveryCommentClicked(object sender, EventArgs e) { if (!CheckPermissions()) { return; } if (!MessageDialogHelper.RunQuestionDialog("Вы уверены что хотите изменить комментарий (преведущий комментарий будет удален)?")) { return; } Comment = String.Empty; CommentChanged?.Invoke(comment); }
public override bool Save() { if (!Entity.CanEdit) { return(false); } Entity.UpdateAlreadyLoaded(UoW, _routeListRepository); var valid = new QS.Validation.QSValidator <CarLoadDocument> (UoWGeneric.Root); if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel)) { return(false); } Entity.LastEditor = _employeeRepository.GetEmployeeForCurrentUser(UoW); Entity.LastEditedTime = DateTime.Now; if (Entity.LastEditor == null) { MessageDialogHelper.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика."); return(false); } if (Entity.Items.Any(x => x.Amount == 0)) { if (MessageDialogHelper.RunQuestionDialog("<span foreground=\"red\">В списке есть нулевые позиции. Убрать нулевые позиции перед сохранением?</span>")) { Entity.ClearItemsFromZero(); } } Entity.UpdateOperations(UoW); logger.Info("Сохраняем погрузочный талон..."); UoWGeneric.Save(); logger.Info("Меняем статус маршрутного листа..."); if (Entity.RouteList.ShipIfCan(UoW, CallTaskWorker)) { MessageDialogHelper.RunInfoDialog("Маршрутный лист отгружен полностью."); } UoW.Save(Entity.RouteList); UoW.Commit(); logger.Info("Ok."); return(true); }
protected void OnBtnChooseOrderClicked(object sender, EventArgs e) { var filter = new OrdersFilter(UnitOfWorkFactory.CreateWithoutRoot()); filter.SetAndRefilterAtOnce( x => x.RestrictCounterparty = oldOrder.Client, x => x.HideStatuses = new Enum[] { OrderStatus.WaitForPayment } ); Buttons buttons = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_delete") ? Buttons.All : (Buttons.Add | Buttons.Edit); PermissionControlledRepresentationJournal dlg = new PermissionControlledRepresentationJournal(new OrdersVM(filter), buttons) { Mode = JournalSelectMode.Single }; MyTab.TabParent.AddTab(dlg, MyTab, false); dlg.ObjectSelected += (s, ea) => { var selectedId = ea.GetSelectedIds().FirstOrDefault(); 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.OrderTotalSum == newOrder.OrderTotalSum) && MessageDialogHelper.RunQuestionDialog("Перенести на выбранный заказ Оплату по Карте?")) { newOrder.PaymentType = oldOrder.PaymentType; newOrder.OnlineOrder = oldOrder.OnlineOrder; newOrder.PaymentByCardFrom = oldOrder.PaymentByCardFrom; } }; }
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 override bool Save() { var valid = new QSValidator <RouteList>(Entity); if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel)) { return(false); } if (!ValidateOrders()) { return(false); } var messages = new List <string>(); if (Entity.FuelOperationHaveDiscrepancy()) { if (!MessageDialogHelper.RunQuestionDialog("Был изменен водитель или автомобиль, при сохранении МЛ баланс по топливу изменится с учетом этих изменений. Продолжить сохранение?")) { return(false); } } if (Entity.Status > RouteListStatus.OnClosing) { messages.AddRange(Entity.UpdateMovementOperations()); } UoW.Save(); if (messages.Any()) { MessageDialogHelper.RunInfoDialog(String.Format("Были выполнены следующие действия:\n*{0}", String.Join("\n*", messages))); } return(true); }
public override bool Save() { if (Entity.Status > RouteListStatus.OnClosing) { if (Entity.FuelOperationHaveDiscrepancy()) { if (!MessageDialogHelper.RunQuestionDialog("Был изменен водитель или автомобиль, при сохранении МЛ баланс по топливу изменится с учетом этих изменений. Продолжить сохранение?")) { return(false); } } Entity.UpdateFuelOperation(); } if (Entity.Status == RouteListStatus.Delivered) { Entity.ChangeStatusAndCreateTask(RouteListStatus.MileageCheck, CallTaskWorker); } UoWGeneric.Save(); return(true); }