Curso odoo (Módulos)

12.1. Módulo de gestión de inventario personalizado

Objetivo: Crear un módulo que ayude a gestionar un inventario específico, por ejemplo, de dispositivos electrónicos (computadoras, celulares, etc.) con características particulares.

  1. Estructura de modelos

    • inventory.device: Modelo principal para los dispositivos.
      • Campos como name, category_id (categoría del dispositivo), serial_number, purchase_date, state (estado: disponible, en reparación, dado de baja), etc.
    • inventory.category: Modelo para las categorías (laptops, smartphones, tablets, etc.).
      • Campos name, description.
  2. Vistas y acciones

    • Tree y Form para inventory.device: Mostrar y editar detalles de cada dispositivo.
    • Tree y Form para inventory.category: Gestionar las categorías disponibles.
    • Menús:
      • Menú principal “Inventario”
      • Submenús “Dispositivos” y “Categorías”.
  3. Seguridad

    • Definir grupos: “Administrador de Inventario” con permisos totales y “Usuario de Inventario” con permisos de solo lectura (o edición limitada).
    • Asegurar que cada grupo tenga acceso a las vistas y modelos apropiados.
  4. Automatización

    • Acción automática (Automated Action) que marque como “En reparación” a un dispositivo si se crea un “Incidente” o “Ticket” asociado.
    • Opcionalmente, un wizard para reportar una falla, solicitando datos como fecha del incidente y descripción, que cambie el estado del dispositivo a “En reparación”.
  5. Reportes

    • Un reporte PDF (“Inventario de Dispositivos”) que liste todos los dispositivos con su categoría, estado y fecha de compra.
    • Añadir filtros (p. ej., mostrar solo los dispositivos en reparación o solo los adquiridos en el último mes).
  6. Despliegue y pruebas

    • Crear pruebas unitarias (test_inventory.py) verificando la creación de un dispositivo, la asignación de categorías y el cambio de estado.
    • Asegurar un entorno de pruebas o staging donde se carguen datos masivos (CSV) para ver el rendimiento antes de migrar a producción.

Este módulo ejemplifica lo esencial de la gestión de registros, la definición de seguridad y la generación de reportes. Es un buen punto de partida para proyectos de logística o control de stock.


12.2. Módulo de venta con integración de pasarela de pago

Objetivo: Desarrollar un módulo que extienda la funcionalidad de ventas para integrar una pasarela de pago (PayPal, Stripe u otro proveedor).

  1. Extensión del modelo de venta

    • Heredar del modelo sale.order (_inherit = 'sale.order'): Añadir campos como payment_method, transaction_id, payment_status.
    • Posiblemente, extender res.partner para almacenar tokens de pago u otros detalles.
  2. Controladores web

    • Crear un controlador que reciba las notificaciones de pago (webhooks) desde la pasarela externa.
    • Validar la firma de la notificación y actualizar el payment_status en el pedido.
  3. Vistas personalizadas

    • En la vista de formulario de sale.order, agregar un botón “Pagar ahora” que lleve al usuario a la página de la pasarela de pago o que abra un wizard solicitando la tarjeta de crédito, etc.
    • En la vista de lista, mostrar un indicador de si el pedido está pagado o pendiente.
  4. Manejo de la lógica de negocio

    • Métodos en el modelo para iniciar el proceso de pago: generar el enlace o token de pago, redirigir al usuario, etc.
    • Método de confirmación para actualizar el pedido a “Paid” si la transacción es exitosa, o “Cancelled” si falla.
  5. Reportes y notificaciones

    • Generar un documento PDF de comprobante de pago o recibo, integrado con la factura de Odoo.
    • Opcionalmente, enviar correos automáticos usando plantillas de correo de Odoo (“Gracias por tu compra”, “Pago confirmado”, etc.).
  6. Pruebas

    • Testear el flujo de compra completo: creación del pedido, confirmación, integración con la pasarela y actualización del estado.
    • Asegurar un manejo de errores robusto (¿qué pasa si la pasarela rechaza el pago? ¿qué ocurre si el webhook no llega a tiempo?).

Este caso de uso muestra cómo combinar vistas, controladores web y consumo de servicios externos para completar un proceso de venta en línea. También pone en práctica la seguridad y la lógica de negocio al lidiar con transacciones financieras.


12.3. Módulo de recursos humanos (RRHH)

Objetivo: Implementar un módulo que extienda o complemente la gestión de RRHH en Odoo, por ejemplo, para el manejo de solicitudes de vacaciones o control de asistencias.

  1. Modelos

    • hr.leave.request: Modelo para gestionar solicitudes de vacaciones (fecha de inicio, fecha de fin, motivo, empleado, aprobación).
      • Heredar de hr.leave si ya existe algo similar en la aplicación de Recursos Humanos de Odoo, o crear uno nuevo si es un proceso diferente.
    • hr.attendance: Si no se usa el módulo estándar, crear un modelo para registrar entradas y salidas diarias.
  2. Flujo de aprobación (Wizards o Server Actions)

    • Un wizard que el empleado llena para solicitar vacaciones.
    • Acción automática para notificar al jefe de área o a RRHH.
    • Métodos para aprobar o rechazar la solicitud, cambiando el estado de la misma (Pendiente → Aprobada / Rechazada).
  3. Seguridad

    • Definir reglas de registro (Record Rules) para que cada empleado solo vea sus propias solicitudes.
    • Un grupo “Administrador RRHH” con permisos para ver y aprobar o rechazar solicitudes de todos los empleados.
  4. Reportes personalizados

    • Generar un reporte (PDF) de vacaciones aprobadas durante el mes o el trimestre, agrupadas por departamento.
    • Opcionalmente, un Calendario (vista calendar) para ver las ausencias de todo el equipo de un vistazo.
  5. Integración con otros módulos

    • Integrar con hr.employee para obtener datos de los empleados.
    • Conectar con el módulo de nómina (si está presente) para ajustar el cálculo de días trabajados.
  6. Pruebas y despliegue

    • Probar el ciclo completo: creación de solicitud, envío de notificaciones, aprobación/rechazo, reporte final.
    • Realizar pruebas con múltiples grupos de usuarios (Empleado, Jefe, RRHH) para confirmar que cada uno vea la información adecuada.

Este ejemplo refuerza la idea de que Odoo puede ser adaptado para procesos internos de gestión del personal, combinando flujos de aprobación, seguridad detallada y reportes de alta utilidad.


Conclusiones finales y próximos pasos

Estos tres proyectos ilustran cómo combinar los distintos elementos aprendidos en el curso:

  1. Definición de modelos y campos, utilizando herencias cuando sea necesario.
  2. Creación de vistas (formularios, listas, calendarios), menús y acciones para la interfaz de usuario.
  3. Control de accesos a través de grupos, ACL y reglas de registro, garantizando la seguridad de los datos.
  4. Reportes QWeb para generar documentos PDF o reportes con diferentes formatos.
  5. Automatizaciones y wizards para agilizar procesos y guiar al usuario.
  6. Integraciones con APIs externas o webhooks, para ampliar las funcionalidades y conectividad de Odoo.
  7. Pruebas de calidad, tanto unitarias como de integración, para asegurar que cada módulo se comporte correctamente.
  8. Despliegue y optimización en un entorno productivo, con configuraciones de rendimiento y buenas prácticas de mantenimiento.

Después de trabajar en estos proyectos, estarás preparado para desarrollar soluciones profesionales sobre Odoo que se ajusten a las necesidades específicas de tu organización o tus clientes. ¡Enhorabuena por haber llegado hasta aquí y mucha suerte en tus futuros desarrollos!

  • Loading...