Files
stiftung-management-system/app/templates/stiftung/jahresbericht.html
2025-09-06 18:31:54 +02:00

228 lines
6.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Stiftung Jahresbericht {{ jahr }}</title>
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
margin: 0;
padding: 20px;
color: #333;
}
.header {
text-align: center;
border-bottom: 3px solid #2c3e50;
padding-bottom: 20px;
margin-bottom: 30px;
}
.header h1 {
color: #2c3e50;
margin: 0;
font-size: 2.5em;
}
.header .subtitle {
color: #7f8c8d;
font-size: 1.2em;
margin-top: 10px;
}
.section {
margin-bottom: 30px;
page-break-inside: avoid;
}
.section h2 {
color: #34495e;
border-bottom: 2px solid #3498db;
padding-bottom: 10px;
margin-bottom: 20px;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
margin-bottom: 20px;
}
.stat-card {
background: #f8f9fa;
border: 1px solid #dee2e6;
border-radius: 8px;
padding: 20px;
text-align: center;
}
.stat-card .value {
font-size: 2em;
font-weight: bold;
color: #2c3e50;
}
.stat-card .label {
color: #7f8c8d;
margin-top: 5px;
}
table {
border-collapse: collapse;
width: 100%;
margin-bottom: 20px;
}
th, td {
border: 1px solid #dee2e6;
padding: 12px;
text-align: left;
}
th {
background-color: #f8f9fa;
font-weight: 600;
color: #2c3e50;
}
tr:nth-child(even) {
background-color: #f8f9fa;
}
.amount {
text-align: right;
font-family: 'Courier New', monospace;
}
.status-badge {
padding: 4px 8px;
border-radius: 4px;
font-size: 0.9em;
font-weight: 500;
}
.status-beantragt { background-color: #fff3cd; color: #856404; }
.status-genehmigt { background-color: #d1ecf1; color: #0c5460; }
.status-ausgezahlt { background-color: #d4edda; color: #155724; }
.status-abgelehnt { background-color: #f8d7da; color: #721c24; }
.status-storniert { background-color: #e2e3e5; color: #383d41; }
.footer {
margin-top: 40px;
padding-top: 20px;
border-top: 1px solid #dee2e6;
text-align: center;
color: #7f8c8d;
font-size: 0.9em;
}
@media print {
body { margin: 0; padding: 15px; }
.section { page-break-inside: avoid; }
}
</style>
</head>
<body>
<div class="header">
<h1>Stiftung Jahresbericht {{ jahr }}</h1>
<div class="subtitle">Jahresübersicht über Förderungen und Verpachtungen</div>
<div class="subtitle">Erstellt am {{ "now"|date:"d.m.Y" }}</div>
</div>
<!-- Executive Summary -->
<div class="section">
<h2>Zusammenfassung</h2>
<div class="stats-grid">
<div class="stat-card">
<div class="value">€{{ total_foerderungen|floatformat:2 }}</div>
<div class="label">Gesamtförderungen</div>
</div>
<div class="stat-card">
<div class="value">€{{ total_pachtzins|floatformat:2 }}</div>
<div class="label">Gesamtpachtzins</div>
</div>
<div class="stat-card">
<div class="value">{{ foerderungen.count }}</div>
<div class="label">Förderungen</div>
</div>
<div class="stat-card">
<div class="value">{{ verpachtungen.count }}</div>
<div class="label">Aktive Verpachtungen</div>
</div>
</div>
</div>
<!-- Förderungen Section -->
{% if foerderungen %}
<div class="section">
<h2>Förderungen im Jahr {{ jahr }}</h2>
<table>
<thead>
<tr>
<th>Begünstigter</th>
<th>Kategorie</th>
<th>Betrag</th>
<th>Status</th>
<th>Antragsdatum</th>
</tr>
</thead>
<tbody>
{% for foerderung in foerderungen %}
<tr>
<td>{{ foerderung.person.get_full_name }}</td>
<td>{{ foerderung.get_kategorie_display }}</td>
<td class="amount">€{{ foerderung.betrag|floatformat:2 }}</td>
<td>
<span class="status-badge status-{{ foerderung.status }}">
{{ foerderung.get_status_display }}
</span>
</td>
<td>{{ foerderung.antragsdatum|date:"d.m.Y" }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
<!-- Verpachtungen Section -->
{% if verpachtungen %}
<div class="section">
<h2>Aktive Verpachtungen im Jahr {{ jahr }}</h2>
<table>
<thead>
<tr>
<th>Länderei</th>
<th>Pächter</th>
<th>Vertragsnummer</th>
<th>Verpachtete Fläche</th>
<th>Jährlicher Pachtzins</th>
<th>Pachtende</th>
</tr>
</thead>
<tbody>
{% for verpachtung in verpachtungen %}
<tr>
<td>{{ verpachtung.land }}</td>
<td>{{ verpachtung.paechter.get_full_name }}</td>
<td>{{ verpachtung.vertragsnummer }}</td>
<td>{{ verpachtung.verpachtete_flaeche|floatformat:2 }} qm</td>
<td class="amount">€{{ verpachtung.pachtzins_jaehrlich|floatformat:2 }}</td>
<td>{{ verpachtung.pachtende|date:"d.m.Y" }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
<!-- Financial Summary -->
<div class="section">
<h2>Finanzielle Übersicht</h2>
<div class="stats-grid">
<div class="stat-card">
<div class="value">€{{ total_foerderungen|floatformat:2 }}</div>
<div class="label">Ausgaben (Förderungen)</div>
</div>
<div class="stat-card">
<div class="value">€{{ total_pachtzins|floatformat:2 }}</div>
<div class="label">Einnahmen (Pachtzins)</div>
</div>
<div class="stat-card">
<div class="value">€{{ total_pachtzins|add:total_foerderungen|floatformat:2 }}</div>
<div class="label">Netto-Position</div>
</div>
</div>
</div>
<div class="footer">
<p>Dieser Bericht wurde automatisch generiert von der Stiftungsverwaltung.</p>
<p>Bei Fragen wenden Sie sich bitte an die Verwaltung.</p>
</div>
</body>
</html>