mivita/resources/lang/en/account.php
Kevin 867dc21b57 Statistiken: Kundenfeedback 2026-08-19 komplett (N1-N8) + Review-Fixes + VP-/Incentive-Repair gehärtet
Statistik-Änderungen 2026-08-19 (dev/2026-07-22/entwicklungsplan-2026-08-19.md, alle 8 Pakete gemäß beantworteten F-Fragen):
- N1 Monatsstatistik: Team-Cluster (Firstlines klickbar -> neue Seite user_team_firstlines, Teampartner gesamt/Payline [nur aktive], Abos Payline mit +N) + Level-Kachel (Quali-Stufe, fehlende Payline-/persönliche Punkte, Karriere-Level); LiveCommissionService-Snapshot v3 reicht Level-/Quali-Daten durch
- N2 Abo-Kacheln auf Home monatsbezogen (aboStockCount-Rückrechnung über cancel/deleted/Status-Historie; VIP-Statistik bleibt tagesaktuell)
- N3 VIP-Statistik 'Recruiter des Monats' (Neupartner-Definition wie KPI, rekursives Ketten-Volumen als Gesamtpunkte inkl. Starterpaket) + Drilldown/CSV-Spalte 'Punkte gesamt'
- N4 Prognose-Block 'Level & Provision laut Prognose (Stand 25.)' mit unverbindlich-Kennzeichnung (ebenengenaue offene Abo-Punkte + TP-Laufstände)
- N5 Checkout-Herkunft: Dropdown raus, Pflicht-Freitext (lokalisierte Fehlermeldung)
- N6 Berater-Profilfoto (user_accounts.profile_image, Einwilligung als Sprachkey-Platzhalter, DSGVO-Löschung) + teaminterne Top-3-Karte (TopResultsService, Scope-Schalter)
- N7 USt-Optionen: 'nicht umsatzsteuerpflichtig' zuerst + '§ 19 UStG'-Textfix
- N8 Jahresgebühr-Nachfassliste je Berater (AnnualFeeDueService, überfällig/1-3 Monate, Sidenav)

Kontroll-Review (8 Perspektiven) angewendet: next-Level-Fallback im Steady-State (resolveNextLevel — sonst 'Höchstes Level erreicht' für Normalfälle), _calculated-Punktebasis bei mehr Paylines, keine Wiederbelebung deaktivierter Abos in der Monatsrückrechnung, Payline-Abo-Kachel monatskonsistent, Top-3-Nachrücker; Performance: BackofficeDashboardService als Singleton mit lineBuckets-Memo (+flushLineBucketsMemo), level_forecast 6h-Cache; Reuse: User-Scopes firstlinesOf/newPartnerIn, SalesVolumePoints::totalPointsByUser, Slim::storeCroppedImage (3 Upload-Kopien vereinigt), activeAbo-Scope statt Inline-Prädikate, Form::open-Konvention, Return-Types

Repair-Härtung (Kundenentscheide): VP-Nachtrepair dedupliziert über shopping_order_id (Live-Pfad schreibt sie jetzt mit), zählende Alt-Zeilen-Erkennung, Vormonats-Scan für Monatswechsel, Firmenaccount-Buchungen (config mivita.company_user_id) werden automatisch auf den Berater umgebucht (in place bzw. per Gegenbuchung bei geschlossenem Monat; Echtfall Anna Schall Order 58797 -> Christina Schuder), Berater-zu-Berater nur Warnung; Incentive-Repair: m_sponsor=NULL löscht nicht mehr, FK-Repair vor Stale-Bereinigung, gebatchte Lookups, zentrales Incentive::qualificationWindow(); .env aus dem Git-Tracking entfernt (Pflege per SFTP)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 10:44:44 +00:00

56 lines
3.5 KiB
PHP

<?php
return [
'BIC' => 'BIC',
'IBAN' => 'IBAN',
'VAT_ID_number' => 'tax ID number',
'VAT_copy_1' => 'Choose a small business if you do not generate more than EUR 22,000 in sales per year with your business.',
'VAT_liability' => 'VAT liability',
'account_holder' => 'account owner',
'bank_data' => 'bank details',
'btn_vat_validate' => 'Validate VAT ID number',
'delivery_address' => 'delivery adress',
'firstname_lastname' => 'first name last name',
'info_vat_numbers' => 'Note: Please provide your tax number and/or VAT ID number!*',
'invoice_address' => 'billing adress',
'my_credit' => 'my credit',
'new_vat_validate' => 'Validate new VAT ID and activate reverse charge procedure',
'phone_need_error' => 'Error: Please state telephone and/or mobile phone!*',
'phone_need_note' => 'Note: Please state telephone and/or mobile phone!*',
'required_for_commission_payments' => 'required for commission payouts',
'reverse_charge_action_1' => 'delete reverse charge procedure and VAT ID',
'reverse_charge_action_2' => 'validate VAT ID and activate reverse charge procedure',
'reverse_charge_copy_1' => 'Reversal of tax liability or deduction procedure. In this special case, the recipient of the service (consultant) and not the entrepreneur providing the service (mivita) must pay the sales tax.',
'reverse_charge_note_1' => 'When activated, the VAT ID is required and validated.',
'reverse_charge_procedure' => 'reverse charge procedure',
'tax_number' => 'tax no.',
'taxable_sales_1' => 'subject to sales tax (I submit an advance VAT declaration to the tax office every month / quarter / year)',
'taxable_sales_2' => 'not subject to sales tax (small business within the meaning of §19)',
'validator_creditcard' => 'please enter a valid credit card number',
'validator_date' => 'Please enter a valid date.',
'validator_digits' => 'Please only enter numbers.',
'validator_email' => 'Please enter a valid email address.',
'validator_equalTo' => 'Please repeat the same value.',
'validator_max' => 'Please enter a value less than or equal to {0}.',
'validator_maxlength' => 'Please enter a maximum of {0} characters.',
'validator_min' => 'Please enter a value greater than or equal to {0}.',
'validator_minlength' => 'Please enter at least {0} characters.',
'validator_number' => 'Please enter a number.',
'validator_range' => 'Please enter a value between {0} and {1}.',
'validator_rangelength' => 'Please enter at least {0} and maximum {1} characters.',
'validator_required' => 'This field is a required field.',
'validator_url' => 'Please enter a valid URL.',
'vat_data' => 'Tax data',
'language_settings' => 'Language settings',
'preferred_language' => 'Preferred language',
'language_hint' => 'This language will be used for your invoices, commission statements and delivery notes.',
'' => '',
// N6: consultant profile photo. Final consent wording will be provided by
// the customer — profile_image_consent is a placeholder text until then.
'profile_image' => 'Profile photo',
'profile_image_copy' => 'Your photo is shown within your team, e.g. in rankings and overviews.',
'profile_image_consent' => 'I agree that my photo may be shown within my team in rankings and overviews.',
'profile_image_consent_required' => 'Please confirm your consent to showing your photo within your team first.',
'profile_image_delete' => 'Delete photo',
];