Commit graph

5 commits

Author SHA1 Message Date
nns 4b08782e82 fix(pos-ui): полировка по реальному окну Windows 11
Правки по замечаниям на windows11-sale.png (VM 1280×800 maximized — высоты
меньше, чем в headless):

1. Адаптив правой панели по высоте (SaleView.axaml.cs, подписка на Bounds):
   уровни normal/compact/tiny — сжимаются отступы, ИТОГО, кнопки; скрывается
   блок «Последний чек»; ClipToBounds, чтобы ничего не уходило под полосу клавиш.
2. Шапка — Grid вместо StackPanel: чипы в отдельной колонке и не обрезаются;
   адаптив по ширине (MainWindow.axaml.cs): <1400 короткие чипы, <1100 без «Магазин…».
   BadgesCompact во VM переключает тексты ShiftBadge/QueueBadge.
3. Иконка «Выплата» (одиночная горизонталь) схлопывалась при Stretch=Uniform →
   Stretch=None; «Внесение» выровнял так же.
4. Hover строки корзины — светлый #F7FBF8 вместо тёмного из темы.
5. Плитки избранного — Grid *,Auto: цена прибита к низу, у всех на одной линии.
6. Полоса горячих клавиш — выравнивание влево (как в макете).
7. --density: рендер экрана продажи в 1280×720/800, 1366×768, 1920×1080 для проверки.

--uitest OK, 82 unit зелёные, smoke OK, скорость не хуже.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 16:51:51 +05:00
nns 6ae79e37fb feat(pos-ui): вёрстка кассы 1:1 по эталон-макету
Перенёс макет Mac-Claude (docs/pos-design/pos-mockup.html) в Avalonia по
размерам, а не на глаз:

- Оплата: модалка 880px поверх затемнённого экрана продажи (как в макете);
  сегменты Нал/Карта/Смешанная с векторными иконками (активный зелёный —
  иконка белая через стиль Button.seg.on Path); быстрые суммы 3×2
  (без сдачи/4000/5000/10000/20000/своя сумма); клавиатура 3×4 по 72px.
- Продажа: исправлена подсветка выбранной строки — локальные
  Background/IsVisible перекрывали сеттеры стиля :selected; теперь зелёный
  акцент слева + светло-зелёный фон работают. Бейдж «Отложенные · N».
  Чип связи «На связи · очередь пуста».
- Демо: --demo-pay открывает модалку оплаты для скриншота на Windows;
  PayScrim в скриншотере рендерит оплату поверх реальной оболочки продажи.
- Инструмент сверки: CompareRunner (--compare, SkiaSharp) складывает
  «макет | касса» рядом → docs/pos-design/compare-*.png.

Скорость не ухудшена (старт 74мс, скан 13.7мс). --uitest OK, 82 unit зелёные.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-08 14:35:18 +05:00
nns 84fc350bb6 test(pos): реальное окно на Windows 11 + демо-режим + раздел галереи
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
- --demo: окно с примером чека без логина (software-рендер на Windows, т.к. у
  тест-VM нет GPU — иначе окно чёрное).
- Снят реальный экран кассы на Windows 11 (интерактивная сессия tester через
  scheduled task /it + PrintWindow): подтверждён нативный рендер — кириллица,
  формат «3 362 ₸», кнопки без обрезки → docs/pos-screenshots/windows/ + раздел
  «Windows 11» в галерее.
- Ограничения VM (не код, честно в docs): нет GPU → software-рендер; консоль
  1280×800 → 1366/1920 реальным окном недоступны (они в headless-кадрах, тот же
  движок); меню «Пуск» VM залипает. Автоматизация логики UI — headless --uitest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 09:55:20 +05:00
nns c5ff1ade94 fix(pos-ui): формат чисел KZ/RU, скидка в строке, центровка/обрезка кнопок
По итогам проверки 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 <noreply@anthropic.com>
2026-10-08 09:07:29 +05:00
nns fcd4a69624 feat(pos-ui): WPF→Avalonia 11, живая касса кассира (Win/Linux)
- Кроссплатформенный Avalonia-UI (net8.0, не net8.0-windows): экраны вход/
  продажа/оплата/смена/возврат, тёмная тема, ViewLocator, компилируемые привязки.
- Живое связывание: логин→сессия→Refit-API, привязка к точке; продажа (скан/
  поиск/количество/весовой/скидки/удаление), модальная оплата → запись чека в
  офлайн-очередь + печать + попытка выгрузки; смена open/close/drawer на
  api/money/shifts; горячие клавиши F1/F2/F7/F9/F10/F12/Esc/Del (работа без мыши);
  индикатор связи/очереди + фоновая синхронизация; автопроверка версии.
- Оборудование: ESC/POS-билдер (CP866, USB/COM/сеть, 58/80мм) + текст/PDF
  запасной; весы CAS/Масса-К (COM) + ручной ввод; IFiscalProvider — заглушка.
- DpapiTokenStore (Windows, scope CurrentUser) для refresh-токена; 0600 на Linux.
- Инструменты CLI: --smoke (замеры/сценарий без UI), --screenshots (headless
  рендер экранов), --uitest (headless UI-автотест, 15 проверок, Avalonia.Headless).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 04:58:39 +05:00