fix: парсер чисел понимает формат опросника «121 118 270 руб» (авторасчёт 8/9 работал с пустыми данными); показатель 8 применим для организаций ОПК по сфере объекта
This commit is contained in:
+19
-3
@@ -2189,7 +2189,12 @@ class DokoGenApp:
|
|||||||
import re as _re2
|
import re as _re2
|
||||||
|
|
||||||
def _num(s):
|
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:
|
try:
|
||||||
return float(s)
|
return float(s)
|
||||||
except Exception:
|
except Exception:
|
||||||
@@ -2619,7 +2624,11 @@ class DokoGenApp:
|
|||||||
- остальные применимые показатели — оставляются оператору.
|
- остальные применимые показатели — оставляются оператору.
|
||||||
"""
|
"""
|
||||||
def _num2(s):
|
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:
|
try:
|
||||||
return float(s)
|
return float(s)
|
||||||
except Exception:
|
except Exception:
|
||||||
@@ -2630,7 +2639,14 @@ class DokoGenApp:
|
|||||||
is_special = any(k in org for k in [
|
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 = []
|
filled = []
|
||||||
for num, name, values, var, applicable_here in rows:
|
for num, name, values, var, applicable_here in rows:
|
||||||
if not applicable_here:
|
if not applicable_here:
|
||||||
|
|||||||
Reference in New Issue
Block a user