public DeliveryPriceDlg() { this.Build(); TabName = "Рассчет стоимости доставки"; entryCity.CitySelected += (sender, e) => { entryBuilding.Text = string.Empty; entryStreet.CityId = entryCity.OsmId; entryStreet.Street = string.Empty; entryStreet.StreetDistrict = string.Empty; }; entryStreet.StreetSelected += (sender, e) => { entryBuilding.Street = new OsmStreet(-1, entryStreet.CityId, entryStreet.Street, entryStreet.StreetDistrict); }; entryBuilding.CompletionLoaded += EntryBuilding_Changed; entryBuilding.Changed += EntryBuilding_Changed; //Configure map MapWidget.MapProvider = GMapProviders.OpenStreetMap; MapWidget.Position = new PointLatLng(59.93900, 30.31646); MapWidget.MinZoom = 0; MapWidget.MaxZoom = 24; MapWidget.Zoom = 9; MapWidget.WidthRequest = 450; MapWidget.HasFrame = true; MapWidget.Overlays.Add(addressOverlay); deliverypriceview.OnError += (sender, e) => { MessageDialogWorks.RunErrorDialog(e); }; }
protected void OnButtonInsertFromBufferClicked(object sender, EventArgs e) { bool error = true; string booferCoordinates = clipboard.WaitForText(); string[] coordinates = booferCoordinates?.Split(','); if (coordinates?.Length == 2) { decimal lat, lng; bool goodLat = decimal.TryParse(coordinates[0].Trim(), NumberStyles.Float, CultureInfo.InvariantCulture, out lat); bool goodLon = decimal.TryParse(coordinates[1].Trim(), NumberStyles.Float, CultureInfo.InvariantCulture, out lng); SetCoordinates(lat, lng); if (goodLat && goodLon) { deliverypriceview.DeliveryPrice = DeliveryPriceCalculator.Calculate(latitude, longitude, yspinBottles.ValueAsInt); error = false; } } if (error) { MessageDialogWorks.RunErrorDialog( "Буфер обмена не содержит координат или содержит неправильные координаты"); } }
protected void OnButtonInsertFromBufferClicked(object sender, EventArgs e) { bool error = true; string booferCoordinates = clipboard.WaitForText(); string[] coordinates = booferCoordinates?.Split(','); if (coordinates?.Length == 2) { coordinates[0] = coordinates[0].Replace('.', ','); coordinates[1] = coordinates[1].Replace('.', ','); decimal latitude, longitude; bool goodLat = decimal.TryParse(coordinates[0].Trim(), out latitude); bool goodLon = decimal.TryParse(coordinates[1].Trim(), out longitude); if (goodLat && goodLon) { Entity.Latitude = latitude; Entity.Longitude = longitude; error = false; } } if (error) { MessageDialogWorks.RunErrorDialog( "Буфер обмена не содержит координат или содержит неправильные координаты"); } }
void EntryBuilding_Changed(object sender, EventArgs e) { if (entryBuilding.OsmCompletion.HasValue) { Entity.FoundOnOsm = entryBuilding.OsmCompletion.Value; decimal?latitude, longitude; entryBuilding.GetCoordinates(out longitude, out latitude); if (!Entity.ManualCoordinates || (Entity.ManualCoordinates && MessageDialogWorks.RunQuestionDialog("Координаты были установлены вручную, заменить их на коордитаты адреса?"))) { Entity.Latitude = latitude; Entity.Longitude = longitude; Entity.ManualCoordinates = false; } } if (entryBuilding.OsmHouse != null && !String.IsNullOrWhiteSpace(entryBuilding.OsmHouse.Name)) { labelHouseName.Visible = true; labelHouseName.LabelProp = entryBuilding.OsmHouse.Name; } else { labelHouseName.Visible = false; } }
protected void OnButtonCancelClicked(object sender, EventArgs e) { if (MessageDialogWorks.RunQuestionDialog("Выйти без сохранения?")) { this.Destroy(); } }
public override bool Save() { if (CheckWarehouseItems() == false) { MessageDialogWorks.RunErrorDialog("На складе не хватает материалов"); return(false); } var valid = new QSValidator <IncomingWater> (UoWGeneric.Root); if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel)) { return(false); } Entity.LastEditor = Repository.EmployeeRepository.GetEmployeeForCurrentUser(UoW); Entity.LastEditedTime = DateTime.Now; if (Entity.LastEditor == null) { MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика."); return(false); } logger.Info("Сохраняем документ производства..."); UoWGeneric.Save(); logger.Info("Ok."); return(true); }
protected void OnButtonFillWarehouseItemsClicked(object sender, EventArgs e) { if (DocumentUoW.Root.Items.Count > 0) { if (!MessageDialogWorks.RunQuestionDialog("Список будет очищен. Продолжить?")) { return; } } DocumentUoW.Root.FillFromRouteList(DocumentUoW, false); if (DocumentUoW.Root.Items.Any(i => i.Nomenclature.Warehouse == null)) { string str = ""; foreach (var nomenclarure in DocumentUoW.Root.Items.Where(i => i.Nomenclature.Warehouse == null)) { str = string.Join("\n", nomenclarure.Nomenclature.Name); } MessageDialogWorks.RunErrorWithSecondaryTextDialog("В МЛ есть номенклатура не привязанная к складу.", str); } DocumentUoW.Root.FillFromRouteList(DocumentUoW, true); DocumentUoW.Root.UpdateAlreadyLoaded(DocumentUoW); if (DocumentUoW.Root.Warehouse != null) { DocumentUoW.Root.UpdateStockAmount(DocumentUoW); UpdateAmounts(); } }
protected void OnButtonAddClicked(object sender, EventArgs e) { if (DocumentUoW.Root.FromWarehouse == null) { MessageDialogWorks.RunErrorDialog("Не добавлен склад отправителя."); return; } ITdiTab mytab = DialogHelper.FindParentTab(this); if (mytab == null) { logger.Warn("Родительская вкладка не найдена."); return; } var filter = new StockBalanceFilter(UnitOfWorkFactory.CreateWithoutRoot()); filter.SetAndRefilterAtOnce(x => x.RestrictWarehouse = DocumentUoW.Root.FromWarehouse); ReferenceRepresentation SelectDialog = new ReferenceRepresentation(new ViewModel.StockBalanceVM(filter)); SelectDialog.Mode = OrmReferenceMode.Select; SelectDialog.ButtonMode = ReferenceButtonMode.None; SelectDialog.ObjectSelected += NomenclatureSelected; mytab.TabParent.AddSlaveTab(mytab, SelectDialog); }
public override bool Save() { bool hasDuplicate = CheckDuplicate(); bool userAnswer = true; if (hasDuplicate) { userAnswer = MessageDialogWorks.RunQuestionDialog( "Контрагент с данным ИНН уже существует. Сохранить?"); } if (userAnswer) { Entity.UoW = UoW; var valid = new QSValidator <Counterparty>(UoWGeneric.Root); if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel)) { return(false); } logger.Info("Сохраняем контрагента..."); phonesView.SaveChanges(); emailsView.SaveChanges(); UoWGeneric.Save(); logger.Info("Ok."); return(true); } return(false); }
protected void OnButtonCreateBorderClicked(object sender, EventArgs e) { if (!creatingNewBorder) { creatingNewBorder = true; newBorderVertice = new List <PointLatLng>(); } else { if (MessageDialogWorks.RunQuestionDialog("Завершить задание границ района?")) { if (MessageDialogWorks.RunQuestionDialog("Сохранить новые границы района?")) { var closingPoint = newBorderVertice[0]; newBorderVertice.Add(closingPoint); currentBorderVertice = newBorderVertice; currentDistrict.DistrictBorder = gf.CreatePolygon(GetCoordinatesFromPoints()); } creatingNewBorder = false; ShowBorders(); ShowBorderVertice(currentBorderVertice); } } ControlsAccessibility(); }
public static void CheckBanksUpdate(bool forceUpdate) { if (!forceUpdate) { DateTime lastModified = new DateTime(); if (MainSupport.BaseParameters.All.ContainsKey("last_banks_update")) { lastModified = DateTime.Parse(MainSupport.BaseParameters.All["last_banks_update"]); } int withoutUpdate = (int)DateTime.Now.Subtract(lastModified).TotalDays; if (withoutUpdate < UpdatePeriod) { return; } var runUpdate = MessageDialogWorks.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 static void CheckBanksUpdate(bool forceUpdate) { if (!forceUpdate) { dynamic parameters = new ParametersService(QSMain.ConnectionDB); DateTime lastModified = parameters.last_banks_update ?? default(DateTime); int withoutUpdate = (int)DateTime.Now.Subtract(lastModified).TotalDays; if (withoutUpdate < UpdatePeriod) { return; } var runUpdate = MessageDialogWorks.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 override bool Save() { var messages = new List <string>(); var valid = new QSValidator <TransferOperationDocument>(UoWGeneric.Root); if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel)) { return(false); } Entity.LastEditor = Repository.EmployeeRepository.GetEmployeeForCurrentUser(UoW); Entity.TimeStamp = datepickerDate.Date; // Entity.LastEditedTime = DateTime.Now; if (Entity.LastEditor == null) { MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика."); return(false); } messages.AddRange(Entity.SaveOperations(UoWGeneric, (int)spinBottles.Value, (decimal)spinDepositsBottles.Value, (decimal)spinDepositsEquipment.Value)); logger.Info("Сохраняем документ переноса..."); UoWGeneric.Save(); logger.Info("Ok."); return(true); }
void ButtonSendErrorSendedEmails_Clicked(object sender, EventArgs e) { ManualEmailSender emailSender = new ManualEmailSender(); emailSender.ResendEmailWithErrorSendingStatus(datepicker1.Date); MessageDialogWorks.RunInfoDialog("Done"); }
public RouteListTrackDlg() { this.Build(); this.TabName = "Мониторинг"; yTreeViewDrivers.RepresentationModel = new ViewModel.WorkingDriversVM(uow); yTreeViewDrivers.RepresentationModel.UpdateNodes(); yTreeViewDrivers.Selection.Mode = Gtk.SelectionMode.Multiple; yTreeViewDrivers.Selection.Changed += OnSelectionChanged; buttonChat.Sensitive = false; currentEmployee = EmployeeRepository.GetEmployeeForCurrentUser(uow); if (currentEmployee == null) { MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к сотруднику. Чат не будет работать."); } else { if (!ChatCallbackObservable.IsInitiated) { ChatCallbackObservable.CreateInstance(currentEmployee.Id); } ChatCallbackObservable.GetInstance().AddObserver(this); } //Configure map gmapWidget.MapProvider = GMapProviders.OpenStreetMap; gmapWidget.Position = new PointLatLng(59.93900, 30.31646); gmapWidget.HeightRequest = 150; //MapWidget.HasFrame = true; gmapWidget.Overlays.Add(carsOverlay); gmapWidget.Overlays.Add(tracksOverlay); gmapWidget.ExposeEvent += GmapWidget_ExposeEvent; UpdateCarPosition(); timerId = GLib.Timeout.Add(carRefreshInterval, new GLib.TimeoutHandler(UpdateCarPosition)); yenumcomboMapType.ItemsEnum = typeof(MapProviders); }
public static void ShowExceptionMessage(Exception ex) { var staleObjectStateException = ex as StaleObjectStateException; if (staleObjectStateException == null) { return; } var type = OrmConfig.FindMappingByShortClassName(staleObjectStateException.EntityName).EntityPersisterClass; var objectName = DomainHelper.GetSubjectNames(type); string message; switch (objectName.Gender) { case GrammaticalGender.Feminine: message = "Сохраняемая <b>{0}</b> c номером <b>{1}</b> была кем то изменена."; break; case GrammaticalGender.Neuter: message = "Сохраняемое <b>{0}</b> c номером <b>{1}</b> было кем то изменено."; break; case GrammaticalGender.Masculine: default: message = "Сохраняемый <b>{0}</b> c номером <b>{1}</b> был кем то изменен."; break; } message = String.Format(message + "\nВаши изменения не будут записаны, чтобы не потерять чужие изменения. \nПереоткройте вкладку.", objectName?.Nominative ?? type.Name, staleObjectStateException.Identifier); MessageDialogWorks.RunErrorDialog(message); }
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); } }
void SelectTemplate_ObjectSelected(object sender, OrmReferenceObjectSectedEventArgs e) { if (DocumentUoW.Root.Items.Count > 0) { if (MessageDialogWorks.RunQuestionDialog("Текущий список будет очищен. Продолжить?")) { DocumentUoW.Root.ObservableItems.Clear(); } else { return; } } var template = DocumentUoW.GetById <RegradingOfGoodsTemplate>((e.Subject as RegradingOfGoodsTemplate).Id); foreach (var item in template.Items) { DocumentUoW.Root.AddItem(new RegradingOfGoodsDocumentItem() { NomenclatureNew = item.NomenclatureNew, NomenclatureOld = item.NomenclatureOld }); } LoadStock(); }
protected void OnButtonRecalculateToBaseClicked(object sender, EventArgs e) { var track = Vodovoz.Repository.Logistics.TrackRepository.GetTrackForRouteList(UoW, routeList.Id); var response = track.CalculateDistanceToBase(); UoW.Save(track); UoW.Commit(); UpdateDistanceLabel(); trackToBaseOverlay.Clear(); var decodedPoints = Polyline.DecodePolyline(response.RouteGeometry); var points = decodedPoints.Select(p => new PointLatLng(p.Latitude * 0.1, p.Longitude * 0.1)).ToList(); var route = new GMapRoute(points, "RouteToBase"); route.Stroke = new System.Drawing.Pen(System.Drawing.Color.Blue); route.Stroke.Width = 4; route.Stroke.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; tracksDistance.Add(MakeDistanceLayout(route)); trackToBaseOverlay.Routes.Add(route); buttonRecalculateToBase.Sensitive = false; MessageDialogWorks.RunInfoDialog(String.Format("Расстояние от {0} до склада {1} км. Время в пути {2}.", response.RouteSummary.StartPoint, response.RouteSummary.TotalDistanceKm, response.RouteSummary.TotalTime )); }
protected void OnButtonOkClicked(object sender, EventArgs e) { foreach (var emp in listEmployees) { if ((emp.FirstName == "" && emp.LastName == "" && emp.Patronymic == "") || (emp.FirstName == "-" && emp.LastName == "-" && emp.Patronymic == "-")) { MessageDialogWorks.RunWarningDialog($"В списке присутствуют пустые строки. \n Сохранение невозможно."); return; } } foreach (var emp in listEmployees) { if (emp.Id == 0) { StatusEmployee st = listStatusEmployee.FirstOrDefault(x => x.Code == 1); listNewEmployeeStatusHistory.Add(new EmployeeStatusHistory(emp, st)); } UoW.Save(emp); } foreach (var stHis in listNewEmployeeStatusHistory) { UoW.Save(stHis); } UoW.Commit(); this.Destroy(); }
protected void OnButtonCreateReportClicked(object sender, EventArgs e) { string errorString = string.Empty; if (radioDriver.Active && (dateperiodpicker.StartDateOrNull == null || evmeDriver.Subject == null)) { errorString += "Не заполнена дата\n Не заполнен водитель\n"; } if (radioCar.Active && (dateperiodpicker.StartDateOrNull == null | entityviewmodelentryCar.Subject == null)) { errorString += "Не заполнена дата\n Не заполнен автомобиль\n"; } if (radioSumm.Active && dateperiodpicker.StartDateOrNull == null) { errorString += "Не заполнена дата\n"; } if (!string.IsNullOrWhiteSpace(errorString)) { MessageDialogWorks.RunErrorDialog(errorString); return; } OnUpdate(true); }
public override bool Save() { if (!UpdateReceivedItemsOnEntity()) { return(false); } var valid = new QSValidation.QSValidator <CarUnloadDocument>(UoWGeneric.Root); if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel)) { return(false); } Entity.LastEditor = Repository.EmployeeRepository.GetEmployeeForCurrentUser(UoW); Entity.LastEditedTime = DateTime.Now; if (Entity.LastEditor == null) { MessageDialogWorks.RunErrorDialog("Ваш пользователь не привязан к действующему сотруднику, вы не можете изменять складские документы, так как некого указывать в качестве кладовщика."); return(false); } logger.Info("Сохраняем разгрузочный талон..."); UoWGeneric.Save(); logger.Info("Ok."); return(true); }
public void UpdateNodes() { List <string> emptyDP = new List <string>(); items = new List <RouteListKeepingItemNode>(); foreach (var item in Entity.Addresses) { items.Add(new RouteListKeepingItemNode { RouteListItem = item }); if (item.Order.DeliveryPoint == null) { emptyDP.Add(string.Format( "Для заказа {0} не определена точка доставки.", item.Order.Id)); } } if (emptyDP.Count > 0) { string message = string.Join(Environment.NewLine, emptyDP); message += Environment.NewLine + "Необходимо добавить точки доставки или сохранить вышеуказанные заказы снова."; MessageDialogWorks.RunErrorDialog(message); FailInitialize = true; return; } items.ForEach(i => i.StatusChanged += RLI_StatusChanged); ytreeviewAddresses.ItemsDataSource = new GenericObservableList <RouteListKeepingItemNode>(items); }
protected void OnButtonAddClicked(object sender, EventArgs e) { if (!String.IsNullOrWhiteSpace(textComment.Buffer.Text) || MessageDialogWorks.RunQuestionDialog("Вы не заполнили комментарий. Продолжить?")) { ServiceClaimStatus newStatus = (ServiceClaimStatus)(enumStatusEditable.SelectedItem ?? UoWGeneric.Root.Status); UoWGeneric.Root.AddHistoryRecord(newStatus, textComment.Buffer.Text, _employeeRepository); } }
protected void OnButtonAddClicked (object sender, EventArgs e) { if (KeyExists ("new_parameter")) { MessageDialogWorks.RunWarningDialog ("Параметр с таким названием уже существует."); return; } parametersListStore.AppendValues ("new_parameter", "new_value"); }
public PriceLoadDlg(string filePath) { this.Build(); TabName = "Загрузка прайса (Шаг 1)"; try { using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { wb = new XSSFWorkbook(fs); } }catch (IOException ex) { if (ex.HResult == -2147024864) { MessageDialogWorks.RunErrorDialog("Указанный файл уже открыт в другом приложении. Оно заблокировало доступ к файлу."); FailInitialize = true; return; } throw ex; } var sheets = new List <string>(); for (int s = 0; s < wb.NumberOfSheets; s++) { sheets.Add(wb.GetSheetName(s)); } comboSheet.ItemsList = sheets; ytreeviewSetColumns.EnableGridLines = Gtk.TreeViewGridLines.Both; ytreeviewSetColumns.HeadersClickable = true; SetColumnTypeMenu = GtkMenuHelper.GenerateMenuFromEnum <ReadingXLSRow.ColumnType>(OnSetColumnHeaderMenuSelected); notebook1.ShowTabs = false; //Вкладка второго экрана ytreeviewParsing.ColumnsConfig = ColumnsConfigFactory.Create <ReadingXLSRow>() .AddColumn("Статус").Resizable().AddTextRenderer(x => x.Status.GetEnumTitle()) .AddSetter((w, x) => w.Foreground = GetColorByStatus(x.Status)) .AddColumn("Тип").Resizable().SetDataProperty(node => node.DispalyType) .AddColumn("Диаметр").Resizable().SetDataProperty(node => node.DispalyDiameter) .AddColumn("Давление").Resizable().SetDataProperty(node => node.DispalyPressure) .AddColumn("Cоединения").Resizable().SetDataProperty(node => node.DispalyConnection) .AddColumn("Материал").Resizable().SetDataProperty(node => node.DispalyMaterial) .AddColumn("Артикул").Resizable().SetDataProperty(node => node.DispalyModel) .AddColumn("Цена").Resizable().AddNumericRenderer(x => x.Price) .AddSetter((w, x) => w.Background = x.Price.HasValue ? "white" : "red") .AddColumn("DN(XLS)").Resizable().AddTextRenderer(x => x.DNText).Background("White Smoke") .AddColumn("PN(XLS)").Resizable().AddTextRenderer(x => x.PNText).Background("White Smoke") .AddColumn("Модель(XLS)").Resizable().AddTextRenderer(x => x.ModelText).Background("White Smoke") .AddColumn("Цена(XLS)").Resizable().AddTextRenderer(x => x.PriceText).Background("White Smoke") .Finish(); ytreeviewParsing.EnableGridLines = TreeViewGridLines.Both; ytreeviewParsing.Selection.Mode = SelectionMode.Multiple; ytreeviewParsing.Selection.Changed += YtreeviewParsing_Selection_Changed; comboCurrency.ItemsEnum = typeof(PriceСurrency); }
protected void OnButtonCreateReportClicked(object sender, EventArgs e) { if (dateperiodpicker.StartDateOrNull == null) { MessageDialogWorks.RunErrorDialog("Необходимо выбрать дату"); return; } OnUpdate(true); }
void KeyEdited (object o, EditedArgs args) { TreeIter iter; if (KeyExists (args.NewText)) { MessageDialogWorks.RunWarningDialog ("Параметр с таким названием уже существует."); return; } parametersListStore.GetIter (out iter, new TreePath (args.Path)); parametersListStore.SetValue (iter, 0, args.NewText); }
protected void OnButtonRefreshClicked(object sender, EventArgs e) { bool hasChanges = items.Count(item => item.HasChanged) > 0; if (!hasChanges || MessageDialogWorks.RunQuestionDialog("Вы действительно хотите обновить список заказов? Внесенные изменения будут утрачены.")) { UoWGeneric.Session.Refresh(Entity); UpdateNodes(); } }
private bool GetAuthor(out Employee cashier) { cashier = EmployeeRepository.GetEmployeeForCurrentUser(UoW); if (cashier == null) { MessageDialogWorks.RunErrorDialog( "Ваш пользователь не привязан к действующему сотруднику."); return(false); } return(true); }