Desktop client Electronic Pharmacy
Go to file
Exest cc2c128cb2 версия 2.0.5: сводный прайс — весь одним запросом (быстрее при всех прайсах)
LoadPrice дробил прайс на страницы по 20000, а сервер на каждую страницу заново
прогонял тяжёлую оконную дедупликацию + COUNT. При всех подключённых прайсах
(~52к позиций) это ~6-7с. Тянем всё одним запросом → один прогон (~1.2с).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 12:54:14 +03:00
_ref
.github
dist
docs
installer версия 2.0.5: сводный прайс — весь одним запросом (быстрее при всех прайсах) 2026-08-13 12:54:14 +03:00
screenshots
scripts Релиз 2.0: кросс-платформа, брендовый установщик, страница загрузки 2026-08-10 12:41:14 +03:00
src версия 2.0.5: сводный прайс — весь одним запросом (быстрее при всех прайсах) 2026-08-13 12:54:14 +03:00
tools/UpdateCheckSmoke
web/download версия 2.0.3: запоминание входа, быстрая загрузка прайса, повтор при SSL 2026-08-13 09:23:29 +03:00
.gitignore Релиз 2.0: кросс-платформа, брендовый установщик, страница загрузки 2026-08-10 12:41:14 +03:00
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)

  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-панелей загрузки