Eine echte Proxmox-Rechnung zeigt je Subscription-Key eine Zeile mit Listenpreis und eine mit "Client Discount". Unser Modell hing den Rabatt an die Rechnung - bei einer Sammelrechnung ueber zwei Hosts liesse er sich damit keinem Host zuordnen, und die Marge je Host waere falsch. Schlimmer: Er wurde nirgends abgezogen. Jetzt haengt der Rabatt an der Position, der Rechnungsbetrag ist die Summe nach Abzug, und Marge wie Summen rechnen mit dem tatsaechlich gezahlten Betrag. Die Migration verteilt vorhandene Rabatte anteilig auf die Positionen und rechnet die Summen neu - nichts geht verloren. Dazu ein eigener Steuersatz fuer den Einkauf mit Vorgabe 0: Proxmox rechnet gegenueber Unternehmen mit USt-IdNr. ueber Reverse Charge ab. Neue zwoelfte Warnregel aus Florians Ablauf: Der Kunde hat bezahlt, die Proxmox-Rechnung ist noch offen - der Moment, an dem man selbst zahlt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4.2 KiB
4.2 KiB
Issue-Übersicht
Details und Architektur: ../architektur.md. Zeiten werden aus dem DEVLOG übernommen.
| Nr. | Titel | Status | Meilenstein | Geschätzt | Tatsächlich |
|---|---|---|---|---|---|
| #001 | Projekt-Setup | erledigt | v0.1.0 | 3 h | 0 h 08 min |
| #002 | Klickbarer Prototyp | erledigt | v0.1.0 | 8 h | 0 h 20 min |
| #003 | Datenmodell und Migrationen | erledigt | v0.1.0 | 5 h | 0 h 25 min |
| #004 | Agent-API | erledigt | v0.1.0 | 6 h | 0 h 20 min |
| #005 | Agent-Skript | erledigt | v0.2.0 | 8 h | 0 h 25 min |
| #006 | Kunden, Standorte und Hostzuweisung | erledigt | v0.3.0 | 6 h | 0 h 35 min |
| #007 | Host-Tabelle, Suche und Detailansichten | erledigt | v0.4.0 | 8 h | 0 h 25 min |
| #008 | Laufzeiten und Rechnungen | erledigt | v0.5.0 | 10 h | 0 h 35 min |
| #009 | Kundenübersicht, Dashboard und Jahresbahn | erledigt | v0.6.0 | 8 h | 0 h 15 min |
| #010 | Export CSV und PDF | erledigt | v0.6.0 | 5 h | 0 h 20 min |
| #011 | Warnregeln | erledigt | v0.7.0 | 8 h | 0 h 30 min |
| #012 | Benachrichtigungen | erledigt | v0.8.0 | 6 h | 0 h 25 min |
| #013 | Authentifizierung und Audit-Log | erledigt | v0.9.0 | 6 h | 0 h 30 min |
| #014 | Deployment und Dokumentation | erledigt | v0.10.0 | 8 h | 0 h 40 min |
| #015 | Feinschliff für 1.0 | erledigt | v0.11.0 | 6 h | 0 h 35 min |
| #016 | Benutzerhandbuch mit Screenshots | erledigt | v0.12.0 | 5 h | 0 h 30 min |
| #017 | Favicon-Dateien erzeugen | erledigt | v0.12.1 | 1 h | 0 h 15 min |
| #018 | Agent auf echten Proxmox-Hosts prüfen | erledigt | v0.14.0 | 2 h | 0 h 40 min |
| #019 | CI-Pipeline | erledigt | v0.13.0 | 3 h | 0 h 20 min |
| #020 | Issues nach Gitea übertragen | erledigt | v0.4.1 | 2 h | 0 h 10 min |
| #021 | Zugangsdaten verschlüsselt speichern | erledigt | v0.13.1 | 2 h | 0 h 20 min |
| #022 | Cluster-Abgleich | erledigt | v0.14.0 | 3 h | 0 h 25 min |
| #023 | Feldtest auf PBS und PMG | offen | v1.0.0 | 2 h | 0 h 35 min (PBS erledigt, PMG offen) |
| #024 | Härtung nach OWASP | erledigt | v0.15.0 | 4 h | 0 h 45 min |
| #025 | Einstellungen im Dashboard | erledigt | v0.16.0 | 5 h | 1 h 10 min |
| #026 | Auslieferung finalisieren | erledigt | v0.17.0 | 3 h | 0 h 40 min |
| #027 | Rollen und Benutzerverwaltung | erledigt | v0.18.0 | 6 h | 1 h 20 min |
| #028 | Anmeldung mit Passkeys | erledigt | v0.18.0 | 4 h | 0 h 45 min |
| #029 | Einrichtungsdokumentation | erledigt | v0.19.0 | 3 h | 0 h 40 min |
| #030 | netbird Reverse Proxy in die Anleitung | erledigt | v0.19.1 | 1 h | 0 h 20 min |
| #031 | Update- und Sicherungsskript für beide Varianten | erledigt | v0.20.0 | 2 h | 0 h 45 min |
| #032 | LXC-Installation: Herkunft der Skripte und Speicher | erledigt | v0.20.1 | 1 h | 0 h 20 min |
| #033 | Abmelden führte auf die Lausch-Adresse | erledigt | v0.20.1 | 1 h | 0 h 30 min |
| #034 | Bedienung auf dem Handy | erledigt | v0.20.2 | 2 h | 0 h 40 min |
| #035 | Tabellen auf dem Handy als Karten | erledigt | v0.21.0 | 3 h | 0 h 50 min |
| #036 | Standort am Host setzen | erledigt | v0.21.0 | 1 h | 0 h 30 min |
| #037 | Rabatt je Position und der tatsächliche Ablauf | erledigt | v0.22.0 | 3 h | 0 h 55 min |
| Summe | 160 h | 19 h 53 min |