67 lines
7.3 KiB
Markdown
67 lines
7.3 KiB
Markdown
# Паритет с МойСкладом — прогресс
|
||
|
||
Задача владельца (08.10): довести процессы до уровня МойСклада и лучше, по выводам
|
||
`docs/moysklad-logic-audit.md`. Правило: «минимум как МойСклад, где можно — лучше».
|
||
|
||
Легенда: [x] готово · [~] частично · [ ] не начато.
|
||
|
||
## План / статус
|
||
1. [~] **Смена кассы**: автооткрытие первой веб-продажей ✅ (бэкенд+тест); overLimit24h в /current и
|
||
Z-отчёте ✅, предупреждение в вебе ✅. **Осталось:** автооткрытие на POS-синке (AcceptSales),
|
||
UI-вопрос «размен?», фоновое уведомление админу о >24ч.
|
||
2. [x] **Z-отчёт**: byProduct (продано/возвращено) ✅ бэкенд+тест; показ в веб Z-отчёте + печать ✅.
|
||
(POS-печать byProduct — отдельная десктоп-поверхность.)
|
||
3. [x] **Возврат покупателя**: способ по умолчанию = оплата чека (create-return уже так); иной способ —
|
||
право админа + причина (RefundReason). Бэкенд+тест ✅.
|
||
4. [x] **Карточка товара** — бэкенд+тесты ✅ (фронт-кнопка «Сгенерировать»/quick-create UI — осталось):
|
||
- Сохранить можно при наличии Наименования.
|
||
- Единица обязательна, предзаполнена «шт» (пустой не бывает).
|
||
- **Штрихкод ОБЯЗАТЕЛЕН** у любого товара (включая весовые). Нет → автогенерация внутреннего
|
||
EAN-13 (верная контрольная цифра, префикс не пересекается с весовыми/ценовыми префиксами орг.),
|
||
кнопка «Сгенерировать». Импорт без штрихкода — автогенерация. Продажа без штрихкода невозможна.
|
||
- Закупочная цена не обязательна (приходит из приёмки).
|
||
- Цена продажи: без неё сохранить можно, но ПРОДАТЬ нельзя → касса/продажа дают понятное
|
||
сообщение «у товара нет цены продажи» + быстрый ввод цены (по праву).
|
||
- Быстрое создание товара из приёмки/кассы по неизвестному штрихкоду (1 поле + цена).
|
||
- Недостающее ловит фоновая «Проверка данных», а не запрет сохранения.
|
||
5. [~] **«Создать на основании» + связи**: инвент→опр/спис ✅, продажа→возврат (create-return) ✅,
|
||
приёмка→оплата (SupplyPaymentSection) ✅, **приёмка→возврат поставщику** (from-supply + кнопка «Создать
|
||
возврат») ✅+тест. **Осталось:** единый компонент «Связанные документы» с обратными ссылками на всех edit-страницах.
|
||
6. [x] **Простой режим**: Оприходование/Списание уже отдельные пункты меню для Admin/Кладовщика вне
|
||
зависимости от режима (AppLayout.tsx:111-112 — НЕ за advanced-гейтом). Проверено, ничего не прячем.
|
||
7. [x] **Деньги**: типы названы привычно (ПКО/РКО/Входящий/Исходящий платёж/Перевод между счетами) ✅;
|
||
**акт сверки** с поставщиком — эндпоинт + печатная веб-форма /money/.../reconciliation ✅+тест.
|
||
8. [x] **Главная**: блок «Прибыль за сегодня/месяц» на дашборде (во всех режимах), по /api/dashboard/margin;
|
||
с пометкой «приблизительно, точно после FIFO».
|
||
9. [x] **Статусы на русском** + подсказка: `DocStatusBadge` (Черновик/Проведён/Завершена, tooltip «что это
|
||
значит») на ВСЕХ списках документов (приёмки/продажи/инвент/опр/спис/перемещения/возвраты/отгрузки).
|
||
(edit-страницы — свои заголовки статуса; минор.)
|
||
10. [~] **Тесты/деплой/скрины**: unit 303 + integration по пп.1–5,7 (7 parity-тестов зелёные) ✅; деплой на
|
||
стенд ✅; скрины дашборда/сайдбара ✅. **Осталось:** e2e-браузер по пунктам, full-chain обновить.
|
||
|
||
## Коммиты
|
||
- `0ca0d6c` — п.4 карточка товара (обяз. только наименование; штрихкод автоген; цена опц.; quick-create).
|
||
- `c777b5b` — п.3 возврат (способ по умолчанию = оплата чека; иной — право+причина).
|
||
- `ff4391d` — п.1 автооткрытие смены + п.2 Z-отчёт byProduct + 24ч.
|
||
- `0f1574d` — п.7 названия денег (ПКО/РКО) + п.8 прибыль на главной + п.9 статусы с подсказкой + п.6 проверен.
|
||
|
||
## Тесты
|
||
- unit: InternalBarcode 3/3; вся сьюта 303.
|
||
- integration: ProductCardParity 3/3, RetailReturnParity 1/1, MoneyModule auto-open+Z-отчёт 1/1.
|
||
- Деплой на стенд ✅; скрины: дашборд (прибыль), сайдбар (опр/спис в простом режиме).
|
||
|
||
## Осталось (честно, НЕ закрыто)
|
||
- **П.1/2 POS-сторона**: автооткрытие смены на POS-синке (AcceptSales), UI-вопрос «размен?», печать
|
||
Z-отчёта по товарам на кассе, фоновое уведомление админу о смене >24ч.
|
||
- **П.5**: единый компонент «Связанные документы» с обратными ссылками на всех edit-страницах
|
||
(сейчас: ссылки-основания в DTO, секция оплат приёмки, кнопка «Создать возврат», create-return).
|
||
- **П.4 POS/приёмка**: quick-create UI по неизвестному штрихкоду (бэкенд /products/quick готов).
|
||
- **П.10**: e2e-браузерные тесты по пунктам; обновить full-chain.
|
||
**DONE не ставим — остаются POS-сторона (1,2,4), единый блок связей (5), e2e/full-chain (10).**
|
||
|
||
## Коммиты (пасс 2)
|
||
- `1875249` — п.9 статусы на всех списках + п.4 кнопка «Сгенерировать» ШК.
|
||
- `524f8f4` — п.7 акт сверки с поставщиком (эндпоинт + печать).
|
||
- `<supply-return>` — п.5 кнопка «Создать возврат» на приёмке.
|
||
- `<zreport>` — п.1/2 веб Z-отчёт по товарам + предупреждение >24ч.
|