GestiLibro
Módulo de Odoo 18 · ERP
Módulo de Odoo 18 para una cadena de librerías: catálogo, stock por tienda, ventas con validación de existencias y facturación automática.
El proyecto
GestiLibro cubre el ciclo completo de una cadena de librerías dentro de Odoo 18: catálogo con ISBN y portadas, autores y editoriales, inventario independiente por tienda, ventas y clientes fidelizados.
Es un módulo propio, con modelos en Python, vistas en XML y reglas de seguridad, que se apoya en la contabilidad de Odoo en lugar de reinventarla. El repositorio incluye un entorno reproducible con Docker Compose (Odoo 18 + PostgreSQL 15) y 81 registros de demostración.
Lo que construí
Modelo de datos
Ocho modelos propios (libros, géneros, autores, editoriales, tiendas, stock, pedidos y líneas) y dos extensiones por herencia:
res.partnerpara clientes con código y puntos, yaccount.movepara enlazar cada factura con su pedido.Vistas
Kanban con portadas, calendario de ventas coloreado por tienda, tabla dinámica de análisis y botones de acceso cruzado entre pedidos, facturas y clientes.
Seguridad
Tres roles encadenados (Consulta, Vendedor y Gestor) con reglas de registro que limitan al vendedor a su propia tienda.
- modelos propios y heredados
- 8 + 2
- roles con reglas de registro
- 3
- registros de demostración
- 81
- commits
- 18
Decisiones técnicas
Vender dispara la contabilidad
Confirmar un pedido valida el stock de la tienda, lo descuenta, asigna la numeración (
ORD/2026/0001) y crea la factura comoaccount.moveen borrador. Al marcarlo como hecho, la factura se contabiliza sola. El selector de libros solo ofrece títulos con existencias en esa tienda.Vender sin ser contable
El vendedor no tiene permisos de Contabilidad. La factura se crea y se publica con
sudo()solo en ese punto: el privilegio se eleva para una operación concreta, no para el usuario.Aislamiento por tienda
Las reglas de registro (
ir.rule) separan lectura y escritura: un vendedor consulta las ventas y el stock de toda la cadena, pero solo crea o modifica los de la tienda de la que es responsable. El gestor lo ve todo sin necesidad de ser administrador de Odoo.Integridad en dos niveles
Restricciones SQL (un único registro de stock por libro y tienda, y cantidades no negativas) más validaciones en Python para la lógica de negocio. La disponibilidad de cada libro y el aviso de stock bajo mínimo son campos calculados.
Evolución
Abr 2026
Primeras entregas: modelos base, vistas y entorno Docker.
May 2026
Vistas Kanban, clientes y stock por tienda. Integración de las ventas con
account.move.Jun 2026
Revisión de roles y reglas de registro, y corrección de seguridad en ventas.
Stack
Módulo
- Odoo 18
- Python 3.12
- XML (vistas)
- PostgreSQL 15
Entorno
- Docker Compose