Desktop client Electronic Pharmacy
Go to file
Magomed 5cc202dea7 Polish cart tabs and dialog chrome for light/dark themes.
Add ModernTabControl/SplitContainer for cart UI without system borders, fix button corner artifacts and dialog text contrast, and use TitleBarTop green for auth header in light mode.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 20:32:54 +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 Initial commit: Электронная Фармация desktop client. 2026-07-14 12:25:38 +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 Polish cart tabs and dialog chrome for light/dark themes. 2026-07-14 20:32:54 +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-панелей загрузки