From c5ff1ade94b654509bf9502daf301b419da331ba Mon Sep 17 00:00:00 2001 From: nns Date: Thu, 8 Oct 2026 09:07:29 +0500 Subject: [PATCH] =?UTF-8?q?fix(pos-ui):=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=20=D1=87=D0=B8=D1=81=D0=B5=D0=BB=20KZ/RU,=20=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=B4=D0=BA=D0=B0=20=D0=B2=20=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=BA=D0=B5,=20=D1=86=D0=B5=D0=BD=D1=82=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0/=D0=BE=D0=B1=D1=80=D0=B5=D0=B7=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BA=D0=BD=D0=BE=D0=BF=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit По итогам проверки Mac-Claude (скриншоты): - Формат чисел как в вебе/мобильном: «3 422 ₸» (пробел-разделитель тысяч), вес «1,235 кг» (запятая), единица измерения рядом с количеством («3 шт»). PosFormat — культура ru-RU с NBSP-разделителем, применяется процессно. - Скидка на строку видна: «1 560 → 1 500 ₸, скидка 60» под позицией, чтобы цена×кол-во ≠ сумма не выглядело ошибкой (SaleLineVm.DiscountText/HasDiscount). - Кнопки: текст по центру по вертикали и горизонтали (стиль Button.pos + ContentPresenter); «Очистить» и «Enter · Провести и печать» больше не обрезаются на 1366×768 и 1920×1080 (проверено скриншотами). Co-Authored-By: Claude Opus 5.5 --- docs/pos-progress.md | 14 ++++++++ src/food-market.pos/App.axaml | 15 ++++++++- src/food-market.pos/PosFormat.cs | 35 ++++++++++++++++++++ src/food-market.pos/Program.cs | 1 + src/food-market.pos/ViewModels/ViewModels.cs | 27 ++++++++++++--- src/food-market.pos/Views/PaymentView.axaml | 4 ++- src/food-market.pos/Views/SaleView.axaml | 22 ++++++++---- 7 files changed, 105 insertions(+), 13 deletions(-) create mode 100644 src/food-market.pos/PosFormat.cs diff --git a/docs/pos-progress.md b/docs/pos-progress.md index 0491e21..70f0e3f 100644 --- a/docs/pos-progress.md +++ b/docs/pos-progress.md @@ -134,3 +134,17 @@ Testcontainers) + headless UI (Avalonia.Headless, 15 проверок) + офл - 08.10 — замеры Linux+Windows (п.9); холодный старт/поиск в цель. - 08.10 — серверная привязка продаж к смене + возвраты; +2 интеграционных теста; +офлайн/checkout/версия unit-тесты (37); headless UI-тест (--uitest). - 08.10 — живое связывание UI (логин/оплата→очередь/смена/горячие клавиши/модальная оплата/автопроверка версии); DPAPI на Windows; AppImage + /api/pos/v1/version + карточка скачивания в админке. + +## Доводка 08.10 (по итогам проверки Mac-Claude) +1. [ ] Настоящий GUI-тест на Windows 11 (интерактивная сессия tester) + скриншоты реального окна. +2. [ ] Первый запуск на Windows 7.5с → <2с: R2R-сборка, trimming, замеры; Defender — в docs. +3. [ ] Выбор точки продаж при регистрации устройства (список активных, сохранение, смена — админ). +4. [ ] Быстрый вход кассира по PIN (4–6 цифр), хэш на сервере, блок после 5 ошибок. +5. [ ] Возврат по чеку — полноценный экран выбора позиций + тесты. +6. [ ] Повторный full-chain (C) + POS smoke Win/Linux зелёные; галерея обновлена. +7. [ ] Коммиты в main; push origin. +8. [x] Формат чисел KZ/RU: «3 422 ₸» (пробел тысяч), «1,235 кг» (запятая) + единица рядом с кол-вом. + Реализовано `PosFormat` (культура ru-RU с NBSP-разделителем), применяется процессно. +9. [x] Скидка на строку видна: «1 560 → 1 500 ₸, скидка 60» под позицией (SaleLineVm.DiscountText). +10. [x] Кнопки: текст по центру по вертикали/горизонтали (стиль Button.pos), «Очистить» и + «Enter · Провести и печать» больше не обрезаются (проверено на 1366×768 и 1920×1080). diff --git a/src/food-market.pos/App.axaml b/src/food-market.pos/App.axaml index 3ba06eb..73d0160 100644 --- a/src/food-market.pos/App.axaml +++ b/src/food-market.pos/App.axaml @@ -12,10 +12,23 @@ + + +