Desktop client Electronic Pharmacy
Go to file
Magomed c447048b66 Add invoice request from orders and fix overlapping context menus.
Enable Получить накладную for sent orders, build local invoices without refusals, and stop the tab close menu from covering dedicated grid menus. Also fix price-list Backspace search and refresh the Release dist binaries.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 14:00:50 +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 invoice request from orders and fix overlapping context menus. 2026-07-16 14:00:50 +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-панелей загрузки