Организация (Франшиза, ЮЛ, сотрудники, роли)

Структурные сущности: владельцы, юр.лица, сотрудники, роли.

Известно багов в зоне: 13 + 1 cross-cutting

6 Critical, 5 Major, 2 Minor. Подробности — inline ниже. Полный список: 04-known-bugs-index.

Франшизы (corporate vs individual)

  • Тип corporate — иерархия: главное ЮЛ + партнёры, раздел «Юр.лица» виден
  • Тип individual — ИП-режим: одно главное ЮЛ, партнёров нет, раздел «Юр.лица» скрыт
  • Виджет «Юр.лица» на дашборде скрыт при individual
  • POST /legal-entities type=franchisee при individual403 FRANCHISE_TYPE_INDIVIDUAL
  • Bootstrap новой франшизы — вручную через SQL (UI нет)
  • Редактирование своей франшизы → 404 после Save (BUG-006)
  • Карточка ЮЛ — вкладки «Информация»/«Сотрудники»/«Документы» не реагируют на клик (BUG-005)

Юридические лица — CRUD

  • CRUD: создание, редактирование, soft delete (только если нет привязанных ТТ)
  • Suspend/Resume — при suspend все ТТ снимаются с публикации, при resume не возвращаются автоматически
  • Главное ЮЛ — одно type=franchise, автостановится главным
  • Поиск по наименованию + ИНН одновременно (один inputbox)
  • Фильтры по статусу и типу
  • Создание формы — фокус теряется со строки после первого символа (BUG-002)

Юридические лица — валидация

  • ИНН: 10 (ООО) или 12 (ИП) цифр + контрольная сумма
  • ИНН — readonly после создания (нельзя менять)
  • ИНН UNIQUE per franchise (WHERE deleted_at IS NULL)
  • Дубликаты ИНН — ошибка, не молчаливое обновление
  • КПП: 9 цифр (BUG-003 — валидация на латинице)
  • ОГРН: 13 (ООО) или 15 (ИП) цифр
  • БИК: 9 цифр — нет сообщений об ошибке (BUG-004)
  • Расчётный/корр.счёт: 20 цифр — нет сообщений об ошибке (BUG-004)
  • Телефон — нет сообщений об ошибке (BUG-004)
  • Текст ошибок при невалидных данных — на латинице (BUG-X01)

Юридические лица — импорт xlsx (только corporate)

  • Импорт из xlsx — Unsupported Media Type (BUG-001)
  • Шаблон скачиваемый
  • Preview с разделением валидных/ошибочных строк
  • Скачивание ошибочных строк отдельным xlsx
  • Дубликаты ИНН — отвергаются (ошибка в строке)
  • Лимит 10 000 строк
  • Прогресс-бар для больших файлов

Создание ЮЛ Франчайзи с владельцем (corporate only)

  • Транзакционно: ЮЛ + employee + employee_roles в одной операции
  • Блок «Владелец» — обязательные поля (имя, фамилия, email, опционально телефон/пароль)
  • Блок «Права владельца» — режим «Полный доступ» / «Настроенные права»
  • При «Настроенных правах» — создаётся скрытая роль с owner_legal_entity_id
  • Минимум permissions: pos.access, stores.read, employees.read (нельзя снять)
  • Модалка после создания — email + временный пароль с кнопкой «Скопировать»
  • Soft delete ЮЛ → владелец деактивируется
  • Восстановление ЮЛ → владелец реактивируется

Вкладка «Права» в карточке ЮЛ партнёра

  • Переключение «Полный доступ» ↔ «Настроенные права»
  • Матрица permissions (бэк-офис + POS)
  • Применяется немедленно
  • Владелец партнёра не видит вкладку у своего же ЮЛ
  • При переключении — старая скрытая роль удаляется/новая создаётся

Сотрудники CRUD

  • Создание (BUG-008500 INTERNAL_ERROR)
  • Редактирование (имя, email, пароль, телефон, PIN, флаг «Курьер», роли с per-role ТТ)
  • Поиск по ФИО (BUG-007 — не работает)
  • Email UNIQUE per franchise_id
  • PIN — 4 цифры, UNIQUE per ТТ (BUG-010 — дублируется в верхней строке и блоке)
  • Деактивация / реактивация — статус active/inactive
  • Деактивированный сотрудник — пункты «Редактировать»/«Реактивировать» в бургере неактивны (BUG-011)
  • Все активные сессии завершаются при деактивации
  • Юр.детали (ИНН, паспорт, СНИЛС, ВУ) — доступ только владельцам (ФЗ-152)
  • Валидация полей (Имя, Фамилия, Пароль, Телефон, ТТ) — отсутствует (BUG-009)
  • При создании с невалидными — ошибки на латинице (BUG-X01)

Роли и permissions

  • CRUD пользовательских ролей (имя UNIQUE per franchise, case-insensitive, только среди не-hidden)
  • Системная «Администратор» — нельзя удалить или изменить permissions, можно переименовать
  • Скрытые роли владельцев партнёров — невидимы в общем списке (owner_legal_entity_id IS NOT NULL)
  • Удаление роли — проверка employee_roles409 ROLE_IN_USE
  • Soft delete с восстановлением
  • Не редактируется роль сотрудника с админа (BUG-012)
  • Назначение нескольких ролей с разными per-role наборами ТТ (employee_role_stores)
  • Permission catalog: 17 секций бэк-офиса × Read/Edit
  • Manager → Юр.лица возвращает 403 (BUG-013)

Связано: