Advertisement
teslariu

menu_admin_resto

Sep 18th, 2021
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.63 KB | None | 0 0
  1.  -*-
  2.  
  3. import sqlite3
  4.  
  5. def mostrar_opciones():
  6.     return """
  7.         Menu de administracion del restaurante
  8.     *--------------------------------------------*
  9.         1. Agregar categoría de plato
  10.         2. Agregar plato
  11.         3. Mostrar menú
  12.         4. Salir
  13.     *--------------------------------------------*
  14.     """
  15.    
  16.    
  17. def agregar_categoria(nombre):
  18.     try:
  19.         conn.execute('INSERT INTO categorias VALUES (null,?)',(nombre,))
  20.     except sqlite3.IntegrityError:
  21.         print(f"Error, ya existe la categoria '{nombre}'")
  22.     else:
  23.         conn.commit()
  24.  
  25.  
  26. def agregar_plato():
  27.     try:
  28.         cursor.execute("SELECT * FROM categorias ORDER BY id")
  29.     except sqlite3.OperationalError:
  30.         print("La consulta no se ejecutó correctamente")
  31.     else:
  32.         categorias = cursor.fetchall()
  33.         if categorias:
  34.             id_categorias = []
  35.             print("Categorias")
  36.             print("----------")
  37.             print("ID | nombre")
  38.             print("---------------")
  39.             for ID,nombre in categorias:
  40.                 id_categorias.append(ID)
  41.                 print(f"{ID}  | {nombre}")
  42.                
  43.             while True:
  44.                 try:
  45.                     ID = int(input("\nSeleccione un id: "))
  46.                 except ValueError:
  47.                     print("Debe ingresar un entero")
  48.                 else:
  49.                     if ID in id_categorias:
  50.                         break
  51.                     print(f"Id {ID} de categoría inexistente")
  52.            
  53.             nombre_plato = input("Ingrese el nombre del plato: ")
  54.             try:
  55.                 conn.execute('INSERT INTO platos VALUES (null,?,?)',(nombre_plato,ID))
  56.             except sqlite3.IntegrityError:
  57.                 print(f"Error, ya existe el plato '{nombre_plato}'")
  58.             else:
  59.                 conn.commit()
  60.                
  61.         else:
  62.             print("No hay categorias de platos")
  63.            
  64.            
  65. def mostrar_menu():
  66.     query = 'SELECT categorias.id, categorias.nombre, platos.id, platos.nombre FROM categorias\
  67.             LEFT JOIN platos\
  68.             ON platos.id_categoria= categorias.id\
  69.             ORDER BY categorias.id, platos.id'
  70.     cursor.execute(query)
  71.     platos = cursor.fetchall()
  72.     if platos:
  73.         print("\nID  categoria   ID plato    ")
  74.         print("------------------------------")
  75.         for plato in platos:
  76.             print()
  77.             for elemento in plato:
  78.                 if isinstance(elemento,str):
  79.                     print("{:<12}".format(elemento),end=" ")
  80.                 elif isinstance(elemento,int):
  81.                     print("{:>3}".format(elemento),end=" ")
  82.         print()
  83.     else:
  84.         print("No hay platos en el menu")      
  85.                
  86.                
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93. conn = sqlite3.connect("restaurante.db")
  94. cursor = conn.cursor()
  95.  
  96. while True:
  97.    
  98.     print(mostrar_opciones())
  99.    
  100.     opcion = input("Seleccione una opcion: ")
  101.    
  102.     if opcion == "1":
  103.         agregar_categoria(input("Ingrese el nombre: "))
  104.        
  105.     elif opcion == "2":
  106.         agregar_plato()
  107.    
  108.     elif opcion == "3":
  109.         mostrar_menu()
  110.        
  111.     elif opcion == "4":
  112.         conn.close()
  113.         print("Cerrando base de datos...")
  114.         break
  115.        
  116.     else:
  117.         print("Opción incorrecta")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement