Skip to content

Commit 8fba650

Browse files
committed
docs(erp): reconcile architecture with live Holded reality (v3)
Per the cross-session coordination note (Drive), reconcile the ERP architecture with operational reality: - Holded is LIVE and the canonical source of finance/accounting; it is no longer a pending build-vs-buy decision. Supabase stays as the bespoke operational layer and must not become a second ledger. - Record the single cost/margin rules: cost by Holded projectid (not tags), exclude confirming, own labor = direct cost, one margin calculation; reference validation against the Palmeres work. - One canonical Holded integration (direct API); any Make/Zapier bridge is automation-only, never a second source of truth. - Note governance (Drive = memory, Cerebro repo = code) and the pending key rotation for previously-exposed Holded credentials. https://claude.ai/code/session_01W9xh1kJCqtHqBgBAMQikon
1 parent 1aa2af2 commit 8fba650

1 file changed

Lines changed: 59 additions & 24 deletions

File tree

docs/erp-grupo-tesela/ARQUITECTURA.md

Lines changed: 59 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Arquitectura del ERP — Grupo Tesela
22

3-
> Documento vivo. **v2corregida** a partir del diseño inicial.
3+
> Documento vivo. **v3reconciliada** 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 |, si se opta por comprar (§6). |
276+
| 🔴 1 (ya) | **Holded** (núcleo fiscal, EN VIVO) | según módulos | ~consultar |. 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

Comments
 (0)