{% extends '@Compta/layout.html.twig' %} {% block compta_title %}Dashboard financier{% endblock %} {% block compta_content %} {% set d = dashboard %}

{{ d.header.title }}

{{ d.header.subtitle }}

{% set primaryMetrics = [ {label: "Chiffre d'affaires facturé", value: d.topMetrics.billedRevenue, note: selectedPeriod == 'month' ? 'sur le mois courant' : 'sur la période sélectionnée', trend: d.topMetrics.trends.billedRevenue}, {label: 'Montant encaissé', value: d.topMetrics.collectedAmount, note: selectedPeriod == 'month' ? 'encaissements du mois' : 'encaissements de la période', trend: d.topMetrics.trends.collectedAmount}, {label: 'Dépenses totales', value: d.topMetrics.totalExpenses, note: 'hors salaires & charges', trend: d.topMetrics.trends.totalExpenses} ] %} {% for metric in primaryMetrics %}
{{ metric.trend.label }} {{ metric.label }} {{ metric.value|number_format(0, ',', ' ') }} € {{ metric.note }}
{% endfor %}
{{ d.topMetrics.trends.availableCash.label }} Argent disponible {{ d.topMetrics.availableCash|number_format(0, ',', ' ') }} € {{ d.topMetrics.availableCashNote }}
{% set miniMetrics = [ {label: 'Taux de recouvrement', value: d.topMetrics.collectionRate|number_format(1, ',', ' ') ~ '%'}, {label: 'Délai moyen paiement', value: d.topMetrics.averagePaymentDelay|number_format(0, ',', ' ') ~ ' jours'}, {label: 'Marge nette', value: d.topMetrics.netMargin|number_format(1, ',', ' ') ~ '%'}, {label: 'Factures impayées', value: d.topMetrics.unpaidInvoicesCount}, {label: 'Projection fin année', value: d.topMetrics.projectionYearEnd|number_format(0, ',', ' ') ~ ' €'}, {label: 'Salaire', value: d.topMetrics.salaryAmount|number_format(0, ',', ' ') ~ ' €'}, {label: 'Résultat', value: d.topMetrics.operatingResult|number_format(0, ',', ' ') ~ ' €'} ] %} {% for metric in miniMetrics %}
{{ metric.label }} {{ metric.value }}
{% endfor %}

Vue financière annuelle

Évolution mensuelle du chiffre d’affaires, des dépenses et des salaires

Projection de revenus

Prévision sur 6 mois

Détails
{{ d.revenueProjection.totalPotential|number_format(0, ',', ' ') }} €Revenu projeté
{{ d.revenueProjection.toCollect|number_format(0, ',', ' ') }} €À encaisser
{{ d.revenueProjection.growth is not null ? (d.revenueProjection.growth > 0 ? '+' : '') ~ d.revenueProjection.growth|number_format(1, ',', ' ') ~ '%' : 'n/a' }}Croissance projetée

Projection de trésorerie

Solde réel puis estimation jusqu’à la fin de l’année

Détails
{{ d.treasuryProjection.current|number_format(0, ',', ' ') }} €Disponible
{{ d.treasuryProjection.yearEndProjection|number_format(0, ',', ' ') }} €Fin d’année
{{ d.treasuryProjection.variation > 0 ? '+' : '' }}{{ d.treasuryProjection.variation|number_format(0, ',', ' ') }} €Variation

Créances et encaissements

Suivi des paiements et du risque client

Toutes les factures
En retard{{ d.receivables.overdueAmount|number_format(0, ',', ' ') }} €{{ d.receivables.overdueCount }} facture(s) de plus de 30 jours
À échéance proche{{ d.receivables.upcomingAmount|number_format(0, ',', ' ') }} €{{ d.receivables.upcomingCount }} facture(s) à surveiller
Encaissements du mois{{ d.receivables.collectedMonthAmount|number_format(0, ',', ' ') }} €Paiements comptabilisés
{% for row in d.receivables.rows %} {% else %} {% endfor %}
N° factureClientÉmissionÉchéanceMontantStatut
{{ row.displayId }} {{ row.clientName }} {{ row.dateFacturation ? row.dateFacturation|date('d/m/Y') : '—' }} {{ row.dateEcheance ? row.dateEcheance|date('d/m/Y') : '—' }} {{ row.amount|number_format(0, ',', ' ') }} € {{ row.statusLabel }}
Aucune créance pour cette période.

Répartition des dépenses

Analyse par catégorie

{% for item in d.expenseBreakdown %}
{{ item.label }} {{ item.amount|number_format(0, ',', ' ') }} €
{% endfor %}

Salaires & charges

Masse salariale de la période

{{ d.salary.total|number_format(0, ',', ' ') }} €

Moyenne des trois derniers mois : {{ d.salary.averageLastThreeMonths|number_format(0, ',', ' ') }} €

{{ d.salary.base|number_format(0, ',', ' ') }} €Salaires de base
{{ d.salary.charges|number_format(0, ',', ' ') }} €Charges sociales

Résultat financier

Synthèse de la période

{{ d.financialResult.value > 0 ? '+' : '' }}{{ d.financialResult.value|number_format(0, ',', ' ') }} €

{{ d.financialResult.growth is not null ? (d.financialResult.growth > 0 ? '+' : '') ~ d.financialResult.growth|number_format(1, ',', ' ') ~ '% vs période précédente' : 'Comparatif indisponible' }}

{{ d.financialResult.netMargin|number_format(1, ',', ' ') }}%Marge nette
{{ d.financialResult.profitability|number_format(1, ',', ' ') }}%Rentabilité

Alertes financières

Points d’attention et recommandations

{{ d.alerts|length }} alertes actives
{% for alert in d.alerts %}
{{ alert.tone == 'danger' ? 'Urgent' : (alert.tone == 'warning' ? 'Attention' : 'Information') }}

{{ alert.title }}

{{ alert.description }}

{{ alert.button }}
{% endfor %}

Top clients

Par chiffre d’affaires annuel

Voir tout
{% for row in d.topClients %}
{{ (row.client.nom|default('CL'))|slice(0, 2)|upper }}{{ row.client.nom|default('Client') }}{{ row.projectTitle }} {{ row.revenue|number_format(0, ',', ' ') }} €{{ row.statusLabel }}
{% else %}

Aucun chiffre d’affaires client sur cette période.

{% endfor %}

Principales dépenses

Sur la période sélectionnée

Voir tout
{% for item in d.mainExpenses %}
{{ item.label }}{{ item.description }} {{ item.amount|number_format(0, ',', ' ') }} €
{% endfor %}

Actions rapides

Accès direct aux fonctions principales

{% endblock %}