Module Debours: Difference between revisions

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
(création de la page)
 
mNo edit summary
Tag: 2017 source edit
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
= Plugin Dolibarr <code>debourstbnetsys</code> =
[[Category:Complementary modules]]


Module de '''TBNETSYS''' pour Dolibarr 22.0.3+ (PHP 8.2+, '''recommandé : PHP 8.4''') : gestion des '''frais de débours''' du micro-entrepreneur, conformément à '''l'article 267 II 2° du Code Général des Impôts'''.


* '''Module ID''' : 493220
=Plugin Dolibarr <code>debourstbnetsys</code>=
* '''Famille''' : Facturation (billing)
* '''Dépend de''' : modFacture, modSociete, modECM
* '''Version''' : voir <code>lib/debourstbnetsys.version.php</code>
* '''Licence''' : GPL-3.0-or-later


<blockquote>Pour la documentation technique interne (schéma SQL, classes, hooks, triggers, scripts CLI), voir [[ARCHITECTURE.md]].</blockquote>
Module de '''TBNETSYS''' pour Dolibarr 22.0.3+ (PHP 8.2+, '''recommandé<span> </span>: PHP 8.4''')<span> </span>: gestion des '''frais de débours''' du micro-entrepreneur, conformément à '''l'article 267 II 2° du Code Général des Impôts'''.
 
*'''Module ID'''<span> </span>: 493220
*'''Famille'''<span> </span>: Facturation (billing)
*'''Dépend de'''<span> </span>: modFacture, modSociete, modECM
*'''Version'''<span> </span>: voir <code>lib/debourstbnetsys.version.php</code>
*'''Licence'''<span> </span>: GPL-3.0-or-later
 
<blockquote>Pour la documentation technique interne (schéma SQL, classes, hooks, triggers, scripts CLI), voir [[ARCHITECTURE.md]].         
 
Le plugin dispose d'une aide intégrée.</blockquote>


----
----


== Table des matières ==
==Table des matières==


* '''[[#Installateur / intégrateur / dev|Installateur / intégrateur / dev]]'''
*'''[[#Installateur / intégrateur / dev|Installateur / intégrateur / dev]]'''
*# [[#1. Cadre légal|Cadre légal]]
*#[[#1. Cadre légal|Cadre légal]]
*# [[#2. Fonctionnalités|Fonctionnalités]]
*#[[#2. Fonctionnalités|Fonctionnalités]]
*# [[#3. Installation|Installation]]
*#[[#3. Installation|Installation]]
*# [[#4. Configuration|Configuration]]
*#[[#4. Configuration|Configuration]]
*# [[#5. Cycle de vie utilisateur|Cycle de vie utilisateur]]
*#[[#5. Cycle de vie utilisateur|Cycle de vie utilisateur]]
*# [[#6. Documentation complémentaire|Documentation complémentaire]]
*#[[#6. Documentation complémentaire|Documentation complémentaire]]
*# [[#7. Internationalisation|Internationalisation]]
*#[[#7. Internationalisation|Internationalisation]]
*# [[#8. Licence|Licence]]
*#[[#8. Licence|Licence]]
* '''[[#Manuel de l'utilisateur|Manuel de l'utilisateur]]'''
*'''[[#Manuel de l'utilisateur|Manuel de l'utilisateur]]'''
*# [[#1. À quoi ça sert|À quoi ça sert]]
*#[[#1. À quoi ça sert|À quoi ça sert]]
*# [[#2. Premiers pas|Premiers pas]]
*#[[#2. Premiers pas|Premiers pas]]
*# [[#3. Le mandat client|Le mandat client]]
*#[[#3. Le mandat client|Le mandat client]]
*# [[#4. Le débours|Le débours]]
*#[[#4. Le débours|Le débours]]
*# [[#5. Verrouillage légal automatique|Verrouillage légal automatique]]
*#[[#5. Verrouillage légal automatique|Verrouillage légal automatique]]
*# [[#6. Reports et exports|Reports et exports]]
*#[[#6. Reports et exports|Reports et exports]]
*# [[#7. Particularités micro-entrepreneur|Particularités micro-entrepreneur]]
*#[[#7. Particularités micro-entrepreneur|Particularités micro-entrepreneur]]
*# [[#8. FAQ|FAQ]]
*#[[#8. FAQ|FAQ]]
*# [[#9. Glossaire|Glossaire]]
*#[[#9. Glossaire|Glossaire]]
*# [[#10. Aide et contact|Aide et contact]]
*#[[#10. Aide et contact|Aide et contact]]


----
----


== Installateur / intégrateur / dev ==
==Installateur / intégrateur / dev==


=== 1. Cadre légal ===
===1. Cadre légal===


Un ''débours'' est une somme avancée par l'entrepreneur '''au nom et pour le compte du client''', refacturée à l'identique. Pour être qualifiée de débours, la dépense doit cumulativement :
Un ''débours'' est une somme avancée par l'entrepreneur '''au nom et pour le compte du client''', refacturée à l'identique. Pour être qualifiée de débours, la dépense doit cumulativement<span> </span>:


# faire l'objet d'un '''mandat préalable écrit''' du client,
#faire l'objet d'un '''mandat préalable écrit''' du client,
# être '''facturée par le fournisseur au nom du client''' (pas de l'entrepreneur),
#être '''facturée par le fournisseur au nom du client''' (pas de l'entrepreneur),
# être '''refacturée à l'euro près''' (aucune marge),
#être '''refacturée à l'euro près''' (aucune marge),
# être détaillée et accompagnée des '''justificatifs''' sur la facture finale,
#être détaillée et accompagnée des '''justificatifs''' sur la facture finale,
# porter la '''mention « Débours art. 267 II 2° CGI »''',
#porter la '''mention « Débours art. 267 II 2° CGI »''',
# être comptabilisée en '''compte 467''' (autres comptes débiteurs/créditeurs), pas en charge,
#être comptabilisée en '''compte 467''' (autres comptes débiteurs/créditeurs), pas en charge,
# être conservée '''10 ans''' (rétention légale).
#être conservée '''10 ans''' (rétention légale).


Conséquences : ces sommes sont '''hors champ de la TVA''', '''exclues du chiffre d'affaires''' et n'entrent pas dans le calcul des cotisations sociales du micro-entrepreneur.
Conséquences<span> </span>: ces sommes sont '''hors champ de la TVA''', '''exclues du chiffre d'affaires''' et n'entrent pas dans le calcul des cotisations sociales du micro-entrepreneur.


Le module garantit ces sept conditions de manière automatisée. Voir le diagnostic de conformité de la page de configuration.
Le module garantit ces sept conditions de manière automatisée. Voir le diagnostic de conformité de la page de configuration.


=== 2. Fonctionnalités ===
===2. Fonctionnalités===


* Tenue d'un '''registre des débours''' (rétention 10 ans, export CSV).
*Tenue d'un '''registre des débours''' (rétention 10 ans, export CSV).
* Gestion des '''mandats clients''' (signature, dates de validité, scan signé, révocation).
*Gestion des '''mandats clients''' (signature, dates de validité, scan signé, révocation).
* '''Justificatifs''' rattachés ligne à ligne (ECM Dolibarr).
*'''Justificatifs''' rattachés ligne à ligne (ECM Dolibarr).
* Refacturation au choix :
*Refacturation au choix<span> </span>:
** '''Mode A, lignes spéciales''' : injection dans la facture Dolibarr avec <code>special_code = 493220</code>, exclues du calcul du CA réel.
**'''Mode A, lignes spéciales'''<span> </span>: injection dans la facture Dolibarr avec <code>special_code = 493220</code>, exclues du calcul du CA réel.
** '''Mode B, PDF annexe''' : « Relevé de débours » (TCPDF) joint à la facture, avec mention CGI proéminente.
**'''Mode B, PDF annexe'''<span> </span>: « Relevé de débours » (TCPDF) joint à la facture, avec mention CGI proéminente.
* '''Workflow paramétrable''' : ''minimal'' / ''simple'' / ''complet'' (avec mandat).
*'''Workflow paramétrable'''<span> </span>: ''minimal'' / ''simple'' / ''complet'' (avec mandat).
* '''Suivi du remboursement client''' : rapprochement automatique au prorata des paiements de facture.
*'''Suivi du remboursement client'''<span> </span>: rapprochement automatique au prorata des paiements de facture.
* '''Export du journal comptable compte 467/512''' (compatible module Accounting Dolibarr) avec contrôle d'équilibre débit/crédit.
*'''Export du journal comptable compte 467/512''' (compatible module Accounting Dolibarr) avec contrôle d'équilibre débit/crédit.
* '''Rapport de chiffre d'affaires réel''' + estimation des cotisations URSSAF (configurable selon activité, versement libératoire, CFP).
*'''Rapport de chiffre d'affaires réel''' + estimation des cotisations URSSAF (configurable selon activité, versement libératoire, CFP).
* '''Diagnostic automatique de conformité''' : mandat, justificatif, marge nulle, mention CGI.
*'''Diagnostic automatique de conformité'''<span> </span>: mandat, justificatif, marge nulle, mention CGI.
* '''Verrouillage légal''' : un débours rattaché à une facture validée ne peut plus être modifié ni hard-deleté (<code>cancel()</code> exigé).
*'''Verrouillage légal'''<span> </span>: un débours rattaché à une facture validée ne peut plus être modifié ni hard-deleté (<code>cancel()</code> exigé).


----
----


=== 3. Installation ===
===3. Installation===


# Cloner ou copier le dossier dans <code>htdocs/custom/debourstbnetsys/</code>.
#Cloner ou copier le dossier dans <code>htdocs/custom/debourstbnetsys/</code>.
# Activer le module dans '''Accueil → Configuration → Modules''' (rubrique « Facturation »).
#Activer le module dans '''Accueil → Configuration → Modules''' (rubrique « Facturation »).
# Configurer dans '''Accueil → Configuration → Modules → Débours TBNETSYS'''.
#Configurer dans '''Accueil → Configuration → Modules → Débours TBNETSYS'''.


Tables créées : <code>llx_debours</code>, <code>llx_debours_det</code>, <code>llx_debours_mandat</code>, <code>llx_debours_facture</code>, <code>llx_debours_paiement</code>. Elles sont '''conservées par défaut à la désinstallation''' (rétention 10 ans légale, constante <code>DEBOURS_KEEP_TABLES_ON_REMOVE=1</code>).
Tables créées<span> </span>: <code>llx_debours</code>, <code>llx_debours_det</code>, <code>llx_debours_mandat</code>, <code>llx_debours_facture</code>, <code>llx_debours_paiement</code>. Elles sont '''conservées par défaut à la désinstallation''' (rétention 10 ans légale, constante <code>DEBOURS_KEEP_TABLES_ON_REMOVE=1</code>).


Le module crée également deux dossiers : <code>documents/debourstbnetsys/temp/</code> (temporaire) et <code>documents/debourstbnetsys/mandats/</code> (modèles + scans signés).
Le module crée également deux dossiers<span> </span>: <code>documents/debourstbnetsys/temp/</code> (temporaire) et <code>documents/debourstbnetsys/mandats/</code> (modèles + scans signés).


----
----


=== 4. Configuration ===
===4. Configuration===


La page '''Accueil → Configuration → Modules → Débours TBNETSYS''' est structurée en 7 sections numérotées avec un encart d'introduction listant les '''profils types''' et un diagnostic de conformité en bas de page.
La page '''Accueil → Configuration → Modules → Débours TBNETSYS''' est structurée en 7 sections numérotées avec un encart d'introduction listant les '''profils types''' et un diagnostic de conformité en bas de page.


{| class="wikitable"
{| class="wikitable"
! Section !! Contenu !! Constantes principales
!Section!!Contenu!!Constantes principales
|-
|-
| 1. Cadre fiscal || Régime TVA (auto / franchise / dépassement) || <code>DEBOURS_VAT_REGIME</code>
|1. Cadre fiscal||Régime TVA (auto / franchise / dépassement)||<code>DEBOURS_VAT_REGIME</code>
|-
|-
| 2. Workflow || Niveau (minimal / simple / complet) + justificatif obligatoire || <code>DEBOURS_WORKFLOW_LEVEL</code>, <code>DEBOURS_REQUIRE_JUSTIF</code>
|2. Workflow||Niveau (minimal / simple / complet) + justificatif obligatoire||<code>DEBOURS_WORKFLOW_LEVEL</code>, <code>DEBOURS_REQUIRE_JUSTIF</code>
|-
|-
| 3. Refacturation client || Mode A vs Mode B, mention CGI personnalisable || <code>DEBOURS_REFACT_MODE_DEFAULT</code>, <code>DEBOURS_LEGAL_MENTION</code>
|3. Refacturation client||Mode A vs Mode B, mention CGI personnalisable||<code>DEBOURS_REFACT_MODE_DEFAULT</code>, <code>DEBOURS_LEGAL_MENTION</code>
|-
|-
| 4. Comptabilité || Compte tiers débours (467) + compte banque (512) || <code>DEBOURS_ACCOUNT_CODE</code>, <code>DEBOURS_ACCOUNT_CODE_BANK</code>
|4. Comptabilité||Compte tiers débours (467) + compte banque (512)||<code>DEBOURS_ACCOUNT_CODE</code>, <code>DEBOURS_ACCOUNT_CODE_BANK</code>
|-
|-
| 5. Rétention & désinstallation || Durée (années) et conservation des tables || <code>DEBOURS_RETENTION_YEARS</code>, <code>DEBOURS_KEEP_TABLES_ON_REMOVE</code>
|5. Rétention & désinstallation||Durée (années) et conservation des tables||<code>DEBOURS_RETENTION_YEARS</code>, <code>DEBOURS_KEEP_TABLES_ON_REMOVE</code>
|-
|-
| 6. Cotisations URSSAF || Activité, taux personnalisé, versement libératoire, CFP || <code>DEBOURS_URSSAF_ACTIVITY</code>, <code>DEBOURS_URSSAF_RATE</code>, <code>DEBOURS_URSSAF_VL</code>, <code>DEBOURS_URSSAF_CFP</code>
|6. Cotisations URSSAF||Activité, taux personnalisé, versement libératoire, CFP||<code>DEBOURS_URSSAF_ACTIVITY</code>, <code>DEBOURS_URSSAF_RATE</code>, <code>DEBOURS_URSSAF_VL</code>, <code>DEBOURS_URSSAF_CFP</code>
|-
|-
| 7. Avancé || Pagination listes (0 = illimité), <code>special_code</code> || <code>DEBOURS_LIST_LIMIT</code>, <code>DEBOURS_SPECIAL_CODE</code>
|7. Avancé||Pagination listes (0 = illimité), <code>special_code</code>||<code>DEBOURS_LIST_LIMIT</code>, <code>DEBOURS_SPECIAL_CODE</code>
|}
|}


==== Profils types ====
====Profils types====


{| class="wikitable"
{| class="wikitable"
! Profil !! Régime TVA !! Workflow !! Mode refact. !! Versement libératoire
!Profil!!Régime TVA!!Workflow!!Mode refact.!!Versement libératoire
|-
|-
| Micro-entrepreneur en franchise || <code>franchise</code> || <code>simple</code> || <code>pdf</code> || au choix
|Micro-entrepreneur en franchise||<code>franchise</code>||<code>simple</code>||<code>pdf</code>||au choix
|-
|-
| Micro-entrepreneur en dépassement || <code>depassement</code> || <code>simple</code> ou <code>complete</code> || <code>lines</code> || non
|Micro-entrepreneur en dépassement||<code>depassement</code>||<code>simple</code> ou <code>complete</code>||<code>lines</code>||non
|-
|-
| Autres régimes (BNC réel, SAS, SARL) || <code>auto</code> || <code>complete</code> || au choix || non
|Autres régimes (BNC réel, SAS, SARL)||<code>auto</code>||<code>complete</code>||au choix||non
|}
|}


Un profil par défaut peut être appliqué via le script CLI <code>apply_default_consts.php</code> (voir [[ARCHITECTURE.md#9. Commandes CLI (scripts)|ARCHITECTURE.md]]).
Un profil par défaut peut être appliqué via le script CLI <code>apply_default_consts.php</code> (voir [[ARCHITECTURE.md#9. Commandes CLI (scripts)|ARCHITECTURE.md]]).


==== Diagnostic de conformité ====
====Diagnostic de conformité====


Le bouton « Lancer diagnostic » en bas de la page exécute <code>Debours::checkCompliance()</code> sur tous les débours validés et liste les anomalies (mandat manquant, justificatif absent, marge non nulle, mention CGI vide). À utiliser en routine ou avant un export comptable.
Le bouton « Lancer diagnostic » en bas de la page exécute <code>Debours::checkCompliance()</code> sur tous les débours validés et liste les anomalies (mandat manquant, justificatif absent, marge non nulle, mention CGI vide). À utiliser en routine ou avant un export comptable.
Line 127: Line 132:
----
----


=== 5. Cycle de vie utilisateur ===
===5. Cycle de vie utilisateur===


==== 5.1 Mandats clients ====
====5.1 Mandats clients====


<pre>
<pre>
Line 135: Line 140:
</pre>
</pre>


Sur la fiche mandat (<code>debours/mandat.php</code>), un encart de '''progression à 5 étapes''' guide l'utilisateur : création → génération PDF → signature → upload du scan → activation. L'activation est '''bloquée tant qu'aucun scan signé n'est présent''' (le fichier modèle <code>{REF}_mandat.pdf</code> ne compte pas comme scan).
Sur la fiche mandat (<code>debours/mandat.php</code>), un encart de '''progression à 5 étapes''' guide l'utilisateur<span> </span>: création → génération PDF → signature → upload du scan → activation. L'activation est '''bloquée tant qu'aucun scan signé n'est présent''' (le fichier modèle <code>{REF}_mandat.pdf</code> ne compte pas comme scan).


Le scan peut être envoyé directement au client par email depuis l'interface (fiche en brouillon, email du tiers requis).
Le scan peut être envoyé directement au client par email depuis l'interface (fiche en brouillon, email du tiers requis).


==== 5.2 Débours ====
====5.2 Débours====


<pre>
<pre>
Line 147: Line 152:
</pre>
</pre>


L'état '''Annulé''' est atteignable depuis n'importe quel statut via le bouton « Annuler » (soft-delete : conserve l'historique, détache les pivots facture). Un débours annulé peut être réouvert (<code>Brouillon</code>) tant qu'aucune facture validée n'y est rattachée.
L'état '''Annulé''' est atteignable depuis n'importe quel statut via le bouton « Annuler » (soft-delete<span> </span>: conserve l'historique, détache les pivots facture). Un débours annulé peut être réouvert (<code>Brouillon</code>) tant qu'aucune facture validée n'y est rattachée.
 
====5.3 Écrans principaux====


==== 5.3 Écrans principaux ====
=====Liste des débours (<code>debours/list.php</code>)=====
Filtres<span> </span>: référence, période (date début/fin), client, libellé, montant min/max, mode de refacturation, présence d'une facture refact, statut. Pagination configurable (<code>DEBOURS_LIST_LIMIT</code>, surchargeable via <code>?limit=N</code>). Total cumulé en pied de page.


===== Liste des débours (<code>debours/list.php</code>) =====
Actions contextuelles par statut<span> </span>: Annuler (validé), Détacher (refacturé sur facture brouillon), Réouvrir (annulé), Supprimer (brouillon ou annulé).
Filtres : référence, période (date début/fin), client, libellé, montant min/max, mode de refacturation, présence d'une facture refact, statut. Pagination configurable (<code>DEBOURS_LIST_LIMIT</code>, surchargeable via <code>?limit=N</code>). Total cumulé en pied de page.


Actions contextuelles par statut : Annuler (validé), Détacher (refacturé sur facture brouillon), Réouvrir (annulé), Supprimer (brouillon ou annulé).
=====Création d'un débours (<code>debours/card.php?action=create</code>)=====
Encart d'introduction rappelant les 4 étapes (en-tête → lignes → justificatifs → validation/refacturation). Sous chaque champ<span> </span>: description du rôle, placeholder, exemples concrets. Mode de refacturation présenté en radios avec aide détaillée par option. Le mandat actif du client est rattaché automatiquement (workflow <code>complet</code>).


===== Création d'un débours (<code>debours/card.php?action=create</code>) =====
=====Saisie d'une ligne (fiche débours en brouillon)=====
Encart d'introduction rappelant les 4 étapes (en-tête → lignes → justificatifs → validation/refacturation). Sous chaque champ : description du rôle, placeholder, exemples concrets. Mode de refacturation présenté en radios avec aide détaillée par option. Le mandat actif du client est rattaché automatiquement (workflow <code>complet</code>).


===== Saisie d'une ligne (fiche débours en brouillon) =====
*Encart explicatif au-dessus du tableau, listant les '''5 règles légales''' à respecter.
* Encart explicatif au-dessus du tableau, listant les '''5 règles légales''' à respecter.
*En-têtes de colonnes avec icône info (ⓘ) et tooltip jQuery.
* En-têtes de colonnes avec icône info (ⓘ) et tooltip jQuery.
*Inputs avec labels d'aide en gris, placeholders, attributs <code>title</code>, <code>required</code> sur les champs obligatoires.
* Inputs avec labels d'aide en gris, placeholders, attributs <code>title</code>, <code>required</code> sur les champs obligatoires.
*'''JavaScript embarqué'''<span> </span>: auto-calcul <code>TTC = HT + TVA</code> tant que l'utilisateur n'a pas saisi le TTC manuellement et '''fond rouge''' signalant tout écart de marge > 0,01 €.
* '''JavaScript embarqué''' : auto-calcul <code>TTC = HT + TVA</code> tant que l'utilisateur n'a pas saisi le TTC manuellement et '''fond rouge''' signalant tout écart de marge > 0,01 €.
*Case déclarative obligatoire « Facture fournisseur au nom du client ».
* Case déclarative obligatoire « Facture fournisseur au nom du client ».
*Sélecteur de justificatif déroulant (fichiers téléversés depuis l'onglet ''Justificatifs'').
* Sélecteur de justificatif déroulant (fichiers téléversés depuis l'onglet ''Justificatifs'').


===== Boutons d'action =====
=====Boutons d'action=====
{| class="wikitable"
{| class="wikitable"
! Statut !! Boutons disponibles
!Statut!!Boutons disponibles
|-
|-
| Brouillon || Éditer en-tête · Marquer mandat reçu (workflow complet) · Valider · Supprimer
|Brouillon||Éditer en-tête · Marquer mandat reçu (workflow complet) · Valider · Supprimer
|-
|-
| Mandat reçu || Valider · Annuler
|Mandat reçu||Valider · Annuler
|-
|-
| Validé || Rattacher à facture · Annuler
|Validé||Rattacher à facture · Annuler
|-
|-
| Refacturé || Détacher (si facture brouillon)
|Refacturé||Détacher (si facture brouillon)
|-
|-
| Annulé || Réouvrir · Supprimer
|Annulé||Réouvrir · Supprimer
|}
|}


===== Rattachement à facture (<code>action=ask_attach_invoice</code>) =====
=====Rattachement à facture (<code>action=ask_attach_invoice</code>)=====
Liste paginée des factures en brouillon du client, avec bouton « Attacher » par ligne. La sélection :
Liste paginée des factures en brouillon du client, avec bouton « Attacher » par ligne. La sélection<span> </span>:
* '''Mode A''' : injecte les lignes du débours dans la facture (TVA forcée à 0, <code>special_code = 493220</code>, mention CGI préfixée à la description).
 
* '''Mode B''' : ajoute une seule ligne synthétique au montant total + génère le PDF Relevé en annexe + copie automatique des justificatifs dans le dossier ECM de la facture.
*'''Mode A'''<span> </span>: injecte les lignes du débours dans la facture (TVA forcée à 0, <code>special_code = 493220</code>, mention CGI préfixée à la description).
*'''Mode B'''<span> </span>: ajoute une seule ligne synthétique au montant total + génère le PDF Relevé en annexe + copie automatique des justificatifs dans le dossier ECM de la facture.


===== Onglets de la fiche débours =====
=====Onglets de la fiche débours=====
''Carte'' · ''Justificatifs'' (upload bloqué hors brouillon) · ''Notes'' (privée + publique) · ''Événements'' (timeline + historique des remboursements partiels).
''Carte'' · ''Justificatifs'' (upload bloqué hors brouillon) · ''Notes'' (privée + publique) · ''Événements'' (timeline + historique des remboursements partiels).


===== Sur la fiche facture client =====
=====Sur la fiche facture client=====
Le module ajoute :
Le module ajoute<span> </span>:
* Un onglet '''Débours''' listant les débours rattachés.
 
* Un bandeau « X débours rattachés. Total avancé : Y € » dans le bloc options.
*Un onglet '''Débours''' listant les débours rattachés.
* Deux boutons en barre d'actions : « Rattacher des débours existants » et « Créer un débours pour cette facture ».
*Un bandeau « X débours rattachés. Total avancé<span> </span>: Y € » dans le bloc options.
* Une '''mention CGI''' automatiquement injectée en pied de fiche dès qu'au moins une ligne porte le <code>special_code</code> débours.
*Deux boutons en barre d'actions<span> </span>: « Rattacher des débours existants » et « Créer un débours pour cette facture ».
* Les lignes débours sont surlignées (fond crème) avec la mention CGI affichée sous chaque ligne.
*Une '''mention CGI''' automatiquement injectée en pied de fiche dès qu'au moins une ligne porte le <code>special_code</code> débours.
*Les lignes débours sont surlignées (fond crème) avec la mention CGI affichée sous chaque ligne.


===== Sur la fiche tiers =====
=====Sur la fiche tiers=====
Onglet '''Débours''' + bandeau de comptage (<code>COUNT(*)</code> + <code>SUM(total_amount)</code> des débours non annulés). La suppression du tiers est '''refusée''' tant qu'il subsiste des débours actifs (statut ≠ remboursé / annulé).
Onglet '''Débours''' + bandeau de comptage (<code>COUNT(*)</code> + <code>SUM(total_amount)</code> des débours non annulés). La suppression du tiers est '''refusée''' tant qu'il subsiste des débours actifs (statut ≠ remboursé / annulé).


----
----


=== 6. Documentation complémentaire ===
===6. Documentation complémentaire===


{| class="wikitable"
{| class="wikitable"
! Fichier !! Contenu !! Audience
!Fichier!!Contenu!!Audience
|-
|-
| [[docs/conformite-cgi.md]] || Cadre légal détaillé art. 267 II 2° CGI (7 conditions cumulatives, contrôles automatiques) || Comptables / auditeurs
|[[docs/conformite-cgi.md]]||Cadre légal détaillé art. 267 II 2° CGI (7 conditions cumulatives, contrôles automatiques)||Comptables / auditeurs
|-
|-
| [[docs/workflow.md]] || Niveaux de workflow, transitions, statut Annulé || Utilisateurs / configurateurs
|[[docs/workflow.md]]||Niveaux de workflow, transitions, statut Annulé||Utilisateurs / configurateurs
|-
|-
| [[docs/exports-comptables.md]] || Format CSV registre + journal 467/512, écritures doubles, contrôle d'équilibre || Comptables / DAF
|[[docs/exports-comptables.md]]||Format CSV registre + journal 467/512, écritures doubles, contrôle d'équilibre||Comptables / DAF
|-
|-
| [[ARCHITECTURE.md]] || Schéma SQL, classes métier, hooks, triggers, scripts CLI, sécurité CSRF || Développeurs / mainteneurs
|[[ARCHITECTURE.md]]||Schéma SQL, classes métier, hooks, triggers, scripts CLI, sécurité CSRF||Développeurs / mainteneurs
|}
|}


----
----


=== 7. Internationalisation ===
===7. Internationalisation===


Fichiers <code>langs/fr_FR/debourstbnetsys.lang</code> et <code>langs/en_US/debourstbnetsys.lang</code>. '''427 clés''' par locale, '''parité parfaite''' (vérifiable via <code>comm -23 / comm -13</code> sur listes triées).
Fichiers <code>langs/fr_FR/debourstbnetsys.lang</code> et <code>langs/en_US/debourstbnetsys.lang</code>. '''427 clés''' par locale, '''parité parfaite''' (vérifiable via <code>comm -23 / comm -13</code> sur listes triées).


Familles de préfixes principales :
Familles de préfixes principales<span> </span>:


{| class="wikitable"
{| class="wikitable"
! Préfixe !! Clés !! Domaine
!Préfixe!!Clés!!Domaine
|-
|-
| <code>Debours*</code> || 180 || En-tête, workflow, UI, validation, refacturation, aides création/saisie
|<code>Debours*</code>||180||En-tête, workflow, UI, validation, refacturation, aides création/saisie
|-
|-
| <code>Mandat*</code> || 93 || Mandats client, génération PDF, signature, email
|<code>Mandat*</code>||93||Mandats client, génération PDF, signature, email
|-
|-
| <code>CaReport*</code> || 66 || Rapport CA réel, cotisations URSSAF, versement libératoire
|<code>CaReport*</code>||66||Rapport CA réel, cotisations URSSAF, versement libératoire
|-
|-
| <code>Error*</code> || 21 || Messages d'erreur conformité / workflow
|<code>Error*</code>||21||Messages d'erreur conformité / workflow
|-
|-
| <code>Urssaf*</code> || 19 || Configuration profil social
|<code>Urssaf*</code>||19||Configuration profil social
|-
|-
| <code>Releve*</code> || 9 || Relevé de débours annexe (Mode B)
|<code>Releve*</code>||9||Relevé de débours annexe (Mode B)
|-
|-
| <code>Ledger*</code> || 9 || Registre
|<code>Ledger*</code>||9||Registre
|-
|-
| <code>Attach*</code> || 8 || Rattachement à facture
|<code>Attach*</code>||8||Rattachement à facture
|-
|-
| <code>Workflow*</code> || 6 || Niveaux minimal / simple / complet
|<code>Workflow*</code>||6||Niveaux minimal / simple / complet
|-
|-
| <code>Compliance*</code> || 4 || Diagnostic
|<code>Compliance*</code>||4||Diagnostic
|}
|}


Line 253: Line 261:
----
----


=== 8. Licence ===
===8. Licence===


GPL-3.0-or-later. TBNETSYS.
GPL-3.0-or-later. TBNETSYS.
Line 259: Line 267:
----
----


== Manuel de l'utilisateur ==
==Manuel de l'utilisateur==
 
===1. À quoi ça sert===


=== 1. À quoi ça sert ===
Vous êtes micro-entrepreneur, profession libérale ou prestataire en société. Il vous arrive de '''payer un fournisseur au nom et pour le compte de votre client'''<span> </span>: frais de port, billets de train pour un déplacement client, achats spécifiques, etc.


Vous êtes micro-entrepreneur, profession libérale ou prestataire en société. Il vous arrive de '''payer un fournisseur au nom et pour le compte de votre client''' : frais de port, billets de train pour un déplacement client, achats spécifiques, etc.
Sans dispositif particulier, ces sommes<span> </span>:


Sans dispositif particulier, ces sommes :
*gonflent artificiellement votre '''chiffre d'affaires''',
* gonflent artificiellement votre '''chiffre d'affaires''',
*entrent dans le calcul des '''cotisations URSSAF''' (en micro),
* entrent dans le calcul des '''cotisations URSSAF''' (en micro),
*relèvent du '''champ TVA''' (si vous y êtes assujetti).
* relèvent du '''champ TVA''' (si vous y êtes assujetti).


Le mécanisme légal des '''débours''' (art. 267 II 2° CGI) permet d''''exclure ces sommes de votre CA et du champ TVA''' dès lors que :
Le mécanisme légal des '''débours''' (art. 267 II 2° CGI) permet d''''exclure ces sommes de votre CA et du champ TVA''' dès lors que<span> </span>:


# Le client vous a donné un '''mandat préalable écrit''' ;
#Le client vous a donné un '''mandat préalable écrit''' ;
# La facture du fournisseur est établie '''au nom du client''' ;
#La facture du fournisseur est établie '''au nom du client''' ;
# Vous refacturez '''à l'euro près''' (aucune marge) ;
#Vous refacturez '''à l'euro près''' (aucune marge) ;
# Vous accompagnez la facture client des '''justificatifs''' ;
#Vous accompagnez la facture client des '''justificatifs''' ;
# Vous portez la mention « '''Débours art. 267 II 2° CGI''' » sur la facture finale ;
#Vous portez la mention « '''Débours art. 267 II 2° CGI''' » sur la facture finale ;
# Vous comptabilisez en '''compte 467''' (autres comptes débiteurs/créditeurs) et non en charge ;
#Vous comptabilisez en '''compte 467''' (autres comptes débiteurs/créditeurs) et non en charge ;
# Vous conservez l'ensemble '''10 ans'''.
#Vous conservez l'ensemble '''10 ans'''.


Ce plugin tient le registre, applique les contrôles, génère les pièces, alimente la comptabilité et la TVA. '''Tout en respectant les 7 critères ci-dessus'''.
Ce plugin tient le registre, applique les contrôles, génère les pièces, alimente la comptabilité et la TVA. '''Tout en respectant les 7 critères ci-dessus'''.


<blockquote>'''Compatible multi-société (multi-entité Dolibarr).''' Si votre instance Dolibarr héberge plusieurs sociétés sur le même serveur (module ''Multicompany''), chaque société a son propre registre de débours, ses propres mandats clients, sa propre numérotation <code>DEB-YYYY-NNNN</code> et <code>MAN-YYYY-NNNN</code>, son propre paramétrage URSSAF et sa propre comptabilité 467. Aucune fuite entre sociétés : toutes les tables du module portent une colonne <code>entity</code> filtrée à chaque requête.</blockquote>
<blockquote>'''Compatible multi-société (multi-entité Dolibarr).''' Si votre instance Dolibarr héberge plusieurs sociétés sur le même serveur (module ''Multicompany''), chaque société a son propre registre de débours, ses propres mandats clients, sa propre numérotation <code>DEB-YYYY-NNNN</code> et <code>MAN-YYYY-NNNN</code>, son propre paramétrage URSSAF et sa propre comptabilité 467. Aucune fuite entre sociétés<span> </span>: toutes les tables du module portent une colonne <code>entity</code> filtrée à chaque requête.</blockquote>


----
----


=== 2. Premiers pas ===
===2. Premiers pas===
 
====2.1 Configuration====
[[File:Config1.png|alt=Capture ecran Config Partie 1|thumb|Capture ecran Config Partie 1]]
[[File:Config2.png|alt=Capture Ecran Config Partie 2|thumb|Capture Ecran Config Partie 2]]
[[File:Config3.png|alt=Capture Ecran Config Partie 3|thumb|Capture Ecran Config Partie 3]]
[[File:Config4.png|alt=Capture Ecran Config Partie 4|thumb|Capture Ecran Config Partie 4]]
[[File:Config5.png|alt=Capture Ecran Config Partie 5|thumb|Capture Ecran Config Partie 5]]


==== 2.1 Configuration ====


<code>Accueil → Configuration → Modules → Débours TBNETSYS → Configurer</code>
<code>Accueil → Configuration → Modules → Débours TBNETSYS → Configurer</code>


La page est organisée en '''7 sections''' avec des aides détaillées. Trois profils types sont rappelés en tête de page :
La page est organisée en '''7 sections''' avec des aides détaillées. Trois profils types sont rappelés en tête de page<span> </span>:


{| class="wikitable"
{| class="wikitable"
! Profil !! Régime TVA !! Workflow
!Profil!!Régime TVA!!Workflow
|-
|-
| Micro-franchise (débutant·e) || <code>franchise</code> || <code>simple</code>
|Micro-franchise (débutant·e)||<code>franchise</code>||<code>simple</code>
|-
|-
| Micro en dépassement seuil TVA || <code>depassement</code> || <code>simple</code> ou <code>complete</code>
|Micro en dépassement seuil TVA||<code>depassement</code>||<code>simple</code> ou <code>complete</code>
|-
|-
| Société / autre régime || <code>auto</code> || <code>simple</code> ou <code>complete</code>
|Société / autre régime||<code>auto</code>||<code>simple</code> ou <code>complete</code>
|}
|}


'''Paramètres clés à connaître''' :
'''Paramètres clés à connaître'''<span> </span>:


* '''Régime TVA''' (<code>DEBOURS_VAT_REGIME</code>) : indique si vous êtes en franchise, en dépassement, ou autre. Influe sur les rapports CA mais pas sur les débours eux-mêmes (toujours hors champ TVA).
*'''Régime TVA''' (<code>DEBOURS_VAT_REGIME</code>)<span> </span>: indique si vous êtes en franchise, en dépassement, ou autre. Influe sur les rapports CA mais pas sur les débours eux-mêmes (toujours hors champ TVA).
* '''Workflow''' (<code>DEBOURS_WORKFLOW_LEVEL</code>) :
*'''Workflow''' (<code>DEBOURS_WORKFLOW_LEVEL</code>)<span> </span>:
** <code>minimal</code> : registre seul, aucun contrôle bloquant
**<code>minimal</code><span> </span>: registre seul, aucun contrôle bloquant
** <code>simple</code> : justificatif obligatoire + marge nulle (recommandé)
**<code>simple</code><span> </span>: justificatif obligatoire + marge nulle (recommandé)
** <code>complete</code> : strict CGI, mandat actif requis, justificatif obligatoire, marge nulle (le plus sûr légalement)
**<code>complete</code><span> </span>: strict CGI, mandat actif requis, justificatif obligatoire, marge nulle (le plus sûr légalement)
* '''Mode de refacturation par défaut''' :
*'''Mode de refacturation par défaut'''<span> </span>:
** <code>lines</code> : les débours apparaissent comme lignes spéciales sur la facture client (un seul document)
**<code>lines</code><span> </span>: les débours apparaissent comme lignes spéciales sur la facture client (un seul document)
** <code>pdf</code> : un PDF « Relevé de débours » annexe est généré et joint à la facture (recommandé pour la lisibilité client)
**<code>pdf</code><span> </span>: un PDF « Relevé de débours » annexe est généré et joint à la facture (recommandé pour la lisibilité client)
* '''Conservation des tables à la désinstallation''' : laisser coché (rétention légale 10 ans).
*'''Conservation des tables à la désinstallation'''<span> </span>: laisser coché (rétention légale 10 ans).


==== 2.2 Profil URSSAF ====
====2.2 Profil URSSAF====


Section 6 du Setup : indiquez votre régime social pour que le rapport « Cotisations URSSAF estimées » applique le bon taux.
Section 6 du Setup<span> </span>: indiquez votre régime social pour que le rapport « Cotisations URSSAF estimées » applique le bon taux.


{| class="wikitable"
{| class="wikitable"
! Type d'activité !! Code interne
!Type d'activité!!Code interne
|-
|-
| Vente de marchandises (achat-revente) || <code>vente</code>
|Vente de marchandises (achat-revente)||<code>vente</code>
|-
|-
| Prestations de services BIC || <code>services_bic</code>
|Prestations de services BIC||<code>services_bic</code>
|-
|-
| Activités libérales non réglementées (BNC) || <code>bnc</code>
|Activités libérales non réglementées (BNC)||<code>bnc</code>
|-
|-
| Activités libérales CIPAV || <code>cipav</code>
|Activités libérales CIPAV||<code>cipav</code>
|-
|-
| EI/EURL régime réel || <code>ei_eurl_reel</code>
|EI/EURL régime réel||<code>ei_eurl_reel</code>
|-
|-
| SAS / SARL gérant minoritaire / majoritaire || <code>sas</code> / <code>sarl_minoritaire</code> / <code>sarl_majoritaire</code>
|SAS / SARL gérant minoritaire / majoritaire||<code>sas</code> / <code>sarl_minoritaire</code> / <code>sarl_majoritaire</code>
|-
|-
| Personnalisé || <code>custom</code> (saisie manuelle du taux)
|Personnalisé||<code>custom</code> (saisie manuelle du taux)
|}
|}


Line 342: Line 357:
----
----


=== 3. Le mandat client ===
===3. Le mandat client===
[[File:MandatsClients.png|alt=Les mandats clients|thumb|Les mandats clients]]
[[File:Fiche mandat.png|alt=Fiche Mandat|thumb|Fiche Mandat]]
[[File:Mandat signé.png|alt=Mandat signé, justificatif|thumb|Mandat Signé]]
<br />
====3.1 À quoi sert un mandat====


==== 3.1 À quoi sert un mandat ====
Un mandat est le '''document écrit préalable''' par lequel votre client vous autorise à engager des dépenses '''en son nom et pour son compte'''. C'est la '''condition n°1 des 7 critères CGI'''<span> </span>: sans mandat valide à la date de l'avance, la dépense ne peut pas être qualifiée de débours et est requalifiée en charge classique soumise à TVA et cotisations.
 
Un mandat est le '''document écrit préalable''' par lequel votre client vous autorise à engager des dépenses '''en son nom et pour son compte'''. C'est la '''condition n°1 des 7 critères CGI''' : sans mandat valide à la date de l'avance, la dépense ne peut pas être qualifiée de débours et est requalifiée en charge classique soumise à TVA et cotisations.


<blockquote>'''Un mandat couvre N débours.''' Vous ne créez pas un mandat à chaque débours. Vous le faites '''une fois par client''' (ou par mission ponctuelle si vous bornez la période).</blockquote>
<blockquote>'''Un mandat couvre N débours.''' Vous ne créez pas un mandat à chaque débours. Vous le faites '''une fois par client''' (ou par mission ponctuelle si vous bornez la période).</blockquote>


==== 3.2 Cycle de vie du mandat ====
====3.2 Cycle de vie du mandat====


<pre>
<pre>
Line 357: Line 375:


{| class="wikitable"
{| class="wikitable"
! Statut !! Sens
!Statut!!Sens
|-
|-
| '''Brouillon''' || Mandat créé mais non encore opposable. Pas de couverture.
|'''Brouillon'''||Mandat créé mais non encore opposable. Pas de couverture.
|-
|-
| '''Actif''' || Signé, opérationnel, couvre les débours dans la période de validité.
|'''Actif'''||Signé, opérationnel, couvre les débours dans la période de validité.
|-
|-
| '''Révoqué''' || Annulé. Ne couvre plus les débours postérieurs. Les débours déjà validés sous ce mandat restent valides.
|'''Révoqué'''||Annulé. Ne couvre plus les débours postérieurs. Les débours déjà validés sous ce mandat restent valides.
|}
|}


==== 3.3 Créer un mandat (workflow) ====
====3.3 Créer un mandat (workflow)====
[[File:Creer un mandat.png|alt=Créer un mandat|thumb|Créer un mandat]]
 


<code>Menu Débours → Mandats clients → Nouveau mandat</code>
<code>Menu Débours → Mandats clients → Nouveau mandat</code>


'''Étape 1. Renseigner l'en-tête''' :
'''Étape 1. Renseigner l'en-tête'''<span> </span>:
* '''Société''' : le client final
 
* '''Date de signature''' : aujourd'hui par défaut
*'''Société'''<span> </span>: le client final
* '''Début / fin de validité''' : laisser vide pour « valide depuis la signature, illimité » (cas le plus fréquent)
*'''Date de signature'''<span> </span>: aujourd'hui par défaut
* '''Portée des dépenses autorisées''' : description précise
*'''Début / fin de validité'''<span> </span>: laisser vide pour « valide depuis la signature, illimité » (cas le plus fréquent)
*'''Portée des dépenses autorisées'''<span> </span>: description précise


<blockquote>⚠️ Plus la portée est précise, plus le mandat est opposable en cas de contrôle URSSAF/fiscal. Évitez « tous frais » qui pourrait être contesté.</blockquote>
<blockquote>⚠️ Plus la portée est précise, plus le mandat est opposable en cas de contrôle URSSAF/fiscal. Évitez « tous frais » qui pourrait être contesté.</blockquote>


'''Étape 2. Cliquer « Créer »''' : le mandat est enregistré en '''Brouillon'''.
'''Étape 2. Cliquer « Créer »'''<span> </span>: le mandat est enregistré en '''Brouillon'''.


'''Étape 3. Générer le PDF''' : sur la fiche, cliquer '''« Générer le PDF »'''. Un document à signer est créé avec votre logo société, les coordonnées du mandant et du mandataire, l'objet du mandat, la portée, la période de validité et deux cadres de signature.
'''Étape 3. Générer le PDF'''<span> </span>: sur la fiche, cliquer '''« Générer le PDF »'''. Un document à signer est créé avec votre logo société, les coordonnées du mandant et du mandataire, l'objet du mandat, la portée, la période de validité et deux cadres de signature.


'''Étape 4. Faire signer le client''' (papier ou signature électronique).
'''Étape 4. Faire signer le client''' (papier ou signature électronique).
Line 386: Line 407:
'''Étape 5. Téléverser le scan signé''' dans l'onglet '''« Justificatif signé »'''.
'''Étape 5. Téléverser le scan signé''' dans l'onglet '''« Justificatif signé »'''.


'''Étape 6. Activer le mandat''' : le bouton « Activer » apparaît dès qu'un scan signé est présent. Cliquer dessus → le mandat passe en '''Actif''' et couvre désormais les débours.
'''Étape 6. Activer le mandat'''<span> </span>: le bouton « Activer » apparaît dès qu'un scan signé est présent. Cliquer dessus → le mandat passe en '''Actif''' et couvre désormais les débours.


L'encart bleu de progression sur la fiche mandat affiche les étapes restantes avec des coches qui s'allument au fur et à mesure.
L'encart bleu de progression sur la fiche mandat affiche les étapes restantes avec des coches qui s'allument au fur et à mesure.


==== 3.4 Révoquer un mandat ====
====3.4 Révoquer un mandat====


Sur la fiche d'un mandat actif : bouton '''« Révoquer »'''. Le mandat passe en '''Révoqué''' et ne couvre plus les débours postérieurs. Les débours déjà validés restent valides.
Sur la fiche d'un mandat actif<span> </span>: bouton '''« Révoquer »'''. Le mandat passe en '''Révoqué''' et ne couvre plus les débours postérieurs. Les débours déjà validés restent valides.


==== 3.5 Supprimer un mandat ====
====3.5 Supprimer un mandat====


{| class="wikitable"
{| class="wikitable"
! Statut !! Suppression
!Statut!!Suppression
|-
|-
| Brouillon || ✅ Autorisée
|Brouillon||✅ Autorisée
|-
|-
| Actif || ❌ Bloquée. Révoquez d'abord
|Actif||❌ Bloquée. Révoquez d'abord
|-
|-
| Révoqué '''sans''' débours lié || ✅ Autorisée (cleanup)
|Révoqué '''sans''' débours lié||✅ Autorisée (cleanup)
|-
|-
| Révoqué '''avec''' débours lié || ❌ Bloquée (audit trail à conserver 10 ans)
|Révoqué '''avec''' débours lié||❌ Bloquée (audit trail à conserver 10 ans)
|}
|}


----
----


=== 4. Le débours ===
===4. Le débours===


==== 4.1 Cycle de vie du débours ====
====4.1 Cycle de vie du débours====


<pre>
<pre>
Line 421: Line 442:
<nowiki>*</nowiki> uniquement en workflow <code>complete</code>
<nowiki>*</nowiki> uniquement en workflow <code>complete</code>


==== 4.2 Créer un débours ====
====4.2 Créer un débours====
[[File:Créer un débours.png|alt=Créer un débours|thumb|Créer un débours]]
[[File:Capture Ecran 1 fiche débours.png|alt=Capture Ecran 1 fiche débours|thumb|Capture Ecran 1 fiche débours]]
[[File:Capture Ecran 2 Fiche débours.png|alt=Capture Ecran 2 Fiche débours|thumb|Capture Ecran 2 Fiche débours]]
 


<code>Menu Débours → Nouveau débours</code>
<code>Menu Débours → Nouveau débours</code>


'''En-tête''' :
'''En-tête'''<span> </span>:
* '''Société''' : le client final
 
* '''Libellé''' : description courte (ex. « Frais de port commande #1234 »)
*'''Société'''<span> </span>: le client final
* '''Date de l'avance''' : date à laquelle vous avez payé le fournisseur. Détermine la couverture par mandat en workflow complet.
*'''Libellé'''<span> </span>: description courte (ex. « Frais de port commande #1234 »)
* '''Mode de refacturation''' : <code>lignes</code> (sur la facture) ou <code>PDF annexe</code> (relevé séparé joint)
*'''Date de l'avance'''<span> </span>: date à laquelle vous avez payé le fournisseur. Détermine la couverture par mandat en workflow complet.
*'''Mode de refacturation'''<span> </span>: <code>lignes</code> (sur la facture) ou <code>PDF annexe</code> (relevé séparé joint)


Cliquer '''« Créer »''' → débours en Brouillon.
Cliquer '''« Créer »''' → débours en Brouillon.


==== 4.3 Saisir les lignes ====
====4.3 Saisir les lignes====


Sur la fiche, en bas, le tableau des lignes apparaît. Pour chaque dépense engagée :
Sur la fiche, en bas, le tableau des lignes apparaît. Pour chaque dépense engagée<span> </span>:


{| class="wikitable"
{| class="wikitable"
! Champ !! Contenu
!Champ!!Contenu
|-
|-
| Description || Ex. « Frais de port Chronopost »
|Description||Ex. « Frais de port Chronopost »
|-
|-
| Fournisseur || Ex. « La Poste »
|Fournisseur||Ex. « La Poste »
|-
|-
| N° facture fournisseur || Référence ou ticket
|N° facture fournisseur||Référence ou ticket
|-
|-
| Date facture fournisseur || Date sur la facture
|Date facture fournisseur||Date sur la facture
|-
|-
| HT, TVA, TTC || Doivent vérifier '''HT + TVA = TTC''' (marge nulle)
|HT, TVA, TTC||Doivent vérifier '''HT + TVA = TTC''' (marge nulle)
|-
|-
| Justificatif || Fichier ECM (à téléverser dans l'onglet Justificatifs)
|Justificatif||Fichier ECM (à téléverser dans l'onglet Justificatifs)
|-
|-
| ☐ « Facture fournisseur au nom du client » || '''Case obligatoire à cocher'''
|☐ « Facture fournisseur au nom du client »||'''Case obligatoire à cocher'''
|}
|}


<blockquote>⚠️ Le calcul '''HT + TVA = TTC''' est vérifié à la saisie : si l'écart dépasse 1 centime, le champ TTC se met en rouge et la ligne est refusée à l'enregistrement (refacturation à l'identique imposée par la loi).</blockquote>
<blockquote>⚠️ Le calcul '''HT + TVA = TTC''' est vérifié à la saisie<span> </span>: si l'écart dépasse 1 centime, le champ TTC se met en rouge et la ligne est refusée à l'enregistrement (refacturation à l'identique imposée par la loi).</blockquote>


==== 4.4 Téléverser les justificatifs ====
====4.4 Téléverser les justificatifs====


Onglet '''« Justificatifs »''' sur la fiche débours. Déposer les scans des factures fournisseurs (au nom du client), puis revenir sur la fiche et '''sélectionner''' chaque fichier dans la liste déroulante de la ligne correspondante.
Onglet '''« Justificatifs »''' sur la fiche débours. Déposer les scans des factures fournisseurs (au nom du client), puis revenir sur la fiche et '''sélectionner''' chaque fichier dans la liste déroulante de la ligne correspondante.
Line 463: Line 489:
<blockquote>Les fichiers sont stockés dans <code>documents/debourstbnetsys/{REF_DEBOURS}/</code>.</blockquote>
<blockquote>Les fichiers sont stockés dans <code>documents/debourstbnetsys/{REF_DEBOURS}/</code>.</blockquote>


==== 4.5 Modifier l'en-tête ====
====4.5 Modifier l'en-tête====


Sur la fiche d'un débours en '''Brouillon''', le bouton '''« Modifier l'en-tête »''' ouvre un formulaire d'édition (client, libellé, date, mode). Disponible uniquement tant que le débours est en brouillon.
Sur la fiche d'un débours en '''Brouillon''', le bouton '''« Modifier l'en-tête »''' ouvre un formulaire d'édition (client, libellé, date, mode). Disponible uniquement tant que le débours est en brouillon.


==== 4.6 Valider le débours ====
====4.6 Valider le débours====


Bouton '''« Valider le débours »''' sur la fiche. Le système contrôle automatiquement :
Bouton '''« Valider le débours »''' sur la fiche. Le système contrôle automatiquement<span> </span>:


{| class="wikitable"
{| class="wikitable"
! Contrôle !! Niveau
!Contrôle!!Niveau
|-
|-
| Mandat actif couvrant <code>date_debours</code> || workflow <code>complete</code> uniquement
|Mandat actif couvrant <code>date_debours</code>||workflow <code>complete</code> uniquement
|-
|-
| Justificatif présent sur chaque ligne || workflow <code>simple</code> et <code>complete</code>
|Justificatif présent sur chaque ligne||workflow <code>simple</code> et <code>complete</code>
|-
|-
| Case « facture au nom du client » cochée || tous
|Case « facture au nom du client » cochée||tous
|-
|-
| Marge nulle (HT+VAT=TTC) ligne par ligne || tous
|Marge nulle (HT+VAT=TTC) ligne par ligne||tous
|-
|-
| Marge nulle globale || tous
|Marge nulle globale||tous
|-
|-
| Mention CGI configurée non vide || tous
|Mention CGI configurée non vide||tous
|}
|}


Si une non-conformité est détectée → bandeau rouge en haut de la fiche listant les anomalies → la validation est refusée. Une fois tout corrigé → débours passe en '''Validé'''.
Si une non-conformité est détectée → bandeau rouge en haut de la fiche listant les anomalies → la validation est refusée. Une fois tout corrigé → débours passe en '''Validé'''.


<blockquote>En workflow complet : si vous avez utilisé le bouton « Mandat reçu » avant Valider, le débours passe d'abord en statut intermédiaire '''Mandat reçu''' (1) puis en '''Validé''' (2).</blockquote>
<blockquote>En workflow complet<span> </span>: si vous avez utilisé le bouton « Mandat reçu » avant Valider, le débours passe d'abord en statut intermédiaire '''Mandat reçu''' (1) puis en '''Validé''' (2).</blockquote>
 
====4.7 Rattacher à une facture client====


==== 4.7 Rattacher à une facture client ====


Sur un débours '''Validé''', le bouton '''« Rattacher à une facture client »''' ouvre un sélecteur paginé des factures du client. Cocher la facture cible (qui doit être en '''Brouillon''').
Sur un débours '''Validé''', le bouton '''« Rattacher à une facture client »''' ouvre un sélecteur paginé des factures du client. Cocher la facture cible (qui doit être en '''Brouillon''').


Selon le mode de refacturation :
Selon le mode de refacturation<span> </span>:


* '''Mode <code>lignes</code>''' : chaque ligne du débours est insérée comme ligne facture avec :
*'''Mode <code>lignes</code>'''<span> </span>: chaque ligne du débours est insérée comme ligne facture avec<span> </span>:
** <code>tva_tx = 0</code> (toujours hors TVA)
**<code>tva_tx = 0</code> (toujours hors TVA)
** <code>special_code = 493220</code> (exclut la ligne du calcul du CA réel)
**<code>special_code = 493220</code> (exclut la ligne du calcul du CA réel)
** Description préfixée « [Débours] » + mention CGI
**Description préfixée « [Débours] » + mention CGI


* '''Mode <code>PDF annexe</code>''' :
*'''Mode <code>PDF annexe</code>'''<span> </span>:
*# Une '''ligne récap''' est ajoutée en pied de facture (« Débours - voir relevé annexe (réf …) »), même <code>special_code</code> et TVA 0.
*#Une '''ligne récap''' est ajoutée en pied de facture (« Débours - voir relevé annexe (réf …) »), même <code>special_code</code> et TVA 0.
*# Le '''PDF Relevé de débours''' est généré (TCPDF, A4) et copié dans <code>documents/facture/{REF_FACTURE}/{REF_DEBOURS}.pdf</code>.
*#Le '''PDF Relevé de débours''' est généré (TCPDF, A4) et copié dans <code>documents/facture/{REF_FACTURE}/{REF_DEBOURS}.pdf</code>.
*# Les '''justificatifs''' (factures fournisseurs scannées) sont également copiés à côté du relevé.
*#Les '''justificatifs''' (factures fournisseurs scannées) sont également copiés à côté du relevé.


Le débours passe automatiquement en '''Refacturé'''.
Le débours passe automatiquement en '''Refacturé'''.


==== 4.8 Détacher ====
====4.8 Détacher====


Tant que la facture est en '''Brouillon''', le bouton '''« Détacher de la facture »''' est disponible sur le débours Refacturé. Détache → débours retombe en '''Validé''', la ligne est retirée de la facture, le PDF/justifs annexes sont supprimés.
Tant que la facture est en '''Brouillon''', le bouton '''« Détacher de la facture »''' est disponible sur le débours Refacturé. Détache → débours retombe en '''Validé''', la ligne est retirée de la facture, le PDF/justifs annexes sont supprimés.
Line 515: Line 542:
<blockquote>Si la facture est '''validée''' (numéro légal figé), le détachement est refusé. Voir section 5 « Verrouillage légal ».</blockquote>
<blockquote>Si la facture est '''validée''' (numéro légal figé), le détachement est refusé. Voir section 5 « Verrouillage légal ».</blockquote>


==== 4.9 Remboursement (Refacturé → Remboursé) ====
====4.9 Remboursement (Refacturé → Remboursé)====


'''Mode automatique recommandé''' : enregistrez le paiement de la facture côté Dolibarr (<code>Compta → Factures clients → Paiements</code>). Le trigger <code>BILL_PAYED</code> calcule la quote-part au prorata et alimente automatiquement le débours. Si le total est atteint → débours en '''Remboursé'''.
'''Mode automatique recommandé'''<span> </span>: enregistrez le paiement de la facture côté Dolibarr (<code>Compta → Factures clients → Paiements</code>). Le trigger <code>BILL_PAYED</code> calcule la quote-part au prorata et alimente automatiquement le débours. Si le total est atteint → débours en '''Remboursé'''.


<blockquote>Il n'y a '''pas de bouton manuel''' « Marquer remboursé » : un seul chemin, pas de risque de double-comptage.</blockquote>
<blockquote>Il n'y a '''pas de bouton manuel''' « Marquer remboursé »<span> </span>: un seul chemin, pas de risque de double-comptage.</blockquote>


==== 4.10 Annuler / Supprimer ====
====4.10 Annuler / Supprimer====


{| class="wikitable"
{| class="wikitable"
! Action !! Quand !! Effet
!Action!!Quand!!Effet
|-
|-
| '''Annuler''' || Brouillon → Refacturé (sauf si facture validée) || Soft-delete : statut <code>Annulé</code>, pivots facture supprimés
|'''Annuler'''||Brouillon → Refacturé (sauf si facture validée)||Soft-delete<span> </span>: statut <code>Annulé</code>, pivots facture supprimés
|-
|-
| '''Rouvrir''' || Annulé || Repasse en Brouillon
|'''Rouvrir'''||Annulé||Repasse en Brouillon
|-
|-
| '''Supprimer''' || Brouillon ou Annulé || Suppression définitive (refusé si statut >= Validé)
|'''Supprimer'''||Brouillon ou Annulé||Suppression définitive (refusé si statut >= Validé)
|}
|}


----
----


=== 5. Verrouillage légal automatique ===
===5. Verrouillage légal automatique===


À chaque jalon du cycle de vie, le système verrouille les modifications '''incompatibles avec la conformité légale'''.
À chaque jalon du cycle de vie, le système verrouille les modifications '''incompatibles avec la conformité légale'''.


==== 5.1 Verrouillage des justificatifs débours ====
====5.1 Verrouillage des justificatifs débours====


{| class="wikitable"
{| class="wikitable"
! Statut débours !! Upload !! Suppression
!Statut débours!!Upload!!Suppression
|-
|-
| Brouillon || ✅ || ✅
|Brouillon||✅||✅
|-
|-
| Mandat reçu / Validé / Refacturé / Remboursé / Annulé || ❌ || ❌
|Mandat reçu / Validé / Refacturé / Remboursé / Annulé||❌||❌
|}
|}


<blockquote>Le bandeau orange « ???? Justificatifs verrouillés » apparaît dans l'onglet Justificatifs et explique comment débloquer : annuler puis ré-ouvrir le débours pour repasser en brouillon.</blockquote>
<blockquote>Le bandeau orange « ???? Justificatifs verrouillés » apparaît dans l'onglet Justificatifs et explique comment débloquer<span> </span>: annuler puis ré-ouvrir le débours pour repasser en brouillon.</blockquote>


==== 5.2 Verrouillage des pièces de mandat ====
====5.2 Verrouillage des pièces de mandat====


{| class="wikitable"
{| class="wikitable"
! Statut mandat !! Upload scan !! Suppression scan
!Statut mandat!!Upload scan!!Suppression scan
|-
|-
| Brouillon || ✅ || ✅
|Brouillon||✅||✅
|-
|-
| Actif || ❌ || ❌
|Actif||❌||❌
|-
|-
| Révoqué || ❌ || ✅ (cleanup)
|Révoqué||❌||✅ (cleanup)
|}
|}


==== 5.3 Verrouillage facture validée ====
====5.3 Verrouillage facture validée====


Lorsqu'un débours est '''Refacturé''' sur une facture '''validée''' dans Dolibarr (numéro légal figé) :
Lorsqu'un débours est '''Refacturé''' sur une facture '''validée''' dans Dolibarr (numéro légal figé)<span> </span>:


* Toute modification du débours est refusée (cancel, edit, add_line, delete_line, etc.)
*Toute modification du débours est refusée (cancel, edit, add_line, delete_line, etc.)
* Un bandeau orange « ???? Débours verrouillé (facture validée) » apparaît sur la fiche, expliquant les '''deux seules sorties''' :
*Un bandeau orange « ???? Débours verrouillé (facture validée) » apparaît sur la fiche, expliquant les '''deux seules sorties'''<span> </span>:
*# '''Supprimer la facture''' côté Dolibarr (autorisé seulement si c'est la dernière émise) → trigger <code>BILL_DELETE</code> → débours rebascule automatiquement en '''Validé''', prêt à être ré-attaché ailleurs ou annulé.
*#'''Supprimer la facture''' côté Dolibarr (autorisé seulement si c'est la dernière émise) → trigger <code>BILL_DELETE</code> → débours rebascule automatiquement en '''Validé''', prêt à être ré-attaché ailleurs ou annulé.
*# '''Émettre une facture d'avoir''' annulant celle-ci.
*#'''Émettre une facture d'avoir''' annulant celle-ci.


Aucun raccourci. C'est la garantie que les données débours '''figent au moment où la facture client est légalement émise''', conformément au CGI.
Aucun raccourci. C'est la garantie que les données débours '''figent au moment où la facture client est légalement émise''', conformément au CGI.
Line 576: Line 603:
----
----


=== 6. Reports et exports ===
===6. Reports et exports===


==== 6.1 Registre des débours ====
====6.1 Registre des débours====


<code>Menu Débours → Registre des débours</code>
<code>Menu Débours → Registre des débours</code>


Filtre par période + statut. Liste exportable en CSV avec : référence, date, client, libellé, fournisseur, n° facture fournisseur, montant TTC, statut, facture refact, date remboursement.
Filtre par période + statut. Liste exportable en CSV avec<span> </span>: référence, date, client, libellé, fournisseur, n° facture fournisseur, montant TTC, statut, facture refact, date remboursement.


À conserver / archiver chaque année.
À conserver / archiver chaque année.


==== 6.2 Journal comptable 467 ====
====6.2 Journal comptable 467====


<code>Menu Débours → Export journal 467</code>
<code>Menu Débours → Export journal 467</code>


Génère les écritures comptables :
Génère les écritures comptables<span> </span>:


<pre>
<pre>
Line 601: Line 628:
Contrôle d'équilibre (somme débits = somme crédits) affiché en bas de l'écran. CSV exportable pour intégration en compta.
Contrôle d'équilibre (somme débits = somme crédits) affiché en bas de l'écran. CSV exportable pour intégration en compta.


==== 6.3 Rapport CA / CA réel ====
====6.3 Rapport CA / CA réel====


<code>Menu Compta → Rapport CA débours</code>
<code>Menu Compta → Rapport CA débours</code>


Compare votre CA brut Dolibarr (somme totale des factures) avec votre '''CA réel''' (CA brut moins les lignes débours). Ajoute :
Compare votre CA brut Dolibarr (somme totale des factures) avec votre '''CA réel''' (CA brut moins les lignes débours). Ajoute<span> </span>:


* Cotisations URSSAF estimées au taux de votre activité
*Cotisations URSSAF estimées au taux de votre activité
* IR sur versement libératoire si applicable
*IR sur versement libératoire si applicable
* Pondération par profil de société (SAS, SARL gérant majoritaire/minoritaire avec messages explicatifs)
*Pondération par profil de société (SAS, SARL gérant majoritaire/minoritaire avec messages explicatifs)


Filtres période disponibles. Rapport mis à jour à chaque accès.
Filtres période disponibles. Rapport mis à jour à chaque accès.
Line 615: Line 642:
----
----


=== 7. Particularités micro-entrepreneur ===
===7. Particularités micro-entrepreneur===


==== 7.1 Franchise en base ====
====7.1 Franchise en base====


Vous êtes sous le seuil TVA. Vos factures n'ont '''pas''' de TVA à reverser. Les débours :
Vous êtes sous le seuil TVA. Vos factures n'ont '''pas''' de TVA à reverser. Les débours<span> </span>:


* restent '''hors champ TVA''' comme partout ailleurs (la TVA fournisseur, payée par vous au nom du client, n'est ni récupérée ni refacturée. Elle « passe » via le total TTC)
*restent '''hors champ TVA''' comme partout ailleurs (la TVA fournisseur, payée par vous au nom du client, n'est ni récupérée ni refacturée. Elle « passe » via le total TTC)
* sont '''exclus du CA''' déclaré à l'URSSAF
*sont '''exclus du CA''' déclaré à l'URSSAF
* n'entrent pas dans le calcul des cotisations sociales
*n'entrent pas dans le calcul des cotisations sociales


==== 7.2 Versement libératoire IR ====
====7.2 Versement libératoire IR====


Si vous avez opté pour le versement libératoire (option choisie au départ), le pourcentage IR s'applique sur le CA. Avec les débours bien gérés, cette base est '''réduite d'autant'''.
Si vous avez opté pour le versement libératoire (option choisie au départ), le pourcentage IR s'applique sur le CA. Avec les débours bien gérés, cette base est '''réduite d'autant'''.


==== 7.3 Que se passe-t-il si je dépasse les seuils micro ? ====
====7.3 Que se passe-t-il si je dépasse les seuils micro ?====


* Seuil de '''CA''' (pour 2026 : 77 700 € en services BNC, 188 700 € en vente). Calculé sur le CA '''réel''' (hors débours). Le rapport intègre les débours dans son calcul.
*Seuil de '''CA''' (pour 2026<span> </span>: 77 700 € en services BNC, 188 700 € en vente). Calculé sur le CA '''réel''' (hors débours). Le rapport intègre les débours dans son calcul.
* Seuil '''TVA''' (39 100 € en services, 101 000 € en vente) : passage en TVA. Le module continue de gérer les débours hors TVA. Vous facturez votre prestation avec TVA, les débours en sont exclus comme avant.
*Seuil '''TVA''' (39 100 € en services, 101 000 € en vente)<span> </span>: passage en TVA. Le module continue de gérer les débours hors TVA. Vous facturez votre prestation avec TVA, les débours en sont exclus comme avant.


----
----


=== 8. FAQ ===
===8. FAQ===
 
'''Q<span> </span>: Je viens de créer un mandat, je peux déjà créer un débours dessus ?'''


'''Q : Je viens de créer un mandat, je peux déjà créer un débours dessus ?'''
R<span> </span>: Pas en workflow complet. Le mandat doit d'abord être '''activé''' (PDF généré + scan signé téléversé + bouton Activer cliqué). En workflows simple/minimal, ce n'est pas bloqué mais ce n'est pas conforme CGI<span> </span>: faites-le quand même.


R : Pas en workflow complet. Le mandat doit d'abord être '''activé''' (PDF généré + scan signé téléversé + bouton Activer cliqué). En workflows simple/minimal, ce n'est pas bloqué mais ce n'est pas conforme CGI : faites-le quand même.
'''Q<span> </span>: Le mandat est dans le passé, le débours est aujourd'hui. C'est OK ?'''


'''Q : Le mandat est dans le passé, le débours est aujourd'hui. C'est OK ?'''
R<span> </span>: Oui. Le mandat couvre une '''période'''. Tant que <code>date_debours</code> est dans la période de validité (<code>date_validity_start</code> ≤ date ≤ <code>date_validity_end</code> ou fin vide = illimité), le débours est couvert.


R : Oui. Le mandat couvre une '''période'''. Tant que <code>date_debours</code> est dans la période de validité (<code>date_validity_start</code> ≤ date ≤ <code>date_validity_end</code> ou fin vide = illimité), le débours est couvert.
'''Q<span> </span>: J'ai créé un débours, puis activé le mandat. Le débours dit toujours « mandat manquant ». Bug ?'''


'''Q : J'ai créé un débours, puis activé le mandat. Le débours dit toujours « mandat manquant ». Bug ?'''
R<span> </span>: Non, c'est l'auto-réparation qui gère ça. Au prochain <code>checkCompliance()</code> (par exemple en chargeant la fiche débours), le système ré-essaie automatiquement <code>getActiveForCompany()</code> et rattache le mandat actif.


R : Non, c'est l'auto-réparation qui gère ça. Au prochain <code>checkCompliance()</code> (par exemple en chargeant la fiche débours), le système ré-essaie automatiquement <code>getActiveForCompany()</code> et rattache le mandat actif.
'''Q<span> </span>: J'ai fait une erreur dans la date d'un débours validé. Comment corriger ?'''


'''Q : J'ai fait une erreur dans la date d'un débours validé. Comment corriger ?'''
R<span> </span>: Annuler le débours → Rouvrir → Modifier l'en-tête → re-Valider. Si le débours était rattaché à une facture validée, vous devez d'abord supprimer/annuler la facture côté Dolibarr.


R : Annuler le débours → Rouvrir → Modifier l'en-tête → re-Valider. Si le débours était rattaché à une facture validée, vous devez d'abord supprimer/annuler la facture côté Dolibarr.
'''Q<span> </span>: Je veux supprimer un mandat révoqué.'''


'''Q : Je veux supprimer un mandat révoqué.'''
R<span> </span>: Possible '''si aucun débours n'y est lié''' (audit trail à conserver). Sinon, le mandat reste en base sous statut Révoqué.


R : Possible '''si aucun débours n'y est lié''' (audit trail à conserver). Sinon, le mandat reste en base sous statut Révoqué.
'''Q<span> </span>: Mon client refuse de signer le mandat. Que faire ?'''


'''Q : Mon client refuse de signer le mandat. Que faire ?'''
R<span> </span>: Sans mandat signé, vous ne pouvez pas qualifier la dépense de débours selon l'art. 267 II 2°. Solutions<span> </span>:


R : Sans mandat signé, vous ne pouvez pas qualifier la dépense de débours selon l'art. 267 II 2°. Solutions :
*Refacturer la dépense en '''prestation classique''' (avec marge, soumise à TVA et cotisations). Pas un débours.
* Refacturer la dépense en '''prestation classique''' (avec marge, soumise à TVA et cotisations). Pas un débours.
*Demander à votre client de payer directement le fournisseur. Vous n'avancez plus rien.
* Demander à votre client de payer directement le fournisseur. Vous n'avancez plus rien.


'''Q : le débours passe en Remboursé tout seul ?'''
'''Q<span> </span>: le débours passe en Remboursé tout seul ?'''


R : Oui. Enregistrez le paiement de la facture côté Dolibarr → le débours passe en Remboursé tout seul.
R<span> </span>: Oui. Enregistrez le paiement de la facture côté Dolibarr → le débours passe en Remboursé tout seul.


'''Q : Mon dossier sur disque contient encore un fichier <code>*_(PROV339).pdf</code>, c'est un bug ?'''
'''Q<span> </span>: Mon dossier sur disque contient encore un fichier <code>*_(PROV339).pdf</code>, c'est un bug ?'''


R : Non. C'est un ancien rattachement fait avant la simplification du nommage. Les nouveaux rattachements utilisent <code>{REF_DEBOURS}.pdf</code> sans référence facture. Les anciens fichiers conservent leur ancien nom (cosmétique uniquement, la facture validée ne peut plus être modifiée légalement).
R<span> </span>: Non. C'est un ancien rattachement fait avant la simplification du nommage. Les nouveaux rattachements utilisent <code>{REF_DEBOURS}.pdf</code> sans référence facture. Les anciens fichiers conservent leur ancien nom (cosmétique uniquement, la facture validée ne peut plus être modifiée légalement).


----
----


=== 9. Glossaire ===
===9. Glossaire===


{| class="wikitable"
{| class="wikitable"
! Terme !! Sens
!Terme!!Sens
|-
|-
| '''Débours''' || Somme avancée par l'entrepreneur au nom et pour le compte du client, refacturée à l'identique.
|'''Débours'''||Somme avancée par l'entrepreneur au nom et pour le compte du client, refacturée à l'identique.
|-
|-
| '''Mandat''' || Document écrit préalable autorisant l'entrepreneur à engager des dépenses au nom du client.
|'''Mandat'''||Document écrit préalable autorisant l'entrepreneur à engager des dépenses au nom du client.
|-
|-
| '''Compte 467''' || Compte tiers comptable pour les avances pour le compte de tiers (PCG).
|'''Compte 467'''||Compte tiers comptable pour les avances pour le compte de tiers (PCG).
|-
|-
| '''CGI''' || Code Général des Impôts (article 267 II 2° pour les débours).
|'''CGI'''||Code Général des Impôts (article 267 II 2° pour les débours).
|-
|-
| '''special_code 493220''' || Marqueur Dolibarr identifiant les lignes débours, pour les exclure du calcul du CA réel.
|'''special_code 493220'''||Marqueur Dolibarr identifiant les lignes débours, pour les exclure du calcul du CA réel.
|-
|-
| '''Mode A / lignes''' || Refacturation par lignes spéciales sur la facture client.
|'''Mode A / lignes'''||Refacturation par lignes spéciales sur la facture client.
|-
|-
| '''Mode B / PDF annexe''' || Refacturation par PDF Relevé de débours joint à la facture, plus une ligne récap.
|'''Mode B / PDF annexe'''||Refacturation par PDF Relevé de débours joint à la facture, plus une ligne récap.
|-
|-
| '''Workflow simple''' || Justificatifs + marge nulle obligatoires, pas de mandat strict.
|'''Workflow simple'''||Justificatifs + marge nulle obligatoires, pas de mandat strict.
|-
|-
| '''Workflow complet''' || Strict CGI : mandat actif requis.
|'''Workflow complet'''||Strict CGI<span> </span>: mandat actif requis.
|}
|}


----
----


=== 10. Aide et contact ===
===10. Aide et contact===


* '''Setup → Diagnostic conformité''' : audit automatique de tous vos débours validés.
*'''Setup → Diagnostic conformité'''<span> </span>: audit automatique de tous vos débours validés.
* '''Documentation technique''' : voir <code>docs/</code> du module (<code>conformite-cgi.md</code>, <code>workflow.md</code>, <code>exports-comptables.md</code>).
*'''Documentation technique'''<span> </span>: voir <code>docs/</code> du module (<code>conformite-cgi.md</code>, <code>workflow.md</code>, <code>exports-comptables.md</code>).
* '''Mainteneur''' : TBNETSYS (Voir www.tbnetsys.fr, page contact)
*'''Mainteneur'''<span> </span>: TBNETSYS (Voir www.tbnetsys.fr, page contact)


Module sous licence GPL-3.0-or-later.
Module sous licence GPL-3.0-or-later.

Latest revision as of 08:51, 12 May 2026


Plugin Dolibarr debourstbnetsys

Module de TBNETSYS pour Dolibarr 22.0.3+ (PHP 8.2+, recommandé : PHP 8.4) : gestion des frais de débours du micro-entrepreneur, conformément à l'article 267 II 2° du Code Général des Impôts.

  • Module ID : 493220
  • Famille : Facturation (billing)
  • Dépend de : modFacture, modSociete, modECM
  • Version : voir lib/debourstbnetsys.version.php
  • Licence : GPL-3.0-or-later

Pour la documentation technique interne (schéma SQL, classes, hooks, triggers, scripts CLI), voir ARCHITECTURE.md. Le plugin dispose d'une aide intégrée.


Table des matières


Installateur / intégrateur / dev

1. Cadre légal

Un débours est une somme avancée par l'entrepreneur au nom et pour le compte du client, refacturée à l'identique. Pour être qualifiée de débours, la dépense doit cumulativement :

  1. faire l'objet d'un mandat préalable écrit du client,
  2. être facturée par le fournisseur au nom du client (pas de l'entrepreneur),
  3. être refacturée à l'euro près (aucune marge),
  4. être détaillée et accompagnée des justificatifs sur la facture finale,
  5. porter la mention « Débours art. 267 II 2° CGI »,
  6. être comptabilisée en compte 467 (autres comptes débiteurs/créditeurs), pas en charge,
  7. être conservée 10 ans (rétention légale).

Conséquences : ces sommes sont hors champ de la TVA, exclues du chiffre d'affaires et n'entrent pas dans le calcul des cotisations sociales du micro-entrepreneur.

Le module garantit ces sept conditions de manière automatisée. Voir le diagnostic de conformité de la page de configuration.

2. Fonctionnalités

  • Tenue d'un registre des débours (rétention 10 ans, export CSV).
  • Gestion des mandats clients (signature, dates de validité, scan signé, révocation).
  • Justificatifs rattachés ligne à ligne (ECM Dolibarr).
  • Refacturation au choix :
    • Mode A, lignes spéciales : injection dans la facture Dolibarr avec special_code = 493220, exclues du calcul du CA réel.
    • Mode B, PDF annexe : « Relevé de débours » (TCPDF) joint à la facture, avec mention CGI proéminente.
  • Workflow paramétrable : minimal / simple / complet (avec mandat).
  • Suivi du remboursement client : rapprochement automatique au prorata des paiements de facture.
  • Export du journal comptable compte 467/512 (compatible module Accounting Dolibarr) avec contrôle d'équilibre débit/crédit.
  • Rapport de chiffre d'affaires réel + estimation des cotisations URSSAF (configurable selon activité, versement libératoire, CFP).
  • Diagnostic automatique de conformité : mandat, justificatif, marge nulle, mention CGI.
  • Verrouillage légal : un débours rattaché à une facture validée ne peut plus être modifié ni hard-deleté (cancel() exigé).

3. Installation

  1. Cloner ou copier le dossier dans htdocs/custom/debourstbnetsys/.
  2. Activer le module dans Accueil → Configuration → Modules (rubrique « Facturation »).
  3. Configurer dans Accueil → Configuration → Modules → Débours TBNETSYS.

Tables créées : llx_debours, llx_debours_det, llx_debours_mandat, llx_debours_facture, llx_debours_paiement. Elles sont conservées par défaut à la désinstallation (rétention 10 ans légale, constante DEBOURS_KEEP_TABLES_ON_REMOVE=1).

Le module crée également deux dossiers : documents/debourstbnetsys/temp/ (temporaire) et documents/debourstbnetsys/mandats/ (modèles + scans signés).


4. Configuration

La page Accueil → Configuration → Modules → Débours TBNETSYS est structurée en 7 sections numérotées avec un encart d'introduction listant les profils types et un diagnostic de conformité en bas de page.

Section Contenu Constantes principales
1. Cadre fiscal Régime TVA (auto / franchise / dépassement) DEBOURS_VAT_REGIME
2. Workflow Niveau (minimal / simple / complet) + justificatif obligatoire DEBOURS_WORKFLOW_LEVEL, DEBOURS_REQUIRE_JUSTIF
3. Refacturation client Mode A vs Mode B, mention CGI personnalisable DEBOURS_REFACT_MODE_DEFAULT, DEBOURS_LEGAL_MENTION
4. Comptabilité Compte tiers débours (467) + compte banque (512) DEBOURS_ACCOUNT_CODE, DEBOURS_ACCOUNT_CODE_BANK
5. Rétention & désinstallation Durée (années) et conservation des tables DEBOURS_RETENTION_YEARS, DEBOURS_KEEP_TABLES_ON_REMOVE
6. Cotisations URSSAF Activité, taux personnalisé, versement libératoire, CFP DEBOURS_URSSAF_ACTIVITY, DEBOURS_URSSAF_RATE, DEBOURS_URSSAF_VL, DEBOURS_URSSAF_CFP
7. Avancé Pagination listes (0 = illimité), special_code DEBOURS_LIST_LIMIT, DEBOURS_SPECIAL_CODE

Profils types

Profil Régime TVA Workflow Mode refact. Versement libératoire
Micro-entrepreneur en franchise franchise simple pdf au choix
Micro-entrepreneur en dépassement depassement simple ou complete lines non
Autres régimes (BNC réel, SAS, SARL) auto complete au choix non

Un profil par défaut peut être appliqué via le script CLI apply_default_consts.php (voir ARCHITECTURE.md).

Diagnostic de conformité

Le bouton « Lancer diagnostic » en bas de la page exécute Debours::checkCompliance() sur tous les débours validés et liste les anomalies (mandat manquant, justificatif absent, marge non nulle, mention CGI vide). À utiliser en routine ou avant un export comptable.


5. Cycle de vie utilisateur

5.1 Mandats clients

Brouillon → (générer PDF modèle → faire signer → uploader scan) → Actif → Révoqué

Sur la fiche mandat (debours/mandat.php), un encart de progression à 5 étapes guide l'utilisateur : création → génération PDF → signature → upload du scan → activation. L'activation est bloquée tant qu'aucun scan signé n'est présent (le fichier modèle {REF}_mandat.pdf ne compte pas comme scan).

Le scan peut être envoyé directement au client par email depuis l'interface (fiche en brouillon, email du tiers requis).

5.2 Débours

minimal :  Brouillon → Validé
simple  :  Brouillon → Validé → Refacturé → Remboursé
complet :  Brouillon → Mandat reçu → Validé → Refacturé → Remboursé

L'état Annulé est atteignable depuis n'importe quel statut via le bouton « Annuler » (soft-delete : conserve l'historique, détache les pivots facture). Un débours annulé peut être réouvert (Brouillon) tant qu'aucune facture validée n'y est rattachée.

5.3 Écrans principaux

Liste des débours (debours/list.php)

Filtres : référence, période (date début/fin), client, libellé, montant min/max, mode de refacturation, présence d'une facture refact, statut. Pagination configurable (DEBOURS_LIST_LIMIT, surchargeable via ?limit=N). Total cumulé en pied de page.

Actions contextuelles par statut : Annuler (validé), Détacher (refacturé sur facture brouillon), Réouvrir (annulé), Supprimer (brouillon ou annulé).

Création d'un débours (debours/card.php?action=create)

Encart d'introduction rappelant les 4 étapes (en-tête → lignes → justificatifs → validation/refacturation). Sous chaque champ : description du rôle, placeholder, exemples concrets. Mode de refacturation présenté en radios avec aide détaillée par option. Le mandat actif du client est rattaché automatiquement (workflow complet).

Saisie d'une ligne (fiche débours en brouillon)
  • Encart explicatif au-dessus du tableau, listant les 5 règles légales à respecter.
  • En-têtes de colonnes avec icône info (ⓘ) et tooltip jQuery.
  • Inputs avec labels d'aide en gris, placeholders, attributs title, required sur les champs obligatoires.
  • JavaScript embarqué : auto-calcul TTC = HT + TVA tant que l'utilisateur n'a pas saisi le TTC manuellement et fond rouge signalant tout écart de marge > 0,01 €.
  • Case déclarative obligatoire « Facture fournisseur au nom du client ».
  • Sélecteur de justificatif déroulant (fichiers téléversés depuis l'onglet Justificatifs).
Boutons d'action
Statut Boutons disponibles
Brouillon Éditer en-tête · Marquer mandat reçu (workflow complet) · Valider · Supprimer
Mandat reçu Valider · Annuler
Validé Rattacher à facture · Annuler
Refacturé Détacher (si facture brouillon)
Annulé Réouvrir · Supprimer
Rattachement à facture (action=ask_attach_invoice)

Liste paginée des factures en brouillon du client, avec bouton « Attacher » par ligne. La sélection :

  • Mode A : injecte les lignes du débours dans la facture (TVA forcée à 0, special_code = 493220, mention CGI préfixée à la description).
  • Mode B : ajoute une seule ligne synthétique au montant total + génère le PDF Relevé en annexe + copie automatique des justificatifs dans le dossier ECM de la facture.
Onglets de la fiche débours

Carte · Justificatifs (upload bloqué hors brouillon) · Notes (privée + publique) · Événements (timeline + historique des remboursements partiels).

Sur la fiche facture client

Le module ajoute :

  • Un onglet Débours listant les débours rattachés.
  • Un bandeau « X débours rattachés. Total avancé : Y € » dans le bloc options.
  • Deux boutons en barre d'actions : « Rattacher des débours existants » et « Créer un débours pour cette facture ».
  • Une mention CGI automatiquement injectée en pied de fiche dès qu'au moins une ligne porte le special_code débours.
  • Les lignes débours sont surlignées (fond crème) avec la mention CGI affichée sous chaque ligne.
Sur la fiche tiers

Onglet Débours + bandeau de comptage (COUNT(*) + SUM(total_amount) des débours non annulés). La suppression du tiers est refusée tant qu'il subsiste des débours actifs (statut ≠ remboursé / annulé).


6. Documentation complémentaire

Fichier Contenu Audience
docs/conformite-cgi.md Cadre légal détaillé art. 267 II 2° CGI (7 conditions cumulatives, contrôles automatiques) Comptables / auditeurs
docs/workflow.md Niveaux de workflow, transitions, statut Annulé Utilisateurs / configurateurs
docs/exports-comptables.md Format CSV registre + journal 467/512, écritures doubles, contrôle d'équilibre Comptables / DAF
ARCHITECTURE.md Schéma SQL, classes métier, hooks, triggers, scripts CLI, sécurité CSRF Développeurs / mainteneurs

7. Internationalisation

Fichiers langs/fr_FR/debourstbnetsys.lang et langs/en_US/debourstbnetsys.lang. 427 clés par locale, parité parfaite (vérifiable via comm -23 / comm -13 sur listes triées).

Familles de préfixes principales :

Préfixe Clés Domaine
Debours* 180 En-tête, workflow, UI, validation, refacturation, aides création/saisie
Mandat* 93 Mandats client, génération PDF, signature, email
CaReport* 66 Rapport CA réel, cotisations URSSAF, versement libératoire
Error* 21 Messages d'erreur conformité / workflow
Urssaf* 19 Configuration profil social
Releve* 9 Relevé de débours annexe (Mode B)
Ledger* 9 Registre
Attach* 8 Rattachement à facture
Workflow* 6 Niveaux minimal / simple / complet
Compliance* 4 Diagnostic

À chaque ajout de clé en FR, ajouter l'équivalent EN au même endroit pour préserver la parité.


8. Licence

GPL-3.0-or-later. TBNETSYS.


Manuel de l'utilisateur

1. À quoi ça sert

Vous êtes micro-entrepreneur, profession libérale ou prestataire en société. Il vous arrive de payer un fournisseur au nom et pour le compte de votre client : frais de port, billets de train pour un déplacement client, achats spécifiques, etc.

Sans dispositif particulier, ces sommes :

  • gonflent artificiellement votre chiffre d'affaires,
  • entrent dans le calcul des cotisations URSSAF (en micro),
  • relèvent du champ TVA (si vous y êtes assujetti).

Le mécanisme légal des débours (art. 267 II 2° CGI) permet d'exclure ces sommes de votre CA et du champ TVA dès lors que :

  1. Le client vous a donné un mandat préalable écrit ;
  2. La facture du fournisseur est établie au nom du client ;
  3. Vous refacturez à l'euro près (aucune marge) ;
  4. Vous accompagnez la facture client des justificatifs ;
  5. Vous portez la mention « Débours art. 267 II 2° CGI » sur la facture finale ;
  6. Vous comptabilisez en compte 467 (autres comptes débiteurs/créditeurs) et non en charge ;
  7. Vous conservez l'ensemble 10 ans.

Ce plugin tient le registre, applique les contrôles, génère les pièces, alimente la comptabilité et la TVA. Tout en respectant les 7 critères ci-dessus.

Compatible multi-société (multi-entité Dolibarr). Si votre instance Dolibarr héberge plusieurs sociétés sur le même serveur (module Multicompany), chaque société a son propre registre de débours, ses propres mandats clients, sa propre numérotation DEB-YYYY-NNNN et MAN-YYYY-NNNN, son propre paramétrage URSSAF et sa propre comptabilité 467. Aucune fuite entre sociétés : toutes les tables du module portent une colonne entity filtrée à chaque requête.


2. Premiers pas

2.1 Configuration

Capture ecran Config Partie 1
Capture ecran Config Partie 1
Capture Ecran Config Partie 2
Capture Ecran Config Partie 2
Capture Ecran Config Partie 3
Capture Ecran Config Partie 3
Capture Ecran Config Partie 4
Capture Ecran Config Partie 4
Capture Ecran Config Partie 5
Capture Ecran Config Partie 5


Accueil → Configuration → Modules → Débours TBNETSYS → Configurer

La page est organisée en 7 sections avec des aides détaillées. Trois profils types sont rappelés en tête de page :

Profil Régime TVA Workflow
Micro-franchise (débutant·e) franchise simple
Micro en dépassement seuil TVA depassement simple ou complete
Société / autre régime auto simple ou complete

Paramètres clés à connaître :

  • Régime TVA (DEBOURS_VAT_REGIME) : indique si vous êtes en franchise, en dépassement, ou autre. Influe sur les rapports CA mais pas sur les débours eux-mêmes (toujours hors champ TVA).
  • Workflow (DEBOURS_WORKFLOW_LEVEL) :
    • minimal : registre seul, aucun contrôle bloquant
    • simple : justificatif obligatoire + marge nulle (recommandé)
    • complete : strict CGI, mandat actif requis, justificatif obligatoire, marge nulle (le plus sûr légalement)
  • Mode de refacturation par défaut :
    • lines : les débours apparaissent comme lignes spéciales sur la facture client (un seul document)
    • pdf : un PDF « Relevé de débours » annexe est généré et joint à la facture (recommandé pour la lisibilité client)
  • Conservation des tables à la désinstallation : laisser coché (rétention légale 10 ans).

2.2 Profil URSSAF

Section 6 du Setup : indiquez votre régime social pour que le rapport « Cotisations URSSAF estimées » applique le bon taux.

Type d'activité Code interne
Vente de marchandises (achat-revente) vente
Prestations de services BIC services_bic
Activités libérales non réglementées (BNC) bnc
Activités libérales CIPAV cipav
EI/EURL régime réel ei_eurl_reel
SAS / SARL gérant minoritaire / majoritaire sas / sarl_minoritaire / sarl_majoritaire
Personnalisé custom (saisie manuelle du taux)

Cochez « J'ai opté pour le versement libératoire de l'IR » si applicable. Le rapport CA ajoutera automatiquement le pourcentage IR pertinent à votre activité.


3. Le mandat client

Les mandats clients
Les mandats clients
Fiche Mandat
Fiche Mandat
Mandat signé, justificatif
Mandat Signé


3.1 À quoi sert un mandat

Un mandat est le document écrit préalable par lequel votre client vous autorise à engager des dépenses en son nom et pour son compte. C'est la condition n°1 des 7 critères CGI : sans mandat valide à la date de l'avance, la dépense ne peut pas être qualifiée de débours et est requalifiée en charge classique soumise à TVA et cotisations.

Un mandat couvre N débours. Vous ne créez pas un mandat à chaque débours. Vous le faites une fois par client (ou par mission ponctuelle si vous bornez la période).

3.2 Cycle de vie du mandat

Brouillon → Actif → Révoqué
Statut Sens
Brouillon Mandat créé mais non encore opposable. Pas de couverture.
Actif Signé, opérationnel, couvre les débours dans la période de validité.
Révoqué Annulé. Ne couvre plus les débours postérieurs. Les débours déjà validés sous ce mandat restent valides.

3.3 Créer un mandat (workflow)

Créer un mandat
Créer un mandat


Menu Débours → Mandats clients → Nouveau mandat

Étape 1. Renseigner l'en-tête :

  • Société : le client final
  • Date de signature : aujourd'hui par défaut
  • Début / fin de validité : laisser vide pour « valide depuis la signature, illimité » (cas le plus fréquent)
  • Portée des dépenses autorisées : description précise

⚠️ Plus la portée est précise, plus le mandat est opposable en cas de contrôle URSSAF/fiscal. Évitez « tous frais » qui pourrait être contesté.

Étape 2. Cliquer « Créer » : le mandat est enregistré en Brouillon.

Étape 3. Générer le PDF : sur la fiche, cliquer « Générer le PDF ». Un document à signer est créé avec votre logo société, les coordonnées du mandant et du mandataire, l'objet du mandat, la portée, la période de validité et deux cadres de signature.

Étape 4. Faire signer le client (papier ou signature électronique).

Étape 5. Téléverser le scan signé dans l'onglet « Justificatif signé ».

Étape 6. Activer le mandat : le bouton « Activer » apparaît dès qu'un scan signé est présent. Cliquer dessus → le mandat passe en Actif et couvre désormais les débours.

L'encart bleu de progression sur la fiche mandat affiche les étapes restantes avec des coches qui s'allument au fur et à mesure.

3.4 Révoquer un mandat

Sur la fiche d'un mandat actif : bouton « Révoquer ». Le mandat passe en Révoqué et ne couvre plus les débours postérieurs. Les débours déjà validés restent valides.

3.5 Supprimer un mandat

Statut Suppression
Brouillon ✅ Autorisée
Actif ❌ Bloquée. Révoquez d'abord
Révoqué sans débours lié ✅ Autorisée (cleanup)
Révoqué avec débours lié ❌ Bloquée (audit trail à conserver 10 ans)

4. Le débours

4.1 Cycle de vie du débours

Brouillon → [Mandat reçu*] → Validé → Refacturé → Remboursé
                                          ↓
                                       Annulé (soft-delete)

* uniquement en workflow complete

4.2 Créer un débours

Créer un débours
Créer un débours
Capture Ecran 1 fiche débours
Capture Ecran 1 fiche débours
Capture Ecran 2 Fiche débours
Capture Ecran 2 Fiche débours


Menu Débours → Nouveau débours

En-tête :

  • Société : le client final
  • Libellé : description courte (ex. « Frais de port commande #1234 »)
  • Date de l'avance : date à laquelle vous avez payé le fournisseur. Détermine la couverture par mandat en workflow complet.
  • Mode de refacturation : lignes (sur la facture) ou PDF annexe (relevé séparé joint)

Cliquer « Créer » → débours en Brouillon.

4.3 Saisir les lignes

Sur la fiche, en bas, le tableau des lignes apparaît. Pour chaque dépense engagée :

Champ Contenu
Description Ex. « Frais de port Chronopost »
Fournisseur Ex. « La Poste »
N° facture fournisseur Référence ou ticket
Date facture fournisseur Date sur la facture
HT, TVA, TTC Doivent vérifier HT + TVA = TTC (marge nulle)
Justificatif Fichier ECM (à téléverser dans l'onglet Justificatifs)
☐ « Facture fournisseur au nom du client » Case obligatoire à cocher

⚠️ Le calcul HT + TVA = TTC est vérifié à la saisie : si l'écart dépasse 1 centime, le champ TTC se met en rouge et la ligne est refusée à l'enregistrement (refacturation à l'identique imposée par la loi).

4.4 Téléverser les justificatifs

Onglet « Justificatifs » sur la fiche débours. Déposer les scans des factures fournisseurs (au nom du client), puis revenir sur la fiche et sélectionner chaque fichier dans la liste déroulante de la ligne correspondante.

Les fichiers sont stockés dans documents/debourstbnetsys/{REF_DEBOURS}/.

4.5 Modifier l'en-tête

Sur la fiche d'un débours en Brouillon, le bouton « Modifier l'en-tête » ouvre un formulaire d'édition (client, libellé, date, mode). Disponible uniquement tant que le débours est en brouillon.

4.6 Valider le débours

Bouton « Valider le débours » sur la fiche. Le système contrôle automatiquement :

Contrôle Niveau
Mandat actif couvrant date_debours workflow complete uniquement
Justificatif présent sur chaque ligne workflow simple et complete
Case « facture au nom du client » cochée tous
Marge nulle (HT+VAT=TTC) ligne par ligne tous
Marge nulle globale tous
Mention CGI configurée non vide tous

Si une non-conformité est détectée → bandeau rouge en haut de la fiche listant les anomalies → la validation est refusée. Une fois tout corrigé → débours passe en Validé.

En workflow complet : si vous avez utilisé le bouton « Mandat reçu » avant Valider, le débours passe d'abord en statut intermédiaire Mandat reçu (1) puis en Validé (2).

4.7 Rattacher à une facture client

Sur un débours Validé, le bouton « Rattacher à une facture client » ouvre un sélecteur paginé des factures du client. Cocher la facture cible (qui doit être en Brouillon).

Selon le mode de refacturation :

  • Mode lignes : chaque ligne du débours est insérée comme ligne facture avec :
    • tva_tx = 0 (toujours hors TVA)
    • special_code = 493220 (exclut la ligne du calcul du CA réel)
    • Description préfixée « [Débours] » + mention CGI
  • Mode PDF annexe :
    1. Une ligne récap est ajoutée en pied de facture (« Débours - voir relevé annexe (réf …) »), même special_code et TVA 0.
    2. Le PDF Relevé de débours est généré (TCPDF, A4) et copié dans documents/facture/{REF_FACTURE}/{REF_DEBOURS}.pdf.
    3. Les justificatifs (factures fournisseurs scannées) sont également copiés à côté du relevé.

Le débours passe automatiquement en Refacturé.

4.8 Détacher

Tant que la facture est en Brouillon, le bouton « Détacher de la facture » est disponible sur le débours Refacturé. Détache → débours retombe en Validé, la ligne est retirée de la facture, le PDF/justifs annexes sont supprimés.

Si la facture est validée (numéro légal figé), le détachement est refusé. Voir section 5 « Verrouillage légal ».

4.9 Remboursement (Refacturé → Remboursé)

Mode automatique recommandé : enregistrez le paiement de la facture côté Dolibarr (Compta → Factures clients → Paiements). Le trigger BILL_PAYED calcule la quote-part au prorata et alimente automatiquement le débours. Si le total est atteint → débours en Remboursé.

Il n'y a pas de bouton manuel « Marquer remboursé » : un seul chemin, pas de risque de double-comptage.

4.10 Annuler / Supprimer

Action Quand Effet
Annuler Brouillon → Refacturé (sauf si facture validée) Soft-delete : statut Annulé, pivots facture supprimés
Rouvrir Annulé Repasse en Brouillon
Supprimer Brouillon ou Annulé Suppression définitive (refusé si statut >= Validé)

5. Verrouillage légal automatique

À chaque jalon du cycle de vie, le système verrouille les modifications incompatibles avec la conformité légale.

5.1 Verrouillage des justificatifs débours

Statut débours Upload Suppression
Brouillon ✅ ✅
Mandat reçu / Validé / Refacturé / Remboursé / Annulé ❌ ❌

Le bandeau orange « ???? Justificatifs verrouillés » apparaît dans l'onglet Justificatifs et explique comment débloquer : annuler puis ré-ouvrir le débours pour repasser en brouillon.

5.2 Verrouillage des pièces de mandat

Statut mandat Upload scan Suppression scan
Brouillon ✅ ✅
Actif ❌ ❌
Révoqué ❌ ✅ (cleanup)

5.3 Verrouillage facture validée

Lorsqu'un débours est Refacturé sur une facture validée dans Dolibarr (numéro légal figé) :

  • Toute modification du débours est refusée (cancel, edit, add_line, delete_line, etc.)
  • Un bandeau orange « ???? Débours verrouillé (facture validée) » apparaît sur la fiche, expliquant les deux seules sorties :
    1. Supprimer la facture côté Dolibarr (autorisé seulement si c'est la dernière émise) → trigger BILL_DELETE → débours rebascule automatiquement en Validé, prêt à être ré-attaché ailleurs ou annulé.
    2. Émettre une facture d'avoir annulant celle-ci.

Aucun raccourci. C'est la garantie que les données débours figent au moment où la facture client est légalement émise, conformément au CGI.


6. Reports et exports

6.1 Registre des débours

Menu Débours → Registre des débours

Filtre par période + statut. Liste exportable en CSV avec : référence, date, client, libellé, fournisseur, n° facture fournisseur, montant TTC, statut, facture refact, date remboursement.

À conserver / archiver chaque année.

6.2 Journal comptable 467

Menu Débours → Export journal 467

Génère les écritures comptables :

Validation du débours :    Débit 467 / Crédit 512   (avance pour le client)
Remboursement :            Débit 512 / Crédit 467   (encaissement)

Le compte 467 est soldé débours par débours quand le remboursement est complet.

Contrôle d'équilibre (somme débits = somme crédits) affiché en bas de l'écran. CSV exportable pour intégration en compta.

6.3 Rapport CA / CA réel

Menu Compta → Rapport CA débours

Compare votre CA brut Dolibarr (somme totale des factures) avec votre CA réel (CA brut moins les lignes débours). Ajoute :

  • Cotisations URSSAF estimées au taux de votre activité
  • IR sur versement libératoire si applicable
  • Pondération par profil de société (SAS, SARL gérant majoritaire/minoritaire avec messages explicatifs)

Filtres période disponibles. Rapport mis à jour à chaque accès.


7. Particularités micro-entrepreneur

7.1 Franchise en base

Vous êtes sous le seuil TVA. Vos factures n'ont pas de TVA à reverser. Les débours :

  • restent hors champ TVA comme partout ailleurs (la TVA fournisseur, payée par vous au nom du client, n'est ni récupérée ni refacturée. Elle « passe » via le total TTC)
  • sont exclus du CA déclaré à l'URSSAF
  • n'entrent pas dans le calcul des cotisations sociales

7.2 Versement libératoire IR

Si vous avez opté pour le versement libératoire (option choisie au départ), le pourcentage IR s'applique sur le CA. Avec les débours bien gérés, cette base est réduite d'autant.

7.3 Que se passe-t-il si je dépasse les seuils micro ?

  • Seuil de CA (pour 2026 : 77 700 € en services BNC, 188 700 € en vente). Calculé sur le CA réel (hors débours). Le rapport intègre les débours dans son calcul.
  • Seuil TVA (39 100 € en services, 101 000 € en vente) : passage en TVA. Le module continue de gérer les débours hors TVA. Vous facturez votre prestation avec TVA, les débours en sont exclus comme avant.

8. FAQ

Q : Je viens de créer un mandat, je peux déjà créer un débours dessus ?

R : Pas en workflow complet. Le mandat doit d'abord être activé (PDF généré + scan signé téléversé + bouton Activer cliqué). En workflows simple/minimal, ce n'est pas bloqué mais ce n'est pas conforme CGI : faites-le quand même.

Q : Le mandat est dans le passé, le débours est aujourd'hui. C'est OK ?

R : Oui. Le mandat couvre une période. Tant que date_debours est dans la période de validité (date_validity_start ≤ date ≤ date_validity_end ou fin vide = illimité), le débours est couvert.

Q : J'ai créé un débours, puis activé le mandat. Le débours dit toujours « mandat manquant ». Bug ?

R : Non, c'est l'auto-réparation qui gère ça. Au prochain checkCompliance() (par exemple en chargeant la fiche débours), le système ré-essaie automatiquement getActiveForCompany() et rattache le mandat actif.

Q : J'ai fait une erreur dans la date d'un débours validé. Comment corriger ?

R : Annuler le débours → Rouvrir → Modifier l'en-tête → re-Valider. Si le débours était rattaché à une facture validée, vous devez d'abord supprimer/annuler la facture côté Dolibarr.

Q : Je veux supprimer un mandat révoqué.

R : Possible si aucun débours n'y est lié (audit trail à conserver). Sinon, le mandat reste en base sous statut Révoqué.

Q : Mon client refuse de signer le mandat. Que faire ?

R : Sans mandat signé, vous ne pouvez pas qualifier la dépense de débours selon l'art. 267 II 2°. Solutions :

  • Refacturer la dépense en prestation classique (avec marge, soumise à TVA et cotisations). Pas un débours.
  • Demander à votre client de payer directement le fournisseur. Vous n'avancez plus rien.

Q : le débours passe en Remboursé tout seul ?

R : Oui. Enregistrez le paiement de la facture côté Dolibarr → le débours passe en Remboursé tout seul.

Q : Mon dossier sur disque contient encore un fichier *_(PROV339).pdf, c'est un bug ?

R : Non. C'est un ancien rattachement fait avant la simplification du nommage. Les nouveaux rattachements utilisent {REF_DEBOURS}.pdf sans référence facture. Les anciens fichiers conservent leur ancien nom (cosmétique uniquement, la facture validée ne peut plus être modifiée légalement).


9. Glossaire

Terme Sens
Débours Somme avancée par l'entrepreneur au nom et pour le compte du client, refacturée à l'identique.
Mandat Document écrit préalable autorisant l'entrepreneur à engager des dépenses au nom du client.
Compte 467 Compte tiers comptable pour les avances pour le compte de tiers (PCG).
CGI Code Général des Impôts (article 267 II 2° pour les débours).
special_code 493220 Marqueur Dolibarr identifiant les lignes débours, pour les exclure du calcul du CA réel.
Mode A / lignes Refacturation par lignes spéciales sur la facture client.
Mode B / PDF annexe Refacturation par PDF Relevé de débours joint à la facture, plus une ligne récap.
Workflow simple Justificatifs + marge nulle obligatoires, pas de mandat strict.
Workflow complet Strict CGI : mandat actif requis.

10. Aide et contact

  • Setup → Diagnostic conformité : audit automatique de tous vos débours validés.
  • Documentation technique : voir docs/ du module (conformite-cgi.md, workflow.md, exports-comptables.md).
  • Mainteneur : TBNETSYS (Voir www.tbnetsys.fr, page contact)

Module sous licence GPL-3.0-or-later.