F1: partner_paid_at wird beim Rechnungskauf (paymentStatusPaidAction mit paid=false) nicht mehr gesetzt, sondern erst bei der Rechnungszahlung; der Backfill nimmt das Aktivierungsdatum nur noch ohne jede Registrierungsbestellung (offene Rechnung bleibt leer). F2: Snapshots speichern je Linie new_partner_ids, die Neupartner-Liste zeigt genau diese; aeltere Snapshots ohne IDs rechnen mit der damaligen Regel (Registrierungsmonat, scopeNewPartnerInByActiveDate), damit Kachel und Liste uebereinstimmen. Keine Payload-Versionsaenderung, kein Neuaufbau noetig. F3: Liefertag-/Termin-Aenderung waehrend einer Pause zieht paused_until mit; eine Ausfuehrung loescht auch den paused_by_*-Grund. F4: expiredCount der Firstlines-Seite (Controller, View, Sprachen) zum bereits committeten Test nachgezogen. F5: Backfills schreiben ohne updated_at (toBase()->update, timestamps=false). Kuendigungsbestaetigung abo_cancel_confirm wird im Selfservice serverseitig verlangt. AboStatusExplainer laedt die Historie je Abo und Aktion nur einmal. Stellungnahme und Deploy-Folgen im Audit-Dokument, Regressionstests je Befund. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
174 lines
7.6 KiB
PHP
174 lines
7.6 KiB
PHP
<?php
|
|
|
|
return [
|
|
'KU' => 'KU',
|
|
'PP' => 'PP',
|
|
'TP' => 'TP',
|
|
'WB' => 'WB',
|
|
'account' => 'account',
|
|
'account_to' => 'account until',
|
|
'active' => 'active',
|
|
'business' => 'business',
|
|
'career_level' => 'career level',
|
|
'collapse_all' => 'close everything',
|
|
'commission_WB' => 'commission growth bonus',
|
|
'commission_payline' => 'commission Payline',
|
|
'commission_shop' => 'commission Shop',
|
|
'commission_team' => 'commission Team',
|
|
'commission_total' => 'total commission',
|
|
'completed' => 'completed',
|
|
'consultant_margin' => 'Advisor margin',
|
|
'consultant_margin_info' => 'Note: The margin has already been deducted when ordering and has therefore already been paid out.',
|
|
'create_new_consultant' => 'create new advisor',
|
|
'current_commission_level' => 'current commission level',
|
|
'customer_commission' => 'customer commission',
|
|
'customer_points' => 'customer Points',
|
|
'date' => 'date',
|
|
'e' => 'E',
|
|
'expand_all' => 'open everything',
|
|
'export' => 'export',
|
|
'export_as_xls' => 'export as xls',
|
|
'filename_export' => 'mivita-my-team-export-',
|
|
'link_for_consultant_registration' => 'consultant registration link',
|
|
'net_turnover' => 'net sales',
|
|
'new_consultant_copy1' => 'Would you like to register a new advisor? Great, we\'re happy about that. Simply send him the following link by email, WhatsApp or SMS. This takes you to the registration page of www.mivita.care. It is important that you do not change this link, because the attached consultant ID identifies you as the sponsor of the new consultant. This is the only way to assign future commissions from your sales to you. Use the “copy symbol” to copy the link straight to your clipboard.',
|
|
'next_career_level' => 'next career level',
|
|
'next_commission_level' => 'next commission level',
|
|
'no_sponsor_assigned' => 'no sponsor assigned',
|
|
'not_active' => 'not active',
|
|
'last_login' => 'Last login',
|
|
'registered_at' => 'Registered at',
|
|
'own' => 'own',
|
|
'payline_points' => 'payline points',
|
|
'payout_details' => 'payout details',
|
|
'points' => 'points',
|
|
'qualification' => 'qualification',
|
|
'qualification_commission' => 'qualification commission',
|
|
'qualification_points' => 'qualification points',
|
|
'register_new_consultant' => 'register new advisor',
|
|
's' => 'S',
|
|
'sales_store_net' => 'sales store net',
|
|
'shop' => 'shop',
|
|
'shop_commission' => 'shop commission',
|
|
'sponsor' => 'sponsor',
|
|
'structure' => 'structure',
|
|
'total_points' => 'total Points',
|
|
'total_turnover' => 'total sales',
|
|
'until' => 'until',
|
|
'volume_KU' => 'volume KU',
|
|
'your_sponsor' => 'your sponsor',
|
|
'your_team' => 'your team',
|
|
|
|
// Filter & Status
|
|
'filter_active' => 'active',
|
|
'filter_not_active' => 'not active',
|
|
'filter_all' => 'all',
|
|
'all_status' => 'All Status',
|
|
'qualified_green' => 'Qualified (green)',
|
|
'in_progress_yellow' => 'In Progress (yellow)',
|
|
'no_level_red' => 'No Level (red)',
|
|
|
|
// Abo badges (structure view)
|
|
'badge_own_abo' => 'has an own subscription',
|
|
'badge_customer_abos' => '{1} 1 own customer subscription|[2,*] :count own customer subscriptions',
|
|
|
|
// Performance & Badges
|
|
'optimized' => 'OPTIMIZED',
|
|
'standard_monitoring' => 'STANDARD + MONITORING',
|
|
'fallback' => 'FALLBACK',
|
|
'loading_time' => 'Loading time:',
|
|
'memory' => 'Memory:',
|
|
'memory_usage' => 'Memory usage:',
|
|
'team_size' => 'Team size:',
|
|
'team_members' => 'Team members:',
|
|
'execution_time' => 'Execution time:',
|
|
'user_id' => 'User ID:',
|
|
|
|
// Buttons & Actions
|
|
'performance_details' => 'Performance Details',
|
|
'team_structure' => 'Team Structure',
|
|
'new_member' => 'New Member',
|
|
'optimized_action' => 'Optimized',
|
|
'standard_action' => 'Standard',
|
|
'close' => 'Close',
|
|
'show_details' => 'Show Details',
|
|
'test_optimized' => 'Test Optimized',
|
|
'standard_version' => 'Standard Version',
|
|
|
|
// Modals & Titles
|
|
'performance_metrics_team_overview' => 'Performance Metrics - Team Overview',
|
|
'performance_metrics_my_team' => 'Performance Metrics - My Team',
|
|
'performance_monitoring' => 'Performance Monitoring',
|
|
'fallback_support' => 'Fallback Support',
|
|
|
|
// Messages & Notifications
|
|
'optimized_with_cache' => 'Optimized with Cache',
|
|
'datatable_mode_switched' => 'DataTable mode switched to ":mode"',
|
|
'error_loading_optimized_overview' => 'Error loading optimized team overview: ',
|
|
'live_not_supported_fallback' => 'Live (not supported in fallback)',
|
|
'optimized_performance_features' => 'This page uses optimized performance features.',
|
|
|
|
// Next Level
|
|
'next_level' => 'Next Level',
|
|
|
|
// Additional terms
|
|
'calculation_type' => 'Calculation Type',
|
|
'version' => 'Version',
|
|
'cache' => 'Cache',
|
|
'live' => 'Live',
|
|
|
|
// Missing table headers
|
|
'ID' => 'ID',
|
|
'Ebene' => 'Level',
|
|
'Level' => 'Level',
|
|
'KD' => 'KD',
|
|
'bis' => 'until',
|
|
|
|
// Level Reports
|
|
'level_reports_title' => 'Level Promotion Reports - My Team',
|
|
'level_reports_month' => 'Month',
|
|
'level_reports_year' => 'Year',
|
|
'level_reports_filter_not_updated' => 'Only not updated users',
|
|
'level_reports_filter_button' => 'Filter',
|
|
'level_reports_csv_export' => 'CSV Export',
|
|
'level_reports_total_promotions' => 'Total Promotions',
|
|
'level_reports_by_level' => 'Promotions by Level',
|
|
'level_reports_table_date' => 'Date',
|
|
'level_reports_table_user' => 'User',
|
|
'level_reports_table_from_level' => 'From Level',
|
|
'level_reports_table_to_level' => 'To Level',
|
|
'level_reports_table_current_level' => 'Current Level',
|
|
'level_reports_table_kp_quali' => 'KP Qual',
|
|
'level_reports_table_user_kp' => 'User KP',
|
|
'level_reports_table_pp_quali' => 'PP Qual',
|
|
'level_reports_table_user_pp' => 'User PP',
|
|
'level_reports_table_update' => 'Update',
|
|
'level_reports_table_active' => 'Active',
|
|
'level_reports_by_period' => 'Promotions by Period',
|
|
'level_reports_no_data' => 'No Level Promotions Found',
|
|
'level_reports_no_data_description' => 'No entries found with the current filters.',
|
|
'yes' => 'Yes',
|
|
'no' => 'No',
|
|
'not_available' => 'N/A',
|
|
|
|
'growth_bonus_details_description' => 'L1 = Direct Partner (gets the growth bonus always), L2 = Members (from here the growth bonus is divided if the member is qualified), etc. | Shows commission (€) and volume (points) per level.',
|
|
'' => '',
|
|
'open' => 'Open',
|
|
|
|
// Jahresgebühr-Nachfassliste (N8)
|
|
'annual_fee_title' => 'Annual fee due',
|
|
'annual_fee_hint' => 'Note: Team partners with an expired account are automatically deactivated about 2 weeks after expiry and removed from the system after 2 months. Overdue entries therefore only appear here for a limited time — best follow up early.',
|
|
'annual_fee_no_data' => 'Currently none of your team partners has an account validity expiring within the next 3 months.',
|
|
'annual_fee_group_overdue' => 'Overdue',
|
|
'annual_fee_group_due_1_month' => 'Due in ≤ 1 month',
|
|
'annual_fee_group_due_2_months' => 'Due in ≤ 2 months',
|
|
'annual_fee_group_due_3_months' => 'Due in ≤ 3 months',
|
|
'firstlines' => 'Firstlines',
|
|
'firstlines_count_split' => ':active consultants · :total in total',
|
|
'firstlines_count_expired' => ':count with an expired annual fee',
|
|
'firstlines_copy' => 'Your direct team partners with turnover and contact details - sorted by points of the selected month.',
|
|
'firstlines_none' => 'You do not have any direct team partners yet.',
|
|
'firstlines_points' => 'Turnover (points)',
|
|
'active_since' => 'Active since',
|
|
'account_inactive' => 'Account inactive',
|
|
];
|