EasyPoint es un sistema completo de punto de venta (POS) desarrollado en Python con interfaz gráfica moderna usando PySide6. Diseñado para pequeños y medianos comercios que necesitan una solución eficiente, intuitiva y confiable para gestionar sus ventas e inventario.
- ✅ Interfaz Gráfica Moderna: Diseño intuitivo y fácil de usar
- ✅ Sistema de Usuarios: Manejo de cajeros y administradores
- ✅ Gestión de Ventas: Proceso completo de ventas con múltiples métodos de pago
- ✅ Historial Detallado: Consulta y análisis de ventas realizadas
- ✅ Control de Inventario: Gestión de productos y stock en tiempo real
- ✅ Base de Datos SQLite: Sistema de almacenamiento robusto y confiable
- ✅ Autocompletado Inteligente: Búsqueda rápida de productos
- ✅ Filtros de Ventas: Filtrado por fecha, cajero y ordenamiento
- Sistema Operativo: Windows 7/8/10/11, macOS 10.12+, o Linux Ubuntu 16.04+
- Python: Versión 3.7 o superior
- RAM: Mínimo 2 GB
- Espacio en Disco: 100 MB libres
- Resolución de Pantalla: 1024x768 (Recomendado: 1366x768 o superior)
- Python 3.7+
- PySide6 6.5.0+
- SQLite3 (incluido con Python)
Primero, verifica que tienes Python instalado:
python --versionSi no tienes Python, descárgalo desde python.org
Clona o descarga el repositorio:
git clone https://github.com/AndreGlez2000/easy_point.git
cd easy_pointpython -m venv venvWindows:
.\venv\Scripts\activatemacOS/Linux:
source venv/bin/activatepip install -r requirements.txtpython run_app.py-
Ejecutar EasyPoint
python run_app.py
-
Pantalla de Inicio
- La aplicación iniciará mostrando el menú principal
- Selecciona "Modo Cajero" o "Modo Admin" según tu rol
EasyPoint maneja dos tipos de usuarios:
| Usuario | PIN | Tipo | Acceso |
|---|---|---|---|
| admin | 1234 | Administrador | Historial de ventas |
| cajero1 | 0000 | Cajero | Módulo de ventas |
| Andre | 1506 | Cajero | Módulo de ventas |
| cajero2 | 1111 | Cajero | Módulo de ventas |
| cajero3 | 2222 | Cajero | Módulo de ventas |
| Arturo | 1234 | Cajero | Módulo de ventas |
🛡️ Administrador:
- Visualización del historial de ventas
- Filtrado y búsqueda de transacciones
- Detalles completos de cada venta
👤 Cajero:
- Acceso al módulo de ventas
- Procesamiento de transacciones
- Búsqueda y selección de productos
- Cálculo automático de totales y cambio
- Selecciona "Modo Cajero" desde el menú principal
- Ingresa tu usuario y PIN
- Aparecerá la interfaz principal de ventas
Panel Izquierdo - Lista de Productos:
- 📋 Tabla de productos: Muestra productos agregados a la venta
- 🏷️ Columnas: Producto, Cantidad, Precio Unitario, Subtotal, Acciones
- ➕ Botones de cantidad: Incrementar/decrementar cantidades
- 🗑️ Eliminar productos: Botón para quitar productos de la venta
Panel Derecho - Información y Control:
- 🔍 Búsqueda de productos: Campo con autocompletado inteligente
- 💵 Resumen de venta: Subtotal y total
- 💳 Método de pago: Efectivo, Tarjeta de Crédito, Tarjeta de Débito, Transferencia
- 💰 Cálculo de cambio: Automático al ingresar efectivo recibido
- ✅ Finalizar venta: Procesar la transacción
-
Buscar Producto
- Escribe el nombre o código de barras en el campo de búsqueda
- Selecciona el producto del autocompletado
- Presiona Enter o clic en "Agregar"
-
Gestionar Cantidades
- Usa los botones + y - para ajustar cantidades
- Las cantidades se actualizan automáticamente
- El stock se verifica en tiempo real
-
Seleccionar Método de Pago
- Elige entre: Efectivo, Tarjeta de Crédito, Tarjeta de Débito, Transferencia
- Para efectivo: ingresa la cantidad recibida
- El sistema calcula automáticamente el cambio
-
Finalizar Venta
- Verifica el total y productos
- Clic en "Finalizar Venta"
- El sistema registra la transacción y actualiza el inventario
🔍 Autocompletado Inteligente:
- Búsqueda por nombre parcial del producto
- Búsqueda por código de barras
- Sugerencias en tiempo real
📊 Cálculos Automáticos:
- Subtotales por línea
- Total general de la venta
- Cálculo de cambio para efectivo
- Validación de stock disponible
- Verificación de stock suficiente
- Validación de cantidades positivas
- Control de productos duplicados (actualiza cantidad en lugar de duplicar)
- Selecciona "Modo Admin" desde el menú principal
- Ingresa credenciales de administrador
- El sistema te dirigirá al historial de ventas
🎛️ Barra Lateral de Navegación:
- 📈 Historial de Ventas (único módulo funcional)
- Otros botones (Dashboard, Inventario, etc.) son elementos visuales sin funcionalidad
🔍 Filtros y Búsqueda:
- Búsqueda por texto: Buscar por ID de venta o nombre de cajero
- Filtro de fecha: Seleccionar fecha específica para consultar
- Ordenamiento: Más recientes primero / Más antiguos primero
📊 Tabla de Ventas:
| Columna | Descripción |
|---|---|
| ID Venta | Identificador único (formato V0001, V0002, etc.) |
| Fecha | Fecha y hora de la transacción |
| Cajero | Usuario que procesó la venta |
| Productos | Cantidad de productos vendidos |
| Total | Monto total de la venta |
| Acciones | Botón "Ver Detalles" |
🔍 Filtrado Funcional:
- Búsqueda en tiempo real mientras escribes
- Filtrado por fecha específica
- Ordenamiento ascendente/descendente por fecha
📋 Detalles de Venta:
- Clic en "Ver Detalles" para abrir ventana emergente
- Muestra productos individuales de la transacción
- Información detallada: cantidad, precio unitario, subtotal, código de barras
📊 Información Mostrada:
- Historial completo de todas las transacciones
- Identificación del cajero responsable
- Fecha y hora exacta de cada venta
- Desglose completo de productos vendidos
| Código de Barras | Producto | Precio | Stock Inicial |
|---|---|---|---|
| 750100000001 | Refresco Cola 600ml | $15.00 | 100 unidades |
| 750100000002 | Papas Fritas Saladas 45g | $12.50 | 150 unidades |
| 750100000003 | Galletas de Chocolate 60g | $10.00 | 80 unidades |
| 750100000004 | Agua Embotellada 1L | $10.00 | 200 unidades |
| 750100000005 | Jabón de Tocador Neutro | $20.00 | 50 unidades |
Funcionalidad Disponible:
- Agregar Usuarios: Desde el menú principal, botón "Agregar Usuario"
- Campos requeridos: Nombre de usuario, PIN, Tipo (Cajero/Administrador)
Limitaciones Actuales:
- No se pueden editar usuarios existentes
- No se pueden eliminar usuarios
- No hay módulo completo de gestión de usuarios
👥 Usuarios
- Gestión de cajeros y administradores
- Autenticación por PIN
- Control de permisos por tipo de usuario
📦 Productos
- Catálogo completo de productos
- Códigos de barras únicos
- Control de precios y stock
💰 Ventas
- Registro de todas las transacciones
- Vinculación con usuario cajero
- Métodos de pago
- Timestamp de cada venta
📋 Detalles de Venta
- Productos específicos de cada venta
- Cantidades y precios al momento de venta
- Subtotales por línea
- Trazabilidad completa
La aplicación usa estilos CSS para Qt, permitiendo personalización de:
- Colores de la interfaz
- Fuentes y tamaños
- Espaciado y márgenes
- Iconos y elementos visuales
- La base de datos se crea automáticamente al primer uso
- Archivo:
easypoint.db - Formato: SQLite3
- Respaldo recomendado: Copia periódica del archivo .db
Los productos se pueden agregar directamente en la base de datos:
INSERT INTO Productos (codigo_barras, nombre_producto, precio_venta, stock_actual)
VALUES ('nuevo_codigo', 'Nombre del Producto', 25.00, 100);- Los errores se muestran en la consola al ejecutar
python run_app.py - Para depuración avanzada, revisa el código en los archivos .py
- La base de datos se puede inspeccionar con herramientas SQLite
easy_point/
├── 📄 run_app.py # Punto de entrada principal
├── 📄 main_menu.py # Menú principal del sistema
├── 📄 login.py # Sistema de autenticación (no usado en flujo actual)
├── 📄 venta.py # Módulo de ventas para cajeros
├── 📄 historial_ventas.py # Historial para administradores
├── 📄 nuevo_usuario.py # Diálogo para agregar usuarios
├── 📄 db_manager.py # Gestión de base de datos
├── 📄 schema.sql # Esquema y datos iniciales
├── 📄 easypoint.db # Base de datos SQLite
├── 📄 requirements.txt # Dependencias de Python
├── 📄 .gitignore # Archivos excluidos de Git
├── 📁 icons/ # Iconos de la interfaz
│ ├── 🎨 dashboard.svg
│ ├── 🎨 inventory.svg
│ ├── 🎨 history.svg
│ ├── 🎨 analysis.svg
│ ├── 🎨 backup.svg
│ └── 🎨 settings.svg
└── 📁 venv/ # Entorno virtual (si está configurado)
- ❌ Generación de tickets/recibos de venta
- ❌ Cálculo de impuestos/IVA
- ❌ Módulos de Dashboard, Inventario, Análisis, Copias de seguridad, Configuración
- ❌ Gestión completa de usuarios (solo agregar)
- ❌ Reportes avanzados y análisis de ventas
- ❌ Validación específica de métodos de pago
- ❌ Historial de cambios de inventario
- Botones de la barra lateral (excepto Historial de Ventas)
- Iconos decorativos sin enlaces a módulos
Si encuentras algún problema o tienes sugerencias:
- Verifica que el problema no esté en la sección de "Solución de Problemas"
- Crea un issue detallado con pasos para reproducir el error
- Incluye información del sistema operativo y versión de Python
Las contribuciones son bienvenidas. Para contribuir:
- Fork del repositorio
- Crea una rama para tu feature:
git checkout -b feature/nueva-funcionalidad - Commit de tus cambios:
git commit -m 'Agregar nueva funcionalidad' - Push a la rama:
git push origin feature/nueva-funcionalidad - Crear un Pull Request
Versión Actual: 1.0.0
Fecha de Lanzamiento: 2024
Desarrollado con: Python 3.8+, PySide6, SQLite3
EasyPoint - Sistema de punto de venta funcional y confiable 🚀