Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
3.4 KiB
consolidated-osv-ui Specification
Purpose
TBD - created by archiving change demo-prototype. Update Purpose after archive.
Requirements
Requirement: Сводка версии
Экран «Сводная ОСВ» [30] SHALL показывать шапку версии (ГК, период, номер, статус) и сводку
GET /consolidations/versions/{id}/osv/summary: строк всего, документов, несопоставленных (unmapped_total — счётчик
«Осталось N» без перехода к сопоставлению), автоматически сопоставленных.
Scenario: Контрольные цифры РБ 2024 Q3
- WHEN открыт свод версии РБ 2024 Q3 после подтверждения 22 ОСВ из
fixtures/osv/{rb,schastl}/2024-Q{1,2,3} - THEN «строк» = 1385, «документов» = 22, «несопоставленных» = 1381
Requirement: Таблица свода и фильтры
Экран SHALL показывать строки GET /consolidations/versions/{id}/osv постранично (размер страницы ≤ 2000): ЮЛ, счёт,
контрагент, ИНН контрагента, признак контрагента (ГСК/ГК/Внешний), способ сопоставления, сальдо на начало Дт/Кт,
обороты Дт/Кт, сальдо на конец Дт/Кт (суммы — строками с разделителями разрядов). Фильтры: ЮЛ (legal_entity_id),
корень счёта (account_root), признак контрагента (counterparty_type), только несопоставленные (unmapped), поиск по
контрагенту (q, ≤ 500 символов). Смена фильтра SHALL перечитывать первую страницу.
Scenario: Строка из контрольных цифр
- WHEN фильтр ЮЛ «Пекарня Счастливочная» и поиск «бисквит»
- THEN строка
60.01показывает сальдо нач. Кт 4 454 151.93, обороты Дт 128 058 143.65, Кт 125 950 450.77, сальдо кон. Кт 2 346 459.05, признак «ГСК»
Requirement: Пробелы
Экран SHALL показывать gaps[] сводки списком «ЮЛ — счёт — недостающие кварталы» с пояснением, что строки этих пар в
своде отсутствуют.
Scenario: Пробелы РБ 2024 Q3
- WHEN открыт свод версии РБ 2024 Q3
- THEN показано 7 пробелов, у каждого недостающие кварталы «Q1, Q2»
Requirement: Экспорт
Кнопка «Скачать xlsx» SHALL получать GET /consolidations/versions/{id}/osv/export с текущими фильтрами через клиент API
с токеном и сохранять файл; имя — из Content-Disposition, а если заголовок недоступен —
Сводная_ОСВ_<ГК>_<год>_<квартал>.xlsx.
Scenario: Экспорт с фильтром
- WHEN аналитик скачивает свод с фильтром по ЮЛ
- THEN сохраняется xlsx, а ошибка сервера показывается текстом, а не скачивается