feat(statements): парсер ББ и ОФР из Excel, контракт v1.2 (Срез 2b) #16

Merged
aep merged 43 commits from feat/14-slice-2b-statement-parser into main 2026-10-06 21:38:00 +03:00
Showing only changes of commit 27ffde426a - Show all commits

View File

@ -178,11 +178,13 @@ def test_inn_from_auditor_block_only_is_none(rules: Rules) -> None:
[*at({2: "Наименование аудиторской организации"})], [*at({2: "Наименование аудиторской организации"})],
[*at({2: 'АО "АУДИТ-КОМПАНИЯ"'})], [*at({2: 'АО "АУДИТ-КОМПАНИЯ"'})],
[ [
*at({ *at(
2: "Идентификационный номер налогоплательщика аудиторской организации", {
33: "ИНН", 2: "Идентификационный номер налогоплательщика аудиторской организации",
34: "9999999999", 33: "ИНН",
}) 34: "9999999999",
}
)
], ],
] ]
) )
@ -208,11 +210,13 @@ def test_inn_from_auditor_above_organization_inn_line(rules: Rules) -> None:
[*at({2: "Наименование аудиторской организации"})], [*at({2: "Наименование аудиторской организации"})],
[*at({2: 'АО "ЮНИКОН"'})], [*at({2: 'АО "ЮНИКОН"'})],
[ [
*at({ *at(
2: "Идентификационный номер налогоплательщика аудиторской организации", {
33: "ИНН", 2: "Идентификационный номер налогоплательщика аудиторской организации",
34: "7716021332", 33: "ИНН",
}) 34: "7716021332",
}
)
], ],
[*at({2: "Единица измерения", 7: "в тыс. рублей", 33: "по ОКЕИ", 34: "384"})], [*at({2: "Единица измерения", 7: "в тыс. рублей", 33: "по ОКЕИ", 34: "384"})],
] ]
@ -220,6 +224,6 @@ def test_inn_from_auditor_above_organization_inn_line(rules: Rules) -> None:
header, _ = parse_header(sheet, rules, 1, 8, _block(sheet, rules)) header, _ = parse_header(sheet, rules, 1, 8, _block(sheet, rules))
assert ( assert header.inn == "1234567890", (
header.inn == "1234567890" f"Should pick organization INN 1234567890, not auditor INN 7716021332, got {header.inn}"
), f"Should pick organization INN 1234567890, not auditor INN 7716021332, got {header.inn}" )