2.5 KiB
Raw Blame History

MODIFIED Requirements

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

GET /api/v1/consolidations/versions/{version_id}/elimination-rules (CONSOLIDATION_VIEW, policy по ГК) SHALL возвращать объект {version_no, is_version_fixed, rules}. Если у версии задан consolidation_version.elimination_rules_version, version_no SHALL равняться ему, is_version_fixed = true, а rules — правилами этой версии. Если он не задан, is_version_fixed = false, а rules — открытые правила (valid_to IS NULL) только с максимальным version_no; ответ SHALL содержать этот фактический version_no. При отсутствии открытых правил version_no = null, rules = []. Каждое правило SHALL содержать id, 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

Scenario: Версия правил зафиксирована

  • WHEN у версии консолидации elimination_rules_version = 1
  • THEN ответ содержит is_version_fixed = true, version_no = 1 и только правила с version_no = 1

Scenario: Версия правил не зафиксирована

  • WHEN у версии консолидации elimination_rules_version пуст
  • THEN ответ содержит is_version_fixed = false, фактический version_no и открытые правила только этой версии

Scenario: Открыты две версии правил

  • WHEN открыты правила с version_no = 1 и version_no = 2, в том числе с одинаковым rule_no
  • THEN ответ содержит только правила версии 2 и version_no = 2