Направление работ: WebLk Код раздела: 5.5.2 Раздел: Заказы > Абонементы > Карточка абонемента Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 10.08.26
1. Назначение
Данный раздел обеспечивает партнёру работу с экраном «Управление абонементом»: просмотр и изменение состава группы заказов, выполнение групповых действий, копирование информации, удаление и просмотр истории.
Состав и статусы заказов определяются в Back: 3.1 «Состав заказа» и 3.2 «Процессинг заказов», обработка групп — в Back: 3.3.1 «Процессинговые группы заказов», расчёт стоимости — в Back: 4.2.1 «Расчёт в группах заказов».
2. Ключевые понятия
Абонемент — объединённая в WebLk группа заказов одного клиента, для которой отображаются общий период, состав, стоимость и состояние оплаты.
Группа заказов — совокупность связанных заказов, обрабатываемых в рамках общего пользовательского сценария.
Заказ — сущность, которая сопровождает и фиксирует процесс использования клиентом площадки или услуги партнёра.
Предзаказ без статуса — бронирование, которое отражает занятость времени, но не переводит заказ в статус «Резерв».
Партнерская зона — сущность для хранения всей связанной информации по площадкам и услугам представленных в интерфейсах платформы.
3. Scope
Входит
S1: Фильтрация данных на странице управления абонементом
S2: Просмотр и изменение состава абонемента
S3: Выполнение групповых действий с заказами
S4: Удаление абонемента, копирование информации и просмотр истории
S5: Ограничение доступных действий по правам пользователя
Не входит
- WebLk 5.5 «Абонементы» — поиск и просмотр списка абонементов
- WebLk 5.5.1 «Создание абонемента» — создание группы заказов
- WebLk 5.5.3 «Оплата абонемента» — проведение оплаты
- WebLk 5.3.1 «Создание бронирования» — создание отдельного бронирования
- WebLk 6.4.1 «Карточка клиента» — просмотр и изменение данных клиента
- Back 3.3.1 «Процессинговые группы заказов» — серверная обработка групп заказов
- Back 4.2.1 «Расчёт в группах заказов» — серверный расчёт стоимости абонемента и распределение скидок
4. BR
Указаны в пункте 4 разделов Back: 3.1 «Состав заказа», 3.2 «Процессинг заказов», 3.3.1 «Процессинговые группы заказов» и 4.2.1 «Расчёт в группах заказов».
5. Функциональные требования (UC + FR)
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: FR5.5.2-1 | Партнёр применяет дополнительные фильтры на странице управления абонементом | На странице «Управление абонементом» интерфейс позволяет отфильтровать данные по группе клиентов (на будущую реализацию), наличию скидки и наличию сбора. | 1 | Не реализовано \ OQ5.5.2-4 | |
| S1: FR5.5.2-2 | Партнёр фильтрует данные по промокоду на странице управления абонементом | На странице «Управление абонементом» поле «Промокод» поддерживает поиск по введённой части кода и выбор значения из найденного списка. | 1 | Не реализовано \ OQ5.5.2-4 | |
| S2: FR5.5.2-3 | Партнёр просматривает общие данные абонемента | Страница «Управление абонементом» показывает клиента, количество заказов, общую стоимость, оплаченную сумму, сумму к оплате, дату полной оплаты и комментарий администратора. Итоговые показатели отображаются как неинтерактивная информация. | 1 | Реализовано \ OQ5.5.2-21 | |
| S2: FR5.5.2-4 | Партнёр открывает карточку клиента из абонемента | Клик по данным клиента открывает WebLk 6.4.1 «Карточка клиента». | 1 | Не реализовано \ OQ5.5.2-20 | |
| S2: FR5.5.2-5 | Партнёр изменяет дату полной оплаты | Клик по полю «Дата полной оплаты» открывает календарь. Действие «Сохранить» применяет выбранную дату к абонементу. | 1 | Реализовано \ OQ5.5.2-22 | |
| S2: FR5.5.2-6 | Партнёр изменяет комментарий | Поле «Комментарий» редактируется и сохраняется непосредственно на странице управления абонементом без открытия модального окна. | 1 | Реализовано \ OQ5.5.2-22 | |
| S2: FR5.5.2-7 | Партнёр просматривает детализацию состояний | Интерфейс показывает количество заказов в состояниях «Без статуса», «Зарезервировано», «Частично оплаченный», «Оплаченный», «Закрытый», «Отменённый» и «Отменённый со сбором», а также признаки способа оплаты и учтённого сбора при наличии. | 1 | Не реализовано \ OQ5.5.2-5 | |
| S2: FR5.5.2-8 | Партнёр ищет заказ внутри абонемента | Поле «Найти» и фильтры «С», «До» и «Статус» изменяют состав заказов, показанных в таблице абонемента. | 1 | Реализовано \ OQ5.5.2-23, OQ5.5.2-18 | |
| S2: FR5.5.2-9 | Партнёр просматривает заказы абонемента | Для каждого заказа таблица показывает чекбокс выбора, дату и время, объект, площадку, опции в зависимости от сфер, наличие комментария, дополнительных позиций и промокода, количество, итоговую стоимость и статус. Чекбокс позволяет выбрать заказ для выполнения групповых действий. | 1 | Частично \ OQ5.5.2-7, OQ5.5.2-8 | |
| S2: FR5.5.2-10 | Партнёр настраивает состав данных заказа | Меню «Настройки отображения» позволяет показать или скрыть дату создания, итоговую стоимость, ID заказа, скидку на позиции, скидку на время, сумму скидки, сбор, время и сумму за часы, а также восстановить набор полей по умолчанию. | 2 | Частично \ OQ5.5.2-7, OQ5.5.2-8 | |
| S2: FR5.5.2-11 | Партнёр открывает заказ в календаре | Клик по дате заказа открывает в новом окне календарь с недельным отображением соответствующей площадки. | 1 | Не реализовано \ OQ5.5.2-6 | |
| S2: FR5.5.2-12 | Партнёр наводит указатель на данные заказа | Интерфейс подчёркивает значения, для которых доступны дополнительные действия. При наведении отображаемое значение меняется в зависимости от колонки: например, в колонке «Комментарий» интерфейс показывает «расшифровка». | 2 | Частично \ OQ5.5.2-9 | |
| S2: FR5.5.2-13 | Партнёр редактирует заказ абонемента | Действие редактирования открывает панель «Редактирование заказа» с доступными для изменения датой, временем, объектом, площадкой, опциями в зависимости от сфер, дополнительными позициями, промокодом и комментарием администратора. | 1 | Реализовано \ OQ5.5.2-24 | |
| S2: FR5.5.2-14 | В абонементе есть несохранённые заказы | Интерфейс показывает индикатор несохранённых заказов до устранения всех проблем и скрывает его после успешного сохранения состава абонемента. | 1 | Частично \ OQ5.5.2-10 | |
| S3: FR5.5.2-15 | Партнёр выбирает заказы абонемента | Интерфейс позволяет выбрать один или несколько заказов либо все заказы текущей выборки и показывает панель доступных групповых действий. | 1 | Реализовано \ OQ5.5.2-25, OQ5.5.2-18 | |
| S3: FR5.5.2-16 | Партнёр выбрал предзаказы без статуса | Для выбранных предзаказов без статуса интерфейс показывает действия «Зарезервировать» и «Удалить». | 1 | Реализовано \ OQ5.5.2-25 | |
| S3: FR5.5.2-17 | Партнёр выбрал зарезервированные и частично оплаченные заказы | Интерфейс показывает действия «Оплатить» и «Отменить», а при наличии соответствующих прав и условий отмены — варианты «Отменить и начислить сбор» и «Отменить без сбора». | 1 | Частично \ OQ5.5.2-1, OQ5.5.2-2, OQ5.5.2-17 | |
| S3: FR5.5.2-18 | Партнёр выбрал оплаченные заказы | Интерфейс показывает действие «Отменить», а при наличии соответствующих прав и условий отмены — варианты отмены с возвратом или удержанием предоплаты. | 1 | Частично \ OQ5.5.2-2, OQ5.5.2-3, OQ5.5.2-17 | |
| S3: FR5.5.2-19 | Партнёр выбрал завершённые заказы | Интерфейс показывает действие отмены только при наличии соответствующего права и допустимого правилами отмены сценария. | 1 | Не реализовано \ OQ5.5.2-11, OQ5.5.2-2, OQ5.5.2-17 | |
| S3: FR5.5.2-20 | Партнёр выбрал ошибочно созданные записи | Для записей со статусом ошибки «Заказ не создан» интерфейс показывает действие «Удалить». | 1 | Реализовано \ OQ5.5.2-26 | |
| S3: FR5.5.2-21 | Партнёр выбрал заказы с несовместимыми состояниями | Если для выбранного сочетания состояний нет общего действия, интерфейс показывает сообщение «Для заказов с выбранными статусами групповые действия недоступны». | 1 | Не реализовано \ OQ5.5.2-12 | |
| S4: FR5.5.2-22 | Партнёр открывает меню абонемента | Меню страницы показывает доступные действия «Копировать информацию», «История изменений» и «Удалить» с учётом состояния абонемента и прав пользователя. | 1 | Не реализовано \ OQ5.5.2-13, OQ5.5.2-14, OQ5.5.2-15 | |
| S4: FR5.5.2-23 | Партнёр удаляет абонемент | Действие удаления абонемента доступно только тогда, когда все заказы группы являются предзаказами без статуса. | 1 | Не реализовано \ OQ5.5.2-14 | |
| S4: FR5.5.2-24 | Партнёр копирует информацию об абонементе | Действие «Копировать информацию» помещает в буфер обмена текст с приветствием, ссылкой на МАРТ, данными клиента и перечнем объекта, площадки, даты и времени каждого заказа абонемента, после чего показывает стандартное уведомление об успешном копировании. | 2 | Частично \ OQ5.5.2-16 | |
| S4: FR5.5.2-25 | Партнёр открывает историю изменений (на будущую реализацию) | Действие «История изменений» открывает технический список событий абонемента. | 3 | Не реализовано \ OQ5.5.2-15 | |
| S4: FR5.5.2-26 | Партнёр просматривает историю изменений (на будущую реализацию) | Для каждого события интерфейс показывает дату и время, описание изменённых опций и значений, новую сумму с учётом сбора и пользователя, который внёс изменения. | 3 | Не реализовано \ OQ5.5.2-15 | |
| S5: FR5.5.2-27 | Пользователю доступен только просмотр | Интерфейс скрывает иконки редактирования, возможность выбора заказов и панель групповых действий. Редактируемые поля отображаются в информационном режиме. | 1 | Не реализовано \ OQ5.5.2-17 | |
| S5: FR5.5.2-28 | Пользователю доступен только просмотр дополнительных позиций | Дополнительные позиции отображаются в упрощённом виде, как в карточке заказа, без иконок редактирования и интерактивного состояния при наведении. | 1 | Не реализовано \ OQ5.5.2-17 | |
| S5: FR5.5.2-29 | Интерфейс определяет доступные групповые действия | Состав кнопок в панели групповых действий зависит от прав пользователя, состояний выбранных заказов и соблюдения правил отмены. | 1 | Не реализовано \ OQ5.5.2-17, OQ5.5.2-1, OQ5.5.2-2 |
6. Открытые вопросы
Сверка с кодом: BRD 5.5.2 v0.1 · репозиторий
musbooking_personal_account· commit93383777/main· 12.08.26 · якоряfeatures.fsd/processing-groups-table(таблица заказов абонемента и групповые действия),widgets.fsd/processing-group-details(страница «Управление абонементом»),entities.fsd/processing-group(данные заказов группы и состав колонок),features.fsd/order-form(панель «Редактирование заказа»),pages/orders/processing-group/[id](маршрут страницы) Сводка: 29 требований — Реализовано 8 · Частично 7 · Не реализовано 14. 20 открытых вопросов (Бизнес 6 · Разработка 11 · Бизнес/Разработка 3) и 6 подтверждённых блоков без расхождений. Наверх, вес 1: OQ5.5.2-1 — подписи кнопок отмены не соответствуют выполняемому действию (сбор начисляется наоборот); OQ5.5.2-2 — групповая отмена идёт без подтверждения и без проверки правил отмены; OQ5.5.2-17 — прав доступа в разделе нет вообще. Маршрутизация без сверки с гайдбуком (гайдбук не передавался).
| ID | Источник | Вопрос | Кому | Статус | Рекомендации | Итоговое решение |
|---|---|---|---|---|---|---|
| OQ5.5.2-1 | Код FR5.5.2-17, FR5.5.2-29 | Требование говорит: для зарезервированных заказов партнёр выбирает между «Отменить и начислить сбор» и «Отменить без сбора» — подпись кнопки должна соответствовать последствию для клиента. В коде подписи и действия перепутаны местами: кнопка «Отменить и удержать сбор» отменяет заказы с признаком «начислить сбор» (AccountingForfeit = true) — сбор клиенту начисляется; кнопка «Отменить и начислить сбор» отменяет с AccountingForfeit = false — сбор не начисляется. Уведомление после действия повторяет ту же ошибку: нажав «Отменить и начислить сбор», партнёр получает всплывающее «Отменено заказов с начислением сбора», хотя сбора нет. Третья кнопка «Отменить» делает ровно тот же вызов (false, false), что и «Отменить и начислить сбор», — два разных ярлыка для одного и того же действия. Для оплаченных заказов подписи верные, но имена функций инвертированы: cancelWithRefundSelectedOrders предоплату удерживает, а cancelWithoutRefundSelectedOrders — возвращает, поэтому ошибку легко повторить при следующей правке. \ features.fsd/processing-groups-table/ui/details.vue:253-271,1122-1154,1157-1189,1192-1259,1262-1299; shared.fsd/api/orders/orders.api.ts:268-275 | Бизнес/Разработка | Open | Завести тикет в Bitrix, высокий приоритет: поменять местами обработчики кнопок для зарезервированных заказов, привести тексты уведомлений к фактическому действию и переименовать функции по смыслу (cancelWithFee/cancelWithoutFee, cancelWithRefund/cancelWithoutRefund). Отдельно проверить по журналам, сколько абонементов уже отменено «наоборот», и решить, нужна ли компенсация клиентам. | |
| OQ5.5.2-2 | Код FR5.5.2-17, FR5.5.2-18, FR5.5.2-19, FR5.5.2-29 | Требование говорит: варианты отмены предлагаются «при наличии соответствующих прав и условий отмены», а по WebLk 5.3.4 отмена подтверждается предупреждением. В коде любое групповое действие выполняется сразу по клику: подтверждающего окна нет, срок бесплатной отмены не проверяется, заказы отменяются пачкой параллельными запросами. Модалка отмены в виджете абонемента подключена в разметку, но метод, который её открывает, ни разу не вызывается — он объявлен и «выставлен наружу», и на этом всё, то есть это мёртвый код. Отменить 30 заказов абонемента можно одним кликом без единого предупреждения. \ features.fsd/processing-groups-table/ui/details.vue:1122-1299; widgets.fsd/processing-group-details/ui/index.vue:107-116,383-385,453-455 | Разработка | Open | Завести тикет в Bitrix: подключить уже написанную модалку отмены к групповым действиям (она сама определяет тип по правилам отмены и статусу оплаты) и показывать сводку «будет отменено N заказов, сбор начислен по M». До этого групповая отмена остаётся необратимым действием без подтверждения. Связать с OQ5.5.2-1. | |
| OQ5.5.2-3 | Код FR5.5.2-18 | Что нашли: для оплаченных заказов кроме «Отменить и удержать предоплату» и «Отменить и вернуть предоплату» есть третья кнопка «Отменить» — она отменяет заказ без возврата и без начисления сбора. Деньги клиента при этом остаются у партнёра, но в системе это не помечено ни как удержание, ни как возврат. BRD такого третьего варианта для оплаченных заказов не описывает. \ features.fsd/processing-groups-table/ui/details.vue:312-320,1262-1299 | Бизнес | Open | (А) убрать общую кнопку «Отменить» из режима оплаченных заказов, оставив только два явных исхода (рекомендуется: сейчас есть способ отменить оплаченный заказ, не приняв решения о деньгах); (Б) описать этот третий сценарий в BRD и объяснить, что происходит с оплатой. | |
| OQ5.5.2-4 | Код FR5.5.2-1, FR5.5.2-2 | Требование говорит: на странице управления абонементом есть фильтры по группе клиентов, наличию скидки и наличию сбора, а также поле «Промокод» с поиском по части кода. В коде во всплывающем фильтре только два поля — «Статус заказа» и «Статус оплаты», оба множественного выбора, с кнопками «Сбросить» и «Применить». Ни группы клиентов, ни признака скидки, ни признака сбора, ни промокода в фильтрах нет. Заготовка под фильтр по источнику заказа заведена в коде, но в интерфейс не выведена и помечена как TODO. \ features.fsd/processing-groups-table/ui/details.vue:86-123,693-711,907-921 | Бизнес | Open | (А) запланировать недостающие фильтры, начав с промокода и признака сбора (рекомендуется: без них партнёр не может найти проблемные заказы внутри большого абонемента); (Б) сократить FR5.5.2-1/2 до фактического набора «Статус заказа» + «Статус оплаты» и перенести остальное в отдельную задачу развития. | |
| OQ5.5.2-5 | Код FR5.5.2-7 | Требование говорит: интерфейс показывает количество заказов в семи состояниях плюс признаки способа оплаты и учтённого сбора. В коде в шапке абонемента всего четыре показателя: «Кол-во заказов», «Общая стоимость», «Оплачено», «К оплате». Разбивки по состояниям нет. Цветовая легенда, из которой, судя по формулировкам, и написано требование (те же семь состояний плюс «Безнал» и «В заказе учтен сбор»), есть только на странице списка абонементов, и это именно легенда цветов, а не счётчики. Карточка абонемента вообще различает лишь четыре статуса заказа (без статуса, зарезервировано, закрыто, отменено) с уточнением по оплате — состояния «Отменённый со сбором» на фронте нет. \ features.fsd/processing-groups-table/ui/details.vue:42-69; features.fsd/processing-groups-table/ui/index.vue:146,223-242; entities.fsd/processing-group/lib/processing-group-orders.getters.ts:225-276 | Бизнес/Разработка | Open | (А) добавить в шапку абонемента счётчики по состояниям и перенести туда легенду со списка (рекомендуется: это основной способ понять, что с абонементом не так, без пролистывания таблицы); (Б) сократить FR5.5.2-7 до легенды и признать, что детализация живёт на странице списка. В обоих случаях бизнесу нужно подтвердить, как в интерфейсе показывать «Отменённый со сбором», которого фронт сейчас не различает. | |
| OQ5.5.2-6 | Код FR5.5.2-11, FR5.5.2-13 | Требование говорит: клик по дате заказа открывает в новом окне календарь с недельным отображением площадки. В коде клик по любому месту строки открывает боковую панель «Редактирование заказа»; отдельного поведения у колонки с датой нет, новое окно нигде не открывается. Фактически два требования конфликтуют между собой: одна и та же строка не может по клику и открывать календарь, и открывать редактирование. \ features.fsd/processing-groups-table/ui/details.vue:208-219,854-871; widgets.fsd/processing-group-details/ui/index.vue:23-36,270-274 | Бизнес | Open | (А) оставить открытие панели редактирования по клику на строку и сделать переход в календарь отдельным действием — например, ссылкой в колонке даты (рекомендуется: снимает конфликт FR5.5.2-11 и FR5.5.2-13); (Б) отказаться от FR5.5.2-11, если переход в календарь из абонемента не нужен. | |
| OQ5.5.2-7 | Код FR5.5.2-9, FR5.5.2-10 | Требование говорит: в таблице заказа показываются дата и время, объект, площадка, опции, наличие комментария, позиций и промокода, количество, стоимость и статус, а в настройках отображения можно включить дату создания, время и сумму за часы. В коде набор колонок другой. Нет колонок «дата создания», «время» и «сумма за часы»: шаблон ячейки для времени в коде остался, но колонки с таким идентификатором в наборе нет — то есть он никогда не отрисуется. Есть колонки, которых нет в BRD: «Источник», «Оплаты», «Возвраты», «Дата оплаты», «Комментарий клиента», «Комментарий менеджера», «Промокоды», «Позиции», «Вид работ», «Количество гостей». По умолчанию видны только семь колонок (источник, дата заказа, объект, площадка, оплаты, итого, статус) — комментарий, позиции, промокод и количество, которые FR5.5.2-9 требует показывать для каждого заказа, скрыты и включаются вручную. Восстановление набора по умолчанию есть — кнопка «По умолчанию». \ features.fsd/processing-groups-table/ui/details.vue:468,714-780; components/UI/filters/ColumnsMenu.vue:80 | Бизнес | Open | (А) согласовать один эталонный набор колонок и набор «по умолчанию», затем привести код к нему (рекомендуется: сейчас партнёр по умолчанию не видит ни комментария, ни позиций, ни промокода); (Б) переписать FR5.5.2-9/10 по факту, добавив в перечень «Источник», «Оплаты», «Возвраты» и остальные фактические колонки. Учесть OQ5.5.2-8: часть колонок нечем заполнить. | |
| OQ5.5.2-8 | Код FR5.5.2-9, FR5.5.2-10 | Что нашли: пять колонок таблицы заполнить нечем — в коде на их месте стоят заглушки с пометкой TODO. «Промокоды» всегда показывают «нет», «Дата оплаты» всегда пустая, «Сбор» всегда 0, «Возвраты» всегда 0, «Вид работ» всегда «—». Партнёр, включив такую колонку, делает вывод «сбора нет / промокода нет / возвратов не было», хотя данные просто не подставлены из ответа сервера. \ entities.fsd/processing-group/lib/processing-group-orders.getters.ts:359,363,365,376,381; features.fsd/processing-groups-table/ui/details.vue:462-465,714-780 | Разработка | Open | Завести тикет в Bitrix: либо дозаполнить эти поля из ответа по заказам группы, либо временно убрать колонки из меню — показывать заведомо неверный ноль хуже, чем не показывать колонку. Первым приоритетом «Сбор» и «Промокоды»: на них завязаны решения по деньгам. | |
| OQ5.5.2-9 | Код FR5.5.2-12 | Требование говорит: значения, у которых есть дополнительные действия, подчёркиваются при наведении, а в колонке «Комментарий» при наведении показывается «расшифровка». В коде пунктирное подчёркивание есть только у ячейки «Позиции» — при наведении она показывает «Позиций: N». Подсказки при наведении есть также у иконки источника, у точки статуса и у значка ошибки. У колонки комментария ни подсказки, ни подчёркивания нет: длинный текст просто обрезается многоточием, прочитать его целиком нельзя. Слова «расшифровка» в коде нет вообще. \ features.fsd/processing-groups-table/ui/details.vue:435-437,441-450,1668-1674,1741-1746 | Разработка | Open | Завести тикет в Bitrix: добавить всплывающую подсказку с полным текстом для колонок с комментариями (в общем компоненте таблицы такая подсказка уже поддержана) и единый стиль подчёркивания для всех интерактивных значений. | |
| OQ5.5.2-10 | Код FR5.5.2-14, FR5.5.2-20 | Требование говорит: индикатор несохранённых заказов виден, пока не устранены все проблемы, и исчезает после успешного сохранения состава абонемента. В коде индикатор другой по смыслу: это счётчик заказов, по которым сервер вернул ошибки — значок с числом и подсказкой «Заказов с ошибками: N», строки таких заказов подсвечены красным, в колонке статуса вместо статуса стоит красный значок с текстом ошибки. Понятия «несохранённый заказ» на фронте нет: индикатор пропадёт, когда сервер перестанет возвращать ошибки, а не когда партнёр что-то сохранит. Текста «Заказ не создан» из FR5.5.2-20 фронт тоже не знает — он показывает сообщение, пришедшее с сервера, каким бы оно ни было. \ features.fsd/processing-groups-table/ui/details.vue:129-151,389-404,672-676,892-898; entities.fsd/processing-group/lib/processing-group-orders.getters.ts:329,382 | Бизнес/Разработка | Open | (А) переписать FR5.5.2-14/20 в терминах «заказы с ошибками» и зафиксировать перечень серверных ошибок, которые партнёр должен видеть, включая «Заказ не создан» (рекомендуется: соответствует и коду, и тому, что реально возвращает сервер); (Б) если «несохранённые заказы» — это отдельное состояние на стороне WebLk, описать его признаки, потому что сейчас их нет ни в коде, ни в BRD. | |
| OQ5.5.2-11 | Код FR5.5.2-19 | Требование говорит: для завершённых заказов доступно только действие отмены и только при наличии права и допустимого правилами сценария. В коде завершённые (закрытые) заказы попадают ровно в тот же режим, что и оплаченные, и получают четыре кнопки: «Отменить и удержать предоплату», «Отменить и вернуть предоплату», «Отменить» и «Завершить» — то есть партнёру предлагают завершить уже завершённый заказ, а также вернуть по нему предоплату без каких-либо проверок. \ features.fsd/processing-groups-table/lib/bulk-actions.ts:86-89; features.fsd/processing-groups-table/ui/details.vue:293-330,1301-1338 | Разработка | Open | Завести тикет в Bitrix: развести режимы «оплачен» и «завершён»; для завершённых оставить только отмену (после решения по правам и правилам — см. OQ5.5.2-2, OQ5.5.2-17) и убрать кнопку «Завершить». | |
| OQ5.5.2-12 | Код FR5.5.2-21 | Требование говорит: если у выбранных заказов нет общего действия, показывается сообщение «Для заказов с выбранными статусами групповые действия недоступны». В коде такого сообщения нет: при несовместимом наборе статусов режим действий просто становится пустым и все кнопки исчезают, оставляя пустую полосу рядом со счётчиком «Выбрано: N». То же самое происходит, если в выборку попали заказы с ошибками и без. Партнёр не понимает, интерфейс сломался или так задумано. \ features.fsd/processing-groups-table/lib/bulk-actions.ts:63-71; features.fsd/processing-groups-table/ui/details.vue:229-344 | Разработка | Open | Завести тикет в Bitrix: выводить текст из FR5.5.2-21 вместо пустого блока действий, отдельно — для случая «смешаны заказы с ошибками и без». | |
| OQ5.5.2-13 | Код FR5.5.2-22 | Требование говорит: меню страницы показывает «Копировать информацию», «История изменений» и «Удалить». В коде меню абонемента как такового нет. В шапке страницы четыре элемента: индикатор ошибок, «Добавить», «Скачать» (CSV/XLSX) и «Колонки». Единственное из трёх требуемых действий — «Копировать информацию» — спрятано внутрь меню настройки колонок, то есть партнёр найдёт его только случайно. \ features.fsd/processing-groups-table/ui/details.vue:127-204,180-203; components/UI/filters/ColumnsMenu.vue:3-9,94-95 | Бизнес | Open | (А) завести отдельное меню абонемента (три точки) и перенести туда «Копировать информацию», а по мере готовности — «История изменений» и «Удалить» (рекомендуется: соответствует BRD и снимает неочевидность); (Б) зафиксировать в BRD текущее размещение копирования в меню колонок. | |
| OQ5.5.2-14 | Код FR5.5.2-22, FR5.5.2-23 | Требование говорит: абонемент можно удалить, и действие доступно только когда все заказы группы — предзаказы без статуса. В коде удаления абонемента нет ни в каком виде. При этом серверный вызов архивации группы и обёртка к нему написаны и экспортируются из слоя сущности, но ни один экран их не вызывает — код готов и лежит без применения. Проверки «все заказы группы — предзаказы» тоже нигде нет. \ shared.fsd/api/processing-groups/processing-groups.api.ts:246-258; entities.fsd/processing-group/model/useProcessingGroupQueries.ts:202-226; features.fsd/processing-groups-table/ui/details.vue:127-204 | Разработка | Open | Завести тикет в Bitrix: подключить готовую архивацию группы к действию «Удалить» в меню абонемента, добавив проверку условия из FR5.5.2-23 и подтверждение. Работа небольшая — серверная часть уже есть. Связать с OQ5.5.2-13. | |
| OQ5.5.2-15 | Код FR5.5.2-22, FR5.5.2-25, FR5.5.2-26 | Требование говорит: есть действие «История изменений» и просмотр событий абонемента (вес 3, «на будущую реализацию»). В коде истории изменений для абонемента нет — подтверждается, что требование пока не реализовано. Пункт «История изменений» сохранился только в старом компоненте списка заказов, который к абонементам не подключён. \ components/Lists/Orders/MainListItem.vue:49; features.fsd/processing-groups-table/ui/details.vue:127-204 | Разработка | Open | Завести тикет в Bitrix (в бэклог): при реализации истории переиспользовать или удалить старый пункт меню в components/Lists/Orders/MainListItem.vue, чтобы не появилось двух конкурирующих реализаций. Тот же корневой вопрос, что и OQ5.3.2-18 — закрывать одним решением. | |
| OQ5.5.2-16 | Код FR5.5.2-24 | Требование говорит: после копирования информации показывается стандартное уведомление об успешном копировании. В коде текст формируется как в BRD — приветствие, ссылка на МАРТ, имя и телефон клиента, затем по строке на заказ в виде «объект — площадка — Пн 10.11.25 13:00-14:00» и прощание, — но уведомления нет ни при успехе, ни при ошибке: сбой записи в буфер обмена гасится пустым обработчиком. Партнёр в любом случае считает, что скопировал. Отдельно: если в абонементе нет заказов, действие молча ничего не делает. \ features.fsd/processing-groups-table/ui/details.vue:810-841 | Разработка | Open | Завести тикет в Bitrix: показывать стандартное уведомление об успехе и уведомление об ошибке вместо пустого обработчика (механизм уведомлений на этой же странице уже используется для сохранения комментария и даты). | |
| OQ5.5.2-17 | Код FR5.5.2-27, FR5.5.2-28, FR5.5.2-29, FR5.5.2-17, FR5.5.2-18, FR5.5.2-19 | Требование говорит: при доступе «только просмотр» скрываются иконки редактирования, выбор заказов и панель групповых действий, дополнительные позиции показываются в упрощённом виде, а состав кнопок зависит от прав. В коде прав доступа в разделе нет вообще: хранилище прав используется только в разделе сотрудников. Чекбоксы, панель групповых действий и панель редактирования показываются всем, а состав кнопок определяется исключительно статусами выбранных заказов. При этом упрощённый вывод дополнительных позиций в системе уже есть — карточка заказа показывает позиции без кнопок редактирования, — но в панели «Редактирование заказа» из абонемента этот режим не включается. \ stores/permissions.ts:15 (используется только в components/staff/forms/Permissions.vue:175, components/staff/Dashboard/Dashbord.vue:113); features.fsd/processing-groups-table/ui/details.vue:208-344; features.fsd/order-form/ui/OrderForm.vue:56-69; features.fsd/order-details/ui/OrderDetailsCard.vue:117; shared.fsd/ui/position/PositionsList.vue:16,66,73 | Разработка | Open | Завести тикет в Bitrix: подключить проверку прав к карточке абонемента — выбор заказов, групповые действия, редактирование, удаление; для режима «только просмотр» переиспользовать уже существующий упрощённый вид позиций. Корневой вопрос общий с OQ5.3.2-8 и OQ5.3.4-6 — решать один раз для всех разделов, иначе права будут появляться точечно и расходиться. | |
| OQ5.5.2-18 | Код FR5.5.2-8, FR5.5.2-15 | Что нашли: заказы абонемента запрашиваются одной страницей по 100 записей, пагинация с сервера приходит, но нигде не используется. Если в абонементе больше 100 заказов, таблица покажет первые 100 и напишет «Заказов: 100», тогда как в шапке «Кол-во заказов» останется настоящим — расхождение никак не объясняется. Выбор «все заказы» и групповые действия применятся только к видимой сотне, выгрузка в CSV/Excel — тоже. \ features.fsd/processing-groups-table/ui/details.vue:221-228,608-621; entities.fsd/processing-group/store/processing-group.api.ts:379-392 | Разработка | Open | Завести тикет в Bitrix: подключить пагинацию (или подгрузку по прокрутке) к таблице заказов абонемента; как минимум — показывать явное предупреждение об ограничении выборки. Годовой абонемент с еженедельными занятиями (52 заказа) в лимит попадает, с двумя занятиями в неделю — уже нет. | |
| OQ5.5.2-19 | Код FR5.5.2-9, FR5.5.2-22 | Что нашли: страница делает больше, чем описано в BRD: выгружает таблицу в CSV и Excel, показывает кнопку «Добавить», которая открывает форму создания подгруппы заказов для того же клиента, выводит колонку «Источник» с иконкой канала продажи и позволяет перетаскивать колонки в меню настройки. Ни одного из этих действий в разделе 5.5.2 нет. \ features.fsd/processing-groups-table/ui/details.vue:153-177,195-199,349-357,873-890,1341-1389 | Бизнес | Open | (А) дописать в BRD выгрузку, добавление заказов в абонемент и колонку «Источник» как существующую функциональность (рекомендуется: этим пользуются, и требования к ним сейчас нигде не зафиксированы); (Б) решить, что часть из этого относится к WebLk 5.5.1, и сослаться на соответствующий раздел. | |
| OQ5.5.2-20 | Код FR5.5.2-4 | Требование говорит: клик по данным клиента открывает карточку клиента (WebLk 6.4.1). В коде перехода нет: карточке клиента передан признак «можно использовать ссылку», но компонент этот признак нигде не применяет — ни ссылки, ни обработчика клика в нём нет. Кнопка редактирования клиента тоже скрыта, потому что карточка выводится в компактном режиме. Кликабельны только иконки копирования телефона и почты. \ features.fsd/processing-groups-table/ui/details.vue:5-15; entities.fsd/client/ui/Card.vue:57-73,77-86,102-125 | Разработка | Open | Завести тикет в Bitrix: реализовать признак «можно использовать ссылку» в карточке клиента (переход в WebLk 6.4.1) либо убрать неработающий признак, чтобы он не создавал ложного впечатления, что переход есть. | |
| OQ5.5.2-21 | Код FR5.5.2-3 | Что подтверждено: в шапке страницы выводятся карточка клиента (имя, телефон, e-mail, баллы, аватар), «Кол-во заказов», «Общая стоимость», «Оплачено», «К оплате», поле даты полной оплаты и поле «Комментарий администратора». Четыре денежных показателя выводятся неинтерактивными блоками — обработчиков клика у них нет, как и требует BRD. \ features.fsd/processing-groups-table/ui/details.vue:4-70,655-668; components/UI/display/InfoSection.vue:1-30 | — | Подтверждено | Расхождения нет. Клик по клиенту при этом ничего не открывает — см. OQ5.5.2-20. | — |
| OQ5.5.2-22 | Код FR5.5.2-5, FR5.5.2-6 | Что подтверждено: клик по полю даты открывает календарь с кнопкой «Сохранить»; сохранение уходит на сервер отдельным запросом по абонементу и подтверждается уведомлением «Дата оплаты сохранена». Комментарий администратора редактируется прямо на странице: при установке курсора в поле появляется кнопка «Сохранить», модальное окно не открывается, после сохранения выводится «Комментарий сохранен». \ features.fsd/processing-groups-table/ui/details.vue:16-41,923-979; components/UI/fields/CoreDateField.vue:3-45; components/UI/pickers/CoreDatePicker.vue:98-103 | — | Подтверждено | Расхождения по сути нет. Мелочь для протокола: поле подписано «Дата», а не «Дата полной оплаты», как в BRD. | — |
| OQ5.5.2-23 | Код FR5.5.2-8 | Что подтверждено: поле «Найти заказ», выбор периода и фильтры статусов передаются в серверный запрос заказов группы и меняют состав таблицы (фильтрация серверная, не по загруженной странице). \ features.fsd/processing-groups-table/ui/details.vue:73-83,86-123,608-628,900-921; shared.fsd/api/processing-groups/processing-groups.api.ts:268-275 | — | Подтверждено | Расхождения нет. Для протокола: «Статус» в BRD — один фильтр, в коде это два отдельных множественных выбора («Статус заказа» и «Статус оплаты»), применяемых кнопкой «Применить». Ограничение выборки — OQ5.5.2-18. | — |
| OQ5.5.2-24 | Код FR5.5.2-13 | Что подтверждено: по действию редактирования открывается боковая панель с заголовком «Редактирование заказа», в ней доступны клиент, дата, время, опции (вид работ и количество человек), выбор объекта и площадки деревом, блоки «Оборудование» и «Услуги», промокод, «Комментарий администратора» и «Комментарий клиента», а также итог к оплате и переключатель сбора. Повтор заказа в этом сценарии отключён намеренно. \ widgets.fsd/processing-group-details/ui/index.vue:23-36; features.fsd/order-form/ui/OrderForm.vue:6-92 | — | Подтверждено | Расхождения нет; набор полей шире, чем в FR5.5.2-13 (клиент и комментарий клиента) — при следующей правке BRD можно дописать. | — |
| OQ5.5.2-25 | Код FR5.5.2-15, FR5.5.2-16 | Что подтверждено: у каждой строки есть чекбокс, в шапке таблицы — чекбокс «выбрать все» с промежуточным состоянием; над таблицей выводится «Заказов: N (Выбрано: M)» и панель действий, состав которой зависит от статусов выбранных заказов. Для предзаказов без статуса это ровно два действия — «Удалить» (архивирует заказы) и «Зарезервировать» (выполняется последовательно, с паузой между заказами, чтобы не ловить конфликт одновременных изменений). \ components/UI/table/DataTable.vue:23-62,196-208; features.fsd/processing-groups-table/ui/details.vue:208-250,982-1082 | — | Подтверждено | Расхождения нет. «Все заказы текущей выборки» ограничены загруженной сотней — см. OQ5.5.2-18. | — |
| OQ5.5.2-26 | Код FR5.5.2-20 | Что подтверждено: если все выбранные записи — заказы с ошибками, панель показывает единственное действие «Удалить», которое их архивирует; в колонке статуса у таких строк красный значок с текстом ошибки в подсказке, а сама строка подсвечена красным. Смешанная выборка (с ошибками и без) действий не даёт. \ features.fsd/processing-groups-table/lib/bulk-actions.ts:36-45,69-76; features.fsd/processing-groups-table/ui/details.vue:333-343,389-404,982-1018 | — | Подтверждено | Поведение соответствует BRD. Оговорка по формулировке «статус ошибки “Заказ не создан”» вынесена в OQ5.5.2-10: фронт показывает любой текст ошибки, пришедший с сервера, и сам такой статус не определяет. | — |
Отрезано в обратном проходе (не бизнес-значимо, 4 находки): заготовка фильтра по источнику заказа заведена в состоянии компонента, но в интерфейс не выведена и помечена комментарием «TODO» (details.vue:695,910); функция возврата к списку абонементов объявлена, но ни к одной кнопке не привязана (details.vue:850-852); страница слушает от виджета событие уведомления, которого виджет не отправляет (pages/orders/processing-group/[id]/index.vue:6 против widgets.fsd/processing-group-details/ui/index.vue:251-254) — мёртвая проводка; признак валидности формы оплаты вычисляется, но нигде не используется, кнопка «Оплатить» не блокируется (widgets.fsd/processing-group-details/ui/index.vue:216-218).