Desktop client Electronic Pharmacy
Go to file
Magomed 74390c4918 Add name/MG browse flow in price list and harden grid hover.
Show names on the left and dosages on the right after selection, then open supplier offers for the chosen pair. Persist TradeName/Dosage on download and avoid crashes when rebinding or pressing Escape.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 14:42:30 +03:00
_ref Initial commit: Электронная Фармация desktop client. 2026-07-14 12:25:38 +03:00
.github Polish modern UI shell, orders toolbar, and Fluent theme infrastructure. 2026-07-14 13:59:58 +03:00
dist Add invoice request from orders and fix overlapping context menus. 2026-07-16 14:00:50 +03:00
docs Add API documentation and remove unused single-price endpoint. 2026-07-14 15:22:13 +03:00
screenshots Initial commit: Электронная Фармация desktop client. 2026-07-14 12:25:38 +03:00
src Add name/MG browse flow in price list and harden grid hover. 2026-07-16 14:42:30 +03:00
.gitignore Initial commit: Электронная Фармация desktop client. 2026-07-14 12:25:38 +03:00
Elfisa.sln Apply skill gradient Primary/Danger buttons to Elfisa.UI and add button demos. 2026-07-14 14:27:31 +03:00
README.md Add API documentation and remove unused single-price endpoint. 2026-07-14 15:22:13 +03:00

ЭльФиСА — Электронная Фармация

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)

  1. Старт → проверка БД → выбор грузополучателя → прайс-лист

  2. Загрузить — прайс с API в SQLite, обновление открытых вкладок прайса

  3. Фильтр поставщика, поиск, набор в корзину с проверкой остатка

  4. Сохранить заказ — мин. сумма по поставщику, уникальный номер, грузополучатель в Orders

  5. Отправить — POST /api/buyer/orders, статус ОТПРАВЛЕН только у отправленного заказа

  6. Заказы — фильтры по статусу, поставщику, грузополучателю; отправка одного заказа

  7. Отказы / Накладные — синхронизация с /api/buyer/invoices

Приёмочный чек-лист

  1. Старт → БД → выбор точки → прайс

  2. Загрузить → прайс обновился, корзина очищена с предупреждением

  3. Фильтр поставщика + поиск + количество + проверка остатка

  4. Сохранить заказ (мин. сумма, корректный номер, грузополучатель)

  5. Отправить → только выбранные заказы → статус / ошибка API

  6. Журнал: фильтры, комментарий, удаление НОВЫЙ

  7. Отказы: загрузка с API + детали позиций

  8. Авторизация + location_id в настройках

  9. Единый UI: UiDialogs / toast, без debug-панелей загрузки