Recruiting Challenge: Storno nimmt Neupartner raus, Rang und Auszahlung nur mit Bestaetigung
Kundenentscheid 25.09.2026: - Storno: Ist jede bezahlte Starterpaket-Bestellung eines Neupartners storniert (txaction = cancelled), bekommt das Tracking cancelled_at, eine Storno-Logzeile nimmt die Einmalpunkte zurueck. Nachtlauf und Neuaufbau markieren; "Meine Berechnung" zeigt den Partner durchgestrichen mit "Storniert am ..., zaehlt nicht". - Gezaehlt wird fuer alle, einen Rang bekommen nur bestaetigte Teilnehmer; Export und Summen nur fuer sie. Unbestaetigte sehen "Deine Praemie nach Bestaetigung", im Admin "Teilnahme nicht bestaetigt, keine Auszahlung". - Datenschutz: andere Berater sehen Unbestaetigte in der Rangliste nicht mehr (auch nicht anonym), VIP-Konten schon, der eigene Eintrag bleibt. - Teilnahmebedingungen Punkt 2 und 7 und Hinweistexte in de/en/es/fr. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
42d2a9c0ab
commit
c4edbf97e4
23 changed files with 318 additions and 45 deletions
|
|
@ -44,8 +44,13 @@ class IncentiveController extends Controller
|
|||
->where('user_id', $user->id)
|
||||
->first();
|
||||
|
||||
// Datenschutz (Kundenentscheid 25.09.2026): Unbestaetigte Teilnehmer sehen nur VIP-Konten;
|
||||
// der eigene Eintrag bleibt fuer den Berater selbst sichtbar.
|
||||
$ranking = IncentiveParticipant::where('incentive_id', $incentive->id)
|
||||
->withRankingActivity()
|
||||
->when(! $user->isVIP(), fn ($query) => $query->where(
|
||||
fn ($visible) => $visible->whereNotNull('accepted_terms_at')->orWhere('user_id', $user->id)
|
||||
))
|
||||
->with('user', 'user.account')
|
||||
->orderByIncentiveLeaderboard()
|
||||
->paginate(100);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue