Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- import sqlite3
- def mostrar_opciones():
- return """
- Menu de administración del menu del restaurante
- *---------------------------------------------------*
- 1. Agregar categoria
- 2. Agregar plato
- 3. Mostrar menu
- 4. Salir
- *---------------------------------------------------*
- """
- def agregar_categoria(nombre):
- try:
- conn.execute('INSERT INTO categoria VALUES(null,?)', (nombre,))
- except sqlite3.IntegrityError:
- print(f"Error. Ya existe la categoría '{nombre}'")
- except sqlite3.OperationalError:
- print("La consulta no se ejecutó correctamente")
- else:
- conn.commit()
- def agregar_plato():
- try:
- cursor.execute("SELECT * FROM categoria ORDER BY id")
- except sqlite3.OperationalError:
- print("La consulta no se ejecutó correctamente")
- else:
- categorias = cursor.fetchall() # vuelco todos los datos
- if categorias:
- id_categoria = [] # creo una lista vacía para almacenar id de categorías
- print("Categorias")
- print("----------")
- print("ID | nombre")
- print("-------------")
- for ID,nombre in categorias:
- id_categoria.append(ID)
- print(f"{ID} | {nombre}")
- while True:
- try:
- ID = int(input("\nSeleccione un ID: "))
- except ValueError:
- print("El ID debe ser un numero entero...")
- else:
- if ID in id_categoria:
- break
- print("ID de categoría inexistente..")
- nombre_plato = input("Ingrese el nombre del plato: ")
- try:
- conn.execute('INSERT INTO platos VALUES(null,?,?)', (nombre_plato,ID))
- except sqlite3.IntegrityError:
- print(f"Error. Ya existe el plato '{nombre_plato}'")
- except sqlite3.OperationalError:
- print("La consulta no se ejecutó correctamente")
- else:
- conn.commit()
- else:
- print("No hay categorías de platos")
- def mostrar_menu():
- query = "SELECT categoria.id, categoria.nombre, platos.id, platos.nombre FROM categoria\
- LEFT JOIN platos\
- ON platos.id_categoria = categoria.id\
- ORDER BY categoria.id, platos.id"
- cursor.execute(query)
- platos = cursor.fetchall()
- if platos:
- print("\nID categoria ID plato ")
- print("----------------------------")
- for plato in platos:
- print()
- for elemento in plato:
- if isinstance(elemento, str):
- print("{:<12}".format(elemento), end=" ")
- elif isinstance(elemento, int):
- print("{:^3}".format(elemento), end=" ")
- print()
- else:
- print("No hay ningún plato en el menú")
- conn = sqlite3.connect("restaurante.db")
- cursor = conn.cursor()
- while True:
- print(mostrar_opciones())
- opcion = input("Seleccione su opción: ")
- if opcion == "1":
- agregar_categoria(input("Ingrese el nombre: "))
- elif opcion == "2":
- agregar_plato()
- elif opcion == "3":
- mostrar_menu()
- elif opcion == "4":
- conn.close()
- print("Cerrando conexiones...")
- break
- else:
- print("Opción incorrecta")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement