- Вкладки-документы: разделы открываются вкладками (несколько сразу), закрываются, активная синхронизирована с верхней навигацией (ShellViewModel.Tabs/ActiveTab, CloseTabCommand) - Нижняя строка состояния: Пользователь | Аптека + кнопка «Настройки» - Монохромные иконки Segoe MDL2 (те же глифы, что в WinForms): Прайс E14C, Заказы E7BF, Накладные E8A5, Отчёты EB05, Загрузить E896, Отправить E725, Отказы E7BA, Справочник E8F1 - контент показывает активную вкладку Оболочка приведена к виду исходной программы. Проверено вживную. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| _ref | ||
| .github | ||
| dist | ||
| docs | ||
| installer | ||
| screenshots | ||
| scripts | ||
| src | ||
| tools/UpdateCheckSmoke | ||
| .gitignore | ||
| Elfisa.Cross.slnx | ||
| Elfisa.sln | ||
| README.md | ||
ЭльФиСА — Электронная Фармация
WinForms-клиент «Электронная Фармация» с современным UI на базе библиотеки Elfisa.UI (тема PharmaTrust).
Структура
src/
Elfisa.UI/ — UI-библиотека (ThemeManager, Modern* контролы)
ElectronicPharmacy/ — основное приложение (SQLite, API, бизнес-логика)
Сборка
Требуется .NET SDK 9+ (или MSBuild 16+) и .NET Framework 4.7.2.
dotnet build Elfisa.sln -c Release
Запуск:
.\src\ElectronicPharmacy\bin\Release\Электронная` Фармация.exe
База efClient.db копируется в output (Data\efClient.db или рядом с exe). Путь задаётся через AppConfig.SqliteDbPath.
Настройки
В диалоге Авторизация (и в Settings):
-
URL API — базовый адрес сервера (по умолчанию из
AppConfig) -
Location ID — UUID точки для отправки заказов
-
Region ID — опциональный фильтр при загрузке прайса
Переменная окружения ELF_API_BASE_URL переопределяет URL API.
Подробное описание всех HTTP-запросов — в docs/API.md.
Архив для заказчика
.\dist\build-release.ps1
Создаёт dist\Электронная-Фармация.zip с Release-сборкой.
Основной цикл (V2)
-
Старт → проверка БД → выбор грузополучателя → прайс-лист
-
Загрузить — прайс с API в SQLite, обновление открытых вкладок прайса
-
Фильтр поставщика, поиск, набор в корзину с проверкой остатка
-
Сохранить заказ — мин. сумма по поставщику, уникальный номер, грузополучатель в
Orders -
Отправить — POST
/api/buyer/orders, статусОТПРАВЛЕНтолько у отправленного заказа -
Заказы — фильтры по статусу, поставщику, грузополучателю; отправка одного заказа
-
Отказы / Накладные — синхронизация с
/api/buyer/invoices
Приёмочный чек-лист
-
Старт → БД → выбор точки → прайс
-
Загрузить → прайс обновился, корзина очищена с предупреждением
-
Фильтр поставщика + поиск + количество + проверка остатка
-
Сохранить заказ (мин. сумма, корректный номер, грузополучатель)
-
Отправить → только выбранные заказы → статус / ошибка API
-
Журнал: фильтры, комментарий, удаление
НОВЫЙ -
Отказы: загрузка с API + детали позиций
-
Авторизация +
location_idв настройках -
Единый UI:
UiDialogs/ toast, без debug-панелей загрузки