fix: парсер чисел понимает формат опросника «121 118 270 руб» (авторасчёт 8/9 работал с пустыми данными); показатель 8 применим для организаций ОПК по сфере объекта
This commit is contained in:
+19
-3
@@ -2189,7 +2189,12 @@ class DokoGenApp:
|
||||
import re as _re2
|
||||
|
||||
def _num(s):
|
||||
s = str(s or '').replace(' ', '').replace('\u00a0', '')
|
||||
# «121 118 270 руб», «1 000», «906 779 руб», «2 212.5» → число
|
||||
s = str(s or '').strip()
|
||||
if not s:
|
||||
return None
|
||||
s = s.replace('\u00a0', ' ').replace(' ', '')\
|
||||
.replace('руб', '').replace('₽', '').replace('р.', '').replace(',', '.')
|
||||
try:
|
||||
return float(s)
|
||||
except Exception:
|
||||
@@ -2619,7 +2624,11 @@ class DokoGenApp:
|
||||
- остальные применимые показатели — оставляются оператору.
|
||||
"""
|
||||
def _num2(s):
|
||||
s = str(s or '').replace(' ', '').replace('\u00a0', '')
|
||||
s = str(s or '').strip()
|
||||
if not s:
|
||||
return None
|
||||
s = s.replace('\u00a0', ' ').replace(' ', '')\
|
||||
.replace('руб', '').replace('₽', '').replace('р.', '').replace(',', '.')
|
||||
try:
|
||||
return float(s)
|
||||
except Exception:
|
||||
@@ -2630,7 +2639,14 @@ class DokoGenApp:
|
||||
is_special = any(k in org for k in [
|
||||
'госкорпорац', 'государственная корпорация', 'гуп', 'фгуп',
|
||||
'государственное унитарное предприятие', 'государственная компания',
|
||||
'росатом', 'роскосмос', 'ростех', 'вэб'])
|
||||
'росатом', 'роскосмос', 'ростех', 'вэб',
|
||||
'оборонно-промышленн', 'опк', 'стратегическ'])
|
||||
# Показатель 8 применим и для организаций ОПК (сфера объекта) —
|
||||
# «организация оборонно-промышленного комплекса» (п. 8 ПП 127)
|
||||
if not is_special:
|
||||
_sphere8 = (getattr(isys, 'sphere', '') or '').lower()
|
||||
if any(k in _sphere8 for k in ['оборон', 'опк']):
|
||||
is_special = True
|
||||
filled = []
|
||||
for num, name, values, var, applicable_here in rows:
|
||||
if not applicable_here:
|
||||
|
||||
Reference in New Issue
Block a user