# Diccionario de usuarios
usuarios = [
{'id': 1, 'nombre': 'Ren Tao', 'contraseña': '1234_4321', 'rol': 'admin'},
{'id': 2, 'nombre': 'Ioh Asakura', 'contraseña': 'abc_cba', 'rol': 'vendedor'},
{'id': 3, 'nombre': 'Chocolove McDonnell', 'contraseña': '11110000', 'rol': 'vendedor'}
# Diccionario de materiales en inventario
inventario = [
{'id': 1, 'nombre': 'Ladrillo 10x20x30', 'precio_compra': 1200, 'precio_venta': 1500, 'cantidad':
1000},
{'id': 2, 'nombre': 'Cemento Gris x50kg', 'precio_compra': 28000, 'precio_venta': 30000,
'cantidad': 200},
{'id': 3, 'nombre': 'Varilla Corrugada #5 x6m', 'precio_compra': 33000, 'precio_venta': 35000,
'cantidad': 150},
{'id': 4, 'nombre': 'Impermeabilizante 22kg', 'precio_compra': 350000, 'precio_venta': 360000,
'cantidad': 50},
{'id': 5, 'nombre': 'Malla Electro Soldada 6x2.2m', 'precio_compra': 42000, 'precio_venta': 45000,
'cantidad': 75}
# Ventas
ventas = []
# Funciones
def inicio_sesion(usuarios, id_usuario, contraseña):
return next((usuario for usuario in usuarios if usuario['id'] == id_usuario and
usuario['contraseña'] == contraseña), None)
def registrar_usuario(nombre_usuario, contraseña, rol):
[Link]({'id': len(usuarios) + 1, 'nombre': nombre_usuario, 'contraseña': contraseña,
'rol': rol})
return f"Usuario {nombre_usuario} registrado con éxito."
def agregar_producto(nombre_producto, precio_compra, precio_venta, cantidad):
[Link]({'id': len(inventario) + 1, 'nombre': nombre_producto, 'precio_compra':
precio_compra, 'precio_venta': precio_venta, 'cantidad': cantidad})
return f"Producto {nombre_producto} agregado con éxito."
def actualizar_inventario(id_producto, cantidad):
for producto in inventario:
if producto['id'] == id_producto:
producto['cantidad'] += cantidad
return f"Inventario de {producto['nombre']} actualizado."
return "Producto no encontrado."
def consultar_producto(opcion):
if opcion == "1":
id_producto = int(input("Ingrese el ID del producto: "))
producto = next((p for p in inventario if p['id'] == id_producto), None)
return f"Producto: {producto['nombre']}, Precio Compra: {producto['precio_compra']}, Precio
Venta: {producto['precio_venta']}, Cantidad: {producto['cantidad']}" if producto else "Producto no
encontrado."
else:
return "\n".join([f"ID: {p['id']}, Producto: {p['nombre']}, Precio: {p['precio_venta']}, Cantidad:
{p['cantidad']}" for p in inventario]) or "No hay productos en el inventario."
def registrar_venta(id_producto, cantidad_vendida):
for producto in inventario:
if producto['id'] == id_producto:
if producto['cantidad'] >= cantidad_vendida:
total = producto['precio_venta'] * cantidad_vendida
producto['cantidad'] -= cantidad_vendida
[Link]({'id_venta': len(ventas) + 1, 'id_producto': id_producto, 'cantidad':
cantidad_vendida, 'total': total})
return f"Venta registrada. Total: ${total}. Inventario actualizado."
return "Cantidad insuficiente en inventario."
return "Producto no encontrado."
def ver_resumen_ventas():
return "\n".join([f"Producto: {next(p for p in inventario if p['id'] == venta['id_producto'])
['nombre']}, Cantidad: {venta['cantidad']}, Total: {venta['total']}" for venta in ventas])
# -----Sistema de Inventario-----
def sistema_inventario():
while True:
print("\nBienvenido a Shaman Tools")
try:
id_usuario = int(input("Ingrese su ID de usuario: "))
contraseña = input("Ingrese su contraseña: ")
usuario_actual = inicio_sesion(usuarios, id_usuario, contraseña)
if not usuario_actual:
print("Usuario o contraseña incorrectos.")
continue
print(f"Bienvenido {usuario_actual['nombre']} ({usuario_actual['rol']})")
while True:
print("\nOpciones:")
opciones = ["Registrar Usuario", "Agregar Producto", "Actualizar Inventario", "Consultar
Producto", "Ver Resumen de Ventas", "Salir"]
if usuario_actual['rol'] == 'admin':
[Link](0, "Menu Principal")
for i, opcion in enumerate(opciones, 1):
print(f"{i}. {opcion}")
seleccion = input("Seleccione una opción: ")
if seleccion == "1" and usuario_actual['rol'] == 'admin':
nombre = input("Nombre del nuevo usuario: ")
contraseña = input("Contraseña: ")
rol = input("Rol (admin/vendedor): ")
print(registrar_usuario(nombre, contraseña, rol))
elif seleccion == "2" and usuario_actual['rol'] == 'admin':
nombre = input("Nombre del producto: ")
precio_compra = float(input("Precio de compra: "))
precio_venta = float(input("Precio de venta: "))
cantidad = int(input("Cantidad: "))
print(agregar_producto(nombre, precio_compra, precio_venta, cantidad))
elif seleccion == "3" and usuario_actual['rol'] == 'admin':
id_producto = int(input("ID del producto: "))
cantidad = int(input("Cantidad a agregar: "))
print(actualizar_inventario(id_producto, cantidad))
elif seleccion == "4":
print(consultar_producto(input("Seleccione una opción (1 o 2): ")))
elif seleccion == "5" and usuario_actual['rol'] == 'admin':
print(ver_resumen_ventas())
elif seleccion == "6":
break
else:
print("Opción inválida.")
# Ejecutar el sistema
if __name__ == "__main__":
sistema_inventario()