Вкладка «Организация»: вместо 5 полей доходов по годам — одна строка «Доход за 5 лет (суммарно)» + «Снижение уровня дохода», жирный заголовок убран; миграция старых файлов (сумма по годам → income_5y), авторасчёт/автозаполнение/DaData/шаблоны обновлены
This commit is contained in:
+17
-1
@@ -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, '')
|
||||
|
||||
Reference in New Issue
Block a user