Не реализовано vs YumaPOS
Сопоставление фичелиста _reference/yumapos/ с реальным кодом в репозиториях (не со спеками). Проверка сделана по: erp-auth/user/store/catalog/warehouse/order/aggregator/customer-service + erp-admin + erp-pos.
Легенда:
✅ реализовано в коде
🟨 частично (backend или UI, но не оба; или скелет без контракта)
❌ нет в коде
⚪ PayKeeper (не наша зона)
❄️ frozen (erp-pos по ADR-014)
Заказы и операционный поток
Фича Статус Где Active orders CRUD ✅ erp-order-service/entity/Order.java, controller/OrderController.java; erp-admin/pages/orders/ActiveOrdersPage.tsxOrder history + статусы ✅ pages/orders/OrderHistoryPage.tsxOrder detail ✅ pages/orders/OrderDetailPage.tsxCancelled orders workflow ✅ OrderController.cancelOrder(), поля cancel_reason/cancelled_atRefunds API ✅ erp-admin/api/refunds.tsX/Z отчёты смены (event-уровень) ✅ erp-order-service/controller/InternalShiftController.java публикует shift.closed в KafkaShift Monitor (открытые/закрытые) ✅ pages/shifts/ShiftMonitorPage.tsx — автореfresh 30с, статусы «скоро 24h / Z!»Shift Report (X/Z в UI) ✅ pages/shift-report/ShiftReportPage.tsx — финансы смены, топ товаров, CSV-экспортTransaction Journal (UI) 🟨 pages/transactions/TransactionJournalPage.tsx есть, но backend endpoint GET /api/v1/admin/transactions отсутствует (404) Persistent Shift (entity) 🟨 публикуются только события — сущности смены в БД нет Repeat order ❌ Автозакрытие заказов ❌
Доставка
Фича Статус Где Dine-in: столы / места / перенос позиций ✅ pages/stores/TablesSection.tsx — canvas с drag&drop, статусы free/occupied/reserved, привязка заказаDine-in POS-клиент ❄️ erp-pos/mobile/src/screens/TablesScreen.tsx (frozen)Aggregator orders приём ✅ pages/stores/IntegrationsSection.tsx + aggregator-service webhookDelivery zones ❌ Нет сущности DeliveryZone в store-service ETA (расчёт в order) ❌ Нет поля estimated_delivery_time Delivery charges ❌ Нет поля delivery_fee в Order Calculate delivery time ❌ Online orders flow (сайт/app) ❌ Offline mode ❄️ erp-pos/mobile/src/transaction/TransactionStore.ts (SQLite + sync queue, frozen)
Кухня / KDS
Фича Статус Где Kitchen Queue UI (Kanban + ETA) ✅ pages/kitchen/KitchenQueuePage.tsx — 3 колонки, полинг 10с, цветовая индикация ETAPOS Kitchen Queue ❄️ erp-pos/mobile/src/screens/KitchenQueueScreen.tsx (frozen)YumaKitchen Android-приложение (отдельное) ❌ Kitchens (цеха: горячий/холодный/бар) ❌ Нет сущности Kitchen в catalog Kitchen printers + маршрутизация ❌ Labels (печать КБЖУ-этикеток) ❌
CRM / Клиенты / Лояльность / Маркетинг
Фича Статус Где Customers CRUD ✅ erp-customer-service/controller/CustomerController.javaCustomer groups (static + dynamic с rules_json) ✅ CustomerGroup.java + CustomerGroupMember.java + recompute-schedulerMerge duplicate customers ✅ CustomerController.merge()Customer addresses CRUD ✅ /api/v1/customers/{id}/addressesInternal search by phone ✅ /internal/customers/search-by-phoneQuick-create customer ✅ /internal/customers/quick-createCustomers UI в админке ❌ Папки pages/customers/ нет Loyalty programs ❌ Сервиса erp-loyalty-service нет Points (баллы) ❌ Discounts (ручные + акционные) ❌ Promotional campaigns ❌ Promotional broadcasts (email/push/SMS) ❌ One-time promo codes ❌ Gift cards ❌ House account (оплата в кредит) ❌
Склад и производство (erp-warehouse-service)
Фича Статус Где Inventory items (остатки) ✅ StockBalance.java, StockController.javaAcceptance-acts (приёмки) ✅ ReceiptAct.java, статусы draft/postedWrite-off-acts (списания) ✅ WriteOffAct.javaUnits of measurement (с конвертацией) ✅ UnitConversion.java, UnitConversionController.javaInventory acts (инвентаризация факт vs план) ❌ Stock-transfer-acts (перемещения между складами) ❌ Returns-acts (возвраты поставщикам) ❌ Purchase orders (заказы поставщикам) ❌ Contractors (справочник поставщиков) ❌ Production orders (фабрика-кухня) ❌ Refactor acts (переработка полуфабрикатов) ❌ Wholesale-acts / wholesale price lists ❌ Expenditure / income items ❌ Actualizing inventory (bulk-обновление) 🟨 FIFO/LIFO при приёмке есть, bulk-операции нет Beer keg ❌
Каталог (erp-catalog-service)
Фича Статус Где Items / categories / modifiers / recipes / price-lists / stop-lists ✅ BR 1.7–1.13 Calorie count (КБЖУ: ккал/белки/жиры/углеводы) ✅ поля в Product.java (строки 63-73), миграция 019-extend-products.xml Product флаги (open_price, by_weight, exclude_from_promo, manual_discount_banned, admin_only) ✅ ProductEditPage Tags (метки для товаров) ❌ Daily menu (временное меню) ❌ Аллергены ❌ Отдельного поля нет (есть только КБЖУ) Menu visibility rules (по времени / каналу) 🟨 частично через стоп-листы/прейскуранты, не полноценно Taxes (модуль налогов) ⚪ PayKeeper (vat_rate в товаре)
Финансы
Фича Статус Где Legal entities (ЮЛ) ✅ erp-user-service/entity/LegalEntity.java, LegalEntityController.java, import из CSVCash drawer ⚪ PayKeeper Cash balance (сводка наличных по ТТ) ❌ Cash flows (доходы/расходы/переводы) ❌ Сервиса erp-finance-service нет Finances dashboard ❌
Отчёты и аналитика
Фича Статус Где Employee Activity dashboard ✅ pages/activity/EmployeeActivityPage.tsx — смены/часы/начисленияTerminals Dashboard ✅ pages/activity/TerminalsDashboardPage.tsx — кассиры, выручка, live через Kafka shiftMonitorShift Report (X/Z-детализация) ✅ pages/shift-report/ShiftReportPage.tsx — финансы, топ товаров, CSVUser Service Dashboard endpoint ✅ DashboardController.java → BFF /api/v1/dashboard/activity (кэш в admin-bff)Admin Dashboard (главный экран) 🟨 pages/DashboardPage.tsx есть, но показывает только приветствие и user info — не KPI/метрикиDetailed sales reports (по дням/ТТ/сотрудникам) ❌ Нет pages/reports/ Customer revenue report ❌ LTV report ❌ Item ingredients report (расход) ❌ Production report ❌ Cost & margin report ❌ Transaction Journal backend 🟨 UI есть, endpoint /api/v1/admin/transactions возвращает 404
Интеграции
Фича Статус Где Aggregator skeleton (Menu sync + Stoplist + Webhook + Status push) ✅ erp-aggregator-service (M2 skeleton)Яндекс.Еда connector 🟨 YandexEdaConnector.java — stub, ждёт контрактМаркет Деливери (МД) connector 🟨 аналогично Aggregator Bindings CRUD ✅ /binding/:id — OAuth-credentials per restaurantPayKeeper adapter (новый сервис) ❌ Пока не создан 1С интеграция ❌ Export to Excel / XML / PDF ❌ Только CSV в payroll + shift-report E-invoicing (ЭДО) ❌ Telfin / VoIP / call-центр ❌
Документооборот
Фича Статус Где Documents (акты warehouse со статусами draft/posted) 🟨 частично — только Receipt/WriteOff с двумя статусами, без рабочего процесса утверждения Document types / supported doc types ❌ Recording / unrecording (проводка / откат) ❌ Confirm documents (ролевое утверждение) ❌ Message / document history ❌
Уведомления
Фича Статус Где Notification center / push settings / event messages / manual broadcasts / history ❌ Сервиса erp-notification-service нет
Customer-facing
Фича Статус Где Мобильное приложение клиента ❌ Репо erp-customer не существует Customer BFF (:3021) ❌ Website settings (брендирование, контент) ❌ SEO (мета-теги, robots) ❌ QR-codes (стол / персональный клиента) ❌
Настройки и администрирование
Фича Статус Где Register stores (расширенные) ✅ BR 1.5 + 1.6, pages/stores/* (CRUD + import) POS-терминалы на ТТ ✅ pages/stores/TerminalsSection.tsx — привязка по ФН/РН ККТAggregator integrations на ТТ ✅ pages/stores/IntegrationsSection.tsxSystem settings (налоги, лимиты, регистрация) 🟨 частично в franchise + CLAUDE.md Advanced parameters (зоны / залы / регионы) ❌
Регулятивные
Фича Статус Где Marked items в каталоге (is_marked) ✅ Product ЕГАИС (алкоголь) ⚪ PayKeeper Честный Знак / Honor / ТС ПИоТ ⚪ PayKeeper
Сотрудники и роли
Фича Статус Где Франшизы с типом corporate/individual ✅ Franchise.java, поле typeLegal entities CRUD + soft delete + suspend + main LE + import ✅ erp-user-service/entity/LegalEntity.java + UIEmployees CRUD + scope (ТТ/роли) + статусы ✅ pages/employees/*Roles permission-based (POS + бэк-офис + формулы зарплаты) ✅ pages/roles/*Schedule (графики смен) ✅ ScheduleController.java, ShiftSchedule.java, ShiftTemplate.java; UI pages/schedule/SchedulePage.tsx + ShiftTemplatesPage.tsxPayroll + Salary Formulas ✅ PayrollController.java, SalaryFormula.java; UI pages/payroll/PayrollPage.tsx + SalaryFormulasPage.tsx; CSV-экспортTime tracking (clock in/out, breaks, auto-close) ✅ ShiftRecord.java, ShiftRecordController.java, ShiftAutoCloseJobAnti-theft controls ❌
Аутентификация
Фича Статус Где Login + logout ✅ pages/LoginPage.tsx, LoginControllerForgot password ✅ pages/auth/ForgotPasswordPage.tsxReset password ✅ pages/auth/ResetPasswordPage.tsxNo Access page ✅ pages/NoAccessPage.tsx
Оборудование
Фича Статус Где Hardware / devices / payment-terminals / card-readers / fiscal-printers / check-printers ⚪ PayKeeper
Ключевые расхождения документации и кода
X/Z отчёты смены — числились 🟨 draft. По факту реализованы: backend публикует shift.closed в Kafka, UI имеет Shift Monitor + детальный Shift Report с финансами и топом товаров.
Cancelled orders workflow — числился ❌. По факту есть OrderController.cancelOrder() + поля в БД + UI.
Dine-in столы — числился ❌. По факту есть полноценная визуализация в TablesSection (admin) + экран в POS (frozen).
Kitchen Queue / KDS — числился ❌. По факту есть Kanban-UI в админке с ETA-расчётом.
Customers list + groups + merge — числились 🟨 draft. По факту CRUD реализован в erp-customer-service, UI в админке отсутствует.
Calorie count (КБЖУ) — числился ❌. По факту есть поля ккал/белки/жиры/углеводы в Product.
Units of measurement — числился 🟨 частично. По факту полноценная сущность UnitConversion в warehouse-service.
Schedule / Payroll / Time tracking — числились 🟨 in_progress. По факту всё реализовано с UI, формулами, CSV-экспортом.
Transaction Journal — UI есть (TransactionJournalPage.tsx), но backend endpoint /api/v1/admin/transactions возвращает 404.
Activity dashboards (Employees + Terminals) — не были в списке, по факту есть.
Aggregator Service — числился 🟨. По факту M2-skeleton с menu/stoplist/webhook есть, ждёт контракта Я.Еда.
Offline mode в POS — в erp-pos/mobile есть полная реализация через SQLite (TransactionStore), заморожено по ADR-014.