Files
sap_tfi_2026/docs/04_arquitectura/arquitectura_general.md
T
saptfi2026-bot 73e344edc8 feat(initial-iteration): primera iteración ICONIX del flujo venta→factura→pago
Documentación generada:
- 7 casos de uso (CU-VEN-001, CU-VEN-004, CU-ENT-002, CU-ENT-004, CU-FAC-001, CU-FAC-002, CU-FAC-003)
- Modelo de dominio inicial (12 conceptos, 9 reglas de negocio)
- Arquitectura general (C4 contexto + contenedores)
- Prototipo del formulario de presupuesto
- 5 diagramas PlantUML (.puml):
  - Diagrama general de casos de uso
  - Modelo de dominio conceptual
  - Diagrama de robustez de CU-VEN-004
  - Diagrama de secuencia de CU-VEN-004
  - Diagrama de clases técnicas (integración Venta/Stock/Contabilidad)
- Matriz de trazabilidad con 20 EV-COD y 22 EV-INF

Odoo analizado: 19.0 Community (rama 19.0)
Método: ingeniería inversa con verificación de código fuente

Nota: NO pushear (gate S2). Ale debe revisar antes de merge a main.
2026-06-23 20:18:36 -03:00

2.4 KiB

Arquitectura General del Proyecto SAP-TFI-2026

Nivel C4: Contexto

[Usuario] ───usa───> [Sistema Odoo 19]
                        │
                        │──consulta──> [PostgreSQL]
                        │
                        │──envía──> [Servicio de Email]
                        │
                        │──integra──> [Servicio de Pago]

Actores externos

  • Usuario: persona que opera Odoo (vendedor, operador de almacén, facturador).
  • Servicio de Email: SMTP relay para envío de correos de presupuestos y confirmaciones.
  • Servicio de Pago: pasarela de pago externa (integrable vía módulos).
  • PostgreSQL: base de datos relacional que persiste todos los datos.

Nivel C4: Contenedores

[Cliente Web (navegador)]
       │
       │ HTTPS
       ↓
[Servidor Odoo]
├── [Módulo sale] (Python)
├── [Módulo account] (Python)
├── [Módulo stock] (Python)
├── [Módulo product] (Python)
├── [Módulo mail] (Python)
├── [Módulo delivery] (Python)
└── [ORM Odoo]
       │
       │ conexión nativa
       ↓
[PostgreSQL]

Componentes principales

Componente Descripción Tecnología
Cliente Web Interfaz de usuario HTML/CSS/JS (servido por Odoo)
Servidor Odoo Aplicación principal Python + Odoo Framework
Módulo sale Lógica de ventas Python
Módulo account Lógica contable Python
Módulo stock Lógica de inventario Python
Módulo product Lógica de productos Python
Módulo mail Comunicación (correos) Python
Módulo delivery Logística de entrega Python
ORM Odoo Capa de abstracción de datos Python
PostgreSQL Almacenamiento persistente C

Diagrama PlantUML

Ver diagrams/plantuml/d_arq_gen_001_arquitectura_general.puml.

Reglas arquitectónicas

  • RN-ARQ-001: El servidor Odoo es el único punto de entrada al sistema.
  • RN-ARQ-002: Toda la persistencia se realiza vía ORM Odoo (no acceso directo a DB).
  • RN-ARQ-003: Los módulos extienden funcionalidad vía _inherit (ver addons/sale/models/sale_order.py:36).

Pendientes de validación

  • EV-INF-019: La arquitectura refleja la versión Community. Enterprise tendría módulos adicionales (sale_subscription, sale_timesheet, etc.).
  • EV-INF-020: La integración con pasarela de pago no fue verificada en detalle.