elfisa-pharmacy/README.md
Magomed 800b2971b8 Add API documentation and remove unused single-price endpoint.
Document all client HTTP calls in docs/API.md, link from README, and delete dead GetPriceItem code.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 15:22:13 +03:00

137 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ЭльФиСА — Электронная Фармация
WinForms-клиент «Электронная Фармация» с современным UI на базе библиотеки **Elfisa.UI** (тема **PharmaTrust**).
## Структура
```
src/
Elfisa.UI/ — UI-библиотека (ThemeManager, Modern* контролы)
ElectronicPharmacy/ — основное приложение (SQLite, API, бизнес-логика)
```
## Сборка
Требуется .NET SDK 9+ (или MSBuild 16+) и .NET Framework 4.7.2.
```powershell
dotnet build Elfisa.sln -c Release
```
Запуск:
```powershell
.\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](docs/API.md).
## Архив для заказчика
```powershell
.\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-панелей загрузки