-
Notifications
You must be signed in to change notification settings - Fork 0
/
logics.py
116 lines (96 loc) · 4.56 KB
/
logics.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
from interface import *
from files_manager import *
import itertools
""" модуль: логика"""
# Переменные для записи данных
Namber_Acts, Data_Acts, Named_work, IS, materials = [], [], [], [], []
pd_namber_acts = '№ акта'
pd_data_acts = 'дата акта'
pd_named_work = '1. К освидетельствованию предъявлены следующие работы:'
pd_is = '4. Предъявлены документы'
pd_materials = '3. При выполнении работ применены:'
def parsing_data(df):
# парсим и записываем данные в переменные
for index, row in df.iterrows():
Namber_Acts.append(row[pd_namber_acts])
Data_Acts.append(row[pd_data_acts])
Named_work.append(row[pd_named_work])
IS.append(row[pd_is])
materials.append(row[pd_materials])
def act_gen():
# генерируем акты
aosr, act_namber, act_name_work = 'АОСР', Namber_Acts, Named_work
finel_act = []
for i in range(len(act_name_work)):
finel_act.append(f"{aosr} {act_namber[i]} {act_name_work[i]}")
return finel_act
def is_gen():
# генерируем схемы (разделяем схемы)
my_list1 = IS
finel_IS = []
for item in my_list1:
split_str = item.split(";")
finel_IS += [x.strip() for x in split_str]
return finel_IS
def materials_gen():
# генерируем паспорта/сертификаты (разделяем паспорта/сертификаты)
materials_list = materials
finel_materials = [materials]
for item in materials_list:
split_str = item.split(";")
finel_materials += [x.strip() for x in split_str]
pass
def osi_gen(finel_act):
finel_osi_otm = [] # новый список, куда будут записываться значения
in_osi = 'в осях'
for item in finel_act:
if in_osi in item:
new_item = item.split(in_osi, 1)[1].strip()
finel_osi_otm.append(in_osi + new_item)
return finel_osi_otm
def all_write(OFW, worksheet, workbook, finel_act, finel_IS, finel_osi_otm):
starting_row = 12 # определяем ячейку, с которой начнём записывать значения
starting_column = 3
for write_finel_act, write_finel_IS, write_finel_materials, write_data_Acts, write_finel_osi_otm in itertools.zip_longest(
finel_act, finel_IS, materials, Data_Acts, finel_osi_otm, fillvalue="-"):
worksheet.cell(row=starting_row, column=starting_column, value=write_finel_act)
worksheet.cell(row=starting_row, column=starting_column + 1, value=write_finel_osi_otm)
worksheet.cell(row=starting_row, column=starting_column + 2, value=write_data_Acts)
worksheet.cell(row=starting_row + 1, column=starting_column, value=write_finel_IS)
worksheet.cell(row=starting_row + 2, column=starting_column, value=write_finel_materials)
starting_row += 3
workbook_save = workbook.save(OFW)
# Проверка финальных данных
print('финальные акты:', finel_act)
print('Дата акта:', Data_Acts)
print('финальные оси и отметки:', finel_osi_otm)
print('финальые Исполнительные схемы:', finel_IS)
print('материалы:', materials)
return workbook_save
""" модуль: запуск"""
def main():
# pass
# вызываем функцию open_read_files()
file_path_o = open_read_files()
# вызываем функцию open_file_write()
file_path_w = open_file_write()
# вызываем функцию read_files()
path_file_read_and_write_excel = read_files(file_path_o)
# вызываем функцию open_book_write()
workbook = open_book_write(file_path_w)
# вызываем функцию reading_data()
df = reading_data(path_file_read_and_write_excel)
# вызываем функцию open_list_write()
worksheet = open_list_write(workbook)
# вызываем функцию parsing_data()
parsing_data(df)
# вызываем функцию act_gen()
finel_act = act_gen()
# вызываем функцию is_gen()
finel_IS = is_gen()
# вызываем функцию materials_gen()
materials_gen()
# вызываем функцию osi_gen()
finel_osi_otm = osi_gen(finel_act)
# вызываем функцию all_write()
all_write(file_path_w, worksheet, workbook, finel_act, finel_IS, finel_osi_otm)