{% extends 'pdf/_base.html.twig' %} {% import 'pdf/_macros.html.twig' as pdf %} {% block extra_styles %} .title h1 { letter-spacing: 2px; } .meta { margin: 10px 0 18px; font-size: 11px; color: #444; } .meta span { display: inline-block; margin-right: 18px; } table.z { width: 70%; border-collapse: collapse; } table.z td { padding: 7px 8px; border-bottom: 1px solid #e5e5e5; } table.z td.num { text-align: right; font-weight: bold; } table.z tr.section td { background: #f0fdfa; color: #0f766e; font-weight: bold; border-bottom: 1px solid #99f6e4; } table.z tr.grand td { border-top: 2px solid #0d9488; font-size: 14px; } {% endblock %} {% block body %} {{ pdf.docHeader(company, 'RAPPORT Z', ['Session ' ~ shortRef ~ ' — ' ~ statusLabel], []) }}
{% set diffColor = diffCents is null ? '#555' : (diffCents < 0 ? '#dc2626' : (diffCents > 0 ? '#16a34a' : '#555')) %}| Caisse | Montant |
| Fond d'ouverture | {{ pdf.money(floatCents) }} |
| Ventes ({{ salesCount }}) | |
| Chiffre d'affaires TTC | {{ pdf.money(revenueCents) }} |
| Encaissé en espèces | {{ pdf.money(cashCents) }} |
| Autres encaissements (mobile / carte) | {{ pdf.money(otherCents) }} |
| Mouvements espèces (hors ventes) | |
| Recouvrements clients (entrées) | +{{ pdf.money(recoveriesCents) }} |
| Règlements fournisseurs (sorties) | -{{ pdf.money(supplierPaymentsCents) }} |
| Dépenses (sorties) | -{{ pdf.money(expensesCents) }} |
| Contrôle caisse | |
| Attendu en espèces (fond + espèces ± mouvements) | {{ pdf.money(expectedCents) }} |
| Compté | {{ countedCents is null ? '—' : pdf.money(countedCents) }} |
| Écart | {{ diffCents is null ? '—' : (diffCents > 0 ? '+' : '') ~ pdf.money(diffCents) }} |