-
Notifications
You must be signed in to change notification settings - Fork 0
/
recipy.py
68 lines (58 loc) · 2.55 KB
/
recipy.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import datetime
import re
import pdfplumber
from typing import List
def type_of_tracer(seriers: str) -> str:
'''Возвращает короткий код для различных Tracers'''
if 'F1' in seriers:
return 'ФДГ, 18F'
elif 'F2' in seriers:
return 'ФЭТ, 18F'
elif 'F3' in seriers:
return 'ПСМА, 18F'
elif 'F4' in seriers:
return 'ФЭС, 18F'
elif 'F5' in seriers:
return 'ФЛТ, 18F'
elif 'F6' in seriers:
return 'ДОПА, 18F'
def recipients_name(code_vial: str) -> str:
"""Возвращает название заказчика"""
if 'KK' in code_vial or 'Архив' in code_vial or 'ARHIV' in code_vial:
return "Лаборатория контроля качества"
elif 'OLD' in code_vial:
return "Отделение лучевой диагностики ООО \"ПЭТ-Технолоджи Балашиха\""
elif 'WASH' in code_vial or 'wash' in code_vial or 'BPT' in code_vial:
return "мусор"
else:
return "ООО «РМС"
def data_request(seriers: str) -> str:
"""Дата заявки ОЛД с учетом выходных"""
data_now = seriers[-6:][0:2] + '.' + seriers[-6:][2:4] + '.20' + seriers[-6:][4:]
data_now = datetime.datetime.strptime(data_now, '%d.%m.%Y')
weekd = data_now.weekday()
if weekd == 0:
data_now -= datetime.timedelta(days=3) # Если понедельник
elif weekd == 6:
data_now -= datetime.timedelta(days=2) # Если воскресенье
else:
data_now -= datetime.timedelta(days=1) # В другие дни
return data_now.strftime('%d.%m.%Y')
def demand_invoice(code_vial: str, seriers: str) -> str:
"""Для ОЛД и ЛКК возвращает номер серии и дату заявки"""
number = re.sub(r"F\w+", "", seriers) # Убираем все знаки/цифры/буквы после ПЕРВОЙ буквы F
if 'KK' in code_vial or 'Архив' in code_vial or 'ARHIV' in code_vial:
data = seriers[-6:][0:2] + '.' + seriers[-6:][2:4] + '.20' + seriers[-6:][4:]
return f'№{number} от {data}'
elif 'OLD' in code_vial:
data = data_request(seriers)
return f'№{number} от {data}'
else:
return ''
def read_pdf(path_pdf: str) -> List[str]:
"""Чтение PDF файлов"""
with pdfplumber.open(path_pdf) as pdf:
page = pdf.pages[0]
text = page.extract_text()
text = re.split("\n", text)
return text