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>
118 lines
5.9 KiB
PHP
118 lines
5.9 KiB
PHP
<div class="row">
|
|
<div class="col order-2 order-md-1">
|
|
|
|
<!-- Description -->
|
|
<div class="card mb-4">
|
|
<div class="card-body">
|
|
|
|
{!! Form::open(['action' => route('user_shop_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
|
|
<div class="form-group">
|
|
<label class="custom-control custom-checkbox float-right">
|
|
{!! Form::checkbox('active', 1, $user->shop->active, ['class'=>'custom-control-input']) !!}
|
|
<span class="custom-control-label">{{__('activ')}}</span>
|
|
</label>
|
|
|
|
|
|
<label class="form-label" for="title">{{ __('shop.shop_title') }}</label>
|
|
{{ Form::text('title', $user->shop->title, array('placeholder'=>__('shop.shop_title'), 'class'=>'form-control', 'id'=>'title')) }}
|
|
<small class="form-text text-muted">{{ __('shop.shop_title_help') }}</small>
|
|
</div>
|
|
<hr>
|
|
<div class="form-group">
|
|
<label class="form-label" for="contact">{{ __('shop.shop_contact') }} | <strong style="text-transform: uppercase"> {{ __('website.language') }} {{ \App::getLocale() }}</strong></label>
|
|
{{ Form::textarea('contact', $user->shop->getLang('contact', false) , array('placeholder'=>__('shop.shop_contact'), 'class'=>'form-control', 'id'=>'contact', 'rows'=>4)) }}
|
|
<small class="form-text text-muted">{{ __('shop.shop_contact_help') }}</small>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label" for="accessibility">{{ __('shop.shop_accessibility') }} | <strong style="text-transform: uppercase"> {{ __('website.language') }} {{ \App::getLocale() }}</strong></label>
|
|
{{ Form::textarea('accessibility', $user->shop->getLang('accessibility', false), array('placeholder'=>__('shop.shop_accessibility'), 'class'=>'form-control', 'id'=>'accessibility', 'rows'=>2)) }}
|
|
<small class="form-text text-muted">{{ __('shop.shop_accessibility_help') }}</small>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label" for="about">{{ __('shop.shop_about') }} | <strong style="text-transform: uppercase"> {{ __('website.language') }} {{ \App::getLocale() }}</strong></label>
|
|
{{ Form::textarea('about', $user->shop->getLang('about', false) , array('placeholder'=>'', 'class'=>'form-control', 'id'=>'about', 'rows'=>2)) }}
|
|
<small class="form-text text-muted">{{ __('shop.shop_about_help') }}</small>
|
|
</div>
|
|
<div class="text-right mt-0 mb-2">
|
|
<a href="{{ route('user_shop_translate') }}" class="btn btn-sm btn-primary">{{ __('navigation.translate') }}</a>
|
|
</div>
|
|
|
|
<div class="text-left mt-0 mb-2">
|
|
<button type="submit" class="btn btn-secondary">{{ __('save') }}</button>
|
|
</div>
|
|
|
|
|
|
{!! Form::close() !!}
|
|
|
|
</div>
|
|
</div>
|
|
<!-- / Description -->
|
|
</div>
|
|
<div class="col-md-5 col-xl-4 order-1 order-md-2">
|
|
|
|
<!-- Project details -->
|
|
<div class="card mb-4">
|
|
<h5 class="card-header">{{ __('shop.Shop details') }}</h5>
|
|
<ul class="list-group list-group-flush">
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
<div class="text-muted">{{ __('shop.name') }}</div>
|
|
<div>
|
|
{{ $user->shop->name }}
|
|
</div>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
<div class="text-muted">{{ __('shop.domain') }}</div>
|
|
<div>
|
|
<a href="{{ $user->shop->getSubdomain(false) }}" target="_blank">{{ $user->shop->getSubdomain(false) }}
|
|
</a>
|
|
</div>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
<div class="text-muted">{{ __('Status') }}</div>
|
|
<div class="text-right">
|
|
@if($user->shop->getSubdomainAvailable())
|
|
<span class="badge badge-pill badge-success"><i class="fa fa-check"> {{ __('shop.available') }} </i> </span>
|
|
@else
|
|
<span class="badge badge-pill badge-danger"><i class="fa fa-times"> {{ __('shop.not_available') }} </i> </span>
|
|
@endif
|
|
</div>
|
|
</li>
|
|
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
<div class="text-muted">{{ __('shop.active_since') }}</div>
|
|
<div>
|
|
<a href="{{ route('user_shop_name_edit') }}" class="btn btn-xs btn-outline-primary"><i class="fa fa-edit"></i> Shop Name anpassen</a>
|
|
</div>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
<div class="text-muted">{{ __('shop.active_since') }}</div>
|
|
<div>
|
|
<strong>{{ $user->shop->getActiveDateFormat() }}</strong>
|
|
</div>
|
|
</li>
|
|
|
|
</ul>
|
|
</div>
|
|
<!-- / Project details -->
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<div class="card mb-4">
|
|
@include('user.components.user_shop_image')
|
|
</div>
|
|
</div>
|
|
<div class="col-md-8">
|
|
<div class="card mb-4">
|
|
@include('user.components.user_shop_on_site')
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- / image files -->
|
|
|
|
|
|
|