feat: Initial commit
This commit is contained in:
102
EsRiassuntivi/magazzino/magazzino.py
Normal file
102
EsRiassuntivi/magazzino/magazzino.py
Normal file
@@ -0,0 +1,102 @@
|
||||
from typing import cast
|
||||
|
||||
|
||||
def loadFile(filename: str):
|
||||
in_file = open(filename, "r")
|
||||
items = {}
|
||||
|
||||
for item in in_file:
|
||||
ispl = item.split()
|
||||
iname = ispl[0].strip()
|
||||
cost = float(ispl[1])
|
||||
count = int(ispl[2])
|
||||
|
||||
items[iname] = [cost, count]
|
||||
|
||||
in_file.close()
|
||||
return items
|
||||
|
||||
|
||||
def saveFile(filename: str, items: dict):
|
||||
out_file = open(filename, "w")
|
||||
|
||||
for key in items:
|
||||
out_file.write(key + "\t" + str(items[key][0]) + "\t" + str(items[key][1]) + "\n")
|
||||
|
||||
out_file.close()
|
||||
|
||||
|
||||
def handleCommand(items: dict):
|
||||
command = input("Inserisci un comando: ")
|
||||
|
||||
if command == "XXXXXX":
|
||||
return False
|
||||
|
||||
command = command.split()
|
||||
|
||||
if len(command) != 2:
|
||||
print("Comando non valido!")
|
||||
return True
|
||||
|
||||
key = command[0]
|
||||
op = command[1][0]
|
||||
|
||||
try:
|
||||
delta = int(command[1][1:])
|
||||
except ValueError:
|
||||
print("Valore numerico non valido")
|
||||
return True
|
||||
|
||||
if key not in items:
|
||||
print("Il prodotto non è presente nel database!")
|
||||
return True
|
||||
|
||||
if op != "+" and op != "-":
|
||||
print("Operazione non valida")
|
||||
return True
|
||||
|
||||
oldVal = items[key][1]
|
||||
|
||||
if op == "+":
|
||||
newVal = oldVal + delta
|
||||
if newVal > 10000:
|
||||
print("Quantità di prodotto superiore al valore massimo")
|
||||
return True
|
||||
|
||||
items[key][1] = newVal
|
||||
print("Incrementa la quantità di prodotto", key, "di", delta)
|
||||
else:
|
||||
newVal = oldVal - delta
|
||||
if newVal < 0:
|
||||
print("Quantità di prodotto non disponibile")
|
||||
return True
|
||||
|
||||
items[key][1] = newVal
|
||||
print("Decrementa la quantità di prodotto", key, "di", delta)
|
||||
|
||||
print("Valore complessivo precedente:", oldVal)
|
||||
print("Valore complessivo attuale", newVal)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def main():
|
||||
in_file_name = input("Inserisci il nome del vecchio file: ")
|
||||
try:
|
||||
items = loadFile(in_file_name)
|
||||
except FileNotFoundError:
|
||||
exit("Errore! File di input non trovato")
|
||||
except:
|
||||
exit("File di input malformato!")
|
||||
|
||||
while handleCommand(items):
|
||||
pass
|
||||
|
||||
out_file_name = input("Inserisci il nome del nuovo file: ")
|
||||
|
||||
try:
|
||||
saveFile(out_file_name, items)
|
||||
except FileNotFoundError:
|
||||
exit("Errore! File di output non trovato")
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user