protected void OnButtonAddClicked(object sender, EventArgs e) { var subdivisionNode = treeviewSubdivisions.GetSelectedObject() as SubdivisionVMNode; if (subdivisionNode == null) { return; } var subdivision = UoW.GetById <Subdivision>(subdivisionNode.Id); var typeOfEntity = ytreeviewEntities.GetSelectedObject() as TypeOfEntity; if (subdivision == null || typeOfEntity == null) { return; } if (subdivision == employeeSubdivision) { MessageDialogHelper.RunWarningDialog("Нельзя добавлять данный вид прав для текущего подразделения сотрудника"); return; } if (model.PermissionExists(typeOfEntity, subdivision)) { MessageDialogHelper.RunWarningDialog("Такое право уже существует"); return; } model.AddPermission(typeOfEntity, subdivision); }
public LoadFrom1cClientsAndDeliveryPoints() { if (!ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("database_maintenance")) { MessageDialogHelper.RunWarningDialog("Доступ запрещён!", "У вас недостаточно прав для доступа к этой вкладке. Обратитесь к своему руководителю.", Gtk.ButtonsType.Ok); FailInitialize = true; return; } throw new ApplicationException("Сюда сейчас нельзя."); //Counterparty.VodInternalId генерируется тригером на стороне БД. Исправить соответствующий код ниже. this.Build(); TabName = "Загрузка из 1с"; FileFilter Filter = new FileFilter(); Filter.Name = "XML выгрузка"; Filter.AddMimeType("application/xml"); Filter.AddPattern("*.xml"); filechooser.Filter = Filter; nomStroika = UoW.GetById <Nomenclature>(15); nomRuchki = UoW.GetById <Nomenclature>(7); errorLog.Add(string.Format("Статус;Код1с контрагента;Код1с точки доставки;Причина")); }
public ExportToSiteDlg() { if (!ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("database_maintenance")) { MessageDialogHelper.RunWarningDialog("Доступ запрещён!", "У вас недостаточно прав для доступа к этой вкладке. Обратитесь к своему руководителю.", Gtk.ButtonsType.Ok); FailInitialize = true; return; } Build(); TabName = "Экспорт интернет магазин"; comboExportMode.ItemsEnum = typeof(ExportMode); if (_parametersProvider.ContainsParameter(Export.OnlineStoreUrlParameterName)) { entrySitePath.Text = _parametersProvider.GetParameterValue(Export.OnlineStoreUrlParameterName); } if (_parametersProvider.ContainsParameter(Export.OnlineStoreLoginParameterName)) { entryUser.Text = _parametersProvider.GetParameterValue(Export.OnlineStoreLoginParameterName); } if (_parametersProvider.ContainsParameter(Export.OnlineStorePasswordParameterName)) { entryPassword.Text = _parametersProvider.GetParameterValue(Export.OnlineStorePasswordParameterName); } if (_parametersProvider.ContainsParameter(Export.OnlineStoreExportMode)) { comboExportMode.SelectedItem = Enum.Parse(typeof(ExportMode), _parametersProvider.GetParameterValue(Export.OnlineStoreExportMode)); } }
protected void OnButtonDeleteClicked(object sender, EventArgs e) { if (!CanDelete) { MessageDialogHelper.RunWarningDialog("У вас нет прав для удаления этого документа."); return; } var toDelete = ytreeviewRef.GetSelectedObjects(); var text = NumberToTextRus.FormatCase(toDelete.Length, "Вы собираетесь удалить {0} объект, вам нужно будет проверить ссылки для каждого из них. Продолжить?", "Вы собираетесь удалить {0} объекта, вам нужно будет проверить ссылки для каждого из них. Продолжить?", "Вы собираетесь удалить {0} объектов, вам нужно будет проверить ссылки для каждого из них. Продолжить?"); if (toDelete.Length > 1 && !MessageDialogHelper.RunQuestionDialog(text)) { return; } foreach (var delete in toDelete) { OrmMain.DeleteObject(delete); } UpdateObjectList(); }
private void SendReport(string logContent, ErrorReportType reportType) { var svc = ReportWorker.GetReportService(); if (svc == null) { MessageDialogHelper.RunErrorDialog("Не удалось установить соединение с сервером Quality Solution."); return; } var result = svc.SubmitErrorReport( new ErrorReport { Product = application.ProductName, Edition = application.Modification, Version = application.Version.ToString(), DBName = databaseInfo?.Name ?? String.Empty, StackTrace = AppExceptionText, Description = textviewDescription.Buffer.Text, Email = entryEmail.Text, UserName = user?.Name, LogFile = logContent, ReportType = reportType }); if (result) { this.Respond(ResponseType.Ok); reportSent = true; } else { MessageDialogHelper.RunWarningDialog("Отправка сообщения не удалась.\n" + "Проверьте ваше интернет соединение и повторите попытку. Если отправка неудастся возможно имеются проблемы на стороне сервера."); } }
public MergeAddressesDlg() { if (!ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("database_maintenance")) { MessageDialogHelper.RunWarningDialog("Доступ запрещён!", "У вас недостаточно прав для доступа к этой вкладке. Обратитесь к своему руководителю.", Gtk.ButtonsType.Ok); FailInitialize = true; return; } this.Build(); TabName = "Дубликаты адресов"; ytreeviewDuplicates.ColumnsConfig = FluentColumnsConfig <DublicateNode> .Create() .AddColumn("Слить").AddToggleRenderer(x => x.Selected).Editing() .AddColumn("Контрагент").AddTextRenderer(x => x.CounterParty) .AddColumn("Адрес 1с").AddTextRenderer(x => x.FirstAddress1c) .Finish(); ytreeviewDuplicates.Selection.Changed += DuplicateSelection_Changed; ytreeviewAddresses.ColumnsConfig = FluentColumnsConfig <AddressNode> .Create() .AddColumn("Главный").AddToggleRenderer(x => x.IsMain).Editing().Radio() .AddColumn("Не трогать").AddToggleRenderer(x => x.Ignore).Editing() .AddColumn("Код 1С").AddTextRenderer(x => x.Address.Code1c) .AddColumn("Адрес 1с").AddTextRenderer(x => x.PangoText, useMarkup: true) .Finish(); }
void OnUpdate(bool hide = false) { if (dateperiodpicker.StartDateOrNull == null || dateperiodpicker.EndDateOrNull == null) { MessageDialogHelper.RunWarningDialog("Необходимо ввести полный период"); return; } LoadReport?.Invoke(this, new LoadReportEventArgs(GetReportInfo(), hide)); }
void OnUpdate(bool hide = false) { if (datepicker.DateOrNull == null) { MessageDialogHelper.RunWarningDialog("Необходимо выбрать дату"); return; } LoadReport?.Invoke(this, new LoadReportEventArgs(GetReportInfo(), hide)); }
private async void OnButtonFormClicked(object sender, EventArgs args) { bool loadedSuccessfully = false; try { ViewModel.DataIsLoading = true; ViewModel.StatusMessage = "Загрузка данных водителей..."; var items = await Task.Run(() => ViewModel.GetDriverInfoNodes()); loadedSuccessfully = true; if (!_isDestroyed) { Application.Invoke((s, eventArgs) => { if (ViewModel.DriversInfoExportType == DriversInfoExportType.RouteListGrouping) { ConfigureTreeViewForRouteListGrouping(ViewModel.IsPlan, ViewModel.IsFact); } else { ConfigureTreeViewForDriverCarGrouping(ViewModel.IsPlan, ViewModel.IsFact); } ViewModel.Items = new GenericObservableList <DriverInfoNode>(items.ToList()); }); } } catch (Exception ex) { if (ex.FindExceptionTypeInInner <TimeoutException>() != null) { Application.Invoke((s, eventArgs) => MessageDialogHelper.RunWarningDialog("Превышено время ожидания выполнения запроса.\nПопробуйте уменьшить период", "Таймаут")); } else { Application.Invoke((s, eventArgs) => throw ex); } } finally { if (!_isDestroyed) { Application.Invoke((s, eventArgs) => { ViewModel.DataIsLoading = false; ViewModel.StatusMessage = loadedSuccessfully ? "Данные загружены" : "Ошибка при загрузке данных"; }); } } }
protected void OnButtonCreateReportClicked(object sender, EventArgs e) { if (dateperiodpicker.StartDate != default(DateTime)) { OnUpdate(true); } else { MessageDialogHelper.RunWarningDialog("Заполните дату."); } }
protected void OnButtonRunClicked(object sender, EventArgs e) { var selectedTariffZone = yspeccomboboxTariffZone.SelectedItem as TariffZone; if (selectedTariffZone == null) { MessageDialogHelper.RunWarningDialog("Необходимо выбрать тарифную зону"); return; } OnUpdate(true); }
private void OnDatepickerDateDateChangedByUser(object sender, EventArgs e) { if (Entity.Date < DateTime.Today.AddDays(-1) && !_canСreateRoutelistInPastPeriod) { MessageDialogHelper.RunWarningDialog("Нельзя выставлять дату ранее вчерашнего дня!"); Entity.Date = _previousSelectedDate; } else { _previousSelectedDate = Entity.Date; } }
private void ConfigureDlg() { if (!ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("database_maintenance")) { MessageDialogHelper.RunWarningDialog("Доступ запрещён!", "У вас недостаточно прав для доступа к этой вкладке. Обратитесь к своему руководителю.", Gtk.ButtonsType.Ok); FailInitialize = true; return; } entryreference1.SubjectType = typeof(Nomenclature); entryreference2.SubjectType = typeof(Nomenclature); }
public void ConfigureDlg(IUnitOfWork uow, UserBase user) { var employee = _employeeRepository.GetEmployeesForUser(uow, user.Id).FirstOrDefault(); if (employee == null) { MessageDialogHelper.RunWarningDialog($"К пользователю \"{user.Name}\" не привязан сотрудник, невозможно будет установить права на подразделение для документов."); return; } if (employee.Subdivision == null) { MessageDialogHelper.RunWarningDialog($"Сотрудник \"{employee.ShortName}\" не привязан к подразделению, невозможно будет установить права на подразделение для документов."); return; } UoW = uow; employeeSubdivision = employee.Subdivision; this.user = user; model = new EntitySubdivisionForUserPermissionModel(UoW, employeeSubdivision, user); var subdivisionsVM = new SubdivisionsVM(UoW); treeviewSubdivisions.RepresentationModel = subdivisionsVM; treeviewSubdivisions.YTreeModel = new RecursiveTreeModel <SubdivisionVMNode>(subdivisionsVM.Result, x => x.Parent, x => x.Children); ytreeviewPermissions.ColumnsConfig = ColumnsConfigFactory.Create <EntitySubdivisionForUserPermission>() .AddColumn("Подразделение").AddTextRenderer(x => x.Subdivision.Name) .AddColumn("Документ").AddTextRenderer(x => x.TypeOfEntity.CustomName) .AddColumn("Просмотр").AddToggleRenderer(x => x.CanRead).Editing() .AddColumn("Создание").AddToggleRenderer(x => x.CanCreate).Editing() .AddColumn("Редактирование").AddToggleRenderer(x => x.CanUpdate).Editing() .AddColumn("Удаление").AddToggleRenderer(x => x.CanDelete).Editing() .Finish(); ytreeviewPermissions.ItemsDataSource = model.ObservablePermissionsList; ytreeviewEntities.ColumnsConfig = ColumnsConfigFactory.Create <TypeOfEntity>() .AddColumn("Документ").AddTextRenderer(x => x.CustomName) .Finish(); ytreeviewEntities.ItemsDataSource = model.ObservableTypeOfEntitiesList; searchSubdivisions.TextChanged += SearchSubdivisionsOnTextChanged; searchTypesOfEntities.TextChanged += SearchPermissionsOnTextChanged; treeviewSubdivisions.ExpandAll(); Sensitive = true; }
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); }
protected override void ConfigureWidget() { btnAddGuilty.Binding.AddBinding(ViewModel, vm => vm.CanAddGuilty, w => w.Visible).InitializeFromSource(); GuiltyItemView wGuiltyItem = null; btnAddGuilty.Clicked += (sender, e) => { ViewModel.AddGuiltyCommand.Execute(); CreateGuiltyWidget(ref wGuiltyItem); }; btnSaveGuilty.Binding.AddBinding(ViewModel, vm => vm.CanEditGuilty, w => w.Visible).InitializeFromSource(); btnSaveGuilty.Clicked += (sender, e) => { var err = ValidationHelper.RaiseValidationAndGetResult(ViewModel.CurrentGuiltyVM.Entity); if (err == null) { DestroyGuiltyWidget(wGuiltyItem); ViewModel.SaveGuiltyCommand.Execute(); } else { MessageDialogHelper.RunWarningDialog(err); } }; btnCancel.Binding.AddBinding(ViewModel, vm => vm.CanEditGuilty, w => w.Visible).InitializeFromSource(); btnCancel.Clicked += (sender, e) => { DestroyGuiltyWidget(wGuiltyItem); ViewModel.CancelCommand.Execute(); }; btnRemoveGuilty.Clicked += (sender, e) => ViewModel.RemoveGuiltyCommand.Execute(GetSelectedGuilty()); btnRemoveGuilty.Binding.AddBinding(ViewModel, vm => vm.CanAddGuilty, w => w.Visible).InitializeFromSource(); btnRemoveGuilty.Binding.AddBinding(ViewModel, vm => vm.CanRemoveGuilty, w => w.Sensitive).InitializeFromSource(); treeViewGuilty.ColumnsConfig = FluentColumnsConfig <ComplaintGuiltyItem> .Create() .AddColumn("Сторона") .HeaderAlignment(0.5f) .AddTextRenderer(n => n.GuiltyType.GetEnumShortTitle()) .AddColumn("Отдел ВВ") .HeaderAlignment(0.5f) .AddTextRenderer(n => n.GetGuiltySubdivisionOrEmployee) .AddColumn("") .Finish(); treeViewGuilty.HeadersVisible = false; treeViewGuilty.Binding.AddBinding(ViewModel.Entity, s => s.ObservableGuilties, w => w.ItemsDataSource).InitializeFromSource(); treeViewGuilty.Selection.Changed += (sender, e) => ViewModel.CanRemoveGuilty = GetSelectedGuilty() != null; }
protected void OnButtonRevertClicked(object sender, EventArgs e) { var toRevert = ytreeviewRLTo .GetSelectedObjects <RouteListItemNode>() .Where(x => x.WasTransfered) .Select(x => x.RouteListItem) .ToList(); foreach (var address in toRevert) { if (address.Status == RouteListItemStatus.Transfered) { MessageDialogHelper.RunWarningDialog(string.Format("Адрес {0} сам перенесен в МЛ №{1}. Отмена этого переноса не возможна. Сначала нужно отменить перенос в {1} МЛ.", address?.Order?.DeliveryPoint.ShortAddress, address.TransferedTo?.RouteList.Id)); continue; } RouteListItem pastPlace = (yentryreferenceRLFrom.Subject as RouteList) ?.Addresses ?.FirstOrDefault(x => x.TransferedTo != null && x.TransferedTo.Id == address.Id) ?? new RouteListItemRepository().GetTransferedFrom(UoW, address); if (pastPlace != null) { pastPlace.SetStatusWithoutOrderChange(address.Status); pastPlace.DriverBottlesReturned = address.DriverBottlesReturned; pastPlace.TransferedTo = null; if (pastPlace.RouteList.ClosingFilled) { pastPlace.FirstFillClosing(UoW, _wageParameterService); } UpdateTranferDocuments(pastPlace.RouteList, address.RouteList); UoW.Save(pastPlace); } address.RouteList.ObservableAddresses.Remove(address); UoW.Save(address.RouteList); } foreach (var routeListItem in toRevert) { routeListItem.RecalculateTotalCash(); } UoW.Commit(); UpdateNodes(); }
public DocumentsPrinterDlg(Order order) { this.Build(); TabName = "Печать документов заказа"; entitiyDocumentsPrinter = new EntitiyDocumentsPrinter(order); if (!string.IsNullOrEmpty(entitiyDocumentsPrinter.ODTTemplateNotFoundMessages)) { MessageDialogHelper.RunWarningDialog(entitiyDocumentsPrinter.ODTTemplateNotFoundMessages); } currentOrder = order; Configure(); }
public CalculateDistanceToPointsDlg() { if (!ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("database_maintenance")) { MessageDialogHelper.RunWarningDialog( "Доступ запрещён!", "У вас недостаточно прав для доступа к этой вкладке. Обратитесь к своему руководителю.", Gtk.ButtonsType.Ok ); FailInitialize = true; return; } this.Build(); TabName = "Расчет расстояний до точек"; uow.Session.SetBatchSize(SaveBy); }
protected void OnButtonRevertClicked(object sender, EventArgs e) { var toRevert = ytreeviewRLTo .GetSelectedObjects <RouteListItemNode>() .Where(x => x.WasTransfered) .Select(x => x.RouteListItem) .ToList(); foreach (var address in toRevert) { if (address.Status == RouteListItemStatus.Transfered) { MessageDialogHelper.RunWarningDialog(string.Format("Адрес {0} сам перенесен в МЛ №{1}. Отмена этого переноса не возможна. Сначала нужно отменить перенос в {1} МЛ.", address?.Order?.DeliveryPoint.ShortAddress, address.TransferedTo?.RouteList.Id)); continue; } RouteListItem pastPlace = (yentryreferenceRLFrom.Subject as RouteList) ?.Addresses ?.FirstOrDefault(x => x.TransferedTo != null && x.TransferedTo.Id == address.Id) ?? _routeListItemRepository.GetTransferedFrom(UoW, address); var previousRouteList = pastPlace?.RouteList; if (pastPlace != null) { previousRouteList.RevertTransferAddress(_wageParameterService, pastPlace, address); pastPlace.NeedToReload = address.NeedToReload; pastPlace.WasTransfered = true; UpdateTranferDocuments(pastPlace.RouteList, address.RouteList); pastPlace.RecalculateTotalCash(); UoW.Save(pastPlace); address.RouteList.TransferAddressTo(address, pastPlace); address.WasTransfered = false; } address.RouteList.CalculateWages(_wageParameterService); address.RecalculateTotalCash(); UoW.Save(address.RouteList); } UoW.Commit(); UpdateNodes(); }
protected void OnCheckNoCloseToggled(object sender, EventArgs e) { if (selectableAdvances == null) { return; } if (checkNoClose.Active && selectableAdvances.Count(x => x.Selected) > 1) { MessageDialogHelper.RunWarningDialog("Частично вернуть можно только один аванс."); checkNoClose.Active = false; return; } yspinMoney.Sensitive = checkNoClose.Active; if (!checkNoClose.Active) { yspinMoney.ValueAsDecimal = selectableAdvances.Where(x => x.Selected).Sum(x => x.Value.UnclosedMoney); } }
public void AddTime(TimeSpan time) { if (time == new TimeSpan()) { return; } if (Times.Count >= 12) { return; } if (Times.Any() && Times.Last().Value > time) { MessageDialogHelper.RunWarningDialog("Добавляемое время должно быть позже предыдущего"); return; } Times.Add(new Time(time)); UpdateButtonAddIntervalSensitive(); }
public DocumentsPrinterDlg(Order order, IEntityDocumentsPrinterFactory entityDocumentsPrinterFactory) { Build(); TabName = "Печать документов заказа"; _entityDocumentsPrinter = (entityDocumentsPrinterFactory ?? throw new ArgumentNullException(nameof(entityDocumentsPrinterFactory))) .CreateOrderDocumentsPrinter(order); if (!string.IsNullOrEmpty(_entityDocumentsPrinter.ODTTemplateNotFoundMessages)) { MessageDialogHelper.RunWarningDialog(_entityDocumentsPrinter.ODTTemplateNotFoundMessages); } _currentOrder = order; Configure(); }
private bool CheckPermissions() { if (UoW == null) { throw new ArgumentNullException($"Необходимо установить UnitOfWork для {nameof(PermissionCommentView)}"); } if (String.IsNullOrWhiteSpace(PermissionName)) { throw new ArgumentNullException($"Необходимо установить PermissionName для {nameof(PermissionCommentView)}"); } if (!ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_edit_cashier_review_comment")) { MessageDialogHelper.RunWarningDialog("У вас нет прав для изменения/создания комментария"); return(false); } return(true); }
public ExportTo1cDialog(IUnitOfWorkFactory unitOfWorkFactory) { Build(); TabName = "Выгрузка в 1с 8.3"; comboOrganization.ItemsList = unitOfWorkFactory.CreateWithoutRoot().GetAll <Organization>(); buttonExportBookkeeping.Clicked += (sender, args) => Export(Export1cMode.BuhgalteriaOOO); buttonExportIPTinkoff.Clicked += (sender, args) => Export(Export1cMode.IPForTinkoff); ybuttonExportBookkeepingNew.Clicked += (sender, args) => { if (comboOrganization.SelectedItem is Organization) { Export(Export1cMode.BuhgalteriaOOONew); } else { MessageDialogHelper.RunWarningDialog("Для этой выгрузки необходимо выбрать организацию"); } }; }
public OrdersWithoutBottlesOperationDlg() { if (!ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("database_maintenance")) { MessageDialogHelper.RunWarningDialog("Доступ запрещён!", "У вас недостаточно прав для доступа к этой вкладке. Обратитесь к своему руководителю.", Gtk.ButtonsType.Ok); FailInitialize = true; return; } this.Build(); TabName = "Заказы без передвижения бутылей"; ytreeviewOrders.ColumnsConfig = FluentColumnsConfig <Order> .Create() .AddColumn("№ заказа").AddNumericRenderer(x => x.Id) .AddColumn("Клиент").AddNumericRenderer(x => x.Client.Name) .AddColumn("Дата").SetDataProperty(x => x.DeliveryDate.HasValue ? x.DeliveryDate.Value.ToShortDateString() : "") .AddColumn("Кол-во бутылей").AddNumericRenderer(x => x.OrderItems.Sum(item => item.Count)) .Finish(); }
protected void OnButtonRecalculateMileageClicked(object sender, EventArgs e) { logger.Info("Рассчет длинны маршрута..."); RouteGeometryCalculator routeCalculator = new RouteGeometryCalculator(DistanceProvider.Osrm); var points = new List <long> { CachedDistance.BaseHash }; #region если нет координат хотя бы у одной точки доставки bool hasError = false; string ErMsg = "Пересчёт километража невозможен, т.к. не найдены координаты для следующих точек доставки:\n"; foreach (RouteListItem address in Entity.Addresses.Where(p => p.Order.DeliveryPoint.Latitude == null || p.Order.DeliveryPoint.Longitude == null)) { hasError = true; ErMsg += String.Format("\tЗаказ №{0} - {1}\n", address.Order.Id, address.Order.DeliveryPoint.ShortAddress); } ErMsg += "Перейдите в указанные точки доставки и добавьте (проверьте) их координаты."; if (hasError) { MessageDialogHelper.RunWarningDialog(ErMsg); return; } #endregion foreach (RouteListItem address in Entity.Addresses.OrderBy(x => x.StatusLastUpdate)) { if (address.Status == RouteListItemStatus.Completed) { points.Add(address.Order.DeliveryPoint.СoordinatesHash); } } points.Add(CachedDistance.BaseHash); var distance = (decimal)routeCalculator.GetRouteDistance(points.ToArray()); Entity.RecalculatedDistance = distance / 1000; logger.Info("Ок."); }
protected void OnButtonAddClicked(object sender, EventArgs e) { if (!CanCreate) { MessageDialogHelper.RunWarningDialog("У вас нет прав для создания этого документа."); return; } ytreeviewRef.Selection.UnselectAll(); if (OrmMain.GetObjectDescription(objectType).SimpleDialog) { SelectObject(EntityEditSimpleDialog.RunSimpleDialog(this.Toplevel as Window, objectType, null)); } else { var tab = TabParent.OpenTab(DialogHelper.GenerateDialogHashName(objectType, 0), () => OrmMain.CreateObjectDialog(objectType), this ); if (tab != null) { (tab as ITdiDialog).EntitySaved += NewItemDlg_EntitySaved; } } }
protected void OnBtnSendEnRouteClicked(object sender, EventArgs e) { #region костыль //FIXME пока не можем найти причину бага с несменой статуса на в пути при полной отгрузке, позволяем логистам отправлять МЛ в путь из этого диалога bool fullyLoaded = false; if (Entity.ShipIfCan(UoW, CallTaskWorker, out _)) { fullyLoaded = true; MessageDialogHelper.RunInfoDialog("Маршрутный лист отгружен полностью."); } #endregion if ( !fullyLoaded && ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_send_not_loaded_route_lists_en_route") && MessageDialogHelper.RunQuestionWithTitleDialog( "Оптправить в путь?", string.Format( "{0} погружен <span foreground=\"Red\">НЕ ПОЛНОСТЬЮ</span> и будет переведён в статус \"{1}\". После сохранения изменений откат этого действия будет невозможен.\nВы уверены что хотите отправить МЛ в путь?", Entity.Title, RouteListStatus.EnRoute.GetEnumTitle() ) ) ) { Entity.ChangeStatusAndCreateTask(RouteListStatus.EnRoute, CallTaskWorker); Entity.NotFullyLoaded = true; } else if (!fullyLoaded && !ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_send_not_loaded_route_lists_en_route")) { MessageDialogHelper.RunWarningDialog( "Недостаточно прав", string.Format("У вас нет прав для перевода не полностью погруженных МЛ в статус \"{0}\"", RouteListStatus.EnRoute.GetEnumTitle()), Gtk.ButtonsType.Ok ); } }
protected void OnButtonEditClicked(object sender, EventArgs e) { if (!CanEdit) { MessageDialogHelper.RunWarningDialog("У вас нет прав для редактирования этого документа."); return; } if (OrmMain.GetObjectDescription(objectType).SimpleDialog) { EntityEditSimpleDialog.RunSimpleDialog(this.Toplevel as Window, objectType, ytreeviewRef.GetSelectedObjects().First()); } else { var selected = ytreeviewRef.GetSelectedObjects(); var text = NumberToTextRus.FormatCase(selected.Length, "Вы действительно хотите открыть {0} вкладку?", "Вы действительно хотите открыть {0} вкладки?", "Вы действительно хотите открыть {0} вкладок?" ); if (selected.Length > 5 && !MessageDialogHelper.RunQuestionDialog(text)) { return; } foreach (var one in selected) { TabParent.OpenTab(DialogHelper.GenerateDialogHashName(objectType, DomainHelper.GetId(one)), () => OrmMain.CreateObjectDialog(objectType, one), this, canSlided: selected.Length == 1 ); } } }