Chuleta de Sistemas de Gestión Empresarial
ERP y CRM, implantación, Odoo por dentro, su ORM, vistas, seguridad y BI en una hoja.
Conceptos
| ERP | Integra los procesos de la empresa sobre una base de datos común |
|---|---|
| CRM | Relación con clientes: oportunidades, embudo y seguimiento |
| Módulo | Área funcional: ventas, compras, inventario, contabilidad, RR. HH. |
| On-premise · SaaS | Servidores propios · alquilado en la nube |
| Software libre · propietario | Odoo Community, Dolibarr · SAP, Microsoft Dynamics |
| Parametrizar · personalizar | Configurar lo que trae · programar lo que falta |
Implantación
| 1. Análisis | Procesos actuales, requisitos y alcance |
|---|---|
| 2. Selección | Comparar soluciones, costes y proveedor |
| 3. Instalación | Servidor, base de datos (PostgreSQL) y módulos |
| 4. Migración | Limpiar e importar clientes, productos, saldos |
| 5. Formación y pruebas | Usuarios clave y pruebas con datos reales |
| 6. Arranque y soporte | Big bang o por fases, mantenimiento y copias |
Odoo desde la consola
| odoo-bin -c odoo.conf | Arrancar con un fichero de configuración |
|---|---|
| -d mibd -i modulo | Instalar un módulo en la base mibd |
| -u modulo | Actualizar tras cambiar código o vistas |
| --dev=all | Recarga automática y mensajes de depuración |
| odoo-bin scaffold modulo addons/ | Generar el esqueleto de un módulo |
| addons_path | Carpetas donde busca módulos |
| ?debug=1 | Modo desarrollador en el navegador |
Estructura de un módulo
# __manifest__.py{ "name": "Biblioteca", "version": "17.0.1.0.0", "depends": ["base", "mail"], "data": [ "security/ir.model.access.csv", "views/libro_views.xml", "views/menus.xml", ], "application": True,}# __init__.py → from . import models# models/__init__.py → from . import libroTema: Desarrollo de Componentes ERP Modelo y ORM
from odoo import api, fields, modelsfrom odoo.exceptions import ValidationError class Libro(models.Model): _name = "biblioteca.libro" _description = "Libro" name = fields.Char("Título", required=True) precio = fields.Float() autor_id = fields.Many2one("res.partner", string="Autor") copia_ids = fields.One2many("biblioteca.copia", "libro_id") total = fields.Float(compute="_compute_total", store=True) @api.depends("copia_ids", "precio") def _compute_total(self): for r in self: r.total = r.precio * len(r.copia_ids) @api.constrains("precio") def _check_precio(self): if any(r.precio < 0 for r in self): raise ValidationError("El precio no puede ser negativo")Tema: Desarrollo de Componentes ERP Métodos del ORM
| env["modelo"].search([("precio", ">", 10)]) | Buscar con un dominio |
|---|---|
| search_count · read_group | Contar · agrupar |
| create({…}) · write({…}) · unlink() | Crear · modificar · borrar |
| browse(ids) · mapped("campo") · filtered(lambda r: …) | Trabajar con recordsets |
| ['|', (a), (b)] | Dominio con O (notación polaca) |
| _inherit = "res.partner" | Extender un modelo existente |
Vistas XML
<record id="libro_list" model="ir.ui.view"> <field name="model">biblioteca.libro</field> <field name="arch" type="xml"> <list> <field name="name"/><field name="autor_id"/><field name="precio"/> </list> </field></record><record id="libro_action" model="ir.actions.act_window"> <field name="res_model">biblioteca.libro</field> <field name="view_mode">list,form</field></record><menuitem id="libro_menu" name="Libros" action="libro_action"/>Heredar una vista: inherit_id y <xpath expr="//field[@name='email']" position="after">. En versiones anteriores a la 17, <tree> en lugar de <list>.
Tema: Adaptación de un ERP-CRMSeguridad
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlinkaccess_libro_user,libro user,model_biblioteca_libro,base.group_user,1,1,1,0Grupos (res.groups) dan permisos por modelo; las reglas de registro (ir.rule) filtran qué filas ve cada usuario.
Tema: Adaptación de un ERP-CRMBI y análisis
| KPI | Indicador clave: ventas por mes, margen, rotación de stock |
|---|---|
| Vistas pivot y graph | Tablas dinámicas y gráficos dentro de Odoo |
| ETL | Extraer, transformar y cargar datos en un almacén |
| Data warehouse | Datos históricos preparados para analizar |
| Cuadro de mando | Resumen visual de los KPI para decidir |
| XML-RPC / JSON-RPC | API externa de Odoo: execute_kw(db, uid, pwd, modelo, método, args) |
apuntesdam.com/subject/sistemas-gestion-empresarial/chuleta
Chuletas de otras asignaturas
Entornos de DesarrolloProgramaciónLenguajes de MarcasBases de DatosSistemas InformáticosAcceso a DatosDesarrollo de InterfacesProgramación Multimedia y Dispositivos MóvilesProgramación de Servicios y ProcesosDesarrollo Web en Entorno ClienteDesarrollo Web en Entorno ServidorDespliegue de Aplicaciones WebDiseño de Interfaces Web