228 lines
6.2 KiB
HTML
228 lines
6.2 KiB
HTML
<!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>
|