UX: Upgrades-Tab — Button zeigt vorhandene Rechnung an, SW by-v1074

- Backend: /admin/upgrade-requests liefert pro Request die offene
  Rechnung (id+number+status) per Subquery aus der invoices-Tabelle
  (status draft|sent → also nicht bezahlt, nicht storniert)
- Frontend: Wenn schon eine Rechnung existiert, wird statt 'Rechnung
  erstellen' (orange) der Button 'Rechnung bearbeiten' (gelb,
  #eab308) gezeigt. Klick lädt die Rechnung und öffnet das Modal im
  Edit-Modus — kein doppeltes Anlegen, Nummerierung bleibt sauber.
This commit is contained in:
rene 2026-05-26 13:50:03 +02:00
parent e5abdcab62
commit 5886e1b269
6 changed files with 53 additions and 12 deletions

View file

@ -101,9 +101,9 @@
</script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=1073">
<link rel="stylesheet" href="/css/layout.css?v=1073">
<link rel="stylesheet" href="/css/components.css?v=1073">
<link rel="stylesheet" href="/css/design-system.css?v=1074">
<link rel="stylesheet" href="/css/layout.css?v=1074">
<link rel="stylesheet" href="/css/components.css?v=1074">
</head>
<body>
@ -616,10 +616,10 @@
<div id="modal-container"></div>
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
<script src="/js/api.js?v=1073"></script>
<script src="/js/ui.js?v=1073"></script>
<script src="/js/app.js?v=1073"></script>
<script src="/js/worlds.js?v=1073"></script>
<script src="/js/api.js?v=1074"></script>
<script src="/js/ui.js?v=1074"></script>
<script src="/js/app.js?v=1074"></script>
<script src="/js/worlds.js?v=1074"></script>
<!-- Feature-Seiten werden lazy geladen -->