BRD Mobile 4.3.1 Мои заказы > Информация о группе заказов > Информация о заказе в группе

Направление работ: Mobile Код раздела: 4.3.1 Раздел: Мои заказы > Информация о группе заказов > Информация о заказе в группе Статус: Черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 21.08.26


1. Назначение

Раздел обеспечивает клиенту мобильного приложения просмотр подробной информации об отдельном заказе, входящем в абонемент.

Клиент проверяет сведения о площадке, параметры и сохраненный состав заказа, стоимость, сбор, промокод и комментарий. Все данные, кроме комментария незавершенного заказа, доступны только для просмотра. В зависимости от состояния заказа клиент связывается с партнером, оплачивает неоплаченный резерв или переходит к оценке завершенного заказа.

Данные площадки и сохраненный состав заказа определяются в Back: 2.2 Площадки партнеров и Back: 3.1 Состав заказа, его статус и сбор — в Back: 3.2 Процессинг заказов и Back: 3.2.1 Сборы за заказ, связь с абонементом — в Back: 3.3 Группы заказов и Back: 3.3.1 Процессинговые группы заказов. Дополнительные позиции, промокод и стоимость описаны в Back: 2.5 Дополнительные позиции, Back: 2.7.1 Акции и промокоды и Back: 4.2 Стоимость заказа и позиций; оплата — в Back: 2.4.2 Условия оплаты, Back: 5.1.2 Сценарии и методы оплаты и Back: 5.5.1 Т-банк; оценка завершенного заказа — в Back: 3.4 Отзывы по заказам.

2. Ключевые понятия

Экран «Информация о бронировании» — экран просмотра сохраненных данных отдельного заказа абонемента и доступных действий.

Заказ в группе — отдельный заказ, включенный в абонемент и сохраняющий собственные параметры, стоимость, статус и состояние оплаты.

Сбор — начисленная на заказ сумма, которая показывается в составе его стоимости.

Оценка и отзыв — связанные с завершенным заказом оценка площадки, текст и фотографии, отправляемые клиентом на модерацию.

3. Scope

Входит

S1: Открытие информации о выбранном заказе абонемента, возврат к группе и ограничения редактирования

S2: Просмотр сведений о площадке, геолокации и материалов маршрута, переход к информации о площадке

S3: Просмотр даты и времени, параметров опций, дополнительных позиций, сбора и промокода, просмотр и изменение комментария

S4: Отображение остатка и доступных действий для зарезервированного, оплаченного и завершенного заказа

Не входит

4. BR

Указаны в пункте 4 разделов Back: 2.2 Площадки партнеров, Back: 3.1 Состав заказа, Back: 3.2 Процессинг заказов, Back: 3.2.1 Сборы за заказ, Back: 3.3 Группы заказов, Back: 3.3.1 Процессинговые группы заказов, Back: 2.4.2 Условия оплаты, Back: 2.5 Дополнительные позиции, Back: 2.7.1 Акции и промокоды, Back: 4.2 Стоимость заказа и позиций, Back: 5.1.2 Сценарии и методы оплаты, Back: 5.5.1 Т-банк и Back: 3.4 Отзывы по заказам.

5. Функциональные требования (UC + FR)

FR — functional requirements, что интерфейс должен уметь делать по определенному UC.

IDСценарийФункциональное требованиеBRВесСтатус
S1: FR4.3.1-1Клиент открывает заказ из информации об абонементеИнтерфейс открывает экран «Информация о бронировании» и показывает актуальные данные выбранного заказа.1Реализовано \ OQ4.3.1-11
S1: FR4.3.1-2Клиент нажимает действие возвратаИнтерфейс возвращает клиента к выбранному абонементу в разделе Mobile: 4.3 Информация о группе заказов.1Не реализовано \ OQ4.3.1-1
S1: FR4.3.1-3Клиент просматривает данные заказаКлиент может раскрывать и сворачивать предусмотренные блоки, но не может изменять площадку, дату, время, параметры опций, дополнительные позиции, сбор или промокод. Комментарий можно изменить только для незавершенного заказа; после завершения заказа комментарий также доступен только для просмотра.1Частично \ OQ4.3.1-2
S2: FR4.3.1-4Клиент просматривает основной блок площадкиИнтерфейс показывает название партнерской зоны, стоимость времени и название площадки.1Не реализовано \ OQ4.3.1-3
S2: FR4.3.1-5Клиент просматривает раскрытый блок площадкиИнтерфейс дополнительно показывает площадь, расстояние, ближайшее метро, видеомаршрут, карту, адрес и действия «Как нас найти» и «К площадке»; клиент может свернуть и повторно раскрыть блок.2Частично \ OQ4.3.1-4
S2: FR4.3.1-6Клиент нажимает видеомаршрут, карту или «Как нас найти»Интерфейс открывает соответствующий материал или сценарий построения маршрута по правилам раздела услуге.1Частично \ OQ4.3.1-4
S2: FR4.3.1-7Клиент нажимает «К площадке»Интерфейс переходит в раздел услуге и открывает карточку площадки выбранного заказа.1Реализовано \ OQ4.3.1-12
S3: FR4.3.1-8Клиент просматривает дату и время заказаИнтерфейс показывает дату, день недели, временной интервал и длительность заказа без действий переноса.1Реализовано \ OQ4.3.1-13
S3: FR4.3.1-9Для заказа заданы параметры опцийИнтерфейс показывает названия и сохраненные значения или диапазоны параметров опций заказа, например «Кол-во человек» и «Вид работ», без возможности изменения.1Частично \ OQ4.3.1-5
S3: FR4.3.1-10Клиент просматривает блок «Дополнительные позиции»Интерфейс показывает типы добавленных позиций «Оборудование и услуги» и их общую стоимость. При раскрытии интерфейс группирует позиции по разделам «Оборудование» и «Услуги» и показывает для каждой позиции изображение, название, стоимость и количество в заказе без действий редактирования.1Частично \ OQ4.3.1-6
S3: FR4.3.1-11В заказ включен сборИнтерфейс показывает свернутый блок «Сбор» с суммой и кратким основанием «Ограничения». При раскрытии отображаются основания, суммы и периоды действия по правилам вариантов сбора из раздела Mobile: 2.6 Итоговая информация о заказе.1Частично \ OQ4.3.1-7
S3: FR4.3.1-12К заказу применен промокодИнтерфейс показывает код и общую сумму скидки, а также детализацию по времени и дополнительным позициям: стоимость после скидки, исходную стоимость и размер скидки в процентах. Редактирование промокода недоступно.1Реализовано \ OQ4.3.1-14
S3: FR4.3.1-13В заказе сохранен комментарий клиентаИнтерфейс показывает комментарий в отдельном блоке. Пока заказ не завершен, клиент может перейти к изменению комментария и сохранить новое значение; после завершения заказа редактирование недоступно. В режиме просмотра длинный текст отображается в пределах трех строк и сокращается многоточием.2Частично \ OQ4.3.1-2, OQ4.3.1-8
S4: FR4.3.1-14Заказ зарезервирован и не оплаченИнтерфейс показывает остаток в формате «К оплате: {сумма} ₽» и действия «Связаться» и «Оплатить».1Не реализовано \ OQ4.3.1-9
S4: FR4.3.1-15Клиент нажимает «Оплатить»Интерфейс запускает оплату остатка выбранного заказа по правилам раздела Mobile: 6.1 Онлайн оплата через Т-банк.1Не реализовано \ OQ4.3.1-9
S4: FR4.3.1-16Заказ оплаченИнтерфейс не показывает остаток и действие «Оплатить»; в нижней панели доступно только действие «Связаться».1Частично \ OQ4.3.1-9
S4: FR4.3.1-17Заказ завершенИнтерфейс не показывает остаток и действие «Оплатить»; в нижней панели доступны действия «Связаться» и «Оценить».1Не реализовано \ OQ4.3.1-9
S4: FR4.3.1-18Клиент нажимает «Оценить»Интерфейс передает данные выбранного заказа и переходит в раздел Mobile: 4.2.3 Оценить и оставить отзыв.1Не реализовано \ OQ4.3.1-9
S4: FR4.3.1-19Клиент нажимает «Связаться»Интерфейс показывает выбор действий «Написать» и «Позвонить» и использует контактный номер объекта, к которому относится выбранный заказ.2Реализовано

6. Открытые вопросы

Сверка с кодом: BRD 4.3.1 v0.1 · репозиторий booking.mobile.flutter · commit 9db8346 / dev · 28.08.26 · якорь lib/src/feature/orders_tab/order_room/ (плюс lib/src/feature/orders_tab/utils/conditions_btns_util.dart, lib/src/feature/orders_tab/widget/tiles/order_tile.dart, lib/src/feature/orders_tab/abonement_composition_page/ — только чтение, для трассировки typeOrderPage, lib/src/core/utils/app_router.dart) Сводка: 14 вопросов (Open 10 · Подтверждено 4) Маршрутизация без сверки с гайдбуком (гайдбук не передавался).

IDИсточникВопросКомуСтатусРекомендацииИтоговое решение
OQ4.3.1-1Код FR4.3.1-2Требование говорит: после нажатия действия возврата клиент должен оказаться на экране выбранного абонемента (раздел 4.3). В коде обработчик возврата (кнопка в шапке и системный жест «назад») всегда открывает общий список заказов, а не экран конкретного абонемента, и делает это через push, а не через pop — предыдущие экраны остаются в стеке навигации поверх друг друга. \ lib/src/feature/orders_tab/order_room/order_room_screen.dart:96-118 (см. строку 116); lib/src/core/utils/app_router.dart:387-389 (OrdersRoute и AbonementCompositionRoute — разные маршруты)РазработкаOpen(А, рекоменд.) Завести тикет в Bitrix: заменить push(OrdersRoute()) в _handleOrderRoomBack на возврат (pop/maybePop) к экрану абонемента, из которого открыли заказ. (Б) Если общий список — осознанный выбор, скорректировать текст FR4.3.1-2 под факт.
OQ4.3.1-2Код FR4.3.1-3, FR4.3.1-13Требование говорит: после завершения заказа комментарий должен становиться доступен только для просмотра, независимо от способа оплаты. В коде блокировку сначала выставляет статус заказа (orderStatus != reserve → обе блокировки включены), но следующий блок безусловно переопределяет обе блокировки только по paymentStatus, полностью игнорируя уже выставленный статус заказа: при paymentStatus == notPayed обе блокировки снова снимаются, даже если заказ уже завершён. Для заказов с оплатой на месте (сценарий PaymentScenario.onSite, который в приложении есть) paymentStatus может оставаться notPayed и после завершения заказа — тогда комментарий остаётся редактируемым вопреки требованию. \ lib/src/feature/orders_tab/order_room/cubit/order_room_cubit.dart:386-399РазработкаOpen(А, рекоменд.) Завести тикет в Bitrix: сделать блокировку по завершённому статусу (orderStatus != reserve) финальной — не давать блоку paymentStatus её снимать. (Б) Если снятие блокировки для неоплаченных завершённых заказов — намеренное поведение, явно описать это исключение в FR4.3.1-3/13.
OQ4.3.1-3Код FR4.3.1-4Требование говорит: в основном блоке площадки должно показываться название партнёрской зоны, наряду с ценой и названием площадки. В коде поле partnerZoneName в OrderScreenDto при загрузке заказа всегда заполняется литералом "Unknown" и, кроме этого присвоения и объявления, больше нигде не читается — экран показывает только roomName (площадка) и baseName (база); названия партнёрской зоны нет ни в данных, ни на экране. \ lib/src/feature/orders_tab/order_room/cubit/order_room_cubit.dart:267; lib/src/feature/orders_tab/order_room/model/order_screen_dto.dart:35; lib/src/feature/orders_tab/order_room/widget/actullity/title_card_widget.dart:54-98РазработкаOpen(А, рекоменд.) Завести тикет в Bitrix: подтянуть реальное название партнёрской зоны (есть partnerZoneId у заказа) и вывести его в блоке площадки. (Б) Если название партнёрской зоны на этом экране не нужно — убрать поле/пункт из FR4.3.1-4.
OQ4.3.1-4Код FR4.3.1-5, FR4.3.1-6Требование говорит: в раскрытом блоке площадки клиент видит расстояние, а по тапу на «Видеомаршрут» открывается соответствующий материал. В коде плашка «Видеомаршрут» — это текст с иконкой без onTap/InkWell, нажатие на неё ни к чему не приводит; поле videoRouteUrl, которое могло бы туда вести, объявлено в модели и больше нигде в проекте не используется. Поле «Расстояние» (distance) загружается из деталей площадки, но нигде в блоке не отображается. \ lib/src/feature/orders_tab/order_room/widget/actullity/title_card_widget.dart:136-171 (плашка «Видеомаршрут», без .distance во всём файле); lib/src/feature/orders_tab/order_room/model/order_screen_dto.dart:58,94; lib/src/feature/orders_tab/order_room/cubit/order_room_cubit.dart:283РазработкаOpen(А, рекоменд.) Завести тикет в Bitrix: навесить onTap на плашку «Видеомаршрут» (открытие videoRouteUrl) и добавить строку «Расстояние» в раскрытый блок. (Б) Если видеомаршрут/расстояние по факту не нужны на этом экране — убрать их из FR4.3.1-5/6.
OQ4.3.1-5Код FR4.3.1-9Требование говорит: интерфейс показывает названия и сохранённые значения ИЛИ диапазоны параметров опций заказа. В коде экран берёт единственную опцию заказа (OrderScreenDto.option, не список) и показывает только option.defaultValue.toString(); признак OptionModel.isRange в этом экране нигде не читается, а сама модель не содержит границ диапазона (нет полей начала/конца) — показать диапазон вместо одного значения нечем, хотя range-опции в приложении реально существуют (например «Количество человек» в сценарии бронирования). \ lib/src/feature/orders_tab/order_room/model/order_screen_dto.dart:129; lib/src/feature/orders_tab/order_room/order_room_screen.dart:494-508; lib/src/core/components/repositories/partner_zone_service/models/option_model.dart:9-16; для сравнения — lib/src/feature/time_widget/widget/time_widget_screen.dart:608РазработкаOpen(А, рекоменд.) Завести тикет в Bitrix: прокинуть границы диапазона в OptionModel/OrderScreenDto и показывать диапазон при isRange == true. (Б) Если у заказов из абонемента диапазонных опций не бывает, снять «диапазоны» из FR4.3.1-9 либо явно ограничить требование одиночным значением.
OQ4.3.1-6Код FR4.3.1-10Требование говорит: для каждой дополнительной позиции показывается изображение, название, стоимость и количество в заказе. В коде цена позиции рисуется только если блок ещё редактируемый (if (!isUnModified) Text('${eq?.price}₽')); в режиме просмотра — а группа заказов всегда открывает этот блок именно в режиме просмотра, редактирование заблокировано для typeOrderPage.abonement — цена скрыта, остаются только изображение, название и количество. \ lib/src/feature/orders_tab/order_room/widget/actullity/equipment_cell_widget.dart:63-80 (особенно 68-69); lib/src/feature/orders_tab/utils/conditions_btns_util.dart:130-155РазработкаOpen(А, рекоменд.) Завести тикет в Bitrix: показывать цену позиции независимо от isUnModified, оставив степпер количества только для редактируемого режима. (Б) Если цена в режиме просмотра не нужна — убрать «стоимость» из перечня в FR4.3.1-10.
OQ4.3.1-7Код FR4.3.1-11Требование говорит: в раскрытом блоке «Сбор» показываются основания, суммы и периоды действия по каждому пункту. В коде каждая строка сбора показывает только основание (reason.description) и период (даты заказа); индивидуальная сумма (Forfeit.amount) есть в модели, но в строке не выводится — видна только общая сумма сбора одной строкой в свёрнутом виде блока. \ lib/src/feature/orders_tab/order_room/widget/actullity/forfeit_block_widget.dart:101-136; lib/src/feature/profile_page/forfeits/model/forfeit_model.dart:38РазработкаOpen(А, рекоменд.) Завести тикет в Bitrix: добавить сумму по каждому пункту сбора (Forfeit.amount) в _ForfeitTile. (Б) Если общей суммы наверху блока достаточно, скорректировать формулировку FR4.3.1-11 («суммы» → «сумма»).
OQ4.3.1-8Код FR4.3.1-13Требование говорит: в режиме просмотра длинный комментарий отображается в пределах трёх строк и сокращается многоточием. В коде поле комментария — это NormalField с isMultiline: true, что даёт неограниченное число строк (maxLines: null) и фиксированную высоту контейнера 100px со скроллом; логики сворачивания в 3 строки с многоточием нет ни в режиме просмотра, ни в режиме редактирования. Связано с OQ4.3.1-2 (тот же блок, другая причина). \ lib/src/feature/orders_tab/order_room/widget/actullity/comment_widget.dart:45-61; lib/src/core/utils/widgets/normal_field.dart:80-87РазработкаOpen(А, рекоменд.) Завести тикет в Bitrix: добавить в режиме просмотра ограничение в 3 строки с многоточием (например, Text с maxLines/TextOverflow.ellipsis поверх поля вместо TextField без лимита). (Б) Если скролл внутри фиксированной высоты — приемлемая альтернатива, скорректировать текст FR4.3.1-13.
OQ4.3.1-9Код FR4.3.1-14, FR4.3.1-15, FR4.3.1-16, FR4.3.1-17, FR4.3.1-18Требование говорит: набор действий и текст нижней панели должны зависеть от статуса оплаты и завершённости заказа — «К оплате: {сумма} ₽» + «Связаться»/«Оплатить» для незавершённого неоплаченного, только «Связаться» для оплаченного, «Связаться»/«Оценить» для завершённого. В коде для заказа, открытого из абонемента (typeOrderPage: TypeOrderPage.abonement — единственный способ попасть на этот экран из раздела 4.3.1, см. abonement_composition_page.dart), функция выбора нижней панели возвращает фиксированное значение connect независимо от статуса заказа и оплаты. Это всегда одна кнопка «Связаться» при любом состоянии заказа: нет ни строки «К оплате: …», ни кнопки «Оплатить», ни кнопки «Оценить» — они технически недостижимы для заказов внутри группы; дополнительные кнопки «Условия отмены»/«Связаться с площадкой» в теле экрана тоже скрыты для этого контекста. Для оплаченного заказа (FR4.3.1-16) итоговая картинка внешне совпадает с требованием, но не потому что код проверяет статус оплаты — панель одна и та же для любого статуса. \ lib/src/feature/orders_tab/utils/conditions_btns_util.dart:49-58; lib/src/feature/orders_tab/order_room/widget/actullity/buttons_panel_widget.dart:254-270,417-425; lib/src/feature/orders_tab/order_room/order_room_screen.dart:600-643; lib/src/feature/orders_tab/abonement_composition_page/abonement_composition_page.dart:64-68БизнесOpen(А, рекоменд.) Реализовать для заказов из абонемента ту же логику нижней панели, что и для одиночных заказов (учитывать paymentStatus/orderStatus, а не жёсткий connect) — тогда FR4.3.1-14/15/17/18 будут выполняться и внутри группы; разработка подключается после выбора варианта. (Б) Закрепить, что для заказа внутри абонемента доступно только «Связаться», а оплата и оценка выполняются на уровне абонемента (экран 4.3) — тогда нужно сузить формулировки FR4.3.1-14/15/17/18 до одиночных заказов и явно описать ограничение в BRD 4.3.1.
OQ4.3.1-10Код вне BRDЧто нашли: раздел 1 «Назначение» описывает экран как доступный только для просмотра, кроме комментария незавершённого заказа. При этом на экране есть рабочий переключатель «Применить баллы» — интерактивный Switch, меняющий accountingPoints заказа. Ни блок баллов, ни возможность его менять в FR4.3.1-1…19 не упомянуты. \ lib/src/feature/orders_tab/order_room/widget/actullity/mpoints_widget.dart:89-100; lib/src/feature/orders_tab/order_room/order_room_screen.dart:594-598БизнесOpen(А) Оставить переключатель баллов на этом экране и явно описать его в BRD 4.3.1 как редактируемое исключение наравне с комментарием. (Б, рекоменд.) Если экран задуман строго «только для просмотра» (кроме комментария) — исключить блок из скоупа изменений здесь и переносить решение о списании баллов в оплату/оформление; разработка подключается после выбора варианта.
OQ4.3.1-11Код FR4.3.1-1Что подтверждено: открытие заказа показывает заголовок «Информация о бронировании» и запускает свежую загрузку данных заказа и площадки при каждом открытии экрана, плюс pull-to-refresh поверх списка. \ lib/src/feature/orders_tab/order_room/order_room_screen.dart:148-154; lib/src/feature/orders_tab/order_room/cubit/order_room_cubit.dart:128-131; lib/src/feature/orders_tab/order_room/order_room_screen.dart:304-309—ПодтвержденоРасхождения нет.—
OQ4.3.1-12Код FR4.3.1-7Что подтверждено: кнопка «К площадке» собирает Room из данных заказа и переходит в карточку площадки (RoomDetailsRoute) поверх стека вкладки «Заказы». \ lib/src/feature/orders_tab/order_room/widget/actullity/title_card_widget.dart:30-44,380-415; lib/src/core/utils/app_router.dart:387-390—ПодтвержденоРасхождения нет.—
OQ4.3.1-13Код FR4.3.1-8Что подтверждено: дата и время показываются с днём недели и длительностью («14 июля, вторник» + «15:00-16:00, 1ч»); кнопка «Перенести» технически недостижима для заказов внутри группы (needMoveBtn требует typeOrder == order) — действий переноса в этом контексте нет, как и требует FR4.3.1-8. \ lib/src/feature/orders_tab/order_room/order_room_screen.dart:327-335; lib/src/core/utils/utils.dart:710-742; lib/src/feature/orders_tab/utils/conditions_btns_util.dart:91-109—ПодтвержденоРасхождения нет.—
OQ4.3.1-14Код FR4.3.1-12Что подтверждено: блок промокода показывает код и общую сумму скидки, а также разбивку «Время»/«Доп. позиции» с ценой до и после скидки и процентом; редактирование промокода недоступно для заказов внутри группы (ветка изменения промокода требует typeOrder != abonement). \ lib/src/feature/orders_tab/order_room/widget/actullity/discount_widget.dart:104-193; lib/src/feature/orders_tab/utils/conditions_btns_util.dart:111-127—ПодтвержденоРасхождения нет.—

0 items under this folder.