public ITdiTab CreateReadOnlyOrderDlg(int orderId)
        {
            var dlg = new OrderDlg(orderId);

            dlg.HasChanges = false;
            dlg.SetDlgToReadOnly();

            return(dlg);
        }
示例#2
0
        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);
        }
示例#3
0
 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();
    }
示例#7
0
        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);
        }
示例#8
0
        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
                    );
            }
                    )
                );
        }
示例#11
0
        public void MenuFinalOrderActivated(object sender, EventArgs args)
        {
            var orderDlg = new OrderDlg(Entity.FinalOrder);

            TabParent.AddTab(orderDlg, this);
        }
示例#12
0
        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();
            }
        }