feat(erp): cycle M4 KissMetrics, et les deux comptes bancaires ramenés au centime (#96)
Co-authored-by: Gabriel Radureau <[email protected]>
This commit was merged in pull request #96.
This commit is contained in:
@@ -3,13 +3,14 @@
|
||||
"_description": "Operator-curated catalogue of known recurring/intentional bank movements. Used by bank-match.sh to annotate the BANK-ONLY bucket so the operator can immediately tell 'needs Dolibarr entry' from 'documented intentional gap'. Edit this file as new recurring patterns emerge.",
|
||||
"_match_rules": "Pattern matched case-insensitively as a regex against the bank label. Optional filters: bank (qonto|wise), side (credit|debit), amount_min, amount_max, type (Wise activity type). All present filters must match.",
|
||||
"_classifications": {
|
||||
"capital_deposit": "Apport en capital social. Dolibarr account 1013 (capital souscrit appelé versé).",
|
||||
"social_charges": "URSSAF, retraite complémentaire, etc. Dolibarr compte 641, sous-compte dédié (la société prend en charge les cotisations personnelles de son gérant majoritaire : c'est un complément de rémunération). PAS 646, réservé à l'exploitant individuel et aux sociétés à l'IR. PAS 645x non plus, qui vise les cotisations sur salaires — Arcodange n'a aucun salarié et l'opérateur n'est pas employeur. Voir adc-009.",
|
||||
"ai_subscription": "Claude / Mistral / OpenAI / similar. Dolibarr account 6262 (frais télécom / abonnements logiciels).",
|
||||
"bank_fee": "Plan bancaire, frais d'opération, refunds. Dolibarr account 627 (services bancaires).",
|
||||
"internal_topup": "Solde Wise/Qonto rechargé pour couvrir un frais immédiat. Often nets out.",
|
||||
"personal_apport": "Apport en compte courant d'associé (Gabriel finançant Arcodange depuis son perso). Dolibarr account 4551.",
|
||||
"needs_classification": "Pattern catched but no Dolibarr account assignment defined yet; surface for review."
|
||||
"capital_deposit": "Apport en capital social. Dolibarr account 1013 (capital souscrit appelé versé).",
|
||||
"social_charges": "URSSAF, retraite complémentaire, etc. Dolibarr compte 641, sous-compte dédié (la société prend en charge les cotisations personnelles de son gérant majoritaire : c'est un complément de rémunération). PAS 646, réservé à l'exploitant individuel et aux sociétés à l'IR. PAS 645x non plus, qui vise les cotisations sur salaires — Arcodange n'a aucun salarié et l'opérateur n'est pas employeur. Voir adc-009.",
|
||||
"ai_subscription": "Claude / Mistral / OpenAI / similar. Dolibarr account 6262 (frais télécom / abonnements logiciels).",
|
||||
"bank_fee": "Plan bancaire, frais d'opération, refunds. Dolibarr account 627 (services bancaires).",
|
||||
"internal_topup": "Solde Wise/Qonto rechargé pour couvrir un frais immédiat. Often nets out.",
|
||||
"personal_apport": "Apport en compte courant d'associé (Gabriel finançant Arcodange depuis son perso). Dolibarr account 4551.",
|
||||
"needs_classification": "Pattern catched but no Dolibarr account assignment defined yet; surface for review.",
|
||||
"balance_reward": "Rémunération d'un solde détenu chez un établissement de paiement. Wise l'appelle « cashback », mais le montant suit le SOLDE et non les frais (~0,5-0,6 % l'an sur l'exercice 2026) : c'est un produit financier, pas un rabais. Dolibarr compte 768 (autres produits financiers) — pas 763, qui vise les revenus de créances commerciales, ni 764, réservé aux valeurs mobilières de placement."
|
||||
},
|
||||
"patterns": [
|
||||
{
|
||||
@@ -55,6 +56,13 @@
|
||||
"classification": "internal_topup",
|
||||
"bank": "wise",
|
||||
"note": "Solde Wise rechargé pour couvrir un frais immédiat (souvent net zéro avec le FEATURE_CHARGE du même jour)."
|
||||
},
|
||||
{
|
||||
"pattern": "Cashback",
|
||||
"classification": "balance_reward",
|
||||
"bank": "wise",
|
||||
"side": "credit",
|
||||
"note": "Cashback Wise sur solde, mensuel. ENREGISTRÉS EN PRODUCTION jusqu'à août 2026 inclus (0,19 / 0,35 / 0,71 / 1,60 / 3,31 / 4,97 €, soit 11,13 €) — compte 768, via test/recordVariousPayment.ts. ATTENTION : bank-match.sh les affichera quand même en BANK-ONLY, parce qu'il ne rapproche que les RÈGLEMENTS de factures et ignore les paiements divers. Les voir listés ne veut donc PAS dire qu'ils manquent : vérifier le solde du compte avant d'en ressaisir un, sous peine de doublon."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -6,32 +6,41 @@ fois, elle doit en coûter deux minutes ensuite.
|
||||
|
||||
## Pourquoi ce n'est pas une facture fournisseur
|
||||
|
||||
L'URSSAF n'est pas un fournisseur. Sa cotisation va au compte **646**
|
||||
(cotisations personnelles du dirigeant), pas au compte fournisseur — l'inscrire
|
||||
en facture fournisseur pollue le grand livre auxiliaire, les balances âgées et
|
||||
les états de dettes fournisseurs.
|
||||
L'URSSAF n'est pas un fournisseur. L'inscrire en facture fournisseur pollue le
|
||||
grand livre auxiliaire, les balances âgées et les états de dettes fournisseurs :
|
||||
elle se saisit comme **charge sociale**.
|
||||
|
||||
**645 contre 646**, la distinction qui décide de tout :
|
||||
## Le compte : 641, et non 646
|
||||
|
||||
| Compte | Pour qui |
|
||||
| --- | --- |
|
||||
| 645 | cotisations **patronales sur salaires** — suppose des salariés |
|
||||
| **646** | cotisations **personnelles du dirigeant TNS** |
|
||||
> [!IMPORTANT]
|
||||
> Ce runbook a d'abord dit **646**. C'était faux, et `adc-009` l'a tranché.
|
||||
> Si tu lis une version qui dit 646, elle est périmée.
|
||||
|
||||
Arcodange n'a aucun salarié et Gabriel est gérant associé unique d'une SARLU,
|
||||
donc **TNS** : tout va en 646. Le compte 645 doit rester vide.
|
||||
| Compte | Pour qui | Arcodange |
|
||||
| --- | --- | --- |
|
||||
| 645x | cotisations **patronales sur salaires** — suppose des salariés | non : aucun salarié, l'opérateur n'est pas employeur |
|
||||
| 646 | cotisations de l'**exploitant individuel**, sociétés à l'**IR** | non : Arcodange est une SARL à l'**IS** |
|
||||
| **641**, sous-compte dédié | la société prend en charge les cotisations personnelles de son **gérant majoritaire** — c'est un complément de rémunération | **oui** |
|
||||
|
||||
Dans Dolibarr, cela se pilote par le **type de charge**, jamais par une saisie
|
||||
manuelle du compte :
|
||||
|
||||
- `Securite sociale (URSSAF / MSA)` → régime salarié → 645
|
||||
- **`Securite sociale des indépendants (URSSAF)`** → TNS → 646 ← **celui-ci**
|
||||
Le raisonnement tient en une phrase : dans une société à l'IS, ce que la société
|
||||
verse à l'URSSAF pour son gérant majoritaire n'est pas un prélèvement de
|
||||
l'exploitant, c'est une **charge de personnel**. D'où 641. Voir `adc-009` pour la
|
||||
démonstration complète, y compris la déductibilité intégrale de la CSG/CRDS pour
|
||||
la société — à ne pas confondre avec le sort de la CSG à l'impôt sur le revenu
|
||||
personnel du gérant (art. 62 CGI), qui est une autre question.
|
||||
|
||||
> [!WARNING]
|
||||
> Le code comptable de chaque type vit dans **Configuration → Dictionnaires →
|
||||
> Types de charges sociales**. Vérifier une fois que la ligne « indépendants »
|
||||
> porte bien 646 : si elle porte autre chose, le bon type enverra quand même
|
||||
> l'écriture au mauvais compte. Non vérifié à ce jour.
|
||||
> **Le type de charge ne pilote PAS le compte sur ce déploiement.** Les lignes du
|
||||
> dictionnaire `Configuration → Dictionnaires → Types de charges sociales` sont
|
||||
> **sans code comptable** — vérifié. Choisir « Securite sociale des indépendants
|
||||
> (URSSAF) » ne suffit donc pas à envoyer l'écriture en 641 : l'affectation se
|
||||
> fait au moment du transfert en comptabilité, ou par le sous-compte porté sur
|
||||
> l'écriture. Ne pas croire qu'un bon type suffit.
|
||||
|
||||
Le type retenu reste **`Securite sociale des indépendants (URSSAF)`** : le gérant
|
||||
associé unique d'une SARLU est TNS, affilié à la Sécurité sociale des
|
||||
indépendants, et non assimilé salarié. C'est exact sur le fond même si ça
|
||||
n'emporte aucune conséquence comptable automatique ici.
|
||||
|
||||
## La commande
|
||||
|
||||
|
||||
Reference in New Issue
Block a user