Andrey Epifancev 5682897ed0 OpenSpec change intercompany-matrix: требования шахматки из specs/ в дельты (#114)
Требования AURORA-1537, дописанные в openspec/specs/{audit-trail,consolidated-osv,
consolidations-api,directories-api}, перенесены в дельты change'а; specs/ возвращены к main.
Известные дефекты (AURORA-1651/1652/1653) зафиксированы в design.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 15:42:30 +04:00

2.5 KiB
Raw Blame History

ADDED Requirements

Requirement: Правила элиминации версии

GET /api/v1/consolidations/versions/{version_id}/elimination-rules (CONSOLIDATION_VIEW, policy по ГК) SHALL возвращать все правила версии массивом. Каждое правило SHALL содержать rule_no, version_no, statement_type, side_1 (D/K), measure (closing/turnover), company_1, company_2; каждая сторона SHALL содержать accounts: UUID[] и excluded: UUID[] до раскрытия иерархии счетов. Невидимая и несуществующая версия SHALL отвечать одинаковым 404 NOT_FOUND.

Scenario: Правило с исключением

  • WHEN у правила первая сторона включает счёт 76 и исключает 76.07.5
  • THEN ID 76 находится в company_1.accounts, ID 76.07.5 — в company_1.excluded

Requirement: Результирующая таблица ВГО

GET /api/v1/consolidations/versions/{version_id}/intercompany-matrix/result-table (CONSOLIDATION_VIEW, policy) SHALL возвращать {companies[], articles[]}. Компании — все члены периметра по имени; статья содержит code, name, amounts[] {company_id, amount} и group_total. Пять фиксированных статей §6: дебиторская и кредиторская задолженность, финансовые вложения, долгосрочные и краткосрочные займы. Сумма компании SHALL считаться по всем остальным компаниям периметра из конечного сальдо нужной стороны и выбранных счетов статьи; group_total — сумма по компаниям. Отсутствие любого необходимого кода счёта SHALL давать 422 RESULT_ACCOUNTS_MISSING с перечнем кодов.

Scenario: Компания без ОСВ

  • WHEN в периметре есть компания без подходящих строк ОСВ
  • THEN она есть в companies, её сумма по каждой статье — строка "0"

Scenario: Нет обязательного счёта

  • WHEN в плане счетов отсутствует счёт 58.03
  • THEN ответ 422 RESULT_ACCOUNTS_MISSING, сообщение содержит 58.03