mivita/dev/2026-02-06/next-steps.md
2026-02-20 17:55:06 +01:00

143 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### Die drei offenen Tickets aus
dev/22-01-2026/next-steps.md
### [✓] 13. Steuerberater-Modul (DATEV-Export)
**Priorität:** Hoch
**Status:** Umgesetzt (Phase 1)
**Umgesetzte Features:**
1. **DATEV EXTF-Buchungsstapel-Export** (`DatevExportService`)
- Rechnungen, Gutschriften/Provisionen, Stornos
- EXTF-Header + 116-Spalten CSV gemäß DATEV Developer Portal
- Periodenauswahl (Monat/Jahr)
2. **Erlöskonto-Mapping nach Steuerberater-Vorgabe**
- 8400 Erlöse 19% (BU 9) Inland
- 8300 Erlöse 7% (BU 8) Inland reduziert
- 8125 IG-Lieferung steuerfrei §4 Nr. 1b (BU 1) **nur bei EU + gültiger USt-ID**
- 8120 Drittland steuerfrei §4 Nr. 1a (BU 11)
3. **Fachliche Regel: EU-Steuerbefreiung nur mit USt-ID**
- Nur registrierte Berater (`auth_user`) mit hinterlegter `tax_identification_number` erhalten BU 1
- Gäste und Berater ohne USt-ID → reguläre Inlandsbesteuerung (19%/7%)
- USt-ID wird über `ShoppingOrder → auth_user → account → tax_identification_number` ermittelt
4. **Provisions-Steuerschlüssel**
- 4760 Verkaufsprovision (Shop + Wachstumsbonus)
- 4764 Payline-Provision
- Normal (BU 9), Kleinunternehmer (BU 50), Reverse Charge (BU 94)
5. **Gegenkonto-Mapping**
- PayPal → 1230
- Sonstige → Sammeldebitor (konfigurierbar)
- Provisionen → Sammelkreditor
6. **Validierung mit klickbaren Warnungen**
- Strukturierte Warnungen/Fehler mit Metadaten (source_id, order_id, user_id)
- Links zur Rechnung (Rechnungssuche) und zum Berater (Detailseite)
- Prüfungen: Belegdatum, Belegnummer, BU-Schlüssel, EU ohne USt-ID, Reverse Charge ohne USt-ID
7. **DataTable mit Suchfunktion**
- Durchsuchbar nach Rechnungsnummer, Buchungstext, Konto, USt-ID, etc.
- Server-seitige Verarbeitung via Yajra DataTables
8. **Admin-UI** (Route: `admin_payments_taxadvisor`)
- Vorschau laden → Zusammenfassung + Validierung
- Export generieren → CSV + DB-Protokoll
- Download, Lock, Löschen
**Geänderte Dateien:**
- `app/Services/DatevExportService.php` Kernlogik
- `app/Http/Controllers/PaymentTaxAdvisorController.php` Controller
- `resources/views/admin/payment/taxadvisor.blade.php` View
- `config/datev.php` Konfiguration
- `tests/Unit/Services/DatevExportServiceTest.php` 35 Tests
**Offene Punkte (Phase 2):**
- Debitoren/Kreditoren-Stammdaten (wenn Steuerberater OP-Listen braucht)
- Payone-Debitor-Mapping (detaillierter als Sammeldebitor)
- Automatischer Periodenabschluss / Sperr-Workflow
---
### [!] 10. Nicht zugeordnete Zahlungen/Punkte
**Priorität:** Hoch
**Bereich:** Payment / Admin
**Problem:**
Zahlungen ohne Zuordnung → Punkte verschwinden, keine Provision.
**Anforderung:**
- Admin-Hinweis bei nicht zugeordneten Zahlungen
- Manuelle Zuordnungsmöglichkeit
**Technische Details:**
| Parameter | Wert |
|-----------|------|
| Tabelle | `user_sales_volumes` |
| Status-Feld | `status = 0` (not_assigned) |
| Admin-View | Dashboard oder separate Sektion |
**Query für nicht zugeordnete Einträge:**
```php
$unassigned = UserSalesVolume::where('status', 0)
->with('user', 'order')
->orderBy('created_at', 'desc')
->get();
```
**Umsetzung:**
1. **Dashboard-Alert:** Anzahl nicht zugeordneter Einträge anzeigen
2. **Admin-Seite:** Liste aller nicht zugeordneten Einträge
3. **Zuordnungs-Modal:**
- User auswählen (Dropdown/Suche)
- Status aktualisieren (1 = advisor_order, 2 = shoporder)
- Punkte werden bei nächster Berechnung berücksichtigt
---
### [ ] 11. Monatsstatistik Erweiterungen
**Priorität:** Mittel
**Bereich:** Dashboard / Team
**Probleme:**
- Teamumsatz wird seit Januar nicht angezeigt
- Neupartner/Abos nicht klickbar (keine Detailansicht)
**Anforderungen:**
| Feature | Beschreibung |
|---------|--------------|
| Teamumsatz | Bug fixen - wird nicht angezeigt |
| Neupartner Details | Klick → Liste mit Name, E-Mail, Telefon, Generation, Mentor |
| Team-Abos Details | Klick → Liste mit Abo-Details |
| 1000-Punkte-Shops | Neue Kennzahl: Teampartner mit ≥1000 Punkte persönlichem Volumen |
| Aktuelle Provision | In Monatsstatistik anzeigen |
| Downline-Kontakte | Telefon, E-Mail, Adresse der eigenen Downline abrufbar (nicht nur VIPs) |
**Technische Details:**
| Parameter | Wert |
|-----------|------|
| Service | `App\Services\LevelReportService` |
| Controller | `App\Http\Controllers\User\TeamController` |
| View | `resources/views/user/team/marketingplan.blade.php` |
| Daten | `user_business` Tabelle |
**1000-Punkte Query:**