Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Développeurs

Étendre les lignes des déclarations intra-communautaires (hook france_intra_eu_line_extensions)

Le hook france_intra_eu_line_extensions permet à une application d'ajouter des colonnes aux lignes de calcul des déclarations intra-communautaires françaises (DES, état récapitulatif TVA) ; ces colonnes apparaissent dans le formulaire, dans l'état de contrôle et dans l'export des lignes.

Étendre les lignes des déclarations intra-communautaires

Principe

Une application ajoute des colonnes aux lignes de calcul des déclarations intra-communautaires en déclarant des fonctions dans le hook france_intra_eu_line_extensions de son hooks.py :

# hooks.py de l'application
france_intra_eu_line_extensions = ["mon_app.regional.intra_eu.entrepreneur"]

Chaque entrée est le chemin (dotted path) d'une fonction appelée à chaque préparation de la déclaration, avec la déclaration et ses lignes de calcul.

Signature de l'extension

def entrepreneur(declaration, computation_lines):
    return {
        "columns": [{"fieldname": "entrepreneur", "label": "Entrepreneur"}],
        "values": {
            row.source_row: {"entrepreneur": f"ENT {row.source_name}"}
            for row in computation_lines
        },
    }
  • columns : liste de dictionnaires {"fieldname", "label"}. Si label est omis, le fieldname est utilisé comme libellé. La première extension qui déclare un fieldname le conserve ; les doublons des extensions suivantes sont ignorés.
  • values : dictionnaire indexé par le source_row de la ligne de calcul, chaque entrée étant un dictionnaire fieldname → valeur. Seules les valeurs correspondant aux colonnes déclarées sont conservées.

Stockage et cycle de vie

  • Les colonnes sont stockées dans le champ extension_columns (JSON, masqué) de la déclaration « France Intra-EU Declaration ».
  • Les valeurs sont stockées dans le champ extension_values (JSON) de chaque ligne de calcul (« France Intra-EU Computation Line »), associées par source_row.
  • Les extensions sont exécutées à chaque préparation de la déclaration. Une nouvelle préparation sans l'extension supprime ses colonnes et ses valeurs.
  • Une extension qui lève une exception est journalisée (log d'erreur « Intra-EU line extension failed: », avec la déclaration en référence) et la préparation se poursuit sans elle : la déclaration reste celle de Dokos, les colonnes supplémentaires appartiennent à l'application.

Où les colonnes apparaissent

  • Dans le formulaire de la déclaration, sous la ligne de calcul concernée, sous la forme Label : valeur.
  • Dans l'état de contrôle, en note de la facture, à la suite de la note de retard ou de régularisation, sous la forme Label : valeur.
  • Dans l'export des lignes de calcul (CSV ou Excel), en colonnes supplémentaires ajoutées en fin de fichier.