Entrees/sorties : colonnes analytiques (regime FRA/UE, TTC+HT, taux+TVA)
Deploy via Portainer / deploy (push) Successful in 1s

This commit is contained in:
2026-07-19 15:05:18 +02:00
parent a84befbc5c
commit c67c3392be
2 changed files with 26 additions and 7 deletions
+12 -3
View File
@@ -10,6 +10,9 @@
.tag.operation { color:var(--accent); border-color:#25566e; }
.neutre-badge { font-size:10px; color:var(--muted); border:1px dashed var(--line); border-radius:6px; padding:1px 5px; margin-left:6px; }
.ventile-badge { font-size:10px; color:var(--accent); border:1px solid #25566e; border-radius:6px; padding:1px 5px; margin-left:6px; }
.regime-badge { font-size:11px; font-weight:600; color:var(--muted); border:1px solid var(--line); border-radius:6px; padding:2px 7px; }
.ht { color:var(--muted); font-size:11.5px; margin-top:1px; }
.sub2 { color:var(--muted); font-size:10px; margin-left:4px; }
.btn-mini { padding:5px 11px; font-size:12.5px; border-radius:8px; }
#gtable td, #gtable th { border-bottom:1px solid var(--line); }
#gtable tbody tr:hover td { background:#243247; }
@@ -97,7 +100,7 @@
<thead><tr>
<th class="chkcol"><input type="checkbox" id="chkall" title="Tout sélectionner"></th>
<th>Date</th><th>Type</th><th>Libellé</th><th>Catégorie</th>
<th>Montant</th><th>TVA</th><th></th>
<th>Régime</th><th>Montant</th><th>Taux / TVA</th><th></th>
</tr></thead>
<tbody>
{% for r in rows %}
@@ -107,8 +110,14 @@
<td><span class="tag {{ r.type }}">{{ r.type_label }}</span></td>
<td>{{ r.libelle }}</td>
<td>{{ r.categorie }}{% if r.neutre %}<span class="neutre-badge">neutre</span>{% endif %}{% if r.ventile %}<span class="ventile-badge" title="Part d'une dépense ventilée (plusieurs taux de TVA)">ventilé</span>{% endif %}</td>
<td class="{% if r.montant >= 0 %}pos{% else %}neg{% endif %}">{{ r.montant|floatformat:2|unlocalize }} €</td>
<td>{% if r.tva %}{{ r.tva|floatformat:2|unlocalize }}{% else %}{% endif %}</td>
<td>{% if r.regime_court %}<span class="regime-badge">{{ r.regime_court }}</span>{% else %}—{% endif %}</td>
<td class="num {% if r.montant >= 0 %}pos{% else %}neg{% endif %}">
{{ r.montant|floatformat:2|unlocalize }} €<span class="sub2">TTC</span>
{% if r.ht is not None %}<div class="ht">{{ r.ht|floatformat:2|unlocalize }} € HT</div>{% endif %}
</td>
<td class="num">
{% if r.tva is not None %}{{ r.taux|floatformat:"-2"|unlocalize }} %<div class="ht">{{ r.tva|floatformat:2|unlocalize }} €</div>{% else %}—{% endif %}
</td>
<td>
<button type="button" class="btn-mini"
data-edit
+14 -4
View File
@@ -22,6 +22,11 @@ from .models import (Entreprise, Facture, LigneFacture, Depense, Paiement,
Categorie, Activite, RegimeTva, StatutFacture, TAUX_TVA_CHOICES)
CENT = Decimal("0.01")
REGIME_COURT = {"nationale": "FRA", "intracom": "UE", "import": "Hors-UE"}
def _regime_court(r):
return REGIME_COURT.get(r, "")
# Explications spécifiques (affichées dans la popup). Sinon, texte générique par usage.
EXPLIC = {
@@ -93,7 +98,8 @@ def _rows(entreprise):
"libelle": str(f.client), "categorie": f"Facture {f.numero}",
"categorie_id": "", "activite": f.activite,
"regime": "nationale", "taux": f.lignes.first().taux_tva if une_ligne else "",
"montant": f.montant_ttc, "tva": f.montant_tva, "neutre": False,
"montant": f.montant_ttc, "ht": f.montant_ht, "tva": f.montant_tva,
"regime_court": "FRA", "neutre": False,
"signe": Decimal("1"), "statut": f.statut,
"date_encaissement": f.date_encaissement, "date_emission": f.date_emission,
"editable_montant": une_ligne,
@@ -104,8 +110,12 @@ def _rows(entreprise):
"date": d.date, "libelle": d.libelle,
"categorie": d.categorie.nom if d.categorie else "(à catégoriser)",
"categorie_id": d.categorie_id or "", "activite": d.activite,
"regime": d.regime_tva, "taux": d.taux_tva,
"montant": -d.montant_ttc, "tva": d.tva_deductible_value,
"regime": d.regime_tva,
"taux": ("" if d.neutre else d.taux_tva),
"montant": -d.montant_ttc,
"ht": (None if d.neutre else -d.montant_ht),
"tva": (None if d.neutre else d.tva_deductible_value),
"regime_court": ("" if d.neutre else _regime_court(d.regime_tva)),
"neutre": d.neutre, "signe": Decimal("-1"), "editable_montant": True,
"ventile": bool(d.paiement_id),
})
@@ -122,7 +132,7 @@ def _rows(entreprise):
"categorie_id": p.categorie_id or "", "activite": "",
"regime": "", "taux": "",
"montant": p.montant_total if p.sens == "credit" else -p.montant_total,
"tva": Decimal("0"),
"ht": None, "tva": None, "regime_court": "",
"neutre": bool(p.categorie and p.categorie.exclure_calculs),
"signe": Decimal("1") if p.sens == "credit" else Decimal("-1"),
"sens": p.sens, "editable_montant": True,