Incentive (E1): Recruiting-Challenge mit Geldpraemie, Auszahlungs-Export und parallelen Incentives

Neue Felder amount_per_partner, bonus_rank_1..3 und include_sales_points an
incentives. Mit ausgeschalteten Umsatzpunkten zaehlt die Wertung nur die
Einmalpunkte je Neupartner, die Rangliste entspricht damit der Anzahl
Neupartner mit Starterpaket. IncentivePayoutService rechnet Neupartner mal
Betrag plus Rang-Bonus fuer qualifizierte Gewinner; Admin-Detailseite bekommt
Praemienspalte, Summen und XLSX-Export fuer die Auszahlung.

Sidenav und Dashboard zeigen alle aktiven Incentives, damit Montenegro und
die Challenge parallel laufen koennen. Teaser, Rangliste und Details zeigen
bei Geldpraemie die Praemien-Kachel und "Deine Praemie bisher" und blenden
Abo-Bloecke aus, wenn Abos keine Rolle spielen. Montenegro bleibt unveraendert.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Kevin 2026-09-18 12:10:27 +00:00
parent 03416b0afe
commit e3efa2f5f0
27 changed files with 1418 additions and 129 deletions

View file

@ -181,4 +181,32 @@ return [
// Galerie
'gallery_title' => 'Impressionen',
// Praemie / Auszahlung (Recruiting-Challenge, E1)
'payout_section' => 'Prämie / Auszahlung (Recruiting-Challenge)',
'payout_section_help' => 'Optional. Leer lassen für ein reines Punkte-Incentive. Die Prämie wird aus der Anzahl Neupartner mit Starterpaket berechnet, der Rang-Bonus nur für qualifizierte Teilnehmer innerhalb der Gewinnerplätze.',
'amount_per_partner' => 'Prämie je Neupartner (€)',
'amount_per_partner_help' => 'z. B. 50,00 – wird je direkt gesponsertem Neupartner mit Starterpaket ausgezahlt.',
'bonus_rank' => 'Bonus Platz :n (€)',
'include_sales_points' => 'Umsatzpunkte der Neupartner/Abos mitzählen',
'include_sales_points_help' => 'Aus: Die Wertung besteht nur aus den Einmalpunkten (z. B. 1 Punkt je Neupartner = Rangliste nach Anzahl Neupartner).',
'payout_export' => 'Auszahlungs-Export (XLSX)',
'payout_recipients' => 'Empfänger',
'payout_partner_amount' => 'Prämie Neupartner',
'payout_rank_bonus' => 'Rang-Bonus',
'payout_total' => 'Prämie gesamt',
'payout_column' => 'Prämie',
'payout_incl_bonus' => 'inkl. :amount Rang-Bonus',
'payout_so_far' => 'Deine Prämie bisher',
'payout_tile_title' => 'Deine Prämie',
'payout_per_partner_label' => 'je direkt gesponsertem Neupartner mit Starterpaket',
'payout_per_partner_text' => 'Prämie: :amount je direkt gesponsertem Neupartner mit Starterpaket.',
'payout_rank_bonus_label' => 'Zusatz-Bonus für Platz :n',
'payout_top_bonus_title' => 'Zusatz-Bonus für die Top :n',
'payout_top_bonus_text' => 'Zusatz-Bonus für die Top :n: :list.',
'payout_rank_label' => 'Platz :n',
'payout_ranking_hint' => 'Die Rangliste zählt deine Neupartner mit Starterpaket im Qualifikationszeitraum. Die Auszahlung erfolgt gesammelt nach Ende des Zeitraums.',
'new_partners_short' => 'Neupartner',
'badge_challenge' => 'Challenge',
'export_user_id' => 'Berater-ID',
];

View file

@ -181,4 +181,32 @@ return [
// Gallery
'gallery_title' => 'Impressions',
// Praemie / Auszahlung (Recruiting-Challenge, E1)
'payout_section' => 'Reward / payout (recruiting challenge)',
'payout_section_help' => 'Optional. Leave empty for a points-only incentive. The reward is calculated from the number of new partners with a starter kit; the rank bonus only applies to qualified participants within the winner ranks.',
'amount_per_partner' => 'Reward per new partner (€)',
'amount_per_partner_help' => 'e.g. 50.00 – paid per directly sponsored new partner with a starter kit.',
'bonus_rank' => 'Bonus rank :n (€)',
'include_sales_points' => 'Count sales points of new partners/subscriptions',
'include_sales_points_help' => 'Off: The score consists of one-time points only (e.g. 1 point per new partner = ranking by number of new partners).',
'payout_export' => 'Payout export (XLSX)',
'payout_recipients' => 'Recipients',
'payout_partner_amount' => 'New partner reward',
'payout_rank_bonus' => 'Rank bonus',
'payout_total' => 'Total reward',
'payout_column' => 'Reward',
'payout_incl_bonus' => 'incl. :amount rank bonus',
'payout_so_far' => 'Your reward so far',
'payout_tile_title' => 'Your reward',
'payout_per_partner_label' => 'per directly sponsored new partner with a starter kit',
'payout_per_partner_text' => 'Reward: :amount per directly sponsored new partner with a starter kit.',
'payout_rank_bonus_label' => 'Extra bonus for rank :n',
'payout_top_bonus_title' => 'Extra bonus for the top :n',
'payout_top_bonus_text' => 'Extra bonus for the top :n: :list.',
'payout_rank_label' => 'Rank :n',
'payout_ranking_hint' => 'The ranking counts your new partners with a starter kit during the qualification period. Payout is made collectively after the period ends.',
'new_partners_short' => 'New partners',
'badge_challenge' => 'Challenge',
'export_user_id' => 'Consultant ID',
];

View file

@ -181,4 +181,32 @@ return [
// Galería
'gallery_title' => 'Impresiones',
// Praemie / Auszahlung (Recruiting-Challenge, E1)
'payout_section' => 'Prima / pago (reto de reclutamiento)',
'payout_section_help' => 'Opcional. Déjalo vacío para un incentivo solo de puntos. La prima se calcula por el número de nuevos socios con paquete de inicio; el bono por puesto solo aplica a participantes cualificados dentro de los puestos ganadores.',
'amount_per_partner' => 'Prima por nuevo socio (€)',
'amount_per_partner_help' => 'p. ej. 50,00 – se paga por cada nuevo socio patrocinado directamente con paquete de inicio.',
'bonus_rank' => 'Bono puesto :n (€)',
'include_sales_points' => 'Contar puntos de ventas de nuevos socios/suscripciones',
'include_sales_points_help' => 'Desactivado: la puntuación consta solo de los puntos únicos (p. ej. 1 punto por nuevo socio = ranking por número de nuevos socios).',
'payout_export' => 'Exportación de pagos (XLSX)',
'payout_recipients' => 'Destinatarios',
'payout_partner_amount' => 'Prima nuevos socios',
'payout_rank_bonus' => 'Bono por puesto',
'payout_total' => 'Prima total',
'payout_column' => 'Prima',
'payout_incl_bonus' => 'incl. :amount bono por puesto',
'payout_so_far' => 'Tu prima hasta ahora',
'payout_tile_title' => 'Tu prima',
'payout_per_partner_label' => 'por nuevo socio patrocinado directamente con paquete de inicio',
'payout_per_partner_text' => 'Prima: :amount por nuevo socio patrocinado directamente con paquete de inicio.',
'payout_rank_bonus_label' => 'Bono adicional para el puesto :n',
'payout_top_bonus_title' => 'Bono adicional para el top :n',
'payout_top_bonus_text' => 'Bono adicional para el top :n: :list.',
'payout_rank_label' => 'Puesto :n',
'payout_ranking_hint' => 'El ranking cuenta tus nuevos socios con paquete de inicio durante el periodo de cualificación. El pago se realiza de forma conjunta al finalizar el periodo.',
'new_partners_short' => 'Nuevos socios',
'badge_challenge' => 'Reto',
'export_user_id' => 'ID del asesor',
];

View file

@ -156,4 +156,32 @@ return [
'onetime_abo_activation' => 'Unique : activation abonnement',
'accumulated' => 'Chiffre d’affaires',
'gallery_title' => 'Impressions',
// Praemie / Auszahlung (Recruiting-Challenge, E1)
'payout_section' => 'Prime / versement (challenge de recrutement)',
'payout_section_help' => 'Facultatif. Laisser vide pour un incentive à points uniquement. La prime est calculée d’après le nombre de nouveaux partenaires avec kit de démarrage ; le bonus de classement ne s’applique qu’aux participants qualifiés dans les places gagnantes.',
'amount_per_partner' => 'Prime par nouveau partenaire (€)',
'amount_per_partner_help' => 'p. ex. 50,00 – versée par nouveau partenaire parrainé directement avec kit de démarrage.',
'bonus_rank' => 'Bonus place :n (€)',
'include_sales_points' => 'Compter les points de vente des nouveaux partenaires/abonnements',
'include_sales_points_help' => 'Désactivé : le score ne comprend que les points uniques (p. ex. 1 point par nouveau partenaire = classement par nombre de nouveaux partenaires).',
'payout_export' => 'Export des versements (XLSX)',
'payout_recipients' => 'Bénéficiaires',
'payout_partner_amount' => 'Prime nouveaux partenaires',
'payout_rank_bonus' => 'Bonus de classement',
'payout_total' => 'Prime totale',
'payout_column' => 'Prime',
'payout_incl_bonus' => 'dont :amount de bonus de classement',
'payout_so_far' => 'Ta prime jusqu’ici',
'payout_tile_title' => 'Ta prime',
'payout_per_partner_label' => 'par nouveau partenaire parrainé directement avec kit de démarrage',
'payout_per_partner_text' => 'Prime : :amount par nouveau partenaire parrainé directement avec kit de démarrage.',
'payout_rank_bonus_label' => 'Bonus supplémentaire pour la place :n',
'payout_top_bonus_title' => 'Bonus supplémentaire pour le top :n',
'payout_top_bonus_text' => 'Bonus supplémentaire pour le top :n : :list.',
'payout_rank_label' => 'Place :n',
'payout_ranking_hint' => 'Le classement compte tes nouveaux partenaires avec kit de démarrage pendant la période de qualification. Le versement est effectué groupé après la fin de la période.',
'new_partners_short' => 'Nouveaux partenaires',
'badge_challenge' => 'Challenge',
'export_user_id' => 'ID du conseiller',
];