0% encontró este documento útil (0 votos)
18 vistas4 páginas

TP Python

El documento es un script en Python que gestiona un sistema de inventario utilizando SQLite. Permite registrar, visualizar, actualizar, eliminar y buscar productos, así como generar reportes de bajo stock. Incluye un menú interactivo para facilitar la interacción del usuario con el sistema.

Cargado por

Megumi Al
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas4 páginas

TP Python

El documento es un script en Python que gestiona un sistema de inventario utilizando SQLite. Permite registrar, visualizar, actualizar, eliminar y buscar productos, así como generar reportes de bajo stock. Incluye un menú interactivo para facilitar la interacción del usuario con el sistema.

Cargado por

Megumi Al
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

import sqlite3

from colorama import init, Fore

# Inicializar colorama para el uso de colores en terminal


init(autoreset=True)

# ===================== CONEXIÓN Y CONFIGURACIÓN =====================

# Establecer conexión con la base de datos (se crea si no existe)


conn = [Link]('[Link]')
cursor = [Link]()

# Crear la tabla de productos si no existe


[Link]('''
CREATE TABLE IF NOT EXISTS productos (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nombre TEXT NOT NULL,
descripcion TEXT,
cantidad INTEGER NOT NULL,
precio REAL NOT NULL,
categoria TEXT
)
''')
[Link]()

# ===================== FUNCIONES PRINCIPALES =====================

def registrar_producto():
"""
Permite al usuario ingresar un nuevo producto en la base de datos.
"""
print([Link] + "\n--- Registrar Nuevo Producto ---")
nombre = input("Nombre: ")
descripcion = input("Descripción: ")
cantidad = int(input("Cantidad: "))
precio = float(input("Precio: "))
categoria = input("Categoría: ")

[Link]('''
INSERT INTO productos (nombre, descripcion, cantidad, precio, categoria)
VALUES (?, ?, ?, ?, ?)
''', (nombre, descripcion, cantidad, precio, categoria))
[Link]()
print([Link] + "✅ Producto registrado con éxito.")

def visualizar_productos():
"""
Muestra todos los productos actualmente registrados.
"""
print([Link] + "\n--- Lista de Productos ---")
[Link]("SELECT * FROM productos")
productos = [Link]()

if productos:
for p in productos:
print(f"{[Link]}ID: {p[0]} | Nombre: {p[1]} | Cantidad: {p[3]} |
Precio: ${p[4]:.2f} | Categoría: {p[5]}")
else:
print([Link] + "No hay productos registrados.")

def actualizar_producto():
"""
Permite actualizar los datos de un producto existente según su ID.
"""
print([Link] + "\n--- Actualizar Producto ---")
id_ = input("ID del producto a actualizar: ")
[Link]("SELECT * FROM productos WHERE id = ?", (id_,))
producto = [Link]()

if producto:
print("Dejar en blanco para mantener el valor actual.")
nombre = input(f"Nuevo nombre ({producto[1]}): ") or producto[1]
descripcion = input(f"Nueva descripción ({producto[2]}): ") or producto[2]
cantidad = input(f"Nueva cantidad ({producto[3]}): ")
cantidad = int(cantidad) if cantidad else producto[3]
precio = input(f"Nuevo precio ({producto[4]}): ")
precio = float(precio) if precio else producto[4]
categoria = input(f"Nueva categoría ({producto[5]}): ") or producto[5]

[Link]('''
UPDATE productos
SET nombre = ?, descripcion = ?, cantidad = ?, precio = ?, categoria
= ?
WHERE id = ?
''', (nombre, descripcion, cantidad, precio, categoria, id_))
[Link]()
print([Link] + "✅ Producto actualizado con éxito.")
else:
print([Link] + "Producto no encontrado.")

def eliminar_producto():
"""
Elimina un producto de la base de datos por su ID.
"""
print([Link] + "\n--- Eliminar Producto ---")
id_ = input("ID del producto a eliminar: ")
[Link]("SELECT * FROM productos WHERE id = ?", (id_,))

if [Link]():
[Link]("DELETE FROM productos WHERE id = ?", (id_,))
[Link]()
print([Link] + "✅ Producto eliminado.")
else:
print([Link] + "Producto no encontrado.")

def buscar_producto():
"""
Permite buscar productos por ID, nombre o categoría.
"""
print([Link] + "\n--- Buscar Producto ---")
print("1. Buscar por ID")
print("2. Buscar por Nombre")
print("3. Buscar por Categoría")
opcion = input("Opción: ")
if opcion == '1':
id_ = input("ID del producto: ")
[Link]("SELECT * FROM productos WHERE id = ?", (id_,))
elif opcion == '2':
nombre = input("Nombre del producto: ")
[Link]("SELECT * FROM productos WHERE nombre LIKE ?", ('%' + nombre
+ '%',))
elif opcion == '3':
categoria = input("Categoría del producto: ")
[Link]("SELECT * FROM productos WHERE categoria LIKE ?", ('%' +
categoria + '%',))
else:
print([Link] + "Opción inválida.")
return

resultados = [Link]()
if resultados:
for p in resultados:
print(f"{[Link]}ID: {p[0]} | Nombre: {p[1]} | Cantidad: {p[3]} |
Precio: ${p[4]:.2f} | Categoría: {p[5]}")
else:
print([Link] + "No se encontraron productos.")

def reporte_bajo_stock():
"""
Genera un reporte de productos con cantidad igual o inferior a un límite
definido.
"""
print([Link] + "\n--- Reporte de Productos con Bajo Stock ---")
limite = int(input("Cantidad límite: "))
[Link]("SELECT * FROM productos WHERE cantidad <= ?", (limite,))
productos = [Link]()

if productos:
for p in productos:
print(f"{[Link]}ID: {p[0]} | Nombre: {p[1]} | Cantidad: {p[3]} |
Precio: ${p[4]:.2f} | Categoría: {p[5]}")
else:
print([Link] + "No hay productos con bajo stock.")

# ===================== MENÚ PRINCIPAL =====================

def menu():
"""
Muestra el menú principal y dirige al usuario según la opción seleccionada.
"""
while True:
print([Link] + "\n====== MENÚ DE INVENTARIO ======")
print("1. Registrar producto")
print("2. Visualizar productos")
print("3. Actualizar producto")
print("4. Eliminar producto")
print("5. Buscar producto")
print("6. Reporte bajo stock")
print("7. Salir")

opcion = input("Seleccione una opción: ")


if opcion == '1':
registrar_producto()
elif opcion == '2':
visualizar_productos()
elif opcion == '3':
actualizar_producto()
elif opcion == '4':
eliminar_producto()
elif opcion == '5':
buscar_producto()
elif opcion == '6':
reporte_bajo_stock()
elif opcion == '7':
print([Link] + "Gracias por usar el sistema. ¡Hasta luego!")
break
else:
print([Link] + "Opción inválida. Intente nuevamente.")

# ===================== EJECUCIÓN =====================


if __name__ == "__main__":
menu()
[Link]()

También podría gustarte