requests_list = []
def add_request():
print("\n--- Добавление заявки ---")
while True:
num = input("Номер заявки: ").strip()
if any(r["num"] == num for r in requests_list):
print("Такой номер уже существует, введите другой.")
else:
break
name = input("ФИО клиента: ").strip()
device = input("Тип техники: ").strip()
problem = input("Описание проблемы: ").strip()
while True:
try:
cost = float(input("Стоимость ремонта: "))
if cost < 0:
print("Стоимость не может быть отрицательной.")
else:
break
except ValueError:
print("Введите число.")
requests_list.append({
"num": num, "name": name, "device": device,
"problem": problem, "status": "новая", "cost": cost
})
print("Заявка добавлена.")
def show_all():
print("\n--- Все заявки ---")
if not requests_list:
print("Заявок нет.")
return
for r in requests_list:
print(f"№{r['num']} | {r['name']} | {r['device']} | {r['status']} | {r['cost']} руб.")
print(f" Проблема: {r['problem']}")
def find_request():
num = input("Номер заявки: ").strip()
for r in requests_list:
if r["num"] == num:
print(f"№{r['num']} | {r['name']} | {r['status']} | {r['cost']} руб.")
return
print("Заявка не найдена.")
def change_status():
num = input("Номер заявки: ").strip()
for r in requests_list:
if r["num"] == num:
new_status = input("Новый статус (новая / в работе / готово): ").strip()
if new_status in ("новая", "в работе", "готово"):
r["status"] = new_status
print("Статус обновлён.")
else:
print("Недопустимый статус.")
return
print("Заявка не найдена.")
def delete_request():
num = input("Номер заявки: ").strip()
for r in requests_list:
if r["num"] == num:
requests_list.remove(r)
print("Заявка удалена.")
return
print("Заявка не найдена.")
def show_stats():
if not requests_list:
print("Заявок нет.")
return
count = {"новая": 0, "в работе": 0, "готово": 0}
for r in requests_list:
count[r["status"]] = count.get(r["status"], 0) + 1
for status, n in count.items():
print(f" {status}: {n}")
while True:
print("\n1. Добавить 2. Все заявки 3. Найти 4. Изменить статус 5. Удалить 6. Статистика 0. Выйти")
choice = input("Выбор: ").strip()
if choice == "1": add_request()
elif choice == "2": show_all()
elif choice == "3": find_request()
elif choice == "4": change_status()
elif choice == "5": delete_request()
elif choice == "6": show_stats()
elif choice == "0":
print("До свидания!")
break
else:
print("Неверный пункт меню.")