23-01-2026
This commit is contained in:
parent
a939cd51ef
commit
a8b395e20d
248 changed files with 29342 additions and 4805 deletions
|
|
@ -25,25 +25,32 @@
|
|||
<div class="card">
|
||||
@include('admin.abo._detail')
|
||||
</div>
|
||||
|
||||
<div class="card mt-3">
|
||||
@include('admin.abo._detail_abo_info')
|
||||
</div>
|
||||
<div class="card mt-3">
|
||||
@include('admin.customer._customer_detail', ['shopping_user' => $customer_detail])
|
||||
</div>
|
||||
|
||||
{!! Form::open(['action' => route('user_abos_update', [$view, $user_abo->id]), 'class' => 'form-horizontal', 'id'=>'cart-order-form']) !!}
|
||||
<input type="hidden" name="is_for" value="{{ $user_abo->is_for }}">
|
||||
<div class="card mt-3">
|
||||
@include('admin.abo._order_abo')
|
||||
</div>
|
||||
|
||||
@if($comp_products && Yard::instance('shopping')->getNumComp() > 0)
|
||||
<div id="holder_html_view_comp_product">
|
||||
@include('user.order.comp_product')
|
||||
@if(App\Services\AboHelper::canCancelAbo($user_abo, $view))
|
||||
{!! Form::open(['action' => route('user_abos_update', [$view, $user_abo->id]), 'class' => 'form-horizontal', 'id'=>'cart-order-form']) !!}
|
||||
<input type="hidden" name="is_for" value="{{ $user_abo->is_for }}">
|
||||
<div class="card mt-3">
|
||||
@include('admin.abo._order_abo')
|
||||
</div>
|
||||
@endif
|
||||
|
||||
{{ Form::close() }}
|
||||
|
||||
@if($comp_products && Yard::instance('shopping')->getNumComp() > 0)
|
||||
<div id="holder_html_view_comp_product">
|
||||
@include('user.order.comp_product')
|
||||
</div>
|
||||
@endif
|
||||
|
||||
{{ Form::close() }}
|
||||
@else
|
||||
|
||||
<div class="card mt-3">
|
||||
@include('admin.abo._order_abo', ['only_show_products' => true])
|
||||
</div>
|
||||
@endif
|
||||
<div class="card mt-3 mb-3">
|
||||
@include('admin.abo._executions')
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@
|
|||
@endif
|
||||
@if($homeparty_user->billing_phone)
|
||||
Telefon: {{ $homeparty_user->billing_phone }}
|
||||
<br>
|
||||
@endif
|
||||
@if($homeparty_user->shipping_postnumber)
|
||||
<strong>DHL {{ __('payment.dhl_postnumber') }}: {{ $homeparty_user->shipping_postnumber }}</strong>
|
||||
@endif
|
||||
</p>
|
||||
@else
|
||||
|
|
@ -62,6 +66,10 @@
|
|||
@endif
|
||||
@if($homeparty_user->shipping_phone)
|
||||
Telefon: {{ $homeparty_user->shipping_phone }}
|
||||
<br>
|
||||
@endif
|
||||
@if($homeparty_user->shipping_postnumber)
|
||||
<strong>DHL {{ __('payment.dhl_postnumber') }}: {{ $homeparty_user->shipping_postnumber }}</strong>
|
||||
@endif
|
||||
</p>
|
||||
@endif
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
@endif
|
||||
@if($is_abo)
|
||||
<hr>
|
||||
<div class="alert alert-warning"><strong>{!! __('abo.abo_type_info', ['base'=>get_abo_type_badge('base'), 'upgrade'=>get_abo_type_badge('upgrade')]) !!}</strong></div>
|
||||
<div class="alert alert-warning"><strong>{!! __('abo.abo_type_info', ['base'=>get_abo_type_badge('base'), 'upgrade'=>get_abo_type_badge('upgrade'), 'abo-min-duration' => \App\Models\Setting::getContentBySlug('abo-min-duration')]) !!}</strong></div>
|
||||
<p><strong><em></em></strong></p>
|
||||
@endif
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -81,15 +81,15 @@
|
|||
</label>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
<h6 class="card-header bg-light px-2 py-2">
|
||||
<h6 class="card-header bg-light text-primary px-2 py-2">
|
||||
<a href="#" class="" data-toggle="collapse" data-target="#collapseFilter" aria-expanded="false" aria-controls="collapseFilter">
|
||||
<i class="fa fa-caret-expand"></i> {{ __('abo.pros_hl') }}
|
||||
</a>
|
||||
</h6>
|
||||
<div class="collapse" id="collapseFilter">
|
||||
<div class="form-row pb-1 pt-1">
|
||||
<ul class="">
|
||||
{!! __('abo.pros_list') !!}
|
||||
<ul class="list-padding-top">
|
||||
{!! __('abo.pros_list', ['abo-min-duration' => \App\Models\Setting::getContentBySlug('abo-min-duration')]) !!}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -134,6 +134,13 @@
|
|||
<div class="text-muted small">{{ __('Phone') }}</div>
|
||||
{{ $shopping_user->shipping_phone }}
|
||||
</div>
|
||||
@if($shopping_user->shipping_postnumber)
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('payment.dhl_postnumber') }}</div>
|
||||
<span class="badge badge-info">{{ $shopping_user->shipping_postnumber }}</span>
|
||||
<small class="d-block text-muted">{{ __('payment.packstation_delivery') }}</small>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
{{ Form::hidden('shipping_zipcode', $user->account->zipcode) }}
|
||||
{{ Form::hidden('shipping_city', $user->account->city) }}
|
||||
{{ Form::hidden('shipping_phone', $user->account->phone) }}
|
||||
{{ Form::hidden('shipping_postnumber', $user->account->shipping_postnumber) }}
|
||||
{{ Form::hidden('shipping_state', Yard::instance('shopping')->getShippingCountryId()) }}
|
||||
|
||||
|
||||
|
|
@ -40,6 +41,7 @@
|
|||
{{ Form::hidden('shipping_zipcode', $user->account->shipping_zipcode) }}
|
||||
{{ Form::hidden('shipping_city', $user->account->shipping_city) }}
|
||||
{{ Form::hidden('shipping_phone', $user->account->shipping_phone) }}
|
||||
{{ Form::hidden('shipping_postnumber', $user->account->shipping_postnumber) }}
|
||||
{{ Form::hidden('shipping_state', Yard::instance('shopping')->getShippingCountryId()) }}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
{{ Form::hidden('shipping_city', $shopping_user->billing_city) }}
|
||||
{{ Form::hidden('shipping_phone', $shopping_user->billing_phone) }}
|
||||
{{ Form::hidden('shipping_state', Yard::instance('shopping')->getShippingCountryId()) }}
|
||||
{{ Form::hidden('shipping_postnumber', $shopping_user->shipping_postnumber) }}
|
||||
|
||||
|
||||
|
||||
|
|
@ -57,6 +58,7 @@
|
|||
{{ Form::hidden('shipping_city', $shopping_user->shipping_city) }}
|
||||
{{ Form::hidden('shipping_phone', $shopping_user->shipping_phone) }}
|
||||
{{ Form::hidden('shipping_state', Yard::instance('shopping')->getShippingCountryId()) }}
|
||||
{{ Form::hidden('shipping_postnumber', $shopping_user->shipping_postnumber) }}
|
||||
{{-- <div class="">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-12 {{ $errors->has('shipping_state') ? 'has-error' : '' }}">
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@
|
|||
<div class="text-body">
|
||||
<div>{{ __('order.content') }}: {{ $product->contents }}</div>
|
||||
<div>{{ __('order.art_no') }}: {{ $product->number }}</div>
|
||||
<div>{{ __('order.points') }}: @if($row->options->comp) 0 @else {{ $product->getFormattedPoints() }} @endif</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="options">
|
||||
|
|
@ -179,7 +180,7 @@
|
|||
<div class="d-flex flex-wrap justify-content-between pb-4">
|
||||
<div class="mt-2">
|
||||
<p class="small mb-2"> {!! __('order.you_has_article_in_shopping_cart', ['num'=> Yard::instance('shopping')->compCount() ]) !!}</p>
|
||||
<p>{{ __('order.points_total') }}: {{ Yard::instance('shopping')->points() }}</p>
|
||||
<p>{{ __('order.points_total') }}: {{ formatNumber(Yard::instance('shopping')->points()) }}</p>
|
||||
<button type="button" class="btn btn-default btn-sm" id="clear-products-basket"><i class="ion ion-ios-trash"></i> {{ __('order.shopping_cart_delete') }}</button>
|
||||
</div>
|
||||
<div class="d-flex">
|
||||
|
|
@ -258,27 +259,49 @@
|
|||
|
||||
@if(isset($is_abo) && $is_abo)
|
||||
<div class="text-right">
|
||||
<div class="alert alert-info">
|
||||
<h4>{{ __('abo.abo_settings') }}</h4>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="col-6 col-sm-8 col-md-9 col-lg-9 mb-1">
|
||||
</div>
|
||||
<div class="col-6 col-sm-4 col-md-3 col-lg-3 mb-1 text-right">
|
||||
<div class="col-12 col-sm-4 col-md-3 col-lg-3 mb-1 text-right">
|
||||
<label class="form-label">{{ __('abo.delivery_day') }}*</label>
|
||||
<select class="custom-select" name="abo_interval">
|
||||
{!! HTMLHelper::getAboDeliveryOptions() !!}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-4 col-md-6 mb-1">
|
||||
<div class="col-12 col-sm-12 col-md-4 col-lg-6 mb-1">
|
||||
</div>
|
||||
<div class="col-12 col-sm-8 col-md-6 mb-1">
|
||||
<div class="col-12 col-sm-12 col-md-8 col-lg-6 mb-1">
|
||||
<div class="text-right">
|
||||
<em class="small"> <i> {!! __('abo.abo_order_info') !!}</em>
|
||||
</div>
|
||||
<em class="small"> <i> {!! __('abo.abo_order_info_check') !!}</em>
|
||||
<hr style="margin-top: 10px; margin-bottom: 10px; border-color: #b4b4b4; border-width: 1px;">
|
||||
<em class="font-weight-bold"> <i> {!! __('abo.abo_order_info_check_2') !!}</em>
|
||||
<hr style="margin-top: 10px; margin-bottom: 10px; border-color: #b4b4b4; border-width: 1px;">
|
||||
<em class="small"> <i> {!! __('abo.abo_order_info_check_3', ['abo-min-duration' => \App\Models\Setting::getContentBySlug('abo-min-duration')]) !!}</em>
|
||||
<hr style="margin-top: 10px; margin-bottom: 10px; border-color: #b4b4b4; border-width: 1px;">
|
||||
|
||||
|
||||
<label class="switcher switcher-success">
|
||||
<input type="checkbox" class="switcher-input" name="abo_order_info_checkbox" value="true" required>
|
||||
<span class="switcher-indicator">
|
||||
<span class="switcher-yes">
|
||||
<span class="ion ion-md-checkmark"></span>
|
||||
</span>
|
||||
<span class="switcher-no">
|
||||
<span class="ion ion-md-close"></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="switcher-label"><strong>{{ __('abo.abo_order_info_checkbox') }}</strong></span>
|
||||
</label>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@
|
|||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('order.points_total') }}</div>
|
||||
{{ $order->shopping_order->points }}
|
||||
{{ $order->shopping_order->getFormattedPoints() }}
|
||||
</div>
|
||||
<div class="col-md-12 mb-3">
|
||||
<div class="text-muted small">{{ __('order.invoice_address') }} </div>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<h6>
|
||||
@if($userSalesVolume)
|
||||
<div class="mb-2">
|
||||
<strong>{{ __('team.total_points') }}: {{ $userSalesVolume->getPointsKPSum() }}</strong> | {{ __('team.own') }}: {{ $userSalesVolume->month_points }} | {{ __('team.shop') }}: {{ $userSalesVolume->month_shop_points }}<br>
|
||||
<strong>{{ __('team.total_points') }}: {{ formatNumber($userSalesVolume->getPointsKPSum()) }}</strong> | {{ __('team.own') }}: {{ formatNumber($userSalesVolume->month_KP_points) }} | {{ __('team.shop') }}: {{ $userSalesVolume->getFormattedMonthShopPoints() }}<br>
|
||||
</div>
|
||||
<div>
|
||||
<strong>{{ __('team.total_turnover') }}: {{ formatNumber($userSalesVolume->getTotalNetSum()) }} €</strong> | {{ __('team.own') }}: {{ formatNumber($userSalesVolume->month_total_net) }} € | {{ __('team.shop') }}: {{ formatNumber($userSalesVolume->month_shop_total_net) }} €
|
||||
|
|
|
|||
62
resources/views/user/team/abo_detail.blade.php
Normal file
62
resources/views/user/team/abo_detail.blade.php
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
<h4 class="font-weight-bold py-2 mb-2">
|
||||
<a href="{{route('user_team_abos_show')}}" class="btn btn-sm btn-default float-right">{{ __('back') }}</a>
|
||||
|
||||
<div>
|
||||
{{ __('abo.team_subscriptions') }}
|
||||
<span class="text-muted">{{ '#'.$user_abo->payone_userid }}</span>
|
||||
</div>
|
||||
</h4>
|
||||
|
||||
|
||||
@if(Session::has('alert-error'))
|
||||
<div class="col-sm-12">
|
||||
<div class="alert alert-danger p-2 mt-2">
|
||||
<ul>
|
||||
<li>{{ Session::get('alert-error') }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="card">
|
||||
@include('admin.abo._detail')
|
||||
</div>
|
||||
<div class="card mt-3">
|
||||
@include('admin.abo._detail_abo_info')
|
||||
</div>
|
||||
<div class="card mt-3">
|
||||
@include('admin.customer._customer_detail', ['shopping_user' => $customer_detail])
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="card mt-3">
|
||||
@include('admin.abo._order_abo', ['only_show_products' => true])
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="card mt-3 mb-3">
|
||||
@include('admin.abo._executions', ['only_show_products' => true])
|
||||
</div>
|
||||
|
||||
|
||||
<a href="{{route('user_team_abos_show')}}" class="btn btn-sm btn-default float-right">{{ __('back') }}</a>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
<script src="{{ asset('/js/iq-modal-cart.js') }}?v=1{{ get_file_last_time('/js/iq-modal-cart.js') }}"></script>
|
||||
<script type="application/javascript">
|
||||
var iqModalCart = IqModalCart.init();
|
||||
$( document ).ready(function() {
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
120
resources/views/user/team/abos.blade.php
Normal file
120
resources/views/user/team/abos.blade.php
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
<h4 class="font-weight-bold py-2 mb-2 d-flex justify-content-between align-items-center w-100 ">
|
||||
<div>
|
||||
{{ __('abo.team_subscriptions') }} / {{ __('navigation.overview') }}
|
||||
</div>
|
||||
</h4>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
|
||||
@if(!$abos || $abos->isEmpty())
|
||||
<div class="card mb-4">
|
||||
<div class="card-body pb-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<h5>{{ __('abo.team_subscriptions') }}</h5>
|
||||
<p class="text-muted">{{ __('tables.no_data_available') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@foreach($abos as $user_abo)
|
||||
<div class="card mb-4">
|
||||
<div class="card-body pb-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<h5 class="mb-1">
|
||||
<a href="{{ route('user_team_abos_detail', [$user_abo->id]) }}">
|
||||
{{ __('navigation.abo') }} <span class="text-muted">{{ '#'.$user_abo->payone_userid }}</span>
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div class="col-sm-6 text-right">
|
||||
<a href="{{ route('user_team_abos_detail', [$user_abo->id]) }}" class="btn btn-sm btn-secondary float-right">
|
||||
<span class="fa fa-edit"></span>{{ __('abo.abo_details') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="m-0">
|
||||
<div class="card-body pb-1">
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-2">
|
||||
<div class="text-muted small">{{ __('tables.start_date') }}</div>
|
||||
<div class="font-weight-bold">{{ $user_abo->start_date }}</div>
|
||||
</div>
|
||||
<div class="col-md-3 mb-2">
|
||||
<div class="text-muted small">{{ __('tables.next_date') }} </div>
|
||||
<div class="font-weight-bold">{{ $user_abo->next_date }}</div>
|
||||
</div>
|
||||
<div class="col-md-3 mb-2">
|
||||
<div class="text-muted small">{{ __('tables.abo_delivery_day') }}</div>
|
||||
<div class="font-weight-bold">{{ \App\Services\HTMLHelper::getAboStrLang($user_abo->abo_interval) }}</div>
|
||||
</div>
|
||||
<div class="col-md-3 mb-2">
|
||||
<div class="text-muted small">{{ __('tables.last_date') }}</div>
|
||||
<div class="font-weight-bold">{{ $user_abo->last_date }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="m-0">
|
||||
<div class="card-body pb-1">
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('tables.status') }} / {{ __('tables.active') }}</div>
|
||||
{!! $user_abo->getStatusFormated() !!} {!! get_active_badge($user_abo->active) !!}
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('tables.abo_delivery') }}</div>
|
||||
{{ $user_abo->getCountOrders() }}
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('tables.amount') }}</div>
|
||||
{{ $user_abo->getFormattedAmount() }} €
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('tables.payment') }}</div>
|
||||
{{ $user_abo->getPaymentType() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="m-0">
|
||||
<div class="card-body pb-1">
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('First name') }}</div>
|
||||
@if($user_abo->user && $user_abo->user->account)
|
||||
{{ $user_abo->user->account->first_name }}
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('Last name') }}</div>
|
||||
@if($user_abo->user && $user_abo->user->account)
|
||||
{{ $user_abo->user->account->last_name }}
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('E-Mail') }}</div>
|
||||
@if($user_abo->user)
|
||||
{{ $user_abo->user->email }}
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('tables.partner') }}</div>
|
||||
@if($user_abo->user && $user_abo->user->account)
|
||||
{{ $user_abo->user->account->m_account }}
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
177
resources/views/user/team/level-reports.blade.php
Normal file
177
resources/views/user/team/level-reports.blade.php
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<h5 class="card-header">
|
||||
{{ __('team.level_reports_title') }}
|
||||
<span class="badge badge-info ml-2">{{ $promotions->count() }}</span>
|
||||
</h5>
|
||||
|
||||
<div class="card-body p-0">
|
||||
@if(isset($error))
|
||||
<div class="alert alert-danger m-4">
|
||||
<i class="fas fa-exclamation-triangle"></i> {{ $error }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<!-- Filter Form -->
|
||||
<form method="GET" action="{{ route('user_team_level_reports') }}" class="form-horizontal" id="form_filter_level_reports">
|
||||
<div class="form-row align-items-center px-4 pb-2 pt-3">
|
||||
<div class="col-6 col-sm-6 col-md-2 col-lg-2 mb-1">
|
||||
<label class="small text-muted d-block">{{ __('team.level_reports_month') }}</label>
|
||||
<select class="custom-select" name="month" required>
|
||||
@foreach($availableMonths as $key => $value)
|
||||
<option value="{{ $key }}" @if(isset($filters['month']) && $filters['month'] == $key) selected @elseif(!isset($filters['month']) && $key == date('m')) selected @endif>{{ $value }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-6 col-sm-6 col-md-2 col-lg-2 mb-1">
|
||||
<label class="small text-muted d-block">{{ __('team.level_reports_year') }}</label>
|
||||
<select class="custom-select" name="year" required>
|
||||
@foreach($availableYears as $year)
|
||||
<option value="{{ $year }}" @if(isset($filters['year']) && $filters['year'] == $year) selected @elseif(!isset($filters['year']) && $year == date('Y')) selected @endif>{{ $year }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-6 col-sm-6 col-md-3 col-lg-3 mb-1">
|
||||
<div class="custom-control custom-checkbox mt-4">
|
||||
<input type="checkbox" class="custom-control-input" id="not_updated" name="not_updated" value="1" @if(isset($filters['only_not_updated']) && $filters['only_not_updated']) checked @endif>
|
||||
<label class="custom-control-label" for="not_updated">{{ __('team.level_reports_filter_not_updated') }}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-sm-6 col-md-3 col-lg-3 mb-1">
|
||||
<div class="mt-4">
|
||||
<button type="submit" class="btn btn-primary mr-2">{{ __('team.level_reports_filter_button') }}</button>
|
||||
<a href="{{ route('user_team_level_reports_export', request()->query()) }}" class="btn btn-success">{{ __('team.level_reports_csv_export') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@if($promotions->count() > 0)
|
||||
<!-- Statistiken -->
|
||||
<div class="px-4 pb-3">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="card bg-primary text-white">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">{{ $statistics['total_count'] }}</h4>
|
||||
<p class="card-text">{{ __('team.level_reports_total_promotions') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h6 class="card-subtitle mb-2 text-muted">{{ __('team.level_reports_by_level') }}</h6>
|
||||
@foreach($statistics['level_stats'] as $level => $count)
|
||||
<span class="badge badge-secondary mr-1">{{ $level }}: {{ $count }}</span>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tabelle -->
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-hover mb-0">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th>{{ __('team.level_reports_table_date') }}</th>
|
||||
<th>{{ __('team.level_reports_table_user') }}</th>
|
||||
<th>{{ __('team.level_reports_table_from_level') }}</th>
|
||||
<th>{{ __('team.level_reports_table_to_level') }}</th>
|
||||
<th>{{ __('team.level_reports_table_current_level') }}</th>
|
||||
<th>{{ __('team.level_reports_table_kp_quali') }}</th>
|
||||
<th>{{ __('team.level_reports_table_user_kp') }}</th>
|
||||
<th>{{ __('team.level_reports_table_pp_quali') }}</th>
|
||||
<th>{{ __('team.level_reports_table_user_pp') }}</th>
|
||||
<th>{{ __('team.level_reports_table_update') }}</th>
|
||||
<th>{{ __('team.level_reports_table_active') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($promotions as $promotion)
|
||||
<tr class="@if($promotion['level_updated'] === 'Nein' || $promotion['level_updated'] === __('team.no')) table-warning @endif">
|
||||
<td>{{ $promotion['date'] }}</td>
|
||||
<td>
|
||||
<strong>{{ $promotion['first_name'] }} {{ $promotion['last_name'] }}</strong><br>
|
||||
<small class="text-muted">
|
||||
{{ __('team.ID') }}: {{ $promotion['user_id'] }}<br>
|
||||
{{ $promotion['email'] }}
|
||||
</small>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge badge-secondary">
|
||||
{{ $promotion['from_level_name'] }}
|
||||
</span>
|
||||
<br><small>{{ __('team.ID') }}: {{ $promotion['from_level_id'] }}</small>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge badge-success">
|
||||
{{ $promotion['to_level_name'] }}
|
||||
</span>
|
||||
<br><small>{{ __('team.ID') }}: {{ $promotion['to_level_id'] }}</small>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge badge-info">
|
||||
{{ $promotion['current_user_level_name'] }}
|
||||
</span>
|
||||
<br><small>{{ __('team.ID') }}: {{ $promotion['current_user_level_id'] ?? __('team.not_available') }}</small>
|
||||
</td>
|
||||
<td><span class="badge badge-outline-info">{{ number_format($promotion['to_level_qual_kp'], 0, ',', '.') }}</span></td>
|
||||
<td><span class="badge badge-outline-success">{{ number_format($promotion['sales_volume_points_sum'], 0, ',', '.') }}</span></td>
|
||||
<td><span class="badge badge-outline-info">{{ number_format($promotion['to_level_qual_pp'], 0, ',', '.') }}</span></td>
|
||||
<td><span class="badge badge-outline-success">{{ number_format($promotion['payline_points_qual_kp'], 0, ',', '.') }}</span></td>
|
||||
<td>
|
||||
@if($promotion['level_updated'] === 'Ja' || $promotion['level_updated'] === __('team.yes'))
|
||||
<span class="badge badge-success">{{ __('team.yes') }}</span>
|
||||
@else
|
||||
<span class="badge badge-warning">{{ __('team.no') }}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if($promotion['active_account'] === 'Ja' || $promotion['active_account'] === __('team.yes'))
|
||||
<span class="badge badge-success">{{ __('team.yes') }}</span>
|
||||
@else
|
||||
<span class="badge badge-danger">{{ __('team.no') }}</span>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@if(!empty($statistics['period_stats']))
|
||||
<!-- Periode Statistiken -->
|
||||
<div class="px-4 py-3 border-top">
|
||||
<h6 class="text-muted mb-2">{{ __('team.level_reports_by_period') }}</h6>
|
||||
@foreach($statistics['period_stats'] as $period => $count)
|
||||
<span class="badge badge-outline-default mr-1">{{ $period }}: {{ $count }}</span>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
@else
|
||||
<div class="px-4 py-5 text-center">
|
||||
<h5 class="text-muted">{{ __('team.level_reports_no_data') }}</h5>
|
||||
<p class="text-muted">{{ __('team.level_reports_no_data_description') }}</p>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// Auto-submit Form bei Änderung der Filter
|
||||
const selects = document.querySelectorAll('#form_filter_level_reports select, #form_filter_level_reports input[type="checkbox"]');
|
||||
selects.forEach(function(select) {
|
||||
select.addEventListener('change', function() {
|
||||
document.getElementById('form_filter_level_reports').submit();
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
|
|
@ -157,7 +157,7 @@
|
|||
</div>
|
||||
@endif
|
||||
|
||||
<!-- Wachstumsbonus -->
|
||||
<!-- Tiefenbonus -->
|
||||
@if($level->getFormattedGrowthBonus())
|
||||
<div class="mb-3">
|
||||
<h6 class="text-muted mb-2">
|
||||
|
|
|
|||
|
|
@ -257,6 +257,30 @@
|
|||
{{ Form::text('shipping_phone', $user->account->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'shipping_phone', 'tabindex' => 26)) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-12">
|
||||
<label class="form-label" for="shipping_postnumber">{{ __('payment.dhl_postnumber') }} <small class="text-muted">({{ __('optional') }})</small></label>
|
||||
{{ Form::text('shipping_postnumber', $user->account->shipping_postnumber, array('placeholder'=>'12345678', 'class'=>'form-control', 'id'=>'shipping_postnumber', 'maxlength'=>'20', 'tabindex' => 27)) }}
|
||||
<small class="form-text text-muted">{{ __('payment.packstation_info') }}</small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Alert-Box für Packstation-Hinweis --}}
|
||||
<div class="alert alert-warning alert-dismissible fade show" id="packstation-alert" style="display: @if($user->account->shipping_postnumber) block @else none @endif;">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h6 class="alert-heading"><i class="fa fa-exclamation-triangle"></i> <strong>{{ __('payment.packstation_alert_title') }}</strong></h6>
|
||||
<hr>
|
||||
<p class="mb-2"><strong>{{ __('payment.packstation_alert_intro') }}</strong></p>
|
||||
<ul class="mb-2 pl-3">
|
||||
<li><strong>{{ __('Street') }} / {{ __('House number') }}:</strong> {{ __('payment.packstation_alert_street') }} <em>({{ __('payment.packstation_alert_street_example') }})</em></li>
|
||||
<li><strong>{{ __('Postcode') }} / {{ __('City') }}:</strong> {{ __('payment.packstation_alert_location') }} <em>({{ __('payment.packstation_alert_not_home') }})</em></li>
|
||||
</ul>
|
||||
<p class="mb-0 small text-muted">
|
||||
<i class="fa fa-info-circle"></i> {{ __('payment.packstation_alert_footer') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
|
|
@ -438,6 +462,24 @@
|
|||
});
|
||||
});
|
||||
|
||||
// Packstation Alert show|hide
|
||||
function togglePackstationAlert() {
|
||||
var postnumber = $('#shipping_postnumber').val();
|
||||
if (postnumber && postnumber.trim() !== '') {
|
||||
$('#packstation-alert').slideDown(300);
|
||||
} else {
|
||||
$('#packstation-alert').slideUp(300);
|
||||
}
|
||||
}
|
||||
|
||||
// Bei Eingabe im Postnummer-Feld
|
||||
$('#shipping_postnumber').on('input', function() {
|
||||
togglePackstationAlert();
|
||||
});
|
||||
|
||||
// Bei Seitenladen prüfen
|
||||
togglePackstationAlert();
|
||||
|
||||
$.extend( $.validator.messages, {
|
||||
required: "{{__('account.validator_required')}}",
|
||||
maxlength: $.validator.format( "{{__('account.validator_maxlength')}}" ),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue