Compare OrderDate as real dates (dd.MM.yyyy storage broke across month boundaries) and bump AssemblyVersion so desktop picks up the Gitea release. Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| _ref | ||
| .github | ||
| dist | ||
| docs | ||
| screenshots | ||
| src | ||
| tools/UpdateCheckSmoke | ||
| .gitignore | ||
| 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-панелей загрузки