From 0153cdfbb3154f0c77dce3948f4ee1a3718a5f1f Mon Sep 17 00:00:00 2001 From: admin-valentin Date: Sun, 2 Aug 2026 17:41:46 +0000 Subject: [PATCH] feat(CC-087): add ERP main page (entity sync table, setup steps, arch restriction warning) --- src/app/dashboard/erp/page.tsx | 89 ++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 src/app/dashboard/erp/page.tsx diff --git a/src/app/dashboard/erp/page.tsx b/src/app/dashboard/erp/page.tsx new file mode 100644 index 0000000..3b2ec68 --- /dev/null +++ b/src/app/dashboard/erp/page.tsx @@ -0,0 +1,89 @@ +'use client'; + +import Link from 'next/link'; + +const ERP_ENTITIES = [ + { name: 'Clienți (Customer)', dir: '→', desc: 'ERPNext → CEO OS (sync unilateral)' }, + { name: 'Facturi (Invoice)', dir: '→', desc: 'ERPNext → CEO OS (tranzacții financiare)' }, + { name: 'Proiecte (Project)', dir: '↔', desc: 'Bidirectional cu aprobare manuală' }, + { name: 'Stoc (Item)', dir: '→', desc: 'ERPNext → CEO OS (read-only)' }, + { name: 'Salarii (Salary Slip)', dir: '→', desc: 'ERPNext → CEO OS (privat, confidential)' }, + { name: 'Contracte (PO/SO)', dir: '→', desc: 'ERPNext → CEO OS (ca documente)' }, +]; + +const SETUP_STEPS = [ + { n: 1, label: 'ERPNext server activ', status: 'done', desc: 'ERPNext rulează pe serverul Hetzner (port 8080).' }, + { n: 2, label: 'API Key ERPNext', status: 'todo', desc: 'Generează API Key + Secret în ERPNext → User → API Access.' }, + { n: 3, label: 'Adapter ceo-api', status: 'todo', desc: 'Serviciu ERP sync în ceo-api (GET /v1/erp/status, POST /v1/erp/sync).' }, + { n: 4, label: 'Flux date activ', status: 'planned', desc: 'Sincronizare automată la intervale configurabile.' }, +]; + +export default function ERPPage() { + return ( +
+
+

ERP & Contabilitate

+

Integrare ERPNext — sincronizare financiară și operațională.

+
+ +
+

ERPNext neconectat la CEO OS

+

+ ERPNext rulează pe server (port 8080) dar API-ul de sincronizare nu este configurat. + CEO OS nu scrie niciodată direct în baza de date ERP — datele curg exclusiv prin adaptorul API. +

+
+ + {/* Architecture rule */} +
+

Regulă arhitecturală CRITICĂ

+

+ CEO OS nu scrie niciodată direct în baza de date ERPNext. + Toate modificările merg prin API-ul ERPNext, care validează și înregistrează tranzacțiile conform regulilor contabile. + Orice scriere directă în BD ar corupe integritatea contabilă. +

+
+ + {/* Entity sync table */} +
+

Entități sincronizate (planificat)

+
+ {ERP_ENTITIES.map((e) => ( +
+
+

{e.name}

+

{e.desc}

+
+ {e.dir} +
+ ))} +
+

→ = ERPNext → CEO OS (read)  |  ↔ = bidirectional cu aprobare

+
+ + {/* Setup steps */} +
+

Pași de configurare

+ {SETUP_STEPS.map((step) => ( +
+
+ {step.status === 'done' ? '✓' : step.n} +
+
+

{step.label}

+

{step.desc}

+
+
+ ))} +
+ +
+ Detalii integrare ERP → + Finance Dashboard → +
+
+ ); +}