Aller au contenu

Documentation de Selega

Selega est un outil de contrôle pour la légalisation d’estados contables (EECC). Il prend les chiffres canoniques d’un jeu d’estados, exécute un ensemble de recoupements numériques sur eux, parcourt une checklist propre à chaque juridiction, et propose une décision. Cette page décrit chaque partie.

Le flux : téléversement → validation en direct → décision

Section intitulée « Le flux : téléversement → validation en direct → décision »
  1. Saisir les chiffres. Selega remplit un schéma canonique de chiffres répartis entre l’estado de situación patrimonial (ESP), l’estado de resultados (ER), l’estado de evolución del patrimonio neto (EEPN), l’estado de flujo de efectivo (EFE), les annexes et les notes. Le schéma peut être rempli de trois façons :
    • Manuellement, dans une grille — toujours disponible.
    • Par le moteur d’extraction local — un modèle par format sur un canevas PDF, avec OCR par région (Tesseract) et traçabilité. Sans réseau, privé. C’est la voie par défaut.
    • Par le moteur d’IA verrouillé — il se généralise à tout format mais envoie des données vers le cloud, il est donc désactivé par défaut et sur opt-in (voir IA verrouillée ci-dessous).
  2. Validation en direct. À mesure que les chiffres arrivent, les recoupements s’exécutent en continu. Chaque chiffre est peint en vert lorsqu’un recoupement le corrobore, ou en ambre lorsqu’il entre dans un contrôle qui ne s’équilibre pas. Le réviseur confirme ; aucun chiffre incohérent ne passe.
  3. Checklist. Parallèlement aux contrôles numériques, la checklist des contrôles formels de la juridiction est passée en revue.
  4. Décision. Le moteur de décision agrège les contrôles en échec et propose la décision — légaliser, observer, certifier la signature, ou refuser / restituer.

Selega modélise un jeu d’estados contables comme un schéma plat de chiffres et d’indicateurs (défini dans src/core/schema.js), indépendant du format PDF dont ils proviennent. Les chiffres couvrent :

  • ESP (situación patrimonial) : actif total, passif total, patrimonio neto, caisse et banques à la clôture et à l’ouverture.
  • EEPN (evolución del patrimonio neto) : patrimonio neto à la clôture, résultat de l’exercice.
  • ER (estado de resultados) : résultat final.
  • EFE (flujo de efectivo) : méthode (directe / indirecte), trésorerie à l’ouverture et à la clôture, variation de trésorerie, flux d’exploitation / d’investissement / de financement, RECPAM de la trésorerie.
  • Annexes : amortissement des biens d’usage de l’exercice, amortissement dans l’annexe des charges.
  • Notes / couverture : dette de sécurité sociale SIPA, type de société, note sur la dispense de syndic, note sur le patrimonio neto négatif.

Les recoupements sont le cœur de Selega. Ils sont universels — les normes FACPCE s’appliquent dans tout le pays — de sorte que le même ensemble amorce chaque juridiction ; ce qui change selon le Conseil, c’est le catalogue des contrôles formels et leurs conséquences. Ils sont stockés sous forme de données (un jeu de recoupements JSON dans le rule-pack) et évalués par un moteur générique, de sorte qu’un admin peut les modifier depuis un constructeur visuel sans toucher au code.

L’ensemble par défaut est livré avec les recoupements ci-dessous. Les comparaisons utilisent une petite tolérance (par défaut 1 unité monétaire) pour absorber les arrondis. Chacun est soit une comparaison (deux côtés doivent être égaux), soit un contrôle de présence (un chiffre ou une note doit être présent sous une condition). Par défaut, chaque recoupement de cet ensemble porte une conséquence de refus direct, mais la conséquence est configurable par recoupement.

#RecoupementCe qu’il valide
1Équation comptable (A = P + PN)L’actif total est égal au passif total plus le patrimonio neto (ESP).
2Patrimonio neto : ESP = EEPNLe patrimonio neto de l’ESP est égal au patrimonio neto à la clôture de l’EEPN.
3Résultat : ER = EEPNLe résultat final de l’estado de resultados est égal au résultat reporté dans l’EEPN.
4Trésorerie : ESP = EFE (clôture)La caisse et les banques à la clôture de l’ESP sont égales à la trésorerie à la clôture de l’EFE.
5Variation EFE = clôture − ouvertureLa variation de trésorerie est égale à la trésorerie à la clôture moins la trésorerie à l’ouverture.
5bVariation EFE = Exp + Inv + FinLa variation de trésorerie est égale aux flux d’exploitation plus d’investissement plus de financement.
6Résultat : ER = EFE (indirecte)Le résultat final se réconcilie avec le résultat de l’EFE. Uniquement lorsque la méthode de l’EFE est indirecte.
7Amortissement : ER = EFE (indirecte)L’amortissement de l’estado de resultados est égal à l’amortissement de l’EFE. Méthode indirecte uniquement.
8Impôt sur les bénéfices : ER = EFE (indirecte)L’impôt sur les bénéfices de l’estado de resultados est égal à l’impôt sur les bénéfices de l’EFE. Méthode indirecte uniquement.
9RECPAM de la trésorerie affiché dans l’EFEUne ligne dédiée RECPAM de la trésorerie est présente. Uniquement lorsque la méthode de l’EFE est directe.
10Amortissement : Annexe biens d’usage = Annexe chargesL’amortissement de l’exercice concorde entre les deux annexes.
11Sécurité sociale art. 10, Loi 17.250L’état de la dette de sécurité sociale SIPA est présent.
12Note de patrimonio neto négatifLorsque le patrimonio neto est inférieur à zéro, la note requise doit être présente.
13Note de dispense de syndicPour les sociétés SA / SAS, la note dispensant du syndic (art. 284) doit être présente.

Chaque recoupement s’évalue dans l’un de quatre états : OK (il s’équilibre), DIFIERE (il ne s’équilibre pas — les chiffres concernés sont signalés en ambre), NA (non applicable dans les conditions actuelles, p. ex. un contrôle propre à la méthode indirecte alors que l’EFE est directe) ou FALTA (un chiffre requis est manquant).

Les recoupements qui reviennent en DIFIERE sont transformés en observations, chacune portant la conséquence définie par son recoupement. Le moteur de décision (src/core/decision.js) calcule ensuite la décision agrégée par priorité de conséquence :

  • Refus direct → le travail est refusé / restitué. Si une tasa borrador a été payée, il est plutôt restitué pour correction.
  • Subsanable (corrigible) → restitué pour correction si une tasa borrador a été payée ; sinon, si le professionnel choisit de ne pas corriger, il est légalisé.
  • Certifier la signature → il se dégrade en certification de la seule signature.
  • Aucune observation bloquante → il est légalisé.

Une tasa urgente combinée à une quelconque observation perd son statut d’urgence et le travail retourne à la liste générale de réentrée. Les décisions possibles sont : Se legaliza (légaliser), Se devuelve para corregir (restituer pour correction, tasa borrador), Se certifica solo la firma (certifier seulement la signature) et Se deniega / se devuelve (refuser / restituer).

  • Selega est livré avec un registre des 24 juridictions d’Argentine ; chacune est soit entièrement définie, soit un modèle à compléter.
  • Chaque Conseil définit son propre rule-pack : le catalogue des contrôles formels, quels recoupements sont activés, et les conséquences. Le rule-pack édité localement d’une juridiction prévaut sur celui livré dans le dépôt.
  • Les recoupements sont universels (les normes FACPCE s’appliquent à l’échelle nationale) ; les contrôles formels et leurs conséquences sont ce qui varie selon le Conseil.
  • Un admin choisit quelles juridictions une installation donnée dessert, et bascule la juridiction active depuis l’en-tête.

Selega comporte cinq rôles — agent, superviseur, auditeur, admin, superadmin — avec un flux de révision configurable, une boîte de réception à feux tricolores, et un dossier en lecture seule exportable. L’accès est verrouillé à la fois visuellement (en désactivant ce qu’un rôle n’a pas le droit de faire) et réellement dans le backend.

L’IA est désactivée par défaut et enfichable. Elle peut s’exécuter contre un moteur local (Ollama, p. ex. Qwen2.5-VL sur CPU) ou le cloud (OpenRouter), local-first. La voie cloud est verrouillée par trois conditions : activée dans l’Admin, une clé API présente, et une autorisation par document — car c’est la seule voie qui envoie des données hors de la boîte. La clé API vit côté serveur (stockée en écriture seule lorsqu’elle est chargée depuis l’Admin).

L’état de Selega vit dans PostgreSQL (le service db du fichier compose, connecté via DATABASE_URL). La base de données persiste dans le volume selega-pg — c’est le registre des légalisations, alors sauvegardez-le. Le conteneur applicatif lui-même ne fait que lire /app et écrire la sortie OCR dans /tmp.

Tout se configure par variables d’environnement (12-factor) — voir Installer Selega pour le tableau complet. Sur le plan opérationnel, ce que vous définissez, c’est POSTGRES_PASSWORD (requis), l’e-mail admin, si vous êtes derrière TLS (SELEGA_SECURE_COOKIE), le port hôte, et optionnellement la clé d’IA cloud (mieux chargée depuis l’Admin). Les règles par juridiction, les recoupements, la checklist et les utilisateurs sont tous édités depuis les panneaux Administration et Système de l’interface — aucun changement de code requis.

Vanilla JS (modules ES, sans framework) · Node.js (son propre serveur HTTP) · PostgreSQL (pg) · Docker · pdf.js / Tesseract.js / pdf-lib vendorés · Ollama optionnel pour l’IA locale.