11# Arquitectura del ERP — Grupo Tesela
22
3- > Documento vivo. ** v2 — corregida ** a partir del diseño inicial .
3+ > Documento vivo. ** v3 — reconciliada ** con la realidad operativa (Holded en vivo) .
44> Sector: ** construcción · arquitectura · promoción inmobiliaria** (en ese orden).
55> Stack basado en los conectores (MCP) disponibles en el entorno de trabajo.
66
@@ -28,9 +28,29 @@ Esta versión corrige los problemas detectados en la revisión del diseño inici
2828- ** Aviso de disponibilidad:** ** Coupler.io no tiene conector MCP** en este
2929 entorno hoy; su rol de ETL queda como "a confirmar / alternativa".
3030
31+ ### Reconciliación v3 (realidad operativa)
32+
33+ Según la coordinación entre sesiones (` COORDINACION_SESIONES_HOLDED_2026-06-19 ` ):
34+
35+ - ** Holded ya está EN VIVO** y es la ** fuente canónica** de finanzas/contabilidad.
36+ Deja de ser una decisión "build-vs-buy" pendiente: ** está decidido y operativo** .
37+ No se reimplementa contabilidad a medida.
38+ - ** Una sola integración de Holded canónica = la API directa en vivo.** Cualquier
39+ puente de automatización (p. ej. Holded↔Make) es ** opcional y solo para
40+ automatizar** (sync/alertas), ** nunca** una segunda fuente de verdad.
41+ - ** Reglas comunes de coste/margen** (única forma de calcular): coste imputado por
42+ ** ` projectid ` ** (no por tags), ** excluir confirming** , ** mano de obra propia =
43+ coste directo** , y ** un único cálculo de margen** (nada de dos pipelines).
44+ - ** Gobierno de la información:** ** Drive = memoria** (notas/estado entre sesiones),
45+ ** repo "Cerebro" = código** . Evitar duplicados (índices/carpetas repetidos).
46+
3147> ⚠️ ** Riesgo de ubicación:** este documento vive en un * fork* de
3248> ` github-mcp-server ` . Una sincronización con el upstream lo borra (ya pasó). Lo
33- > antes posible debería moverse a un ** repositorio propio del ERP** .
49+ > antes posible debería moverse a un ** repositorio propio del ERP** (¿el "Cerebro"?).
50+ >
51+ > 🔒 ** Seguridad pendiente:** la nota menciona claves de Holded * expuestas* que
52+ > debían rotarse. Confirmar ** rotación** y que viven solo en secretos/` .env ` ,
53+ > nunca en Drive ni en el repo.
3454
3555---
3656
@@ -56,7 +76,7 @@ Esta versión corrige los problemas detectados en la revisión del diseño inici
5676| Capa | Herramienta | Notas |
5777| ------| -------------| -------|
5878| ** Núcleo de datos / Backend** | ** Supabase** | Postgres + Auth + API + Storage + Edge Functions. El corazón. |
59- | ** Núcleo fiscal/contable** * (decisión pendiente )* | ** Holded / Odoo ** * (o Presto para obra) * | Ver §6 build-vs-buy. Evita reinventar contabilidad y fiscalidad ES . |
79+ | ** Núcleo fiscal/contable** * (EN VIVO · canónico )* | ** Holded** | Ya operativo y fuente única de finanzas. Integración por ** API directa ** . Ver §6 . |
6080| ** Código y CI/CD** | ** GitHub** | Repos, ramas, PRs, despliegues. |
6181| ** Automatización principal** | ** Make.com** | Orquestador de flujos contra la API. |
6282| ** Automatización secundaria** | ** Zapier** | Solo "larga cola" que Make no cubra (evitar solape con Make). |
@@ -98,8 +118,8 @@ flowchart TB
98118 ZAP["Zapier (larga cola)"]
99119 end
100120
101- subgraph FIN["🧾 Núcleo fiscal/contable"]
102- HOLDED["Holded / Odoo / Presto "]
121+ subgraph FIN["🧾 Núcleo fiscal/contable (EN VIVO) "]
122+ HOLDED["Holded (canónico, API directa) "]
103123 end
104124
105125 subgraph COLAB["👥 Colaboración"]
@@ -152,7 +172,7 @@ flowchart LR
152172| ---| --------| -----------| ------|
153173| 1 | ** Obras / Proyectos** (presupuesto vs real, certificaciones, planificación) | Supabase + Linear/Airtable + Make | ** Fase 1** |
154174| 2 | ** Promoción y ventas inmobiliarias** (promociones, unidades, reservas/arras, estado comercial) | Supabase + Attio/CRM inmobiliario + Make | ** Fase 2** |
155- | 3 | ** Finanzas analítica por obra + fiscalidad ES** | Holded/Odoo + Supabase + Make | ** Fase 1** |
175+ | 3 | ** Finanzas analítica por obra + fiscalidad ES** | ** Holded (en vivo) ** + Supabase | ** Fase 1** |
156176| 4 | ** Compras y subcontratas** (aprovisionamiento por obra) | Supabase + Gmail + Make | Fase 2 |
157177| 5 | ** Documentación de proyecto** (planos, licencias, CAD/BIM) | Drive + Notion + Supabase Storage | ** Fase 1** |
158178| 6 | CRM comercial | Attio + Supabase | Fase 2 |
@@ -174,21 +194,33 @@ flowchart LR
174194
175195---
176196
177- ## 6. Decisión clave: build-vs-buy del núcleo fiscal/contable
178-
179- En construcción/promoción la contabilidad es ** analítica por obra** y la
180- fiscalidad ES es exigente (IVA con ** inversión del sujeto pasivo** en ejecuciones
181- de obra, retenciones, ** SII/Verifactu** , certificaciones). Reimplementar esto a
182- medida sobre Supabase+Make es caro y arriesgado.
183-
184- | Opción | Pros | Contras |
185- | --------| ------| ---------|
186- | ** Comprar (Holded / Odoo)** | Contabilidad y fiscalidad ES resueltas; rápido | Menos a medida; integrar vía API con el núcleo Supabase |
187- | ** Software de obra (Presto/Arquímedes)** | Presupuestos y certificaciones potentes | No es ERP completo; hay que integrarlo |
188- | ** A medida (Supabase)** | Control total y datos unificados | Mucho desarrollo; riesgo fiscal/legal |
189-
190- ** Recomendación:** comprar el núcleo fiscal/contable (Holded u Odoo) e integrarlo
191- por API con Supabase como fuente única; construir a medida solo Obras/Promoción.
197+ ## 6. Núcleo fiscal/contable: DECIDIDO → Holded en vivo
198+
199+ > ** Decisión tomada (no pendiente).** Holded ya está ** operativo** y es la
200+ > ** fuente canónica** de finanzas/contabilidad. No se reimplementa a medida.
201+
202+ Motivo (sigue vigente): en construcción/promoción la contabilidad es
203+ ** analítica por obra** y la fiscalidad ES es exigente (IVA con ** inversión del
204+ sujeto pasivo** en ejecuciones de obra, retenciones, ** SII/Verifactu** ,
205+ certificaciones). Holded lo resuelve sin reinventarlo.
206+
207+ ** Cómo encaja:**
208+ - ** Holded = sistema de registro fiscal/contable** (canónico), integrado por
209+ ** API directa** .
210+ - ** Supabase** = capa operativa del ERP a medida (Obras, Promoción, Compras,
211+ Documentación) y, donde haga falta, espejo analítico para BI — ** leyendo de
212+ Holded, sin convertirse en segunda contabilidad** .
213+ - ** Automatización (Make/Zapier)** = opcional, solo para sync/alertas contra la
214+ API; ** nunca** una segunda fuente ni un segundo cálculo.
215+
216+ ### Reglas de coste y margen (únicas y comunes)
217+ Para que haya ** un solo número** por obra (sin pipelines divergentes):
218+ - Coste imputado por ** ` projectid ` ** de Holded (** no** por tags).
219+ - ** Excluir confirming** del cómputo de coste.
220+ - ** Mano de obra propia = coste directo** de la obra.
221+ - ** Un único cálculo de margen** (venta − coste) por obra.
222+ - Validación de referencia: cuadrar cifras con la obra ** Palmeres**
223+ (venta ≈ 1.385.494, compras ≈ 1.257.796).
192224
193225---
194226
@@ -241,7 +273,7 @@ Entidades mínimas para arrancar Fase 0-1 (nombres orientativos):
241273| 🔴 1 (ya) | ** Supabase** | Pro | ~ 25 $/mes | SÍ. Es el núcleo. |
242274| 🔴 1 (ya) | ** Make.com** | Core/Pro | ~ 9–16 $/mes | SÍ. Motor de automatización. |
243275| 🔴 1 (ya) | ** Google Workspace** | Business Starter | ~ 6–7 €/usuario | SÍ. Correo + Drive. |
244- | 🔴 1 (ya) | ** Núcleo fiscal (Holded/Odoo) ** | según módulos | ~ consultar | SÍ, si se opta por comprar (§6). |
276+ | 🔴 1 (ya) | ** Holded ** (núcleo fiscal, EN VIVO) | según módulos | ~ consultar | SÍ. Ya en uso, es la fuente canónica (§6). |
245277| 🟠 2 | ** Attio** | Plus/Pro | ~ 29 $/usuario | Al arrancar lo comercial. |
246278| 🟠 2 | ** Airtable** | Team | ~ 20 $/usuario | Solo si hay vistas operativas. |
247279| 🟡 3 | ** Supermetrics** | según fuentes | ~ 100–200+ €/mes | Solo con inversión publicitaria. |
@@ -268,7 +300,10 @@ del orden de **~40–50 €/mes** sin el ERP fiscal; con Holded/Odoo, sumar su p
268300## 12. Pendiente de confirmar
269301
270302- ✅ ** Sector:** construcción · arquitectura · promoción inmobiliaria (resuelto).
271- - ** Decisión build-vs-buy** del núcleo fiscal (§6).
303+ - ✅ ** Núcleo fiscal:** Holded en vivo, canónico (resuelto — §6).
304+ - ** Confirmar la fuente canónica única de Holded** (API directa en vivo) y dejar
305+ el puente Make solo para automatización, o cancelarlo si no aporta.
306+ - 🔒 ** Rotación de claves de Holded** (las expuestas) y dónde viven (secretos/` .env ` ).
272307- ** Nº de usuarios** previstos (para dimensionar planes por usuario).
273308- ** Software actual** del que migrar datos (contabilidad, presupuestos de obra).
274- - ** Repo propio** del ERP (sacarlo del fork de github-mcp-server).
309+ - ** Repo propio** del ERP / "Cerebro" (sacarlo del fork de github-mcp-server).
0 commit comments