{# Dashboard shell: Drupal renders the page (nav, auth, permissions). dashboard.js (Vue 3) fetches JSON:API and renders a spreadsheet-like table of every ligne comptable, with filters and month/year grouping, client-side. "Ajouter une ligne" opens the real Drupal node form in a modal (core/drupal.dialog.ajax) -- no form logic duplicated in JS. #} {% verbatim %}
Chargement des données…
Erreur de chargement : {{ error }}
| Date | Client | Type | Libellé / Détail | Montant HT | Montant TTC | {{ c }} | Écart | |
|---|---|---|---|---|---|---|---|---|
| {{ item.label }} ({{ item.count }} lignes) | ||||||||
| {{ formatDate(item.date) }} | {{ item.client || '—' }} | {{ typeLabel(item.type) }} | {{ item.libelle }} {{ reconciliationByEntree.get(item.id).count }} sortie{{ reconciliationByEntree.get(item.id).count > 1 ? 's' : '' }} liée{{ reconciliationByEntree.get(item.id).count > 1 ? 's' : '' }} · reste {{ formatEur(reconciliationByEntree.get(item.id).resteAVerser) }} · sur-versé {{ formatEur(reconciliationByEntree.get(item.id).surVerse) }} | {{ formatEur(item.montant_ht) }} | {{ formatEur(item.montant_ttc) }} | {{ item.parCompte[c] !== undefined ? formatEur(item.parCompte[c]) : '' }} | {{ item.hasError ? formatEur(item.ecart) : '' }} | |
| Solde (créditeur / débiteur) — {{ filteredRows.length }} lignes filtrées | {{ formatEur(footerTotals.montant_ht) }} | {{ formatEur(footerTotals.montant_ttc) }} | {{ formatEur(footerTotals.parCompte[c]) }} | {{ formatEur(footerTotals.ecart) }} | ||||