Вкладка «Организация»: вместо 5 полей доходов по годам — одна строка «Доход за 5 лет (суммарно)» + «Снижение уровня дохода», жирный заголовок убран; миграция старых файлов (сумма по годам → income_5y), авторасчёт/автозаполнение/DaData/шаблоны обновлены

This commit is contained in:
LocoAgent
2026-08-05 14:54:31 +04:00
parent 829a1a98e3
commit 5bb6a2f5e9
3 changed files with 50 additions and 18 deletions
+17 -1
View File
@@ -130,7 +130,9 @@ class Company:
profit_tax: str = "" # Сумма налога с прибыли за предыдущий год
# Показатель 8 (ущерб субъекту КИИ): доходы за 5 лет и суммарный ущерб
income_year_1: str = "" # Доход за 5 лет назад (руб.)
# В форме — одна строка «Доход за 5 лет (суммарно)»; по годам разбивает сам оператор.
income_5y: str = "" # Доход за 5 лет суммарно (руб.)
income_year_1: str = "" # Доход за 5 лет назад (руб.) — обратная совместимость
income_year_2: str = "" # Доход за 4 года назад (руб.)
income_year_3: str = "" # Доход за 3 года назад (руб.)
income_year_4: str = "" # Доход за 2 года назад (руб.)
@@ -224,6 +226,20 @@ class Company:
d["okved_extra"] = []
valid = {f.name for f in cls.__dataclass_fields__.values()}
obj = cls(**{k: v for k, v in d.items() if k in valid})
# Миграция: старые файлы с доходами по годам → суммарный доход за 5 лет
if not (getattr(obj, 'income_5y', '') or '').strip():
_sum = 0.0
_has = False
for i in range(1, 6):
v = str(getattr(obj, f'income_year_{i}', '') or '').strip()
if v:
try:
_sum += float(v.replace(' ', '').replace(',', '.').replace('\u00a0', ''))
_has = True
except Exception:
pass
if _has:
obj.income_5y = f"{_sum:,.0f}".replace(',', ' ')
# Если в поле ФИО несколько человек — оставить одного (старые опросники)
for fio_field in ('chief_fio', 'responsible_fio', 'admin_fio'):
val = getattr(obj, fio_field, '')