Documentazione di Selega
Selega è uno strumento di controllo per la legalizzazione degli estados contables (EECC). Prende le cifre canoniche di un set di estados contables, esegue una serie di riscontri numerici su di esse, percorre una checklist per ciascuna giurisdizione e propone un esito. Questa pagina descrive ciascuna parte.
Il flusso: caricamento → validazione in tempo reale → esito
Sezione intitolata “Il flusso: caricamento → validazione in tempo reale → esito”- Inserisci le cifre. Selega popola uno schema canonico di cifre distribuite tra lo
stato patrimoniale (ESP), il conto economico (ER), il prospetto delle variazioni del patrimonio
netto (EEPN), il rendiconto finanziario (EFE), gli annessi e le note. Lo schema può essere
popolato in tre modi:
- Manualmente, in una griglia — sempre disponibile.
- Tramite il motore di estrazione locale — un template per ciascun formato su un canvas PDF, con OCR per regione (Tesseract) e provenienza. Nessuna rete, privato. Questo è il percorso predefinito.
- Tramite il motore IA protetto da gating — generalizza a qualsiasi formato ma invia dati al cloud, quindi è disattivato per impostazione predefinita e a opt-in (vedi IA protetta da gating qui sotto).
- Validazione in tempo reale. Man mano che le cifre arrivano, i riscontri girano in modo continuo. Ogni cifra viene dipinta verde quando un riscontro la corrobora, oppure ambra quando entra in un controllo che non quadra. Il revisore conferma; nessun numero incoerente passa.
- Checklist. Accanto ai controlli numerici, viene esaminata la checklist dei controlli formali della giurisdizione.
- Esito. Il motore decisionale aggrega i controlli falliti e propone l’esito — legalizzare, osservare, certificare la firma o negare / restituire.
Lo schema canonico
Sezione intitolata “Lo schema canonico”Selega modella un set di estados contables come uno schema piatto di cifre e flag (definito in
src/core/schema.js), agnostico rispetto al formato PDF da cui provengono. Le cifre coprono:
- ESP (stato patrimoniale): totale attività, totale passività, patrimonio netto, cassa e banche alla chiusura e all’apertura.
- EEPN (variazioni del patrimonio netto): patrimonio netto alla chiusura, risultato d’esercizio.
- ER (conto economico): risultato finale.
- EFE (rendiconto finanziario): metodo (diretto / indiretto), cassa all’apertura e alla chiusura, variazione di cassa, flussi operativi / di investimento / di finanziamento, RECPAM della cassa.
- Annessi: ammortamento dei beni strumentali dell’esercizio, ammortamento nell’annesso dei costi.
- Note / frontespizio: debito previdenziale SIPA, tipo societario, nota sulla rinuncia al sindaco, nota sul patrimonio netto negativo.
I riscontri numerici
Sezione intitolata “I riscontri numerici”I riscontri sono il cuore di Selega. Sono universali — gli standard FACPCE si applicano su tutto il territorio nazionale — quindi lo stesso set fa da seed a ogni giurisdizione; ciò che cambia da Consiglio a Consiglio è il catalogo dei controlli formali e le loro conseguenze. Sono memorizzati come dati (un set di riscontri JSON nel rule-pack) e valutati da un motore generico, così un amministratore può modificarli da un builder visivo senza toccare il codice.
Il set predefinito include i riscontri qui sotto. I confronti usano una piccola tolleranza (predefinita di 1 unità di valuta) per assorbire gli arrotondamenti. Ciascuno è un confronto (due lati devono essere uguali) oppure un controllo di presenza (una cifra o una nota deve essere presente sotto una condizione). Per impostazione predefinita, ogni riscontro di questo set comporta una conseguenza di diniego diretto, ma la conseguenza è configurabile per ciascun riscontro.
| # | Riscontro | Che cosa valida |
|---|---|---|
| 1 | Equazione contabile (A = P + PN) | Il totale delle attività è uguale al totale delle passività più il patrimonio netto (ESP). |
| 2 | Patrimonio netto: ESP = EEPN | Il patrimonio netto nell’ESP è uguale al patrimonio netto alla chiusura nell’EEPN. |
| 3 | Risultato: ER = EEPN | Il risultato finale del conto economico è uguale al risultato riportato nell’EEPN. |
| 4 | Cassa: ESP = EFE (chiusura) | La cassa e le banche alla chiusura nell’ESP sono uguali alla cassa alla chiusura nell’EFE. |
| 5 | Variazione EFE = chiusura − apertura | La variazione di cassa è uguale alla cassa alla chiusura meno la cassa all’apertura. |
| 5b | Variazione EFE = Op + Inv + Fin | La variazione di cassa è uguale ai flussi operativi più di investimento più di finanziamento. |
| 6 | Risultato: ER = EFE (indiretto) | Il risultato finale si riconcilia con il risultato dell’EFE. Solo quando il metodo EFE è indiretto. |
| 7 | Ammortamenti: ER = EFE (indiretto) | Gli ammortamenti nel conto economico sono uguali agli ammortamenti nell’EFE. Solo metodo indiretto. |
| 8 | Imposta sul reddito: ER = EFE (indiretto) | L’imposta sul reddito nel conto economico è uguale all’imposta sul reddito nell’EFE. Solo metodo indiretto. |
| 9 | RECPAM della cassa mostrato nell’EFE | È presente una riga dedicata al RECPAM della cassa. Solo quando il metodo EFE è diretto. |
| 10 | Ammortamenti: Annesso beni strumentali = Annesso costi | L’ammortamento dell’esercizio coincide tra i due annessi. |
| 11 | Previdenza sociale art. 10, Legge 17.250 | Il prospetto del debito previdenziale SIPA è presente. |
| 12 | Nota sul patrimonio netto negativo | Quando il patrimonio netto è inferiore a zero, la nota richiesta deve essere presente. |
| 13 | Nota sulla rinuncia al sindaco | Per le società SA / SAS, la nota di rinuncia al sindaco (art. 284) deve essere presente. |
Risultati dei riscontri
Sezione intitolata “Risultati dei riscontri”Ogni riscontro si risolve in uno di quattro stati: OK (quadra), DIFIERE (non quadra — le cifre coinvolte sono segnalate in ambra), NA (non applicabile nelle condizioni attuali, es. un controllo solo-indiretto quando l’EFE è diretto) oppure FALTA (una cifra richiesta manca).
Il motore decisionale
Sezione intitolata “Il motore decisionale”I riscontri che tornano come DIFIERE vengono trasformati in osservazioni, ciascuna
recante la conseguenza definita dal proprio riscontro. Il motore decisionale (src/core/decision.js)
calcola quindi l’esito aggregato per priorità di conseguenza:
- Diniego diretto → il lavoro viene negato / restituito. Se era stata pagata una tasa borrador (tasa borrador), viene invece restituito per essere corretto.
- Subsanable (correggibile) → restituito per essere corretto se era stata pagata una tasa borrador; altrimenti, se il professionista sceglie di non correggere, viene legalizzato.
- Certificare la firma → degrada a certificare solo la firma.
- Nessuna osservazione bloccante → viene legalizzato.
Una tasa urgente (tasa urgente) combinata con qualsiasi osservazione perde il proprio carattere urgente e il lavoro torna nell’elenco generale di re-ingresso. Gli esiti possibili sono: Se legaliza (legalizzare), Se devuelve para corregir (restituire per correggere, tasa borrador), Se certifica solo la firma (certificare solo la firma) e Se deniega / se devuelve (negare / restituire).
Multi-giurisdizione
Sezione intitolata “Multi-giurisdizione”- Selega include un registro delle 24 giurisdizioni dell’Argentina; ciascuna è completamente definita oppure un template da completare.
- Ogni Consiglio definisce il proprio rule-pack: il catalogo dei controlli formali, quali riscontri sono abilitati e le conseguenze. Il rule-pack modificato localmente di una giurisdizione prevale su quello incluso nel repo.
- I riscontri sono universali (gli standard FACPCE si applicano a livello nazionale); i controlli formali e le conseguenze sono ciò che varia da Consiglio a Consiglio.
- Un amministratore sceglie quali giurisdizioni serve una data installazione e commuta la giurisdizione attiva dall’intestazione.
Ruoli e flusso di revisione
Sezione intitolata “Ruoli e flusso di revisione”Selega ha cinque ruoli — operatore, supervisore, revisore, amministratore, superamministratore — con un flusso di revisione configurabile, una casella di posta a semaforo e un fascicolo esportabile in sola lettura. L’accesso è protetto sia visivamente (disabilitando ciò che un ruolo non può fare) sia realmente nel backend.
IA protetta da gating
Sezione intitolata “IA protetta da gating”L’IA è disattivata per impostazione predefinita e modulare. Può girare contro un motore locale (Ollama, es. Qwen2.5-VL su CPU) o il cloud (OpenRouter), local-first. Il percorso cloud è protetto da gating su tre condizioni: abilitato nell’Amministrazione, una chiave API presente e l’autorizzazione per documento — perché è l’unico percorso che invia dati al di fuori della scatola. La chiave API risiede lato server (memorizzata in sola scrittura quando caricata dall’Amministrazione).
Persistenza
Sezione intitolata “Persistenza”Lo stato di Selega risiede in PostgreSQL (il servizio db del file compose, connesso tramite
DATABASE_URL). Il database persiste nel volume selega-pg — è il registro delle
legalizzazioni, quindi esegui il backup. Il container dell’applicazione stesso si limita a leggere /app e a scrivere l’output
OCR su /tmp.
Configurazione
Sezione intitolata “Configurazione”Tutto è configurato tramite variabili d’ambiente (12-factor) — vedi
Installa Selega per la tabella completa. Operativamente, le cose che imposti
sono POSTGRES_PASSWORD (obbligatoria), l’email dell’amministratore, se sei
dietro TLS (SELEGA_SECURE_COOKIE), la porta host e, opzionalmente, la chiave IA cloud (meglio caricata dall’
Amministrazione). Le regole per ciascuna giurisdizione, i riscontri, la checklist e gli utenti si modificano tutti dai
pannelli Amministrazione e Sistema nell’interfaccia — senza alcuna modifica al codice.
Vanilla JS (moduli ES, nessun framework) · Node.js (proprio server HTTP) · PostgreSQL (pg) ·
Docker · pdf.js / Tesseract.js / pdf-lib in vendoring · Ollama opzionale per l’IA locale.