diff --git a/installer/ElfisaPharmacy.iss b/installer/ElfisaPharmacy.iss
index 5d95e86..545aa2f 100644
--- a/installer/ElfisaPharmacy.iss
+++ b/installer/ElfisaPharmacy.iss
@@ -3,7 +3,7 @@
#define MyAppName "Электронная Фармация"
#define MyAppBrand "ЭльФиСА"
-#define MyAppVersion "2.0.9"
+#define MyAppVersion "2.0.10"
#define MyAppPublisher "PharmData"
#define MyAppURL "https://cdn.24pharmdata.ru"
#define MyAppSupportURL "https://24pharmdata.ru"
diff --git a/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj b/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj
index c812fad..f1224aa 100644
--- a/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj
+++ b/src/Elfisa.Avalonia/Elfisa.Avalonia.csproj
@@ -5,7 +5,7 @@
enable
app.manifest
true
- 2.0.9
+ 2.0.10
2.0.9.0
2.0.9.0
ЭльФиСА — Электронная Фармация
diff --git a/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs b/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs
index f662adb..a40748a 100644
--- a/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs
+++ b/src/Elfisa.Avalonia/ViewModels/LoadPriceViewModel.cs
@@ -92,6 +92,9 @@ public partial class LoadPriceViewModel : ViewModelBase
var suppliers = all.Select(x => x.SupplierName).Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().Count();
Result = $"Прайс загружен: {all.Count} позиций от {suppliers} поставщик(ов).";
OnPropertyChanged(nameof(LastLoaded));
+
+ // Успешно загрузили → сразу в раздел «Прайс-лист».
+ ShellNavigator.Navigate?.Invoke("Прайс-лист");
}
catch (Exception ex)
{
diff --git a/src/Elfisa.Avalonia/ViewModels/ShellViewModel.cs b/src/Elfisa.Avalonia/ViewModels/ShellViewModel.cs
index f0f0076..6e56fb9 100644
--- a/src/Elfisa.Avalonia/ViewModels/ShellViewModel.cs
+++ b/src/Elfisa.Avalonia/ViewModels/ShellViewModel.cs
@@ -2,12 +2,19 @@ using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading.Tasks;
+using Avalonia.Threading;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Elfisa.Core;
namespace Elfisa.Avalonia.ViewModels;
+/// Навигация между разделами из любой VM (напр. после загрузки прайса).
+public static class ShellNavigator
+{
+ public static Action? Navigate;
+}
+
public class NavItem
{
public string Title { get; }
@@ -85,6 +92,13 @@ public partial class ShellViewModel : ViewModelBase
SelectedNav = NavItems.First(n => n.Title == "Отчёты");
if (Session.Current.IsAuthenticated) _ = LoadPharmacyAsync();
+
+ // Навигация из других VM (напр. LoadPrice после успешной загрузки → «Прайс-лист»).
+ ShellNavigator.Navigate = title => Dispatcher.UIThread.Post(() =>
+ {
+ var nav = NavItems.FirstOrDefault(n => n.Title == title);
+ if (nav != null) SelectedNav = nav;
+ });
}
private async Task LoadPharmacyAsync()
diff --git a/src/Elfisa.Avalonia/Views/PriceListView.axaml b/src/Elfisa.Avalonia/Views/PriceListView.axaml
index c612ce0..12d681d 100644
--- a/src/Elfisa.Avalonia/Views/PriceListView.axaml
+++ b/src/Elfisa.Avalonia/Views/PriceListView.axaml
@@ -44,7 +44,7 @@
-
diff --git a/src/Elfisa.Avalonia/Views/PriceListView.axaml.cs b/src/Elfisa.Avalonia/Views/PriceListView.axaml.cs
index 4a06044..ccd6154 100644
--- a/src/Elfisa.Avalonia/Views/PriceListView.axaml.cs
+++ b/src/Elfisa.Avalonia/Views/PriceListView.axaml.cs
@@ -1,6 +1,7 @@
using System;
using Avalonia.Controls;
using Avalonia.Input;
+using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Elfisa.Avalonia.ViewModels;
@@ -16,6 +17,20 @@ public partial class PriceListView : UserControl
AvaloniaXamlLoader.Load(this);
var grid = this.FindControl("OffersGrid");
if (grid != null) grid.KeyDown += OffersGrid_KeyDown;
+
+ // Enter в поле «Кол-во» (мышью выставил число) — тоже добавляет в заказ.
+ // Tunnel, чтобы перехватить до внутреннего TextBox NumericUpDown.
+ var qty = this.FindControl("QtyBox");
+ if (qty != null) qty.AddHandler(KeyDownEvent, QtyBox_KeyDown, RoutingStrategies.Tunnel);
+ }
+
+ private void QtyBox_KeyDown(object? sender, KeyEventArgs e)
+ {
+ if (e.Key == Key.Enter)
+ {
+ (DataContext as PriceListViewModel)?.AddSelectedOffer();
+ e.Handled = true;
+ }
}
// Выделил предложение → набираешь число цифрами (как колонка «Заказ» в старой программе).