En esta octava parte de nuestro tutorial sobre cómo crear un sistema de ventas con Python y Tkinter, vamos a seguir trabajando en la funcionalidad de nuestro programa. En esta ocasión, nos enfocaremos en la creación de la funcionalidad para la gestión de los productos en el inventario.
Para empezar, necesitaremos crear una nueva ventana en la que se mostrará la lista de productos disponibles en el inventario. Para ello, podemos crear una función llamada mostrar_productos() que se encargará de crear una nueva ventana y mostrar la lista de productos.
def mostrar_productos():
# Crear una nueva ventana
productos_window = Toplevel(root)
productos_window.title("Inventario de Productos")
# Crear una etiqueta para mostrar el título de la ventana
titulo_label = Label(productos_window, text="Lista de Productos")
titulo_label.pack()
# Crear una tabla para mostrar los productos
productos_table = ttk.Treeview(productos_window, columns=('ID', 'Nombre', 'Precio', 'Cantidad'))
productos_table.heading('#0', text='ID')
productos_table.column('#0', width=50)
productos_table.heading('#1', text='Nombre')
productos_table.column('#1', width=200)
productos_table.heading('#2', text='Precio')
productos_table.column('#2', width=100)
productos_table.heading('#3', text='Cantidad')
productos_table.column('#3', width=100)
productos_table.pack()
# Mostrar los productos en la tabla
for producto in productos:
productos_table.insert('', 'end', text=producto['id'], values=(producto['nombre'], producto['precio'], producto['cantidad']))
En esta función, creamos una nueva ventana con la lista de productos y la mostramos en una tabla con cuatro columnas: ID, Nombre, Precio y Cantidad. Luego recorremos la lista de productos y los insertamos en la tabla.
Ahora, necesitamos crear una forma de agregar nuevos productos al inventario. Podemos hacerlo mediante una función llamada agregar_producto() que abrirá una ventana con un formulario para ingresar la información del producto.
def agregar_producto():
# Crear una nueva ventana
agregar_producto_window = Toplevel(root)
agregar_producto_window.title("Agregar Producto")
# Crear etiquetas y campos de entrada para el formulario
nombre_label = Label(agregar_producto_window, text="Nombre:")
nombre_label.pack()
nombre_entry = Entry(agregar_producto_window)
nombre_entry.pack()
precio_label = Label(agregar_producto_window, text="Precio:")
precio_label.pack()
precio_entry = Entry(agregar_producto_window)
precio_entry.pack()
cantidad_label = Label(agregar_producto_window, text="Cantidad:")
cantidad_label.pack()
cantidad_entry = Entry(agregar_producto_window)
cantidad_entry.pack()
# Función para guardar el producto en el inventario
def guardar_producto():
nuevo_producto = {
'id': len(productos) + 1,
'nombre': nombre_entry.get(),
'precio': float(precio_entry.get()),
'cantidad': int(cantidad_entry.get())
}
productos.append(nuevo_producto)
agregar_producto_window.destroy()
# Crear botón para guardar el producto
guardar_button = Button(agregar_producto_window, text="Guardar", command=guardar_producto)
guardar_button.pack()
En esta función, creamos una nueva ventana con un formulario para ingresar el nombre, precio y cantidad del nuevo producto. Al hacer clic en el botón "Guardar", se crea un nuevo diccionario con la información del producto y se agrega a la lista de productos.
Con estas dos funciones, ahora tenemos la capacidad de mostrar la lista de productos en el inventario y agregar nuevos productos. En la siguiente parte de nuestro tutorial, continuaremos trabajando en la funcionalidad del sistema de ventas. ¡Espero que este tutorial te haya sido útil y que sigas disfrutando del proceso de desarrollo con Python y Tkinter!
gracias eres un crack una consulta como puedo hacer para se elimine todo el registro del programa de fracturas registradas y que empiece desde cero también prácticamente también el numero de boleta que se reinicie
Buenos días!!
Una pregunta, estuve intentando colocar en la ventana ventas qué cuando seleccione un producto me aparezca la cantidad de productos que hay en el inventario, pero no me funcionó lo que hice.
Como lo podría hacer?
Gracias.
una consulta dijiste que en el minuto 33.53 es sin decimales como lo hago para que sea con decimales
por favor me podrías ayudar
Menos mal, casi nadie lo hace en python eres grande.!
Perfecto!!! Voy bien hasta ahora!!!
Ahora a esperar el siguiente video.
Una consulta… cuando sale un cartel ya sea cualquiera, como podes evitar que se mezclen las ventanas?
Por ejemplo: cuando le das a pagar la ventana del menu principal se posiciona adelante y ventas se va para atras, ocurre con cualquier tipo de mensaje ya sea de aviso o error
Excelente!!
Al momento de generar la factura no se le podría colocar un botón que la genere a un PDF.?
Gracias! Voy haciendo el video contigo, estaba esperando este video, eres muy bueno explicando 🤩