Files
stiftung-management-system/app/templates/stiftung/land_abrechnung_form.html
SysAdmin Agent e6f4c5ba1b Generalize email system with invoice workflow and Stiftungsgeschichte category
- Rename DestinataerEmailEingang → EmailEingang with category support
  (destinataer, rechnung, land_pacht, stiftungsgeschichte, allgemein)
- Add invoice capture workflow: create Verwaltungskosten from email,
  link DMS documents as invoice attachments, track payment status
- Add Stiftungsgeschichte email category with auto-detection patterns
  (Ahnenforschung, Genealogie, Chronik, etc.) and DMS integration
- Update poll_emails task with category detection and DMS context mapping
- Show available history documents in Geschichte editor sidebar
- Consolidate DMS views, remove legacy dokument templates
- Update all detail/form templates for DMS document linking
- Add deploy.sh script and streamline compose.yml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 10:17:14 +00:00

324 lines
17 KiB
HTML

{% extends 'base.html' %}
{% load static %}
{% block title %}{{ title }} - Stiftungsverwaltung{% endblock %}
{% block content %}
<!-- Header -->
<div class="row mb-4">
<div class="col-md-8">
<h1 class="h3">
<i class="fas fa-calculator text-success me-2"></i>
{{ title }}
</h1>
{% if land %}
<p class="text-muted">
Länderei: <a href="{% url 'stiftung:land_detail' land.pk %}">{{ land }}</a>
</p>
{% endif %}
</div>
<div class="col-md-4 text-end">
<a href="{% if abrechnung %}{% url 'stiftung:land_abrechnung_detail' abrechnung.pk %}{% else %}{% url 'stiftung:land_abrechnung_list' %}{% endif %}" class="btn btn-outline-secondary">
<i class="fas fa-arrow-left me-2"></i>Zurück
</a>
</div>
</div>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="row">
<!-- Left Column -->
<div class="col-lg-8">
<!-- Grunddaten -->
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">
<i class="fas fa-info-circle me-2"></i>Grunddaten
</h6>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.land.id_for_label }}" class="form-label">{{ form.land.label }}</label>
{{ form.land }}
{% if form.land.errors %}
<div class="text-danger">{{ form.land.errors }}</div>
{% endif %}
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.abrechnungsjahr.id_for_label }}" class="form-label">{{ form.abrechnungsjahr.label }}</label>
{{ form.abrechnungsjahr }}
{% if form.abrechnungsjahr.errors %}
<div class="text-danger">{{ form.abrechnungsjahr.errors }}</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<!-- Einnahmen -->
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-success">
<i class="fas fa-arrow-up me-2"></i>Einnahmen
</h6>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-4">
<div class="mb-3">
<label for="{{ form.pacht_vereinnahmt.id_for_label }}" class="form-label">{{ form.pacht_vereinnahmt.label }}</label>
{{ form.pacht_vereinnahmt }}
{% if form.pacht_vereinnahmt.errors %}
<div class="text-danger">{{ form.pacht_vereinnahmt.errors }}</div>
{% endif %}
</div>
</div>
<div class="col-md-4">
<div class="mb-3">
<label for="{{ form.umlagen_vereinnahmt.id_for_label }}" class="form-label">{{ form.umlagen_vereinnahmt.label }}</label>
{{ form.umlagen_vereinnahmt }}
{% if form.umlagen_vereinnahmt.errors %}
<div class="text-danger">{{ form.umlagen_vereinnahmt.errors }}</div>
{% endif %}
</div>
</div>
<div class="col-md-4">
<div class="mb-3">
<label for="{{ form.sonstige_einnahmen.id_for_label }}" class="form-label">{{ form.sonstige_einnahmen.label }}</label>
{{ form.sonstige_einnahmen }}
{% if form.sonstige_einnahmen.errors %}
<div class="text-danger">{{ form.sonstige_einnahmen.errors }}</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<!-- Ausgaben -->
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-danger">
<i class="fas fa-arrow-down me-2"></i>Ausgaben
</h6>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.grundsteuer_bescheid_nr.id_for_label }}" class="form-label">{{ form.grundsteuer_bescheid_nr.label }}</label>
{{ form.grundsteuer_bescheid_nr }}
{% if form.grundsteuer_bescheid_nr.errors %}
<div class="text-danger">{{ form.grundsteuer_bescheid_nr.errors }}</div>
{% endif %}
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.grundsteuer_betrag.id_for_label }}" class="form-label">{{ form.grundsteuer_betrag.label }}</label>
{{ form.grundsteuer_betrag }}
{% if form.grundsteuer_betrag.errors %}
<div class="text-danger">{{ form.grundsteuer_betrag.errors }}</div>
{% endif %}
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.versicherungen_betrag.id_for_label }}" class="form-label">{{ form.versicherungen_betrag.label }}</label>
{{ form.versicherungen_betrag }}
{% if form.versicherungen_betrag.errors %}
<div class="text-danger">{{ form.versicherungen_betrag.errors }}</div>
{% endif %}
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.verbandsbeitraege_betrag.id_for_label }}" class="form-label">{{ form.verbandsbeitraege_betrag.label }}</label>
{{ form.verbandsbeitraege_betrag }}
{% if form.verbandsbeitraege_betrag.errors %}
<div class="text-danger">{{ form.verbandsbeitraege_betrag.errors }}</div>
{% endif %}
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.sonstige_abgaben_betrag.id_for_label }}" class="form-label">{{ form.sonstige_abgaben_betrag.label }}</label>
{{ form.sonstige_abgaben_betrag }}
{% if form.sonstige_abgaben_betrag.errors %}
<div class="text-danger">{{ form.sonstige_abgaben_betrag.errors }}</div>
{% endif %}
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.instandhaltung_betrag.id_for_label }}" class="form-label">{{ form.instandhaltung_betrag.label }}</label>
{{ form.instandhaltung_betrag }}
{% if form.instandhaltung_betrag.errors %}
<div class="text-danger">{{ form.instandhaltung_betrag.errors }}</div>
{% endif %}
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.verwaltung_recht_betrag.id_for_label }}" class="form-label">{{ form.verwaltung_recht_betrag.label }}</label>
{{ form.verwaltung_recht_betrag }}
{% if form.verwaltung_recht_betrag.errors %}
<div class="text-danger">{{ form.verwaltung_recht_betrag.errors }}</div>
{% endif %}
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.vorsteuer_aus_umlagen.id_for_label }}" class="form-label">{{ form.vorsteuer_aus_umlagen.label }}</label>
{{ form.vorsteuer_aus_umlagen }}
{% if form.vorsteuer_aus_umlagen.errors %}
<div class="text-danger">{{ form.vorsteuer_aus_umlagen.errors }}</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<!-- Sonstiges -->
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">
<i class="fas fa-sticky-note me-2"></i>Sonstiges
</h6>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="{{ form.offene_posten.id_for_label }}" class="form-label">{{ form.offene_posten.label }}</label>
{{ form.offene_posten }}
{% if form.offene_posten.errors %}
<div class="text-danger">{{ form.offene_posten.errors }}</div>
{% endif %}
</div>
</div>
</div>
<div class="mb-3">
<label for="{{ form.bemerkungen.id_for_label }}" class="form-label">{{ form.bemerkungen.label }}</label>
{{ form.bemerkungen }}
{% if form.bemerkungen.errors %}
<div class="text-danger">{{ form.bemerkungen.errors }}</div>
{% endif %}
</div>
</div>
</div>
</div>
<!-- Right Column -->
<div class="col-lg-4">
<!-- Dokumente über Paperless -->
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">
<i class="fas fa-link me-2"></i>Dokumente verknüpfen
</h6>
</div>
<div class="card-body">
<p class="text-muted mb-3">
Dokumente werden im DMS verwaltet.
</p>
<div class="d-grid gap-2">
<a href="{% url 'stiftung:dms_list' %}" class="btn btn-outline-primary btn-sm">
<i class="fas fa-folder-open me-2"></i>Zum DMS
</a>
</div>
{% if land %}
<hr>
<h6 class="text-muted">Verknüpfte Dokumente:</h6>
{% if land.dokumentlink_set.all %}
{% for dokument in land.dokumentlink_set.all %}
<div class="border rounded p-2 mb-2">
<strong>{{ dokument.titel }}</strong>
<br><small class="text-muted">{{ dokument.get_kontext_display }}</small>
</div>
{% endfor %}
{% else %}
<p class="text-muted">Keine Dokumente verknüpft</p>
{% endif %}
{% endif %}
</div>
</div>
<!-- Berechnungen (Preview) -->
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-info">
<i class="fas fa-calculator me-2"></i>Berechnungen
</h6>
</div>
<div class="card-body">
{% if abrechnung %}
<table class="table table-sm table-borderless">
<tr>
<td><strong>Einnahmen:</strong></td>
<td class="text-end text-success">€{{ abrechnung.einnahmen_gesamt|floatformat:2 }}</td>
</tr>
<tr>
<td><strong>Ausgaben:</strong></td>
<td class="text-end text-danger">€{{ abrechnung.ausgaben_gesamt|floatformat:2 }}</td>
</tr>
<tr class="border-top">
<td><strong>Nettoergebnis:</strong></td>
<td class="text-end">
<strong class="{% if abrechnung.nettoergebnis >= 0 %}text-success{% else %}text-danger{% endif %}">
€{{ abrechnung.nettoergebnis|floatformat:2 }}
</strong>
</td>
</tr>
{% if abrechnung.ust_pacht_betrag > 0 %}
<tr>
<td><strong>USt-Zahllast:</strong></td>
<td class="text-end text-info">€{{ abrechnung.ust_pacht_betrag|floatformat:2 }}</td>
</tr>
{% endif %}
</table>
{% else %}
<p class="text-muted text-center">Berechnungen werden nach dem Speichern angezeigt</p>
{% endif %}
</div>
</div>
</div>
</div>
<!-- Submit Buttons -->
<div class="row">
<div class="col-12">
<div class="card shadow">
<div class="card-body">
<div class="d-flex justify-content-between">
<a href="{% if abrechnung %}{% url 'stiftung:land_abrechnung_detail' abrechnung.pk %}{% else %}{% url 'stiftung:land_abrechnung_list' %}{% endif %}" class="btn btn-secondary">
<i class="fas fa-times me-2"></i>Abbrechen
</a>
<button type="submit" class="btn btn-success">
<i class="fas fa-save me-2"></i>
{% if abrechnung %}Aktualisieren{% else %}Erstellen{% endif %}
</button>
</div>
</div>
</div>
</div>
</div>
</form>
{% endblock %}