food-market/src/food-market.pos.core
nns 195dfb1a2c feat(pos): весовой товар на кассе — вес с весов/вручную + автопоиск весов
Часть 3 + автопоиск (данные sysadmin: касса МойСклад спамит «Порт не выбран»):
- Весовой товар при сканировании/плитке → вес с весов (если на связи), иначе
  модалка ручного ввода веса. Сумма = цена/кг × вес; подпись «1,235 кг × 690 ₸/кг».
- ScaleMonitor (pos.core): опрос ТОЛЬКО по требованию (при весовом товаре), мягкая
  деградация на ручной ввод, запись о потере/восстановлении связи РОВНО ОДИН раз
  (не сотни «Таймаут»). Юнит-тесты (100 опросов → 1 запись).
- ScaleDiscovery (pos): автоскан всех COM-портов (вкл. USB-COM CH340/Prolific) ×
  протоколы Масса-К/CAS × скорости; кнопка «Найти весы» в верхней панели; найденный
  порт запоминается (kv) и восстанавливается при старте.
- UnitShort («шт»/«кг»/«л») протянут через sync→SQLite→PosProduct/CartLine; цена
  весового показывается «690 ₸/кг» вместо кода ОКЕИ «690 ₸/796».
- Разбор этикеток в кассе — по настройкам орг (по умолчанию ВЫКЛ, точный штрихкод).
- Юнит-тесты 321/321 (обновлены PosBarcodeTests под дефолт-off).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:17:35 +05:00
..
Auth rebrand: касса ALL MARKET (лого, иконка, заголовок, чек) 2026-10-08 17:35:05 +05:00
Data feat(pos): весовой товар на кассе — вес с весов/вручную + автопоиск весов 2026-10-09 11:17:35 +05:00
Hardware feat(pos): весовой товар на кассе — вес с весов/вручную + автопоиск весов 2026-10-09 11:17:35 +05:00
Logic feat(pos): весовой товар на кассе — вес с весов/вручную + автопоиск весов 2026-10-09 11:17:35 +05:00
Models feat(pos): весовой товар на кассе — вес с весов/вручную + автопоиск весов 2026-10-09 11:17:35 +05:00
Sync feat(pos): Z-отчёт по товарам на печать + вопрос «размен?» при автооткрытии (п.1,2) 2026-10-09 07:38:07 +05:00
food-market.pos.core.csproj feat(pos-core): логика кассы без UI + 37 unit-тестов 2026-10-08 04:58:22 +05:00