### 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:**
