Feedback-Umsetzung (dev/2026-07-22/feedback-analyse-2026-07-24.md, alle 10 Punkte):
- VIP-Statistik: eigener Berater ('ich', Linie 0) in Neue-Kundenabos- und beiden Top-10-Listen; Top-10-Umsatz sortiert nach abgerechneten Ist-Punkten + Abo-Anzahl-Spalte; Fußnote nicht-payline-wirksame Punkte (SalesVolumePoints::nonPaylinePoints)
- Führungskräfte-Liste: beide Sichten 'direkt' (an nächster FK abgeschnitten, additiv) und 'gesamt' (komplette Downline), Gesamt-Spalte nach Kundenzählweise
- Team-Abos: je Ebene 'abgerechnet (Monat)' und 'bis zum 25. erwartet'; Payline-Karte mit Teamabo-/Kundenabo-Zählern
- Incentive-Live-Ranking: Qualifizierte zuerst nummeriert (fixt auch isWinner rank<=max_winners)
- Porto: Netto-/Brutto-Kennzeichnung (Berater netto, Endkunden inkl. MwSt., portal_view-Flag; auch CRM-/Shop-Warenkorb + Checkout), Yard::shipping_tax-Fix
- Struktur-Ansicht: Abo-Badges 'A' (eigenes Abo) und '(n)' (Kundenabos) je Teampartner, gebatcht
- Abo-Löschung: Softdelete setzt active=0 (UserAbo deleting-Hook) + Bereinigungs-Migration für gelöschte-aber-aktive Abos
- Doku: technische Analyse + Kundinnen-Feedback-Dokument unter dev/2026-07-22/
- Tests: IncentiveRankingTest, TeamStructureAboBadgesTest, YardShippingTaxTest (neu); BackofficeStatisticsListsTest, TeamAboOverviewTest, PaylineForecastServiceTest, AboAdminDeleteTest, AboOneTimeViewTest erweitert
Außerdem enthalten (Branch-WIP vor dem Feedback): DATEV-Abgleich-Fixes 08+09/2025, USt-ID-Live-Validierung sowie restliche unkommittete Stände (u. a. Abo-Pause-Sprachkeys).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
47 lines
2.2 KiB
PHP
47 lines
2.2 KiB
PHP
<?php
|
||
|
||
return [
|
||
'initial_composition' => 'Composition initiale',
|
||
'change_history' => 'Historique des modifications',
|
||
'no_initial_data' => 'Aucune donnée initiale disponible (abonnement créé avant l’activation de l’historique)',
|
||
'no_changes' => 'Aucune modification disponible',
|
||
'col_date' => 'Date',
|
||
'col_action' => 'Action',
|
||
'col_product' => 'Article',
|
||
'col_details' => 'Détails',
|
||
'col_changed_by' => 'Modifié par',
|
||
'col_channel' => 'Zone',
|
||
'action_initial' => 'Origine',
|
||
'action_added' => 'Ajouté',
|
||
'action_removed' => 'Supprimé',
|
||
'action_qty_changed' => 'Quantité modifiée',
|
||
'action_comp_changed' => 'Comp remplacé',
|
||
'action_comp_added' => 'Comp ajouté',
|
||
'action_comp_removed' => 'Comp supprimé',
|
||
'action_rollback' => 'Réinitialisé',
|
||
'desc_initial' => 'Quantité : :qty',
|
||
'desc_added' => 'Quantité : :qty',
|
||
'desc_removed' => 'Article supprimé',
|
||
'desc_qty_changed' => 'Quantité modifiée de :from à :to',
|
||
'desc_comp_changed' => 'Remplacé : :old',
|
||
'desc_comp_added' => 'Ajouté par le système',
|
||
'desc_comp_removed' => 'Supprimé par le système',
|
||
'desc_rollback' => 'Réinitialisé à l’origine',
|
||
'status_history_title' => 'Changements de statut (pause et résiliation)',
|
||
'status_paused' => 'Suspendu',
|
||
'status_cancelled' => 'Résilié',
|
||
'status_deactivated' => 'Désactivé',
|
||
'status_reactivated' => 'Réactivé',
|
||
'status_shift' => 'Exécution reportée du :from au :to',
|
||
'channel_admin' => 'Admin',
|
||
'channel_user_me' => 'Conseiller',
|
||
'channel_user_ot' => 'Conseiller (client)',
|
||
'channel_portal' => 'Portail client',
|
||
'channel_system' => 'Système',
|
||
'price_net' => 'net',
|
||
'price_gross' => 'brut',
|
||
'rollback_btn' => 'Réinitialiser à l’origine',
|
||
'rollback_confirm' => 'Voulez-vous vraiment réinitialiser l’abonnement à son état initial ? Tous les produits actuels seront remplacés par la composition initiale.',
|
||
'rollback_success' => 'L’abonnement a été réinitialisé avec succès à son état initial.',
|
||
'rollback_no_data' => 'Rollback impossible : aucune donnée initiale disponible.',
|
||
];
|