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>
60 lines
2.1 KiB
PHP
60 lines
2.1 KiB
PHP
<?php
|
|
|
|
return [
|
|
// Headlines
|
|
'initial_composition' => 'Original Composition',
|
|
'change_history' => 'Change History',
|
|
'no_initial_data' => 'No original data available (subscription was created before history tracking)',
|
|
'no_changes' => 'No changes recorded',
|
|
|
|
// Columns
|
|
'col_date' => 'Date',
|
|
'col_action' => 'Action',
|
|
'col_product' => 'Product',
|
|
'col_details' => 'Details',
|
|
'col_changed_by' => 'Changed by',
|
|
'col_channel' => 'Channel',
|
|
|
|
// Actions
|
|
'action_initial' => 'Original',
|
|
'action_added' => 'Added',
|
|
'action_removed' => 'Removed',
|
|
'action_qty_changed' => 'Qty changed',
|
|
'action_comp_changed' => 'Comp swapped',
|
|
'action_comp_added' => 'Comp added',
|
|
'action_comp_removed' => 'Comp removed',
|
|
'action_rollback' => 'Rolled back',
|
|
|
|
// Descriptions
|
|
'desc_initial' => 'Quantity: :qty',
|
|
'desc_added' => 'Quantity: :qty',
|
|
'desc_removed' => 'Product removed',
|
|
'desc_qty_changed' => 'Quantity changed from :from to :to',
|
|
'desc_comp_changed' => 'Replaced: :old',
|
|
'desc_comp_added' => 'Added by system',
|
|
'desc_comp_removed' => 'Removed by system',
|
|
'desc_rollback' => 'Reset to original',
|
|
|
|
// Channels
|
|
'status_history_title' => 'Status changes (pause & cancellation)',
|
|
'status_paused' => 'Paused',
|
|
'status_cancelled' => 'Cancelled',
|
|
'status_deactivated' => 'Deactivated',
|
|
'status_reactivated' => 'Reactivated',
|
|
'status_shift' => 'Execution moved from :from to :to',
|
|
'channel_admin' => 'Admin',
|
|
'channel_user_me' => 'Consultant',
|
|
'channel_user_ot' => 'Consultant (Customer)',
|
|
'channel_portal' => 'Customer Portal',
|
|
'channel_system' => 'System',
|
|
|
|
// Price type
|
|
'price_net' => 'net',
|
|
'price_gross' => 'gross',
|
|
|
|
// Rollback
|
|
'rollback_btn' => 'Reset to Original',
|
|
'rollback_confirm' => 'Are you sure you want to reset the subscription to its original state? All current products will be replaced with the original composition.',
|
|
'rollback_success' => 'The subscription has been successfully reset to its original state.',
|
|
'rollback_no_data' => 'Rollback not possible: No original data available.',
|
|
];
|