Getrennte Fristen für Studiennachweis und Zahlung implementieren
Some checks failed
Code Quality / quality (push) Has been cancelled
CI/CD Pipeline / test (push) Has been cancelled
CI/CD Pipeline / deploy (push) Has been cancelled

- Neue Felder: studiennachweis_faelligkeitsdatum (semesterbasiert) und zahlung_faelligkeitsdatum (vierteljährlich im Voraus)
- Studiennachweis-Fristen: Q1/Q2 → 15. März, Q3/Q4 → 15. September
- Zahlungsfälligkeiten: Q1 → 15. Dez (Vorjahr), Q2 → 15. Mär, Q3 → 15. Jun, Q4 → 15. Sep
- Auto-Freigabe: Q1 freigeben → Q2 Studiennachweis auto-freigegeben, Q3 → Q4
- Unterstützungserstellung: Verhindert Duplikate durch präzise Suche nach zahlung_faelligkeitsdatum
- Quartalserstellung: Modal-Formular funktioniert korrekt
- UI: Beide Fristen in Tabelle angezeigt, separate Überfälligkeits-Indikatoren
- Migration: Neue Felder hinzugefügt und bestehende Datensätze befüllt
This commit is contained in:
2025-12-30 20:20:33 +01:00
parent 24435660f5
commit 6c8ddbb4f0
6 changed files with 542 additions and 187 deletions

View File

@@ -155,8 +155,15 @@
{% endif %}">
{{ nachweis.get_status_display }}
</span>
{% if nachweis.faelligkeitsdatum %}
<br><small class="opacity-75">Fällig: {{ nachweis.faelligkeitsdatum|date:"d.m.Y" }}</small>
{% if nachweis.studiennachweis_faelligkeitsdatum or nachweis.zahlung_faelligkeitsdatum %}
<br><small class="opacity-75">
{% if nachweis.studiennachweis_faelligkeitsdatum %}
Studiennachweis: {{ nachweis.studiennachweis_faelligkeitsdatum|date:"d.m.Y" }}
{% endif %}
{% if nachweis.zahlung_faelligkeitsdatum %}
| Zahlung: {{ nachweis.zahlung_faelligkeitsdatum|date:"d.m.Y" }}
{% endif %}
</small>
{% endif %}
</div>
</div>
@@ -175,8 +182,25 @@
</div>
<div class="col-md-6">
<p class="mb-2"><strong>Zeitraum:</strong> {{ nachweis.jahr }} {{ nachweis.get_quarter_display }}</p>
{% if nachweis.faelligkeitsdatum %}
<p class="mb-0"><strong>Fälligkeitsdatum:</strong> {{ nachweis.faelligkeitsdatum|date:"d.m.Y" }}</p>
{% if nachweis.studiennachweis_faelligkeitsdatum %}
<p class="mb-1"><strong>Studiennachweis fällig:</strong>
<span class="{% if nachweis.is_study_proof_overdue %}text-danger{% endif %}">
{{ nachweis.studiennachweis_faelligkeitsdatum|date:"d.m.Y" }}
</span>
{% if nachweis.is_study_proof_overdue %}
<i class="fas fa-exclamation-triangle text-danger" title="Überfällig"></i>
{% endif %}
</p>
{% endif %}
{% if nachweis.zahlung_faelligkeitsdatum %}
<p class="mb-0"><strong>Zahlung fällig:</strong>
<span class="{% if nachweis.is_payment_overdue %}text-danger{% endif %}">
{{ nachweis.zahlung_faelligkeitsdatum|date:"d.m.Y" }}
</span>
{% if nachweis.is_payment_overdue %}
<i class="fas fa-exclamation-triangle text-danger" title="Überfällig"></i>
{% endif %}
</p>
{% endif %}
</div>
</div>
@@ -420,8 +444,25 @@
</span>
</p>
{% if nachweis.faelligkeitsdatum %}
<p class="mb-2"><strong>Fälligkeit:</strong> {{ nachweis.faelligkeitsdatum|date:"d.m.Y" }}</p>
{% if nachweis.studiennachweis_faelligkeitsdatum %}
<p class="mb-1"><strong>Studiennachweis fällig:</strong>
<span class="{% if nachweis.is_study_proof_overdue %}text-danger{% endif %}">
{{ nachweis.studiennachweis_faelligkeitsdatum|date:"d.m.Y" }}
</span>
{% if nachweis.is_study_proof_overdue %}
<i class="fas fa-exclamation-triangle text-danger" title="Überfällig"></i>
{% endif %}
</p>
{% endif %}
{% if nachweis.zahlung_faelligkeitsdatum %}
<p class="mb-2"><strong>Zahlung fällig:</strong>
<span class="{% if nachweis.is_payment_overdue %}text-danger{% endif %}">
{{ nachweis.zahlung_faelligkeitsdatum|date:"d.m.Y" }}
</span>
{% if nachweis.is_payment_overdue %}
<i class="fas fa-exclamation-triangle text-danger" title="Überfällig"></i>
{% endif %}
</p>
{% endif %}
{% if nachweis.eingereicht_am %}