BRD Mobile 4.3 Мои заказы > Информация о группе заказов
Направление работ: Mobile Код раздела: 4.3 Раздел: Мои заказы > Информация о группе заказов Статус: Черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 21.08.26
1. Назначение
Раздел обеспечивает клиенту мобильного приложения просмотр и управление заказами, объединенными в абонемент.
Клиент видит состав абонемента, сведения и текущее состояние каждого заказа, начисленные сборы и общий остаток к оплате, переходит к подробной информации об отдельном заказе, связывается с партнером и при доступности онлайн-платежей оплачивает отдельный заказ или весь абонемент.
Состав и процессинг абонемента определяются в Back: 3.3 Группы заказов и Back: 3.3.1 Процессинговые группы заказов, статусы заказов и сборы — в Back: 3.2 Процессинг заказов и Back: 3.2.1 Сборы за заказ, условия оплаты и отмены — в Back: 2.4.2 Условия оплаты и Back: 2.4.3 Правила отмены, расчет общей суммы — в Back: 4.2.1 Расчет в группах заказов, а проведение онлайн-оплаты — в Back: 5.1.2 Сценарии и методы оплаты и Back: 5.5.1 Т-банк.
2. Ключевые понятия
Экран «Информация об абонементе» — экран мобильного приложения со списком заказов группы, сводными суммами и доступными действиями.
Абонемент — процессинговая группа связанных заказов, для которой доступны групповые операции, в том числе оплата.
Заказ в группе — отдельный заказ, включенный в абонемент и сохраняющий собственные дату, время, стоимость, статус, условия отмены и состояние оплаты.
Сбор — начисленная на отдельный заказ сумма, которая учитывается в сводных данных абонемента.
Остаток к оплате — общая неоплаченная сумма по всем заказам абонемента.
3. Scope
Входит
S1: Открытие информации об абонементе из текущих или архивных заказов и возврат к исходному списку
S2: Просмотр сводного сбора и карточек заказов со статусами, стоимостью и условиями бесплатной отмены
S3: Переход к подробной информации и оплате отдельного заказа в группе
S4: Просмотр общего остатка и оплата всего абонемента
S5: Связь с партнером и состояния полностью оплаченного и завершенного абонемента
Не входит
- Mobile: 4.1 Список текущих заказов — отображение активного абонемента в общем списке текущих заказов.
- Mobile: 4.2 Список архивных заказов — отображение завершенного абонемента в общем списке архивных заказов.
- Mobile: 4.3.1 Информация о заказе в группе — подробная информация и действия над отдельным заказом абонемента.
4. BR
Указаны в пункте 4 разделов Back: 3.3 Группы заказов, Back: 3.3.1 Процессинговые группы заказов, Back: 3.2 Процессинг заказов, Back: 3.2.1 Сборы за заказ, Back: 2.4.2 Условия оплаты, Back: 2.4.3 Правила отмены, Back: 4.2.1 Расчет в группах заказов, Back: 5.1.2 Сценарии и методы оплаты и Back: 5.5.1 Т-банк.
5. Функциональные требования (UC + FR)
FR — functional requirements, что интерфейс должен уметь делать по определенному UC.
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: FR4.3-1 | Клиент открывает активный абонемент из списка текущих заказов | Пока хотя бы один заказ абонемента не завершен, интерфейс открывает экран «Информация об абонементе» из Mobile: 4.1 Список текущих заказов и показывает актуальные данные группы и входящих заказов. | 1 | Реализовано · OQ4.3-7 | |
| S1: FR4.3-2 | Клиент открывает завершенный абонемент из списка архивных заказов | Когда все заказы абонемента завершены, абонемент отображается в Mobile: 4.2 Список архивных заказов. Интерфейс открывает экран «Информация об абонементе» в состоянии завершенной группы и показывает входящие заказы. | 1 | Реализовано · OQ4.3-7 | |
| S1: FR4.3-3 | Клиент нажимает действие возврата | Интерфейс возвращает клиента в тот раздел, из которого был открыт экран 4.3: в Mobile: 4.1 Список текущих заказов при переходе из текущих заказов или в Mobile: 4.2 Список архивных заказов при переходе из архивных заказов. | 1 | Реализовано · OQ4.3-7 | |
| S2: FR4.3-4 | На один или несколько заказов абонемента начислен сбор | Интерфейс показывает свернутый блок «Сбор» с общей суммой сборов по заказам группы и кратким основанием «Ограничения». | 1 | Не реализовано · OQ4.3-2 | |
| S2: FR4.3-5 | Клиент раскрывает блок «Сбор» | Интерфейс показывает каждое основание сбора, связанную сумму и период действия по правилам вариантов сбора из раздела Mobile: 2.6 Итоговая информация о заказе; если сборов несколько, отображает их отдельными строками. | 2 | Не реализовано · OQ4.3-2 | |
| S2: FR4.3-6 | Клиент просматривает карточку заказа в абонементе | Интерфейс показывает изображение, название партнерской зоны, название площадки, дату, временной интервал, пользовательский статус, стоимость и доступные действия. | 1 | Частично · OQ4.3-6 | |
| S2: FR4.3-7 | Клиент просматривает статусы заказов абонемента | Интерфейс показывает для каждого заказа соответствующее состояние: «Завершен», «Зарезервирован», «Частично оплачен», «Оплачен» или «Отменен». В одной группе одновременно могут отображаться заказы с разными статусами. | 1 | Частично · OQ4.3-3 | |
| S2: FR4.3-8 | Для незавершенного заказа доступна бесплатная отмена | Интерфейс показывает срок в формате «Бесплатная отмена доступна до: {время} {дата}». Для завершенного заказа срок не отображается. | 1 | Не реализовано · OQ4.3-4 | |
| S2: FR4.3-9 | Клиент просматривает действия в карточке заказа | Для каждого заказа интерфейс показывает действие «Подробнее». Для заказов в статусах «Зарезервирован» и «Частично оплачен» интерфейс дополнительно показывает действие «Оплатить», если доступен онлайн-платеж. Для заказов в статусах «Оплачен», «Завершен» и «Отменен» отображается только действие «Подробнее». | 1 | Не реализовано · OQ4.3-4 | |
| S3: FR4.3-10 | Клиент нажимает карточку заказа или действие «Подробнее» | Интерфейс открывает выбранный заказ в разделе Mobile: 4.3.1 Информация о заказе в группе в состоянии, соответствующем его статусу. | 1 | Реализовано · OQ4.3-8 | |
| S3: FR4.3-11 | Клиент нажимает «Оплатить» в карточке отдельного заказа | Интерфейс передает данные выбранного заказа и сразу запускает его оплату по правилам раздела Mobile: 6.1 Онлайн оплата через Т-банк. | 1 | Не реализовано · OQ4.3-4 | |
| S4: FR4.3-12 | Один или несколько заказов абонемента оплачены не полностью | Интерфейс показывает в нижней панели общий остаток в формате «К оплате: {сумма} ₽». Остаток формируется как сумма неоплаченных остатков по всем заказам группы. | 1 | Не реализовано · OQ4.3-1 | |
| S4: FR4.3-13 | Для абонемента доступна групповая онлайн-оплата | Если партнер настроил прием онлайн-платежей и в группе есть неоплаченный остаток, интерфейс показывает общее действие «Оплатить». Нажатие запускает оплату доступной суммы по всему абонементу по правилам раздела Mobile: 6.1 Онлайн оплата через Т-банк. | 1 | Реализовано · OQ4.3-9 | |
| S4: FR4.3-14 | Групповая онлайн-оплата успешно завершена | После возврата из платежной формы интерфейс обновляет сведения об оплате заказов и общий остаток; если абонемент оплачен полностью, действие «Оплатить» и сумма остатка не отображаются. | 1 | Не реализовано · OQ4.3-5 | |
| S4: FR4.3-15 | Для абонемента недоступна групповая онлайн-оплата | Если партнер не принимает онлайн-платежи либо абонемент оплачен полностью, интерфейс не показывает общее действие «Оплатить». | 1 | Реализовано · OQ4.3-9 | |
| S5: FR4.3-16 | Все заказы абонемента оплачены | Интерфейс показывает карточки заказов в состоянии «Оплачен», скрывает общий остаток и оставляет в нижней панели действие «Связаться». | 1 | Реализовано · OQ4.3-10 | |
| S5: FR4.3-17 | Все заказы абонемента завершены | Интерфейс считает абонемент завершенным, показывает входящие заказы с итоговыми статусами, действие «Подробнее» в каждой карточке и действие «Связаться» в нижней панели. Завершенный абонемент отображается в Mobile: 4.2 Список архивных заказов. | 1 | Реализовано · OQ4.3-10 | |
| S5: FR4.3-18 | Клиент нажимает «Связаться» | Интерфейс показывает выбор действий «Написать» и «Позвонить» и использует контактный номер объекта, к которому относится абонемент. | 2 | Реализовано |
6. Открытые вопросы
Сверка с кодом: BRD 4.3 v0.1 · репозиторий
booking.mobile.flutter· commit9db8346/dev· 28.08.26 · якорьlib/src/feature/orders_tab/abonement_composition_page/(экран «Информация об абонементе»; сопутствующие файлы —lib/src/feature/orders_tab/widget/tiles/abonement_tile.dart,lib/src/feature/orders_tab/utils/conditions_btns_util.dart,lib/src/feature/orders_tab/widget/status_badges.dart,lib/src/feature/orders_tab/widget/tiles/order_tile.dart,lib/src/feature/orders_tab/modal/connection_partner_sheet.dart,lib/src/core/components/repositories/order_service/). Сводка: 10 вопросов (Open 6 · Подтверждено 4). Маршрутизация без сверки с гайдбуком (гайдбук не передавался). Отрезано находок обратного прохода: 2 (аналитические события кликов вconnection_partner_sheet.dart, защита от погрешности округления сумм в статусе абонементаstatus_badges.dart:47) — не бизнес-значимо, в вопросы не выносились. Раздел Mobile: 4.3.1 Информация о заказе в группе сверяется параллельно другим агентом; отмеченные ниже пересечения — заметка для его контекста, не итог по 4.3.1. Статусы и маршрутизация — предложение агента, требуют ручной проверки.
| ID | Источник | Вопрос | Кому | Статус | Рекомендации | Итоговое решение |
|---|---|---|---|---|---|---|
| OQ4.3-1 | Код FR4.3-12 | Требование говорит: сумма «К оплате» в нижней панели — это остаток, то есть стоимость абонемента за вычетом уже оплаченного. В коде строка «К оплате» показывает переменную totalPrice — это полная стоимость абонемента (стоимость + сбор) без вычета оплаченного; правильно посчитанный остаток (toPay = totalPrice − оплачено) вычисляется и передаётся на экран отдельным параметром, но в самом экране нигде не используется. Из-за этого частично оплаченный абонемент показывает клиенту полную стоимость вместо остатка к оплате. Карточка этого же абонемента в списке заказов (экран 4.1/4.2, вне текущей сверки) считает и показывает ту же величину toPay верно — по той же формуле. \ lib/src/feature/orders_tab/abonement_composition_page/abonement_composition_page.dart:108 (используется totalPrice); :18-20,26-28,47-49,53-55 (toPay объявлен и передан, но не используется); lib/src/feature/orders_tab/widget/tiles/abonement_tile.dart:54-56,186-193 (эталонный расчёт и корректный показ toPay в списке) | Разработка | Open | (А, рекоменд.) заменить в строке «К оплате» totalPrice на уже вычисленный toPay — точечное исправление, раз параметр уже передаётся на экран; (Б) если показ полной суммы всё же задуман — явно описать это в BRD и объяснить, зачем клиенту видеть полную сумму вместо остатка. Завести тикет в Bitrix: экран «Информация об абонементе» показывает в «К оплате» полную стоимость вместо остатка. | |
| OQ4.3-2 | Код FR4.3-4, FR4.3-5 | Требование говорит: на экране группы есть свёрнутый блок «Сбор» с общей суммой сборов по всем заказам абонемента и кратким основанием «Ограничения»; при раскрытии показывается каждое основание, сумма и период отдельной строкой. В коде на экране «Информация об абонементе» блока «Сбор» нет вообще — ни свёрнутого, ни раскрываемого; упоминаний сбора/«Сбор» в файле экрана не найдено. Похожий по виду блок (заголовок, сумма, раскрывающиеся «Ограничения») есть, но только на экране отдельного заказа (раздел 4.3.1) и считает сбор только этого одного заказа, а не сумму по всей группе; там же в раскрытом виде показаны основание и период, но не сумма по каждой отдельной строке. \ lib/src/feature/orders_tab/abonement_composition_page/abonement_composition_page.dart (весь файл — упоминаний блока «Сбор» нет); lib/src/feature/orders_tab/order_room/order_room_screen.dart:530-547 (аналогичный блок, но по одному заказу); lib/src/feature/orders_tab/order_room/widget/actullity/forfeit_block_widget.dart:100-131 (строка основания без суммы) | Разработка | Open | (А, рекоменд.) добавить на экран группы блок «Сбор» с агрегированной суммой по всем заказам абонемента (можно переиспользовать/адаптировать ForfeitBlockWidget), в раскрытом виде добавить сумму в каждую строку основания; (Б) если по продукту сборы всегда показываются только на уровне отдельного заказа — снять требование с уровня группы и перенести формулировку в раздел 4.3.1. Также релевантно для раздела 4.3.1, который сверяется параллельно. Завести тикет в Bitrix: на экране группы отсутствует агрегированный блок «Сбор». | |
| OQ4.3-3 | Код FR4.3-7 | Требование говорит: у каждого заказа группы отображается один из пяти статусов: «Завершен», «Зарезервирован», «Частично оплачен», «Оплачен» или «Отменен». В коде функция статуса заказа ни при каких условиях не возвращает «частично оплачен»: для наполовину оплаченного заказа показывается «Ожидает оплаты», хотя статус «Частично оплачена» в системе есть — но используется только для абонемента в целом, не для отдельного заказа. Текста, соответствующего «Зарезервирован», нет ни в одной достижимой ветке этой функции: ветка, которая могла бы его вернуть, недостижима, потому что все возможные значения статуса оплаты уже разобраны более ранними условиями. Оставшиеся статусы в коде называются немного иначе, чем в BRD («Закрыта» вместо «Завершен», «Оплачено» вместо «Оплачен», «Отменена» вместо «Отменен») — по смыслу совпадает, слова другие. \ lib/src/feature/orders_tab/widget/status_badges.dart:9-19 (статус заказа: payedHalf «Ожидает оплаты», ветка «Резерв» недостижима), :21-24 (closed/cancelled → «Закрыта»/«Отменена»), :114-127 (полный список текстов статусов), :51 (partiallyPaid используется только для абонемента целиком); lib/src/feature/orders_tab/widget/tiles/order_tile.dart:255 (этот статус используется на карточке заказа в группе) | Разработка | Open | (А, рекоменд.) поправить функцию статуса заказа: наполовину оплаченный заказ → «Частично оплачен», незавершённый резерв без оплаты → «Зарезервирован»; свести подписи «Закрыта»/«Оплачено»/«Отменена» к формулировкам BRD либо зафиксировать текущие тексты как согласованные, если различие признано несущественным; (Б) если пять состояний BRD не предполагались буквально — уточнить в BRD, какие статусы и текстом каком реально нужны. Завести тикет в Bitrix: статус «частично оплачен» не показывается на карточке заказа. | |
| OQ4.3-4 | Код FR4.3-8, FR4.3-9, FR4.3-11 | Требование говорит: у незавершённого заказа в группе показывается срок бесплатной отмены; у заказов в статусах «Зарезервирован»/«Частично оплачен» рядом с «Подробнее» есть кнопка «Оплатить», если доступна онлайн-оплата; нажатие «Оплатить» на карточке сразу запускает оплату именно этого заказа. В коде все три момента для заказов внутри абонемента отключены отдельным явным условием «это не карточка одиночного заказа»: срок бесплатной отмены на карточке заказа группы не показывается никогда, вне зависимости от статуса; кнопка «Оплатить» на карточке заказа группы тоже никогда не показывается — функция выбора кнопок для группы всегда возвращает только «Подробнее»; на экране самого отдельного заказа (соседний раздел 4.3.1) для заказов группы тоже всегда доступно только «Связаться», ни оплаты, ни отмены. Техническая возможность оплатить один заказ в коде есть (тот же метод, что и для одиночных заказов) — просто не подключена к карточкам заказов внутри группы ни здесь, ни на экране 4.3.1. \ lib/src/feature/orders_tab/utils/conditions_btns_util.dart:165-172 (свободная отмена отключена не для одиночных заказов), :194-231 и особенно :230 (кнопки карточки заказа группы — всегда «Подробнее»), :49-58 и особенно :57 (кнопки экрана отдельного заказа группы — всегда «Связаться»; это уже про раздел 4.3.1); lib/src/feature/orders_tab/widget/tiles/order_tile.dart:44-71 (кнопка «Оплатить» и вызов оплаты в коде есть, но для группы недостижимы) | Бизнес | Open | Нужно решение бизнеса: отключение поштучной отмены/оплаты внутри абонемента — осознанное решение (например, весь абонемент оплачивается и отменяется только целиком, через групповые действия FR4.3-13) или недоработка, которую нужно вернуть в соответствие с BRD. (А) подтвердить как есть и скорректировать формулировки FR4.3-8/9/11, убрав поштучные операции из сценария группы; (Б, рекоменд. при отсутствии другого продуктового решения) включить показ срока отмены и кнопку «Оплатить» для заказов группы — код для одиночных заказов уже работает, нужно снять ограничение по типу экрана (после решения — задача для разработки). Также релевантно для раздела 4.3.1, который сверяется параллельно. | |
| OQ4.3-5 | Код FR4.3-14 | Требование говорит: после возврата из платёжной формы экран обновляет сведения об оплате заказов и общий остаток по абонементу; при полной оплате прячет кнопку «Оплатить» и сумму остатка. В коде после нажатия «Оплатить» приложение просто открывает ссылку на оплату во внешнем/системном браузере и не ждёт результата: ни у экрана, ни у его состояния нет ни одного места, где данные запрашивались бы заново после оплаты — состояние выставляется один раз при открытии экрана и больше не меняется. Для сравнения: в другом сценарии приложения (оплата при создании нового заказа) для похожей задачи используется отдельный экран со встроенным браузером, который сам отслеживает наступление оплаты и переключает экран, — то есть подобный механизм в приложении есть, но для оплаты абонемента он не применяется. \ lib/src/feature/orders_tab/abonement_composition_page/abonement_composition_page.dart:144-168 (запуск ссылки на оплату без ожидания результата); lib/src/feature/orders_tab/abonement_composition_page/cubit/abonement_composition_cubit.dart:11-38 (состояние экрана выставляется один раз в конструкторе и не обновляется); для сравнения — lib/src/feature/order_result/widget/payment_webview_screen.dart:56-118,186-228 (работающее отслеживание оплаты в другом сценарии приложения) | Разработка | Open | (А, рекоменд.) после возврата из оплаты (по возобновлению экрана либо через встроенный браузер с отслеживанием, как в payment_webview_screen.dart) перезапрашивать данные абонемента и обновлять суммы/статусы на экране; (Б) если мгновенное обновление признано неважным — явно описать в BRD, что клиенту нужно вручную выйти и заново открыть абонемент, чтобы увидеть новые суммы. Завести тикет в Bitrix: экран «Информация об абонементе» не обновляется после оплаты. | |
| OQ4.3-6 | Код FR4.3-6 | Требование говорит: карточка заказа в абонементе показывает изображение, название партнёрской зоны, название площадки, дату, интервал времени, статус, стоимость и доступные действия. В коде карточка показывает изображение, название объекта/площадки и комнаты, дату с интервалом, статус и стоимость — но отдельного названия партнёрской зоны на карточке нет: в модели данных заказа такого поля не существует, только служебный идентификатор зоны. На самом экране группы название партнёрской зоны тоже нигде не выводится — ни в шапке, ни отдельным блоком, хотя оно уже загружено вместе с данными абонемента и используется на предыдущем экране (списке заказов). \ lib/src/feature/orders_tab/widget/tiles/order_tile.dart:222-262 (поля карточки: изображение, roomName/baseName, дата, статус, цена — без имени партнёрской зоны); lib/src/core/components/repositories/order_service/model/order_list_model.dart:20-26 (у заказа есть partnerZoneId, но нет partnerZoneName); lib/src/feature/orders_tab/abonement_composition_page/abonement_composition_page.dart:76 (заголовок экрана статичный «Информация об абонементе», без имени зоны); для сравнения — lib/src/feature/orders_tab/widget/tiles/abonement_tile.dart:90-93 (там partnerZoneName показывается, но это экран списка 4.1/4.2, не экран 4.3) | Бизнес | Open | Нужно решение бизнеса: должно ли название партнёрской зоны быть видно именно на этом экране (например, в шапке — раз оно общее для всех заказов группы) или названия объекта/площадки достаточно. (А, рекоменд.) добавить название партнёрской зоны в шапку экрана или подзаголовок — данные уже загружены, доработка небольшая; (Б) признать текущий состав полей достаточным и скорректировать формулировку FR4.3-6. | |
| OQ4.3-7 | Код FR4.3-1, FR4.3-2, FR4.3-3 | Что подтверждено: экран «Информация об абонементе» открывается и из списка текущих заказов, и из списка архивных — используется один и тот же переход, который срабатывает для любого элемента-абонемента независимо от того, в каком из двух списков он показан; при возврате назад приложение закрывает экран группы и возвращает клиента туда, откуда он пришёл, стандартным системным способом «назад», без переопределений. \ lib/src/feature/orders_tab/widget/booking_list.dart:67-73 (один и тот же виджет-переход для абонемента и в текущем, и в архивном списке); lib/src/feature/orders_tab/widget/tiles/abonement_tile.dart:61-65,220-226 (переход на экран группы по тапу на карточку и по кнопке «Подробнее»); lib/src/feature/orders_tab/abonement_composition_page/abonement_composition_page.dart:76 (экран открывается через общий AppBar с кнопкой назад, без своего onBack); lib/src/core/utils/widgets/appbar_with_back_icon.dart:19-26 (кнопка «назад» — обычный возврат на предыдущий экран стека) | — | Подтверждено | Расхождения нет. | — |
| OQ4.3-8 | Код FR4.3-10 | Что подтверждено: нажатие на карточку заказа и нажатие на действие «Подробнее» в этой карточке одинаково открывают выбранный заказ на экране отдельного заказа группы (раздел 4.3.1). \ lib/src/feature/orders_tab/widget/tiles/order_tile.dart:36-40 (переход _jumpToOrder), :75-76 (кнопка «Подробнее» вызывает тот же переход), :207-208 (тап по самой карточке вызывает тот же переход) | — | Подтверждено | Расхождения нет. | — |
| OQ4.3-9 | Код FR4.3-13, FR4.3-15 | Что подтверждено: общая кнопка «Оплатить» под списком заказов показывается только тогда, когда с сервера пришёл признак «оплату можно принять», и запускает оплату всего непогашенного остатка по абонементу отдельным групповым методом оплаты; если признака нет (партнёр не принимает онлайн-оплату либо платить уже нечего), кнопка не показывается и остаётся только «Связаться». \ lib/src/feature/orders_tab/utils/conditions_btns_util.dart:39-45 (панель «Оплатить+Связаться» только при canBePaid=true, иначе только «Связаться»); lib/src/feature/orders_tab/abonement_composition_page/abonement_composition_page.dart:71-73,100-121 (выбор панели и условный показ строки «К оплате»/кнопки); lib/src/feature/orders_tab/abonement_composition_page/cubit/abonement_composition_cubit.dart:22-37 (оплата по всей группе разом через createProcessingGroupPaymentMobile); lib/src/core/components/repositories/order_service/orders_service_repository.dart:141-156 (сам групповой метод оплаты) | — | Подтверждено | Расхождения нет. | — |
| OQ4.3-10 | Код FR4.3-16, FR4.3-17 | Что подтверждено: когда по абонементу больше нечего платить, строка «К оплате» на экране не показывается и остаётся только действие «Связаться» — общий остаток скрывается, при этом карточки заказов продолжают показывать статус оплаты и действие «Подробнее» каждая по отдельности, как и требуется для полностью оплаченного/завершённого абонемента. Оговорка: то, что абонемент действительно попадает в список завершённых (4.2), когда все заказы закрыты, определяется на бэкенде — это вне анкера фронта; фронт корректно отображает то, что приходит. \ lib/src/feature/orders_tab/abonement_composition_page/abonement_composition_page.dart:100-121 (строка «К оплате» показывается только при типе панели connectPay); lib/src/feature/orders_tab/utils/conditions_btns_util.dart:39-45 (canBePaid=false → только «Связаться»); lib/src/feature/orders_tab/widget/tiles/order_tile.dart:230-262,255 (каждая карточка показывает статус и «Подробнее» независимо от состояния остальной группы) | — | Подтверждено | Расхождения нет; распределение абонемента между текущими/архивными заказами — зона бэкенда, не проверялась в этом анкере. | — |