-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStore_Management_Software.py
137 lines (90 loc) · 4.1 KB
/
Store_Management_Software.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
125
126
127
128
129
130
131
132
133
134
135
136
137
# Store Management Software
# Creazione di un software per la gestione di uno shop vegano. Il software ha le seguenti caratteristiche:
# Registrazione di nuovi prodotti, con nome, quantità, prezzo di vendita e prezzo di acquisto;
# Elenco di tutti i prodotti contenuti nel magazzino;
# Registrazione in un file csv dello storico di tutte le attività (operazioni di acquisto e vendita, data e ora incluse);
# Registrazione delle vendite effettuate;
# Visualizzazione dei profitti lordi e netti.
import csv
import os
from datetime import datetime
from store_functions import help_cmd
from store_functions import stock_info
from store_functions import add
from store_functions import itemize
from store_functions import sell
from store_functions import profit
cmd = None
while cmd!="chiudi":
cmd = input("\nInserire un comando per eseguire un'azione (digitare aiuto per vedere le funzioni disponibili): ")
if cmd=="vendita":
sold_dict={}
answer="si"
while answer.lower()!="no":
is_string,quantity=False,None
while is_string==False:
try:
product_name=input("Nome del prodotto: ")
if product_name.isnumeric():
is_string==False
raise ValueError("\nProdotto non valido: inserito valore numerico")
continue
else:
is_string=True
except ValueError as e:
print(e)
while quantity==None or quantity <=0:
try:
quantity=int(input("Quantità: "))
if quantity <= 0:
print( "\nIl valore inserito è minore o uguale a zero. Inserire un valore positivo per la quantità")
except ValueError:
print("\nQuantità non valida: inserire numero intero")
#Viene richiamata la funzione sell: se stop=1 la vendita viene registrata in un dizionario temporaneo sold_dict
#e all'utente viene chiesto se deve essere venduto un nuovo prodotto. Se viene selezionato NO, viene mostrato il prezzo totale #di vendita.
stop=sell(product_name,quantity)
stock=stock_info()
if stop==1:
sold_dict[product_name]=quantity
answer=input("Aggiungere un altro prodotto?: [si/NO]")
if len(list(sold_dict.keys()))!=0:
print("\nVENDITA REGISTRATA: ")
total_sold=0
for key in list(sold_dict.keys()):
print(f"{sold_dict[key]} X {key}: €{stock[key]['Prezzo di vendita']}")
total_sold+=(stock[key]['Prezzo di vendita']*sold_dict[key])
print(f"\nTotale: €{total_sold:.2f}")
elif cmd=="profitti":
profit()
elif cmd=="aggiungi":
is_string,quantity=False,None
while is_string==False:
try:
product_name=input("Nome del prodotto: ")
if product_name.isnumeric():
is_string==False
raise ValueError("\nInserimento prodotto non valido: valore numerico inserito")
continue
else:
is_string=True
except ValueError as e:
print(e)
while quantity==None or quantity <=0:
try:
quantity=int(input("Quantità: "))
if quantity <= 0:
print( "\nIl valore inserito è minore o uguale a zero. Inserire un valore positivo per la quantità")
except ValueError:
print("\nQuantità non valida: inserire numero intero")
#funzione aggiungi viene richiamata
add(product_name,quantity)
elif cmd=="elenca":
itemize()
elif cmd=="aiuto":
help_cmd()
elif cmd=="chiudi":
print("Bye Bye, ci si rivede quando si vuole eseguire un'altra azione")
break
else:
print("\nCommando non valido")
help_cmd()