//отрытие журнала недовоза на конкретном недовозе из диалога штрафов public void OpenFromFine(ITdiTab tab, Order oldOrder, DateTime?deliveryDate, UndeliveryStatus undeliveryStatus) { var undeliveredOrdersFilter = new UndeliveredOrdersFilterViewModel( ServicesConfig.CommonServices, new OrderSelectorFactory(), new EmployeeJournalFactory(), new CounterpartyJournalFactory(), new DeliveryPointJournalFactory(), new SubdivisionJournalFactory()) { RestrictOldOrder = oldOrder, RestrictOldOrderStartDate = deliveryDate, RestrictOldOrderEndDate = deliveryDate, RestrictUndeliveryStatus = undeliveryStatus }; var dlg = new UndeliveredOrdersJournalViewModel( undeliveredOrdersFilter, UnitOfWorkFactory.GetDefaultFactory, ServicesConfig.CommonServices, new GtkTabsOpener(), new EmployeeJournalFactory(), VodovozGtkServicesConfig.EmployeeService, new UndeliveredOrdersJournalOpener(), new OrderSelectorFactory(), new UndeliveredOrdersRepository()); tab.TabParent.AddSlaveTab(tab, dlg); }
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); }
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 ); } ) ); }