-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserialize_elenco.py
124 lines (88 loc) · 4.27 KB
/
serialize_elenco.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
117
118
119
120
121
122
123
124
import pandas as pd
import math
file_path_elenco = 'exp_elenco2024.xlsx'
file_path_analisi = 'exp_analisi2024.xlsx'
df_elenco = pd.read_excel(file_path_elenco, header=None)
df_analisi = pd.read_excel(file_path_analisi, header=None)
elenco_prezzi = pd.DataFrame(columns=['Codice', 'Ex-Codice', 'Descrizione', 'UMI', 'Prezzo', 'PercMan'])
df_elenco = df_elenco.drop(df_elenco.index[[1,2]])
analisi_prezzi = pd.DataFrame(columns=['Codice', 'Ex-Codice', 'Descrizione', 'SUB', 'Totale', 'SGEUI', 'ITU'])
sub_price = pd.DataFrame(columns=['Codice', 'Ex-Codice', 'Descrizione', 'Qta', 'UMI', 'IU', 'Importo'])
#iter analisi
new_row = {}
nuova_riga = False
for index, row in df_analisi.iterrows():
# if index == 8000:
# break
if row.isnull().all():
nuova_riga = True
sub = []
new_row = {}
continue
# Convert row to list for easy access
row_data = row.tolist()
if row_data[0] == 'Analisi prezzi: Prezzario 2024':
continue
elif isinstance(row_data[6], float) or isinstance(row_data[6], int):
if math.isnan(float(row_data[6])):
new_row["Codice"] = row_data[0]
# new_row["Ex-Codice"] = row_data[1]
# new_row["Descrizione"] = row_data[2]
if row_data[0] == 'TOTALE:':
continue
# new_row["Totale"] = row_data[6]
if row_data[0] == 'IMPORTO TOTALE UNITARIO:':
# new_row["ITU"] = row_data[6]
nuova_riga = False
if row_data[0] == "SPESE GENERALI E UTILE D'IMPRESA:" and (row_data[5] == 0.265 or row_data[5] == 0 or row_data[5] == 0.15):
# continue
new_row["SGEUI"] = row_data[5]
# Store the data in the dictionary
if isinstance(row_data[4], str):
sub.append(row_data[0])
# sub_price = sub_price._append({
# "Codice" : row_data[0],
# "Ex-Codice" : row_data[1],
# "Descrizione" : row_data[2],
# "Qta" : row_data[3],
# "UMI" : row_data[4],
# "IU" : row_data[5],
# "Importo" : row_data[6],
# }, ignore_index=True)
# new_row["SUB"] = sub_price["Codice"].tolist()
elif row_data[0] == "Codice":
continue
if nuova_riga == False:
new_row["SUB"] = sub
#analisi_prezzi = analisi_prezzi._append(new_row, ignore_index=True)
analisi_prezzi = analisi_prezzi._append(new_row, ignore_index=True)
#analisi_prezzi.to_json('exp_analisi2024.json', orient='records', indent=4, default_handler=str)
print("Finito analisi prezzi")
new_row = {}
for index, row in df_elenco.iterrows():
row_data = row.tolist()
if math.isnan(float(row_data[4])):
continue
new_row["Codice"] = row_data[0]
new_row["Ex-Codice"] = row_data[1]
new_row["Descrizione"] = row_data[2]
new_row["UMI"] = row_data[3]
new_row["Prezzo"] = row_data[4]
new_row["PercMan"] = row_data[5]
#new_row["SUB"] = analisi_prezzi[ analisi_prezzi["Codice"] == new_row["Codice"] ]["SUB"].iat[0]["Codice"]
if not analisi_prezzi[ analisi_prezzi["Codice"] == new_row["Codice"] ]["SUB"].empty:
new_row["SUB"] = analisi_prezzi[ analisi_prezzi["Codice"] == new_row["Codice"] ]["SUB"]
new_row["SGEUI"] = analisi_prezzi[ analisi_prezzi["Codice"] == new_row["Codice"] ]["SGEUI"]
# print(new_row["SUB"])
# print(new_row["Codice"])
#print(analisi_prezzi[ analisi_prezzi["Codice"] == new_row["Codice"] ]["SUB"])
# print(analisi_prezzi["Codice"])
elenco_prezzi = elenco_prezzi._append(new_row, ignore_index=True)
new_row = {}
print()
#print(analisi_prezzi[ analisi_prezzi["Codice"=="VEN24-AT.09.01.a"]["Descrizione"] ])
#print(analisi_prezzi[analisi_prezzi["Codice"] == "VEN24-AT.09.01.a"] ["SUB"])
#print(elenco_prezzi[elenco_prezzi["Codice"] == "VEN24-AT.09.01.c"]["SUB"])
print(elenco_prezzi[elenco_prezzi["Codice"] == "VEN24-21.02.14.a"]["SUB"])
print(elenco_prezzi[elenco_prezzi["Codice"] == "VEN24-21.02.14.a"]["SGEUI"])
elenco_prezzi.to_json('exp_elenco2024.json', orient='records', indent=4, default_handler=str)