docs(parity): пасс 2 — пп.2,7,9 закрыты; 1,5 продвинуты; 7 из 10 [x]
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run

This commit is contained in:
nns 2026-10-09 06:55:51 +05:00
parent 68bfb582e7
commit 9ca907ce47

View file

@ -6,11 +6,11 @@
Легенда: [x] готово · [~] частично · [ ] не начато. Легенда: [x] готово · [~] частично · [ ] не начато.
## План / статус ## План / статус
1. [~] **Смена кассы**: автооткрытие первой продажей (веб-продажа) — ✅ бэкенд+тест; подбор Cash-счёта, 1. [~] **Смена кассы**: автооткрытие первой веб-продажей ✅ (бэкенд+тест); overLimit24h в /current и
размен 0. Длительность/overLimit24h в /current и Z-отчёте — ✅. **Осталось:** автооткрытие на Z-отчёте ✅, предупреждение в вебе ✅. **Осталось:** автооткрытие на POS-синке (AcceptSales),
POS-синке (AcceptSales), UI-вопрос «размен?», фоновое уведомление админу о >24ч. UI-вопрос «размен?», фоновое уведомление админу о >24ч.
2. [~] **Z-отчёт**: разбивка byProduct (продано/возвращено кол-во+сумма) — ✅ бэкенд+тест. **Осталось:** 2. [x] **Z-отчёт**: byProduct (продано/возвращено) ✅ бэкенд+тест; показ в веб Z-отчёте + печать ✅.
показ в вебе/кассе + печать Z-отчёта по товарам. (POS-печать byProduct — отдельная десктоп-поверхность.)
3. [x] **Возврат покупателя**: способ по умолчанию = оплата чека (create-return уже так); иной способ — 3. [x] **Возврат покупателя**: способ по умолчанию = оплата чека (create-return уже так); иной способ —
право админа + причина (RefundReason). Бэкенд+тест ✅. право админа + причина (RefundReason). Бэкенд+тест ✅.
4. [x] **Карточка товара** — бэкенд+тесты ✅ (фронт-кнопка «Сгенерировать»/quick-create UI — осталось): 4. [x] **Карточка товара** — бэкенд+тесты ✅ (фронт-кнопка «Сгенерировать»/quick-create UI — осталось):
@ -24,19 +24,20 @@
сообщение «у товара нет цены продажи» + быстрый ввод цены (по праву). сообщение «у товара нет цены продажи» + быстрый ввод цены (по праву).
- Быстрое создание товара из приёмки/кассы по неизвестному штрихкоду (1 поле + цена). - Быстрое создание товара из приёмки/кассы по неизвестному штрихкоду (1 поле + цена).
- Недостающее ловит фоновая «Проверка данных», а не запрет сохранения. - Недостающее ловит фоновая «Проверка данных», а не запрет сохранения.
5. [~] **«Создать на основании» + связи** — частично: инвентаризация→опр/спис (есть), продажа→возврат 5. [~] **«Создать на основании» + связи**: инвент→опр/спис ✅, продажа→возврат (create-return) ✅,
(create-return, ✅), приёмка→оплата (есть). **Осталось:** приёмка→возврат поставщику с преднабором (from-supply ✅, 0ad); приёмка→оплата (SupplyPaymentSection) ✅, **приёмка→возврат поставщику** (from-supply + кнопка «Создать
единый блок «Связанные документы»/«На основании …» во всех документах. возврат») ✅+тест. **Осталось:** единый компонент «Связанные документы» с обратными ссылками на всех edit-страницах.
6. [x] **Простой режим**: Оприходование/Списание уже отдельные пункты меню для Admin/Кладовщика вне 6. [x] **Простой режим**: Оприходование/Списание уже отдельные пункты меню для Admin/Кладовщика вне
зависимости от режима (AppLayout.tsx:111-112 — НЕ за advanced-гейтом). Проверено, ничего не прячем. зависимости от режима (AppLayout.tsx:111-112 — НЕ за advanced-гейтом). Проверено, ничего не прячем.
7. [~] **Деньги**: типы названы привычно — «Приход наличных (ПКО)», «Расход наличных (РКО)», «Входящий/ 7. [x] **Деньги**: типы названы привычно (ПКО/РКО/Входящий/Исходящий платёж/Перевод между счетами) ✅;
Исходящий платёж», «Перевод между счетами» (money.ts) ✅. **Осталось:** акт сверки с поставщиком (PDF/печать). **акт сверки** с поставщиком — эндпоинт + печатная веб-форма /money/.../reconciliation ✅+тест.
8. [x] **Главная**: блок «Прибыль за сегодня/месяц» на дашборде (во всех режимах), по /api/dashboard/margin; 8. [x] **Главная**: блок «Прибыль за сегодня/месяц» на дашборде (во всех режимах), по /api/dashboard/margin;
с пометкой «приблизительно, точно после FIFO». с пометкой «приблизительно, точно после FIFO».
9. [~] **Статусы на русском** + подсказка: общий `DocStatusBadge` (Черновик/Проведён/Завершена с tooltip 9. [x] **Статусы на русском** + подсказка: `DocStatusBadge` (Черновик/Проведён/Завершена, tooltip «что это
«что это значит»), применён на списках Приёмок/Продаж/Инвентаризаций. **Осталось:** раскатать на значит») на ВСЕХ списках документов (приёмки/продажи/инвент/опр/спис/перемещения/возвраты/отгрузки).
остальные страницы (опр/спис/перемещения/возвраты/demands, edit-страницы). (edit-страницы — свои заголовки статуса; минор.)
10. [~] **Тесты/деплой/скрины**: unit+integration по пп.1–4 ✅; деплой+скрины — по ходу. 10. [~] **Тесты/деплой/скрины**: unit 303 + integration по пп.1–5,7 (7 parity-тестов зелёные) ✅; деплой на
стенд ✅; скрины дашборда/сайдбара ✅. **Осталось:** e2e-браузер по пунктам, full-chain обновить.
## Коммиты ## Коммиты
- `0ca0d6c` — п.4 карточка товара (обяз. только наименование; штрихкод автоген; цена опц.; quick-create). - `0ca0d6c` — п.4 карточка товара (обяз. только наименование; штрихкод автоген; цена опц.; quick-create).
@ -50,16 +51,16 @@
- Деплой на стенд ✅; скрины: дашборд (прибыль), сайдбар (опр/спис в простом режиме). - Деплой на стенд ✅; скрины: дашборд (прибыль), сайдбар (опр/спис в простом режиме).
## Осталось (честно, НЕ закрыто) ## Осталось (честно, НЕ закрыто)
- П.5 «Создать на основании» сквозной + единый блок «Связанные документы» везде — основной - **П.1/2 POS-сторона**: автооткрытие смены на POS-синке (AcceptSales), UI-вопрос «размен?», печать
незакрытый пункт (частично: инвент→опр/спис, продажа→возврат, приёмка→оплата уже есть). Z-отчёта по товарам на кассе, фоновое уведомление админу о смене >24ч.
- П.1/2 фронт: автооткрытие на POS-синке, UI «размен?», показ+печать Z-отчёта по товарам, - **П.5**: единый компонент «Связанные документы» с обратными ссылками на всех edit-страницах
фоновое уведомление о >24ч. (сейчас: ссылки-основания в DTO, секция оплат приёмки, кнопка «Создать возврат», create-return).
- П.7 акт сверки с поставщиком (PDF/печать). - **П.4 POS/приёмка**: quick-create UI по неизвестному штрихкоду (бэкенд /products/quick готов).
- П.9 раскатать DocStatusBadge на остальные страницы (опр/спис/перемещения/возвраты/edit). - **П.10**: e2e-браузерные тесты по пунктам; обновить full-chain.
- П.4 фронт: кнопка «Сгенерировать» штрихкод в карточке, quick-create UI в кассе/приёмке. **DONE не ставим — остаются POS-сторона (1,2,4), единый блок связей (5), e2e/full-chain (10).**
- e2e-браузер по пунктам; full-chain обновить.
**DONE не ставим — пункты 5,7 и часть фронта/POS/e2e не закрыты.**
## Что НЕ трогаем ## Коммиты (пасс 2)
Прод, shared-postgres, global.json, gateway nginx, sklad. FIFO/себестоимость — отдельная - `1875249` — п.9 статусы на всех списках + п.4 кнопка «Сгенерировать» ШК.
отложенная тема (п.8 — точная прибыль после FIFO; пока приближённо по текущей себестоимости). - `524f8f4` — п.7 акт сверки с поставщиком (эндпоинт + печать).
- `<supply-return>` — п.5 кнопка «Создать возврат» на приёмке.
- `<zreport>` — п.1/2 веб Z-отчёт по товарам + предупреждение >24ч.