# consolidation-setup Specification ## Purpose Аналитик создаёт консолидацию ГК за период из модалки [42] (периметр — члены ГСК с возможностью правки), сразу попадает в карточку новой версии и из любой версии переходит к её сводной ОСВ. ## Requirements ### Requirement: Состав модалки «Новая консолидация» Модалка [42] SHALL предлагать выбор ГК (`GET /directories/company-groups`), ГСК этой ГК с `kind = gsk` (`GET /directories/company-groups/{id}/related-groups`), года и квартала, и показывать **все** незакрытые ЮЛ ГК (`GET /directories/legal-entities?company_group_id=&closed=false`, страницы дочитываются по `offset`, пока не получены все `total`). Члены выбранной ГСК (`GET /directories/related-groups/{id}` → `members[]`) SHALL быть отмечены автоматически; пользователь может снять или добавить отметки. #### Scenario: Выбор ГСК отмечает её членов - **WHEN** аналитик выбирает ГК «Русский бисквит» и её ГСК - **THEN** в списке ЮЛ видны все ЮЛ ГК, а члены ГСК («АО "Русский бисквит"», «ООО "Пекарня Счастливочная"») отмечены #### Scenario: ЮЛ больше одной страницы - **WHEN** у ГК больше ЮЛ, чем `limit` одной страницы - **THEN** модалка показывает все ЮЛ ГК, а не первую страницу ### Requirement: Создание и переход к версии По «Создать» модалка SHALL отправить `POST /consolidations {company_group_id, related_group_id, year, quarter, legal_entity_ids}` с отмеченными ЮЛ. При 201 модалка SHALL закрыться, список консолидаций ГК — перечитаться, а созданная версия (`VersionCard.id`) — открыться в карточке. При ошибке модалка SHALL остаться открытой и показать `message` из `ApiError` (коды `CONSOLIDATION_EXISTS`, `RELATED_GROUP_MISMATCH`, `ENTITY_NOT_IN_GROUP`, `PERIMETER_TOO_SMALL` и 422 валидации). #### Scenario: Успешное создание - **WHEN** аналитик создаёт консолидацию 2024 Q3 с периметром из ГСК - **THEN** открыта карточка версии №1 со статусом «Инициация» и двумя ЮЛ в панели «Организации» #### Scenario: Консолидация за период уже есть - **WHEN** сервер отвечает 409 `CONSOLIDATION_EXISTS` - **THEN** модалка не закрывается и показывает текст ошибки сервера ### Requirement: Переход к сводной ОСВ из карточки Кнопка «К отчётности» карточки версии SHALL вести на `/groups/:group_id/versions/:version_id/osv` и быть доступна в любом статусе версии. #### Scenario: Переход к своду - **WHEN** аналитик нажимает «К отчётности» у версии - **THEN** открывается экран сводной ОСВ этой версии