public ITdiTab CreateReadOnlyOrderDlg(int orderId) { var dlg = new OrderDlg(orderId); dlg.HasChanges = false; dlg.SetDlgToReadOnly(); return(dlg); }
void CreateOrder() { var employee = _employeeRepository.GetEmployeeForCurrentUser(UoWGeneric); var order = Order.CreateFromServiceClaim(Entity, employee); UoWGeneric.Save(order); UoWGeneric.Commit(); var orderDlg = new OrderDlg(order); TabParent.AddTab(orderDlg, this); }
void YtreeviewAddresses_RowActivated(object o, RowActivatedArgs args) { selectedItem = ytreeviewAddresses.GetSelectedObjects <RouteListKeepingItemNode>().FirstOrDefault(); if (selectedItem != null) { var dlg = new OrderDlg(selectedItem.RouteListItem.Order); dlg.UoWGeneric.CanCheckIfDirty = false; dlg.HasChanges = false; dlg.SetDlgToReadOnly(); OpenSlaveTab(dlg); } }
protected void OnOpenOrder(object sender, EventArgs arg) { CalendarItem item = (CalendarItem)sender; OrderDlg OrderWin = new OrderDlg(item.id); OrderWin.Show(); if ((ResponseType)OrderWin.Run() == ResponseType.Ok) { item.Calendar.RefreshOrders(); } OrderWin.Destroy(); }
/// <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 ); } }
protected void OnNewOrder(object sender, NewOrderEventArgs arg) { OrderDlg OrderWin = new OrderDlg(arg.PointNumber, arg.CalendarNumber, arg.OrderType, arg.Date, arg.Hour); OrderWin.Show(); int result = OrderWin.Run(); if (result == (int)ResponseType.Ok) { ((OrdersCalendar)sender).RefreshOrders(); } OrderWin.Destroy(); }
protected void OnButtonCreateOrderClicked(object sender, EventArgs e) { if (Entity.DeliveryPoint == null) { return; } OrderDlg orderDlg = new OrderDlg(); orderDlg.Entity.Client = orderDlg.UoW.GetById <Counterparty>(Entity.Counterparty.Id); orderDlg.Entity.UpdateClientDefaultParam(UoW, counterpartyContractRepository, organizationProvider, counterpartyContractFactory); orderDlg.Entity.DeliveryPoint = orderDlg.UoW.GetById <DeliveryPoint>(Entity.DeliveryPoint.Id); orderDlg.CallTaskWorker.TaskCreationInteractive = new GtkTaskCreationInteractive(); TabParent.AddTab(orderDlg, this); }
public void ConfigureMenu() { menuItems = new Dictionary <PopupMenuAction, MenuItem>(); menu = new Menu(); Clipboard clipboard = Clipboard.Get(Gdk.Atom.Intern("CLIPBOARD", false)); var copy = new MenuItem(PopupMenuAction.CopyCell.GetEnumTitle()); menuItems.Add(PopupMenuAction.CopyCell, copy); copy.Activated += (s, args) => { if (!String.IsNullOrWhiteSpace(textToCopy)) { clipboard.Text = textToCopy; } }; copy.Visible = false; var openReturns = new MenuItem(PopupMenuAction.OpenUndeliveries.GetEnumTitle()); openReturns.Activated += (s, args) => OnClosingItemActivated(this, null); menuItems.Add(PopupMenuAction.OpenUndeliveries, openReturns); var openOrder = new MenuItem(PopupMenuAction.OpenOrder.GetEnumTitle()); openOrder.Activated += (s, args) => { var dlg = new OrderDlg(GetSelectedRouteListItem().Order); dlg.Show(); MyTab.TabParent.AddTab(dlg, MyTab); }; menuItems.Add(PopupMenuAction.OpenOrder, openOrder); foreach (var item in menuItems) { menu.Append(item.Value); item.Value.Show(); } }
/// <summary> /// Создаёт новый заказ, копируя поля существующего. /// </summary> /// <param name="order">Заказ, из которого копируются свойства.</param> void CreateNewOrder(Order order) { var dlg = new OrderDlg(); dlg.CopyOrderFrom(order.Id); MyTab.TabParent.OpenTab( DialogHelper.GenerateDialogHashName <Order>(dlg.Entity.Id), () => dlg ); dlg.TabClosed += (sender, e) => { if (sender is OrderDlg) { Order o = (sender as OrderDlg).Entity; if (o.Id > 0) { newOrder = undelivery.NewOrder = o; SetLabelsAcordingToNewOrder(); undelivery.NewDeliverySchedule = newOrder.DeliverySchedule; } } }; }
protected override void CreatePopupActions() { bool IsOrder(object[] objs) { var selectedNodes = objs.Cast <RetailOrderJournalNode>(); if (selectedNodes.Count() != 1) { return(false); } return(selectedNodes.FirstOrDefault().EntityType == typeof(VodovozOrder)); } PopupActionsList.Add( new JournalAction( "Перейти в маршрутный лист", selectedItems => selectedItems.Any( x => AccessRouteListKeeping((x as RetailOrderJournalNode).Id)) && IsOrder(selectedItems), selectedItems => true, (selectedItems) => { var selectedNodes = selectedItems.Cast <RetailOrderJournalNode>(); var addresses = UoW.Session.QueryOver <RouteListItem>() .Where(x => x.Order.Id.IsIn(selectedNodes.Select(n => n.Id).ToArray())).List(); var routes = addresses.GroupBy(x => x.RouteList.Id); var tdiMain = MainClass.MainWin.TdiMain; foreach (var route in routes) { tdiMain.OpenTab( DialogHelper.GenerateDialogHashName <RouteList>(route.Key), () => new RouteListKeepingDlg(route.Key, route.Select(x => x.Order.Id).ToArray()) ); } } ) ); PopupActionsList.Add( new JournalAction( "Перейти в недовоз", (selectedItems) => selectedItems.Any( o => _undeliveredOrdersRepository.GetListOfUndeliveriesForOrder( UoW, (o as RetailOrderJournalNode).Id).Any()) && IsOrder(selectedItems), selectedItems => true, (selectedItems) => { var selectedNodes = selectedItems.Cast <RetailOrderJournalNode>(); var order = UoW.GetById <VodovozOrder>(selectedNodes.FirstOrDefault().Id); var undeliveredOrdersFilter = new UndeliveredOrdersFilterViewModel( _commonServices, _orderSelectorFactory, _employeeJournalFactory, _counterpartyJournalFactory, _deliveryPointJournalFactory, _subdivisionJournalFactory) { HidenByDefault = true, RestrictOldOrder = order, RestrictOldOrderStartDate = order.DeliveryDate, RestrictOldOrderEndDate = order.DeliveryDate }; var dlg = new UndeliveredOrdersJournalViewModel( undeliveredOrdersFilter, UnitOfWorkFactory, _commonServices, _gtkDialogsOpener, _employeeJournalFactory, _employeeService, _undeliveredOrdersJournalOpener, _orderSelectorFactory, _undeliveredOrdersRepository ); MainClass.MainWin.TdiMain.AddTab(dlg); } ) ); PopupActionsList.Add( new JournalAction( "Открыть диалог закрытия", (selectedItems) => selectedItems.Any( x => AccessToRouteListClosing((x as RetailOrderJournalNode).Id)) && IsOrder(selectedItems), selectedItems => true, (selectedItems) => { var selectedNodes = selectedItems.Cast <RetailOrderJournalNode>(); var routeListIds = selectedNodes.Select(x => x.Id).ToArray(); var addresses = UoW.Session.QueryOver <RouteListItem>() .Where(x => x.Order.Id.IsIn(routeListIds)).List(); var routes = addresses.GroupBy(x => x.RouteList.Id); var tdiMain = MainClass.MainWin.TdiMain; foreach (var rl in routes) { tdiMain.OpenTab( DialogHelper.GenerateDialogHashName <RouteList>(rl.Key), () => new RouteListClosingDlg(rl.Key) ); } } ) ); PopupActionsList.Add( new JournalAction( "Открыть на Yandex картах(координаты)", IsOrder, selectedItems => true, (selectedItems) => { var selectedNodes = selectedItems.Cast <RetailOrderJournalNode>(); foreach (var sel in selectedNodes) { var order = UoW.GetById <VodovozOrder>(sel.Id); if (order.DeliveryPoint == null || order.DeliveryPoint.Latitude == null || order.DeliveryPoint.Longitude == null) { continue; } System.Diagnostics.Process.Start( string.Format( CultureInfo.InvariantCulture, "https://maps.yandex.ru/?ll={0},{1}&z=17", order.DeliveryPoint.Longitude, order.DeliveryPoint.Latitude ) ); } } ) ); PopupActionsList.Add( new JournalAction( "Открыть на Yandex картах(адрес)", IsOrder, selectedItems => true, (selectedItems) => { var selectedNodes = selectedItems.Cast <RetailOrderJournalNode>(); foreach (var sel in selectedNodes) { var order = UoW.GetById <VodovozOrder>(sel.Id); if (order.DeliveryPoint == null) { continue; } System.Diagnostics.Process.Start( string.Format(CultureInfo.InvariantCulture, "https://maps.yandex.ru/?text={0} {1} {2}", order.DeliveryPoint.City, order.DeliveryPoint.Street, order.DeliveryPoint.Building ) ); } } ) ); PopupActionsList.Add( new JournalAction( "Открыть на карте OSM", IsOrder, selectedItems => true, (selectedItems) => { var selectedNodes = selectedItems.Cast <RetailOrderJournalNode>(); foreach (var sel in selectedNodes) { var order = UoW.GetById <VodovozOrder>(sel.Id); if (order.DeliveryPoint == null || order.DeliveryPoint.Latitude == null || order.DeliveryPoint.Longitude == null) { continue; } System.Diagnostics.Process.Start(string.Format(CultureInfo.InvariantCulture, "http://www.openstreetmap.org/#map=17/{1}/{0}", order.DeliveryPoint.Longitude, order.DeliveryPoint.Latitude)); } } ) ); PopupActionsList.Add( new JournalAction( "Повторить заказ", IsOrder, selectedItems => true, (selectedItems) => { var selectedNodes = selectedItems.Cast <RetailOrderJournalNode>(); var order = UoW.GetById <VodovozOrder>(selectedNodes.FirstOrDefault().Id); var dlg = new OrderDlg(); dlg.CopyLesserOrderFrom(order.Id); var tdiMain = MainClass.MainWin.TdiMain; tdiMain.OpenTab( DialogHelper.GenerateDialogHashName <Domain.Orders.Order>(65656), () => dlg ); } ) ); }
public void MenuFinalOrderActivated(object sender, EventArgs args) { var orderDlg = new OrderDlg(Entity.FinalOrder); TabParent.AddTab(orderDlg, this); }
void GmapWidget_ButtonPressEvent(object o, ButtonPressEventArgs args) { if (args.Event.Button == 1) { bool markerIsSelect = false; if (args.Event.State.HasFlag(ModifierType.LockMask)) { foreach (var marker in addressesOverlay.Markers) { if (marker.IsMouseOver) { var markerUnderMouse = selectedMarkers .Where(m => m.Tag is Order) .FirstOrDefault(x => (x.Tag as Order).Id == (marker.Tag as Order)?.Id); if (markerUnderMouse == null) { selectedMarkers.Add(marker); logger.Debug("Маркер с заказом №{0} добавлен в список выделенных", (marker.Tag as Order)?.Id); } else { selectedMarkers.Remove(markerUnderMouse); logger.Debug("Маркер с заказом №{0} исключен из списка выделенных", (marker.Tag as Order)?.Id); } markerIsSelect = true; } } UpdateSelectedInfo(selectedMarkers); UpdateAddressesOnMap(); return; } if (!markerIsSelect) { selectedMarkers.Clear(); logger.Debug("Список выделенных маркеров очищен"); } UpdateAddressesOnMap(); if (poligonSelection) { GRect rect = new GRect((long)args.Event.X - 5, (long)args.Event.Y - 5, 10, 10); rect.OffsetNegative(gmapWidget.RenderOffset); dragSelectionPointId = brokenSelection.LocalPoints.FindIndex(rect.Contains); if (dragSelectionPointId != -1) { gmapWidget.DisableAltForSelection = false; return; } } if (args.Event.State.HasFlag(ModifierType.ControlMask)) { if (!poligonSelection) { poligonSelection = true; logger.Debug("Старт выделения через полигон."); var startPoint = gmapWidget.FromLocalToLatLng((int)args.Event.X, (int)args.Event.Y); brokenSelection = new GMapPolygon(new List <PointLatLng> { startPoint }, "Выделение"); gmapWidget.UpdatePolygonLocalPosition(brokenSelection); selectionOverlay.Polygons.Add(brokenSelection); } else { logger.Debug("Продолжили."); var newPoint = gmapWidget.FromLocalToLatLng((int)args.Event.X, (int)args.Event.Y); brokenSelection.Points.Add(newPoint); gmapWidget.UpdatePolygonLocalPosition(brokenSelection); } OnPoligonSelectionUpdated(); } else { logger.Debug("Закончили."); poligonSelection = false; UpdateSelectedInfo(new List <GMapMarker>()); selectionOverlay.Clear(); } } if (args.Event.Button == 3 && addressesOverlay.Markers.FirstOrDefault(m => m.IsMouseOver)?.Tag is Order order) { Menu popupMenu = new Menu(); var item = new MenuItem(string.Format("Открыть {0}", order)); item.Activated += (sender, e) => { var dlg = new OrderDlg(order) { HasChanges = false }; dlg.SetDlgToReadOnly(); Tab.TabParent.AddSlaveTab(Tab, dlg); }; popupMenu.Add(item); popupMenu.ShowAll(); popupMenu.Popup(); } }