- бирюзовые кнопки (#0F766E) как в шапке, «Сформировать» больше не обрезано
- убрана криво рендерившаяся эмодзи с кнопки ИИ
- поле «Запрос ИИ» нормальной ширины (не на весь экран), фиксированные позиции
- таблица: бирюзовая шапка с белым текстом, чередование строк,
бирюзовое выделение, числа выровнены вправо, сбалансированные ширины колонок
Проверено рендером с тестовыми данными.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Во второй строке (ИИ) убраны конфликтующие якоря — поле «Запрос ИИ»
тянется по ширине, формат и кнопка пиннятся вправо с пересчётом при
ресайзе, контролы больше не наезжают друг на друга.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Клиент пишет запрос словами («закупки по поставщикам за июль»,
«топ товаров за 3 месяца», «заказы у Farmsnab»), ИИ на Мак-мини
подбирает тип/период/фильтр, платформа отдаёт данные строго этого
покупателя, собирается Word/Excel и открывается автоматически.
- UCReports: строка «Запрос ИИ» + Word/Excel + кнопка
- ApiClient.GenerateAiReportAsync -> POST {AiBase}/generate
- AppConfig.AiBaseUrl (default https://24pharmdata.ru/ai,
override ELF_AI_BASE_URL для локального теста)
Сервер: Caddy проксирует /ai/* -> Мак-мини (Ollama qwen2.5:7b +
FastAPI). LLM только распознаёт запрос, цифры считает код.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Новый раздел «Отчёты» в десктопе (buyer-scoped, данные с сервера):
- Мои заказы за период, По поставщикам, По товарам, По аптекам
- фильтр по датам, агрегация клиентски из одного набора строк
- сервер: GET /api/buyer/report скоупит строки по JWT покупателя
(клиент видит ТОЛЬКО свои заказы)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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>
Store client markup on each Consignee so it survives restarts and price refresh; show only name and address in the selection dialog with a wider window.
Co-authored-by: Cursor <cursoragent@cursor.com>
Apply available buyer/price-list/region discounts to summary.price on download, keep consignee carts separate, and harden SQLite startup/migrations.
Co-authored-by: Cursor <cursoragent@cursor.com>
Перевести desktop-клиент на работу с текущими buyer orders и локальным SQLite-кешем, чтобы отправка заказов и синхронизация документов работали с уже развернутым сервером без старых MSSQL-зависимостей.
Co-authored-by: Cursor <cursoragent@cursor.com>
Users can choose the export directory in auth settings; right-click on an invoice saves a UTF-8 CSV into that folder.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prompt for Location ID after login, move cart delete there, refine price-list Backspace navigation, and log every API failure with stack and response body.
Co-authored-by: Cursor <cursoragent@cursor.com>
Show names on the left and dosages on the right after selection, then open supplier offers for the chosen pair. Persist TradeName/Dosage on download and avoid crashes when rebinding or pressing Escape.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Harden UCPriceList number parsing and selection handling after download, guard ModernDataGridView row header autosize, and refresh price list from menu load action.
Co-authored-by: Cursor <cursoragent@cursor.com>
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>
Right-click closes active or targeted document tabs, fix order items header overlap, and align the price-list search clear button with centered × glyph.
Co-authored-by: Cursor <cursoragent@cursor.com>
Wrap selectors on narrow windows, cap text and combo widths on wide layouts, and move the comment button to a new row when space is tight.
Co-authored-by: Cursor <cursoragent@cursor.com>
Apply Primary gradient to «Обновить с сервера» after text is set, restore compact clear buttons on FOrders, and skip focus cues on icon-only controls.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add status footer with logged-in user, improve FOrders filters layout, migrate dialogs to ModernButton, and extend theming with Fluent Win11 palette and auto button styles.
Co-authored-by: Cursor <cursoragent@cursor.com>
WinForms app with Elfisa.UI, API integration, order workflow, invoices/refusals sync, and production-ready fixes from the desktop roadmap.
Co-authored-by: Cursor <cursoragent@cursor.com>