commit 08-2025

This commit is contained in:
Kevin Adametz 2025-08-12 18:01:59 +02:00
parent 9ae662f63e
commit 480fdc65ed
404 changed files with 65310 additions and 2600431 deletions

View file

@ -107,7 +107,7 @@
<h5 class=" font-weight-semibold mb-2">
{{ __('abo.abo_order_hl') }}
</h5>
<p>{{ __('abo.abo_order_info') }}</p>
<p>{{ __('abo.abo_order_info_2') }}</p>
<hr>
@include('user.abo.vat_info')

View file

@ -24,7 +24,7 @@
@include('admin.customer._customer_detail', ['shopping_user' => $customer_detail])
</div>
{!! Form::open(['url' => route('user_abos_update', [$view, $user_abo->id]), 'class' => 'form-horizontal', 'id'=>'cart-order-form']) !!}
{!! 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')

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
{!! Form::open(['action' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
<div class="modal-header">
<h5 class="modal-title">
{{ __('abo.abo_settings') }} <span class="text-muted">{{ '#'.$user_abo->payone_userid }}</span>

View file

@ -14,18 +14,7 @@
(ID: {{ $TreeCalcBot->business_user->m_account }})
</td>
</tr>
<tr>
<td>{{ __('team.sponsor') }}:</td>
<td>
@if($TreeCalcBot->business_user->sponsor->is_sponsor)
{{ $TreeCalcBot->business_user->sponsor->first_name }} {{ $TreeCalcBot->business_user->sponsor->last_name }} |
{{ $TreeCalcBot->business_user->sponsor->email }} |
{{ $TreeCalcBot->business_user->sponsor->m_account }}
@else
-
@endif
</td>
</tr>
<tr>
<td>{{ __('team.date') }}:</td>
@ -47,6 +36,18 @@
</td>
</tr>
<tr>
<td>{{ __('team.sponsor') }}:</td>
<td>
@if($TreeCalcBot->business_user->sponsor->is_sponsor)
{{ $TreeCalcBot->business_user->sponsor->first_name }} {{ $TreeCalcBot->business_user->sponsor->last_name }} |
{{ $TreeCalcBot->business_user->sponsor->email }} |
{{ $TreeCalcBot->business_user->sponsor->m_account }}
@else
-
@endif
</td>
</tr>
<tr>
<td>{{ __('team.consultant_margin') }}:</td>
<td>

View file

@ -9,7 +9,7 @@
<div class="card-body p-0">
{!! Form::open(['url' => route('admin_business_commissions'), 'class' => 'form-horizontal', 'id'=>'form_admin_business_commissions']) !!}
{!! Form::open(['action' => route('admin_business_commissions'), 'class' => 'form-horizontal', 'id'=>'form_admin_business_commissions']) !!}
<div class="form-row align-items-center px-4 pb-2 pt-3">
<div class="col-12 col-sm-12 col-md-12 col-lg-3 mb-1">

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
{!! Form::open(['action' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
<div class="modal-header">
<h5 class="modal-title">
Business Points

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
{!! Form::open(['action' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
<div class="modal-header">
<h5 class="modal-title">
Business Points

View file

@ -26,7 +26,7 @@
@endif
<div class="card-body p-0">
{!! Form::open(['url' => route('admin_business_points'), 'class' => 'form-horizontal', 'id'=>'form_admin_business_points']) !!}
{!! Form::open(['action' => route('admin_business_points'), 'class' => 'form-horizontal', 'id'=>'form_admin_business_points']) !!}
<div class="form-row align-items-center px-4 pb-2 pt-3">
<div class="col-12 col-sm-12 col-md-3 col-lg-3 mb-1">

View file

@ -7,7 +7,7 @@
</h5>
<div class="card-body p-0">
{!! Form::open(['url' => route('admin_payments_invoice'), 'class' => 'form-horizontal', 'id'=>'form_filter_business_user']) !!}
{!! Form::open(['action' => route('admin_payments_invoice'), 'class' => 'form-horizontal', 'id'=>'form_filter_business_user']) !!}
<div class="form-row align-items-center px-4 pb-2 pt-3">
<div class="col-6 col-sm-4 col-md-4 col-lg-4 mb-1">

View file

@ -7,7 +7,7 @@
</h5>
<div class="card-body">
{!! Form::open(['url' => route('admin_business_structure'), 'class' => 'form-horizontal', 'id'=>'form_filter_business_user']) !!}
{!! Form::open(['action' => route('admin_business_structure'), 'class' => 'form-horizontal', 'id'=>'form_filter_business_user']) !!}
<div class="form-row align-items-center px-0 pb-2 pt-0">
<div class="col-6 col-sm-4 col-md-4 col-lg-4 mb-1">

View file

@ -5,7 +5,7 @@
<h5 class="card-header">
{{__('Business')}} {{__('Übersicht')}} Berater
</h5>
{!! Form::open(['url' => route('admin_business_user_detail', [$user->id]), 'class' => 'form-horizontal', 'id'=>'']) !!}
{!! Form::open(['action' => route('admin_business_user_detail', [$user->id]), 'class' => 'form-horizontal', 'id'=>'']) !!}
{{ Form::hidden('user_id', $user->id ) }}
{{ Form::hidden('month', $TreeCalcBot->date->month) }}
{{ Form::hidden('year', $TreeCalcBot->date->year) }}

View file

@ -0,0 +1,275 @@
<table class="table user-view-table m-0">
<tbody>
<tr>
<td>{{ __('team.account') }}:</td>
<td>
@if($TreeCalcBot->__get('business_user')->active_account)
<span class="badge badge-outline-success">{{ __('team.active') }}</span>
@else
<span class="badge badge-outline-danger">{{ __('team.not_active') }}</span>
@endif
@if($TreeCalcBot->__get('business_user')->payment_account_date)
{{ __('team.until') }}: {{ formatDate($TreeCalcBot->__get('business_user')->payment_account_date) }}
@endif
(ID: {{ $TreeCalcBot->__get('business_user')->m_account }}) <span class="badge badge-outline-info">Optimized</span>
</td>
</tr>
<tr>
<td>{{ __('team.date') }}:</td>
<td>
<strong>{{ HTMLHelper::getMonth($data['month']) }} {{ $data['year'] }}</strong> | {{ __('team.completed') }}:
@if($TreeCalcBot->__get('business_user')->isSave())
<span class="badge badge-outline-success"><i class="fa fa-check-circle"></i></span>
@if(Auth::user()->isAdmin())
<a target="_blank" class="btn btn-outline-secondary btn-xs" href="{{ route('admin_business_optimized_user_detail', [$user->id, 'force_live' => true]) }}">
<i class="fa fa-redo"></i> {{ __('Live Berechnung') }}
</a>
@endif
@else
<span class="badge badge-outline-warning-dark"><i class="fa fa-times"></i></span>
@endif
</td>
</tr>
<tr>
<td>{{ __('team.career_level') }}:</td>
<td>
{{ \App\Services\TranslationHelper::transUserLevelName($TreeCalcBot->__get('business_user')->user_level_name) }} &nbsp;
<span class="badge badge-outline-success"> {{ __('team.KU') }} {{ $TreeCalcBot->__get('business_user')->qual_kp }} / {{ __('team.PP') }} {{ formatNumber($TreeCalcBot->__get('business_user')->qual_pp, 0) }}</span>
</td>
</tr>
<tr>
<td>{{ __('team.sponsor') }}:</td>
<td>
@if($TreeCalcBot->__get('business_user')->sponsor && $TreeCalcBot->__get('business_user')->sponsor->is_sponsor)
{{ $TreeCalcBot->__get('business_user')->sponsor->first_name }} {{ $TreeCalcBot->__get('business_user')->sponsor->last_name }} |
{{ $TreeCalcBot->__get('business_user')->sponsor->email }} |
{{ $TreeCalcBot->__get('business_user')->sponsor->m_account }}
@else
-
@endif
</td>
</tr>
<tr>
<td>{{ __('team.consultant_margin') }}:</td>
<td>
{{ $TreeCalcBot->__get('business_user')->margin }} %
</td>
</tr>
<tr>
<td>{{ __('team.shop_commission') }}:</td>
<td>
{{ $TreeCalcBot->__get('business_user')->margin_shop }} %
</td>
</tr>
<tr>
<td>{{ __('team.net_turnover') }}:</td>
<td>
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_total_sum) }} &euro;</strong>
({{ __('team.own') }}: {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_total) }} &euro; | {{ __('team.shop') }}: {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_total_shop) }} &euro;)
</td>
</tr>
<tr>
<td>{{ __('team.customer_points') }}:</td>
<td>
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_points_KP_sum, 0) }} {{ __('team.KU') }}</strong>
({{ __('team.own') }}: {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_KP_points, 0) }} | {{ __('team.shop') }}: {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_points_shop, 0) }})
&nbsp; <span class="badge {{ $TreeCalcBot->__get('business_user')->isQualKP() ? 'badge-outline-success' : 'badge-outline-warning-dark' }}"> {{ __('team.KU') }} {{ $TreeCalcBot->__get('business_user')->qual_kp }}</span>
@if($TreeCalcBot->__get('business_user')->getRestQualKP() > 0)
&nbsp; <span class="badge badge-outline-info" title="Überschüssige KU-Punkte werden als Bonus zu den TP hinzugefügt">
Rest-KU: {{ formatNumber($TreeCalcBot->__get('business_user')->getRestQualKP(), 0) }}
</span>
@endif
</td>
</tr>
@if($TreeCalcBot->__get('business_user')->version == 1)
<tr>
<td>{{ __('team.qualification_points') }}:</td>
<td>
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->total_qual_pp, 0) }} {{ __('team.TP') }}</strong> (+ {{ __('team.volume_KU') }}) &nbsp;
</td>
</tr>
<tr>
<td>{{ __('team.qualification_commission') }}:</td>
<td>
@if($TreeCalcBot->__get('business_user')->isQualLevel())
<span class="badge {{ $TreeCalcBot->__get('business_user')->isQualEqualLevel() ? 'badge-outline-success' : 'badge-outline-info' }}">
{{ __('team.KP') }} {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_points_KP_sum, 0) }} /
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->qual_user_level['qual_kp'], 0) }}</strong> |
{{ __('team.TP') }} {{ formatNumber($TreeCalcBot->__get('business_user')->total_qual_pp, 0) }} /
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->qual_user_level['qual_pp'], 0) }}</strong>
| {{ $TreeCalcBot->__get('business_user')->qual_user_level['name'] }}</span>
@endif
</td>
</tr>
@endif
@if($TreeCalcBot->__get('business_user')->version == 2)
<tr>
<td>{{ __('team.payline_points') }}:</td>
<td>
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->payline_points, 0) }} {{ __('team.PP') }}</strong>
</td>
</tr>
<tr>
<td>{{ __('team.qualification_points') }}:</td>
<td>
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->payline_points_qual_kp, 0) }} {{ __('team.PP') }}</strong>
<small class="text-muted">
({{ formatNumber($TreeCalcBot->__get('business_user')->payline_points ?? 0, 0) }} Payline
@if($TreeCalcBot->__get('business_user')->getRestQualKP() > 0)
+ {{ formatNumber($TreeCalcBot->__get('business_user')->getRestQualKP(), 0) }} Rest-KU
@endif
)
</small>
</td>
</tr>
<tr>
<td>{{ __('team.current_commission_level') }}:</td>
<td>
@if($TreeCalcBot->__get('business_user')->isQualLevel())
<span class="badge {{ $TreeCalcBot->__get('business_user')->isQualEqualLevel() ? 'badge-outline-success' : 'badge-outline-info' }}">
{{ __('team.KU') }} {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_points_KP_sum, 0) }} /
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->qual_user_level['qual_kp'], 0) }}</strong> |
{{ __('team.PP') }} {{ formatNumber($TreeCalcBot->__get('business_user')->payline_points_qual_kp, 0) }} /
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->qual_user_level['qual_pp'], 0) }}</strong>
| {{ \App\Services\TranslationHelper::transUserLevelName($TreeCalcBot->__get('business_user')->qual_user_level['name']) }}</span>
@endif
</td>
</tr>
@if($TreeCalcBot->__get('business_user')->qual_user_level_next)
<tr>
<td>{{ __('team.next_commission_level') }}:</td>
<td>
<span class="badge badge-outline-warning-dark">
{{ __('team.KU') }} {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_points_KP_sum, 0) }} /
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->qual_user_level_next['qual_kp'], 0) }}</strong> |
{{ __('team.PP') }} {{ formatNumber($TreeCalcBot->__get('business_user')->payline_points_qual_kp, 0) }} /
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->qual_user_level_next['qual_pp'], 0) }}</strong>
| {{ \App\Services\TranslationHelper::transUserLevelName($TreeCalcBot->__get('business_user')->qual_user_level_next['name']) }}</span>
</td>
</tr>
@endif
@endif
<tr>
<td>@if($TreeCalcBot->__get('business_user')->next_qual_user_level) {{ __('team.qualification') }}<br> @endif {{ __('team.next_career_level') }}:</td>
<td>
@if($TreeCalcBot->__get('business_user')->next_qual_user_level)
<span class="badge badge-outline-success">
{{ __('team.KU') }} {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_points_KP_sum, 0) }} /
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->next_qual_user_level['qual_kp'], 0) }}</strong> |
{{ __('team.TP') }} {{ formatNumber($TreeCalcBot->__get('business_user')->payline_points_qual_kp, 0) }} /
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->next_qual_user_level['qual_pp'], 0) }}</strong>
| {{ \App\Services\TranslationHelper::transUserLevelName($TreeCalcBot->__get('business_user')->next_qual_user_level['name']) }}</span>
@elseif($TreeCalcBot->__get('business_user')->next_can_user_level)
<span class="badge badge-outline-warning-dark">
{{ __('team.KU') }} {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_points_KP_sum, 0) }} /
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->next_can_user_level['qual_kp'], 0) }}</strong> |
{{ __('team.TP') }} {{ formatNumber($TreeCalcBot->__get('business_user')->payline_points_qual_kp, 0) }} /
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->next_can_user_level['qual_pp'], 0) }}</strong>
| {{ \App\Services\TranslationHelper::transUserLevelName($TreeCalcBot->__get('business_user')->next_can_user_level['name']) }}</span>
@else
<span class="badge badge-outline-warning"><i class="fa fa-times"></i></span>
@endif
</td>
</tr>
<tr>
<td><strong>{{ __('team.commission_shop') }}:</strong></td>
<td>
<span class="badge badge-primary" style="font-size: 1em;"><strong>{{ formatNumber($TreeCalcBot->__get('business_user')->commission_shop_sales) }} &euro;</strong></span>
&nbsp;
({{ __('team.sales_store_net') }}: {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_total_shop) }} &euro; / {{ $TreeCalcBot->__get('business_user')->margin_shop }} %)
</td>
</tr>
@if($TreeCalcBot->__get('business_user')->version == 1)
<tr>
<td><strong>{{ __('team.commission_team') }}:</strong></td>
<td>
<span class="badge badge-primary" style="font-size: 1em;"><strong>{{ formatNumber($TreeCalcBot->__get('business_user')->commission_pp_total) }} &euro;</strong></span>
</td>
</tr>
@endif
@if($TreeCalcBot->__get('business_user')->version == 2)
<tr>
<td><strong>{{ __('team.commission_payline') }}:</strong></td>
<td>
<span class="badge badge-primary" style="font-size: 1em;"><strong>{{ formatNumber($TreeCalcBot->__get('business_user')->commission_pp_total) }} &euro;</strong></span>
</td>
</tr>
<tr>
<td><strong>{{ __('team.commission_WB') }}:</strong></td>
<td>
<span class="badge badge-primary" style="font-size: 1em;"><strong>{{ formatNumber($TreeCalcBot->__get('business_user')->commission_growth_total) }} &euro;</strong></span>
</td>
</tr>
@endif
<tr>
<td><strong>{{ __('team.commission_total') }}:</strong></td>
<td>
<span class="badge badge-secondary" style="font-size: 1em;"><strong>{{ formatNumber($TreeCalcBot->__get('business_user')->getCommissionTotal()) }} &euro;</strong></span>
</td>
</tr>
@if($TreeCalcBot->__get('business_user')->version == 2)
{{-- <tr>
<td>Team Points:</td>
<td>
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->total_pp, 0) }} TP</strong>
</td>
</tr>
<tr>
<td>Qualifikation Team Points:</td>
<td>
<strong>{{ formatNumber($TreeCalcBot->__get('business_user')->payline_points_qual_kp, 0) }} TP</strong> (+ Volumen KP)
</td>
</tr>
--}}
@endif
</tbody>
</table>
<hr class="border-light m-0 mb-2">
<div class="table-responsive">
<table class="table card-table m-0">
<tbody>
<tr>
<th>{{__('tables.line')}}</th>
<th>{{__('tables.points')}}</th>
<th>{{__('tables.commission')}} %</th>
<th>{{__('tables.commission')}} &euro;</th>
</tr>
@foreach (array_reverse($TreeCalcBot->__get('business_user')->business_lines->toArray(), true) as $line => $object)
<tr>
<td>
@if($line <= $TreeCalcBot->__get('business_user')->getQualLevelPaylines())
<div class="font-weight-bolder line-height-1 my-2 text-dark badge badge-outline-success">{{ $line }}. {{ __('team.PP') }}</div>
@elseif($TreeCalcBot->__get('business_user')->isQualLevelGrowth($line))
<div class="font-weight-bolder line-height-1 my-2 text-dark badge badge-outline-warning-dark">{{ $line }}. {{ __('team.WB') }}</div>
@else
<div class="font-weight-bolder line-height-1 my-2 text-dark badge badge-outline-dark">{{ $line }}.</div>
@endif
</td>
<td>{{ formatNumber($TreeCalcBot->getKeybyLine($line, 'points'), 0) }}</td>
<td>{{ formatNumber($TreeCalcBot->getKeybyLine($line, 'margin'), 1) }} %</td>
<td>{{ formatNumber($TreeCalcBot->getKeybyLine($line, 'commission'), 2) }} &euro;</td>
</tr>
@endforeach
</tbody>
<tfoot>
<tr>
<td>{{__('tables.total')}}</td>
<td>{{ formatNumber($TreeCalcBot->__get('business_user')->total_pp, 0) }}</td>
<td></td>
<td><strong>{{ formatNumber($TreeCalcBot->__get('business_user')->commission_pp_total, 2) }} &euro;</strong></td>
</tr>
</tfoot>
</table>
</div>

View file

@ -0,0 +1,69 @@
@extends('layouts.layout-2')
@section('content')
<div class="card">
<h5 class="card-header text-danger">
<i class="fa fa-exclamation-triangle mr-2"></i>
{{__('Business')}} {{__('Fehler')}}
<span class="badge badge-danger ml-2">OPTIMIERT</span>
</h5>
<div class="card-body">
<div class="alert alert-danger">
<h5 class="alert-heading">
<i class="fa fa-bug mr-2"></i>
Ein Fehler ist aufgetreten
</h5>
<p class="mb-3">
Bei der Verarbeitung der optimierten Business-Daten ist ein Fehler aufgetreten.
Dies kann durch große Datenmengen oder Systemauslastung verursacht werden.
</p>
<hr>
<div class="row">
<div class="col-md-6">
<h6>Fehlerdetails:</h6>
<div class="bg-light p-3 rounded">
<code>{{ $error }}</code>
</div>
</div>
<div class="col-md-6">
<h6>Betroffene Parameter:</h6>
<ul class="list-unstyled">
@if(isset($month) && isset($year))
<li><strong>Zeitraum:</strong> {{ $month }}/{{ $year }}</li>
@endif
@if(isset($user_id))
<li><strong>User ID:</strong> {{ $user_id }}</li>
@endif
<li><strong>Version:</strong> Optimiert</li>
<li><strong>Zeit:</strong> {{ now()->format('Y-m-d H:i:s') }}</li>
</ul>
</div>
</div>
</div>
<div class="alert alert-info">
<h6><i class="fa fa-lightbulb mr-2"></i>Lösungsvorschläge:</h6>
<ol>
<li>Verwenden Sie die <a href="{{ route('admin_business_show') }}" class="btn btn-outline-primary btn-sm ml-2">Original-Version</a></li>
<li>Versuchen Sie es zu einem späteren Zeitpunkt erneut</li>
<li>Reduzieren Sie den Zeitraum oder die Anzahl der verarbeiteten Daten</li>
<li>Kontaktieren Sie den Administrator, wenn der Fehler weiterhin auftritt</li>
</ol>
</div>
<div class="text-center mt-4">
<a href="{{ route('admin_business_optimized') }}" class="btn btn-primary">
<i class="fa fa-arrow-left mr-2"></i>
Zurück zur Übersicht
</a>
<a href="{{ route('admin_business_show') }}" class="btn btn-outline-secondary">
<i class="fa fa-undo mr-2"></i>
Original-Version verwenden
</a>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,159 @@
@extends('layouts.layout-2')
@section('content')
<div class="card">
<h5 class="card-header">
{{__('Business')}} {{__('Übersicht')}}
<span class="badge badge-success ml-2">OPTIMIERT</span>
</h5>
<div class="card-body p-0">
{!! Form::open(['action' => route('admin_business_optimized'), 'class' => 'form-horizontal', 'id'=>'form_filter_business_user']) !!}
<div class="form-row align-items-center px-4 pb-2 pt-3">
<div class="col-6 col-sm-6 col-md-3 col-lg-3 mb-1">
<select class="custom-select on_change_invoice" name="business_user_filter_month">
@foreach($filter_months as $key=>$value)
<option value="{{$key}}" @if(session('business_user_filter_month') == $key) selected @endif>{{$value}}</option>
@endforeach
</select>
</div>
<div class="col-6 col-sm-6 col-md-3 col-lg-3 mb-1">
<select class="custom-select on_change_invoice" name="business_user_filter_year">
@foreach($filter_years as $key=>$value)
<option value="{{$value}}" @if(session('business_user_filter_year') == $value) selected @endif>{{$value}}</option>
@endforeach
</select>
</div>
<div class="col-6 col-sm-6 col-md-3 col-lg-3 mb-1">
<select class="custom-select on_change_invoice" name="business_user_filter_active">
@foreach($filter_active as $key=>$value)
<option value="{{$key}}" @if(session('business_user_filter_active') == $key) selected @endif>{{$value}}</option>
@endforeach
</select>
</div>
<div class="col-6 col-sm-6 col-md-3 col-lg-3 mb-1">
<select class="custom-select on_change_invoice" name="business_user_filter_level">
@foreach($filter_levels as $key=>$value)
<option value="{{$key}}" @if(session('business_user_filter_level') == $key) selected @endif>{{$value}}</option>
@endforeach
</select>
</div>
</div>
<!-- Zweite Filterzeile für erweiterte Filter -->
<div class="form-row align-items-center px-4 pb-3">
<div class="col-6 col-sm-6 col-md-3 col-lg-3 mb-1">
<select class="custom-select on_change_invoice" name="business_user_filter_next_level">
@foreach($filter_next_level as $key=>$value)
<option value="{{$key}}" @if(session('business_user_filter_next_level') == $key) selected @endif>{{$value}}</option>
@endforeach
</select>
</div>
<div class="col-6 col-sm-6 col-md-3 col-lg-3 mb-1">
<!-- Platz für weitere Filter falls nötig -->
</div>
<div class="col-6 col-sm-6 col-md-3 col-lg-3 mb-1">
<!-- Platz für weitere Filter falls nötig -->
</div>
<div class="col-6 col-sm-6 col-md-3 col-lg-3 mb-1">
<!-- Platz für weitere Filter falls nötig -->
</div>
</div>
{!! Form::close() !!}
<!-- Performance Info Banner -->
<div class="alert alert-info mx-4 mb-3">
<div class="d-flex align-items-center">
<i class="fa fa-rocket mr-2"></i>
<div>
<strong>Optimierte Version aktiv:</strong>
Diese Version nutzt optimierte Datenbankabfragen und Memory-effiziente Verarbeitung für bessere Performance bei großen Datenmengen.
<br>
<small><strong>Hinweis:</strong> Der "Nächster Level" Filter funktioniert optimal mit gespeicherten Monatsdaten. Bei Live-Berechnungen wird er aus Performance-Gründen ignoriert.</small>
</div>
</div>
</div>
<div class="card-datatable table-responsive pt-0">
<table class="datatables-style table table-striped table-bordered" id="datatable-users">
<thead>
<tr>
<th>{{__('ID') }}</th>
<th>{{__('Berater-ID') }}</th>
<th>{{ __('Level') }}</th>
<th>{{ __('KD') }}</th>
<th>{{__('Gesamte Points')}}</th>
<th>{{__('Umsatz netto')}}</th>
<th>{{__('E-Mail')}}</th>
<th>{{__('First name')}}</th>
<th>{{__('Last name')}}</th>
<th>{{__('Nächster Level')}}</th>
<th>{{__('Sponsor')}}</th>
<th>{{__('tables.account')}}</th>
<th>{{__('bis')}}</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
<script>
$( document ).ready(function() {
var oTable = $('#datatable-users').DataTable({
"processing": true,
"serverSide": true,
"stateSave": false,
"searching": true,
ajax: {
url: '{!! route('admin_business_optimized_user_datatable') !!}?v={{ time() }}',
data: function(d) {
d.business_user_filter_name = $('input[name=business_user_filter_name]').val();
d.business_user_filter_month = $('select[name=business_user_filter_month]').val();
d.business_user_filter_year = $('select[name=business_user_filter_year]').val();
d.business_user_filter_active = $('select[name=business_user_filter_active]').val();
d.business_user_filter_level = $('select[name=business_user_filter_level]').val();
d.business_user_filter_next_level = $('select[name=business_user_filter_next_level]').val();
},
error: function(xhr, error, code) {
console.error('DataTable Error:', error, code);
if(xhr.responseJSON && xhr.responseJSON.error) {
alert('Fehler beim Laden der Daten: ' + xhr.responseJSON.error);
}
}
},
"order": [[1, "asc" ]],
"columns": [
{ data: 'id', name: 'id', searchable: false, orderable: true },
{ data: 'm_account', name: 'm_account', orderable: true, searchable: true },
{ data: 'user_level', name: 'user_level', orderable: false, searchable: false },
{ data: 'is_qual_kp', name: 'is_qual_kp', orderable: false, searchable: false },
{ data: 'sales_volume_KP_points', name: 'sales_volume_KP_points', orderable: false, searchable: false },
{ data: 'sales_volume_total', name: 'sales_volume_total', orderable: false, searchable: false },
{ data: 'email', name: 'email', orderable: true, searchable: true},
{ data: 'first_name', name: 'first_name', orderable: true, searchable: true },
{ data: 'last_name', name: 'last_name', orderable: true, searchable: true },
{ data: 'next_level_qualified', name: 'next_level_qualified', orderable: false, searchable: false },
{ data: 'sponsor', name: 'sponsor', orderable: false, searchable: false },
{ data: 'active_account', name: 'active_account', orderable: false, searchable: false },
{ data: 'payment_account_date', name: 'payment_account_date', orderable: false, searchable: false },
],
"bLengthChange": false,
"iDisplayLength": 100,
"language": {
"url": "/js/datatables-{{ \App::getLocale() }}.json"
}
});
$('select.on_change_invoice').on('change', function(){
oTable.draw();
});
$('input.on_keyup_invoice').on('keyup', function(){
oTable.draw();
});
});
</script>
@endsection

View file

@ -0,0 +1,189 @@
@extends('layouts.layout-2')
@section('content')
<div class="card">
<h5 class="card-header">
{{__('team.business')}} {{__('team.structure')}}
<span class="badge badge-success ml-2">OPTIMIERT</span>
</h5>
<div class="card-body">
{!! Form::open(['action' => route('admin_business_optimized_structure'), 'class' => 'form-horizontal', 'id'=>'form_filter_business_user']) !!}
<div class="form-row align-items-center px-0 pb-2 pt-0">
<div class="col-6 col-sm-4 col-md-4 col-lg-4 mb-1">
<select class="custom-select on_change_select_filter" name="business_user_filter_month">
@foreach($filter_months as $key=>$value)
<option value="{{$key}}" @if(session('business_user_filter_month') == $key) selected @endif>{{$value}}</option>
@endforeach
</select>
</div>
<div class="col-6 col-sm-4 col-md-4 col-lg-4 mb-1">
<select class="custom-select on_change_select_filter" name="business_user_filter_year">
@foreach($filter_years as $key=>$value)
<option value="{{$value}}" @if(session('business_user_filter_year') == $value) selected @endif>{{$value}}</option>
@endforeach
</select>
</div>
</div>
{!! Form::close() !!}
<!-- Performance Metrics Display -->
@if(isset($performance))
<div class="alert alert-success">
<div class="row">
<div class="col-md-3">
<i class="fa fa-clock mr-1"></i>
<strong>Ladezeit:</strong> {{ $performance['execution_time'] }}ms
</div>
<div class="col-md-3">
<i class="fa fa-memory mr-1"></i>
<strong>Memory:</strong> {{ $performance['memory_used'] }}
</div>
<div class="col-md-3">
<i class="fa fa-users mr-1"></i>
<strong>Users:</strong> {{ $performance['user_count'] }}
</div>
<div class="col-md-3">
<i class="fa fa-user-times mr-1"></i>
<strong>Ohne Sponsor:</strong> {{ $performance['parentless_count'] }}
</div>
</div>
</div>
@endif
<hr class="container-m-nx border-light mt-0">
<div>
<div id="nestable-menu" class="mb-4">
<button type="button" class="btn btn-default btn-sm" data-action="expand-all">{{ __('team.expand_all') }}</button>
<button type="button" class="btn btn-default btn-sm" data-action="collapse-all">{{ __('team.collapse_all') }}</button>
<!-- Zusätzliche Optimierungs-Controls -->
<div class="btn-group ml-3" role="group">
<button type="button" class="btn btn-info btn-sm" onclick="showPerformanceDetails()">
<i class="fa fa-chart-line"></i> Performance Details
</button>
<a href="{{ route('admin_business_structure') }}" class="btn btn-outline-secondary btn-sm">
<i class="fa fa-arrow-left"></i> Original Version
</a>
@if(isset($forceLiveCalculation) && $forceLiveCalculation === true)
<a href="{{ route('admin_business_optimized_structure') }}" class="btn btn-outline-warning btn-sm" title="Live-Berechnung aus">
<i class="fa fa-refresh"></i> Live berechnen aus
</a>
@else
<a href="{{ route('admin_business_optimized_structure') }}?force_live_calculation=1" class="btn btn-outline-success btn-sm" title="Live-Berechnung erzwingen">
<i class="fa fa-refresh"></i> Live berechnen
</a>
@endif
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="dd" id="nestable2">
{!! $TreeCalcBot->makeHtmlTree() !!}
</div>
</div>
</div>
@if($TreeCalcBot->isParentless())
<div class="row">
<div class="col-md-12">
<hr>
<h6 class="">
Berater ohne Sponsor
<span class="badge badge-warning">{{ count($TreeCalcBot->__get('parentless')) }}</span>
</h6>
<div class="dd" id="">
{!! $TreeCalcBot->makeParentlessHtml() !!}
</div>
</div>
</div>
@endif
</div>
</div>
</div>
<!-- Performance Details Modal -->
<div class="modal fade" id="performanceModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Performance Metrics</h5>
<button type="button" class="close" data-dismiss="modal">
<span>&times;</span>
</button>
</div>
<div class="modal-body">
@if(isset($performance))
<table class="table table-sm">
<tr>
<td><strong>Ausführungszeit:</strong></td>
<td>{{ $performance['execution_time'] }}ms</td>
</tr>
<tr>
<td><strong>Memory-Verbrauch:</strong></td>
<td>{{ $performance['memory_used'] }}</td>
</tr>
<tr>
<td><strong>Anzahl Users:</strong></td>
<td>{{ $performance['user_count'] }}</td>
</tr>
<tr>
<td><strong>Parentlose Users:</strong></td>
<td>{{ $performance['parentless_count'] }}</td>
</tr>
<tr>
<td><strong>Optimierungen:</strong></td>
<td>
<span class="badge badge-success">Repository Pattern</span>
<span class="badge badge-success">Eager Loading</span>
<span class="badge badge-success">Memory Monitoring</span>
</td>
</tr>
</table>
@endif
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Schließen</button>
</div>
</div>
</div>
</div>
<link rel="stylesheet" href="/vendor/libs/nestable/nestable.css">
<script src="/vendor/libs/nestable/jquery-nestable.js?v=1"></script>
<script>
$( document ).ready(function() {
function updateOutput(e) {
//var list = e.length ? e : $(e.target);
//var output = list.data('output');
};
$('#nestable2').nestable().on('change', updateOutput);
// output initial serialised data
//updateOutput($('#nestable2').data('output', $('#nestable2-output')));
$('#nestable-menu').on('click', function(e) {
var target = $(e.target);
var action = target.data('action');
if (action === 'expand-all') {
$('.dd').nestable('expandAll');
}
if (action === 'collapse-all') {
$('.dd').nestable('collapseAll');
}
});
});
$('.on_change_select_filter').on('change', function(){
$('#form_filter_business_user').submit();
});
function showPerformanceDetails() {
$('#performanceModal').modal('show');
}
</script>
@endsection

View file

@ -0,0 +1,62 @@
@extends('layouts.layout-2')
@section('content')
<div class="card">
<h5 class="card-header">
{{__('Business')}} {{__('Übersicht')}} Berater
<span class="badge badge-success ml-2">OPTIMIERT</span>
</h5>
{!! Form::open(['action' => route('admin_business_optimized_user_detail', [$user->id]), 'class' => 'form-horizontal', 'id'=>'']) !!}
{{ Form::hidden('user_id', $user->id ) }}
{{ Form::hidden('month', $TreeCalcBot->__get('date')->month) }}
{{ Form::hidden('year', $TreeCalcBot->__get('date')->year) }}
<div class="media align-items-center pt-3 mb-0">
{{-- <img src="assets/img/avatars/5-small.png" alt="" class="d-block ui-w-100 rounded-circle">--}}
<div class="media-body ml-4">
<h4 class="font-weight-bold mb-0">
{{ $user->account->first_name }} {{ $user->account->last_name }}
<a class="font-weight-normal" href="mailto:{{ $user->email }}">{{ $user->email }}</a>
{{-- <button type="submit" class="btn btn-submit btn-secondary btn-sm float-right mr-4">{{ __('save') }}</button>&nbsp; --}}
</h4>
<!-- Performance Info -->
@if(isset($data['performance']))
<div class="mt-2">
<small class="text-muted">
<i class="fa fa-rocket mr-1"></i>
Optimierte Version - Ladezeit: {{ $data['performance']['execution_time'] }}ms
</small>
</div>
@endif
</div>
</div>
{!! Form::close() !!}
<div class="card-body">
<!-- Navigation zwischen Original und Optimiert -->
<div class="alert alert-info">
<div class="d-flex justify-content-between align-items-center">
<div>
<i class="fa fa-info-circle mr-2"></i>
<strong>Optimierte User-Detail-Ansicht:</strong>
Verbesserte Performance durch optimierte Datenbankabfragen und Memory-Management.
</div>
<a href="{{ route('admin_business_user_detail', [$user->id]) }}" class="btn btn-outline-secondary btn-sm">
<i class="fa fa-arrow-left"></i> Original Version
</a>
</div>
</div>
@include('admin.business_optimized._user_detail_in')
</div>
</div>
<script>
$( document ).ready(function() {
});
</script>
@endsection

View file

@ -20,7 +20,7 @@
{{ __('Create/Edit Kategorien') }}
</h4>
{!! Form::open(['url' => route('admin_product_category_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
{!! Form::open(['action' => route('admin_product_category_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
<input type="hidden" name="id" id="id" value="@if($category->id>0){{$category->id}}@else new @endif">
<input type="hidden" name="action" value="save-form">

View file

@ -14,7 +14,7 @@
</div>
</div>
{!! Form::open(['url' => route('admin_lead_change_mail', [$user->id]) ]) !!}
{!! Form::open(['action' => route('admin_lead_change_mail', [$user->id]) ]) !!}
<div class="form-group row">
<label class="col-form-label col-sm-2 text-sm-right">{{__('New E-Mail Address')}}*</label>

View file

@ -20,7 +20,7 @@
{{ __('Create/Edit Land') }}
</h4>
{!! Form::open(['url' => route('admin_country_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
{!! Form::open(['action' => route('admin_country_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
<input type="hidden" name="id" id="id" value="@if($country->id>0){{$country->id}}@else new @endif">

View file

@ -243,8 +243,9 @@
</thead>
<tbody>
@php($count=0)
@if($shopping_user->shopping_order)
@if(isset($shopping_user->shopping_order) && $shopping_user->shopping_order)
@foreach($shopping_user->shopping_order->shopping_payments as $shopping_payment)
@if(isset($shopping_payment) && $shopping_payment)
<tr>
<th scope="row">{{++$count}}</th>
<td>{{$shopping_payment->getPaymentType()}}</td>
@ -281,8 +282,9 @@
</td>
</tr>
@endif
@endif
@endforeach
@endif
@endif
</tbody>
</table>
</div>

View file

@ -5,7 +5,7 @@
<a href="{{route('admin_customer_detail', [$shopping_user->id])}}" class="btn btn-sm btn-default float-right">{{ __('back') }}</a>
{{ __('customer.customer_details') }} {{ __('customer.edit') }}
</h4>
{!! Form::open(['url' => route('admin_customer_edit', [$shopping_user->id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
{!! Form::open(['action' => route('admin_customer_edit', [$shopping_user->id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
@include('admin.customer._edit')
<div class="text-left mt-3">
<button type="submit" class="btn btn-secondary" name="action" value="shopping-user-store">{{ __('save changes') }}</button>&nbsp;

View file

@ -91,7 +91,7 @@
<div class="card mb-4">
<h5 class="card-header">Tags</h5>
<div class="card-body">
{!! Form::open(['url' => route('admin_downloadcenter_file', ['file_tags_update', $file->id]), 'class' => 'form-horizontal']) !!}
{!! Form::open(['action' => route('admin_downloadcenter_file', ['file_tags_update', $file->id]), 'class' => 'form-horizontal']) !!}
<button type="submit" class="btn btn-submit btn-primary mb-4">{{ __('save') }}</button>&nbsp;
<div class="custom-dd dd" id="nestable_list_check" data-href-save="{{ url('/admin/tags/update')}}">
<ol class="dd-list">

View file

@ -12,7 +12,7 @@
<div class="card-body">
{!! Form::open([ 'url' => route('admin_downloadcenter_upload'), 'method' => 'post', 'files' => true, 'enctype' => 'multipart/form-data', 'class' => 'dropzone', 'id' => 'realDropzone' ]) !!}
{!! Form::open([ 'action' => route('admin_downloadcenter_upload'), 'method' => 'post', 'files' => true, 'enctype' => 'multipart/form-data', 'class' => 'dropzone', 'id' => 'realDropzone' ]) !!}
<div class="fallback">
<input name="file" type="file" multiple>
</div>

View file

@ -80,7 +80,7 @@
<div class="col-md-4">
<div class="card mb-4">
<div class="card-body">
{!! Form::open(['url' => route('admin_downloadcenter_item_store', ['category']), 'class' => 'form-horizontal']) !!}
{!! Form::open(['action' => route('admin_downloadcenter_item_store', ['category']), 'class' => 'form-horizontal']) !!}
<label class="form-label" for="dc_category_name">Neue Katagorie anlegen</label>
{{ Form::text('dc_category_name', '', array('placeholder'=>'Bezeichung Katagorie', 'class'=>'form-control', 'id'=>'dc_category_name')) }}
<button type="submit" class="btn btn-submit mt-4">{{ __('save') }}</button>&nbsp;
@ -88,7 +88,7 @@
<br>
<hr>
<br>
{!! Form::open(['url' => route('admin_downloadcenter_item_store', ['tag']), 'class' => 'form-horizontal']) !!}
{!! Form::open(['action' => route('admin_downloadcenter_item_store', ['tag']), 'class' => 'form-horizontal']) !!}
<label class="form-label" for="dc_tag_name">Neuen Tag anlegen</label>
{{ Form::text('dc_tag_name', '', array('placeholder'=>'Bezeichung Tag', 'class'=>'form-control', 'id'=>'dc_tag_name')) }}
<button type="submit" class="btn btn-submit mt-4">{{ __('save') }}</button>&nbsp;

View file

@ -20,7 +20,7 @@
{{ __('Create/Edit Inhaltsstoff') }}
</h4>
{!! Form::open(['url' => route('admin_product_ingredient_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
{!! Form::open(['action' => route('admin_product_ingredient_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
<input type="hidden" name="id" id="id" value="@if($model->id>0){{$model->id}}@else new @endif">

View file

@ -24,7 +24,7 @@
@endif
</h4>
{!! Form::open(['url' => route('admin_lead_store')."?show=".$show, 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
{!! Form::open(['action' => route('admin_lead_store')."?show=".$show, 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
<div class="text-left mt-0 mb-2">
<button type="submit" class="btn btn-submit btn-primary">{{ __('save') }}</button>&nbsp;
@ -52,7 +52,7 @@
<!-- Modal template -->
<div class="modal fade" id="modal-user-vat-validation">
<div class="modal-dialog">
{!! Form::open(['url' => route('admin_lead_store'), 'class' => 'modal-content']) !!}
{!! Form::open(['action' => route('admin_lead_store'), 'class' => 'modal-content']) !!}
<input type="hidden" name="user_id" id="user_id" value="@if($user->id>0){{$user->id}}@else new @endif">
<div class="modal-header">

View file

@ -10,7 +10,7 @@
<div class="card">
<div class="card-body p-0">
{!! Form::open(['url' => route('admin_leads'), 'class' => 'form-horizontal', 'id'=>'form_admin_leads']) !!}
{!! Form::open(['action' => route('admin_leads'), 'class' => 'form-horizontal', 'id'=>'form_admin_leads']) !!}
<div class="form-row align-items-center px-4 pb-2 pt-3">
<div class="col-12 col-sm-4 col-md-4 col-lg-4 mb-1">

View file

@ -86,6 +86,9 @@
"bLengthChange": false,
"iDisplayLength": 50,
"order": [[ 1, "asc" ]],
"columnDefs": [
{ "type": "num", "targets": 1 }
],
"language": {
"url": "/js/datatables-{{ \App::getLocale() }}.json"
}

View file

@ -10,7 +10,11 @@
</div>
<div class="modal-body modal-body-overflow">
@if(isset($TreeCalcBot))
@include('admin.business._user_detail_in')
@if($data['optimized'])
@include('admin.business_optimized._user_detail_in')
@else
@include('admin.business._user_detail_in')
@endif
@endif
</div>
<div class="modal-footer">

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
{!! Form::open(['action' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
<div class="modal-header">
<h5 class="modal-title">
{{ __('Points / Umsatz') }}

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => route('admin_sales_customers_detail', [$current->id]), 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
{!! Form::open(['action' => route('admin_sales_customers_detail', [$current->id]), 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
<input type="hidden" name="action" value="{{$data['action']}}">
<input type="hidden" name="id" value="{{$data['id']}}">

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
{!! Form::open(['action' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
<div class="modal-header">
<h5 class="modal-title">
{{ __('Berater') }}

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
{!! Form::open(['action' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
<div class="modal-header">
<h5 class="modal-title">
{{ __('Berater') }} Karriere-Level

View file

@ -94,7 +94,7 @@
Gutschriften / Auszahlungen
</h5>
<div class="card-body p-0">
{!! Form::open(['url' => route('admin_payments_credit'), 'class' => 'form-horizontal', 'id'=>'form_filter_payment_credits']) !!}
{!! Form::open(['action' => route('admin_payments_credit'), 'class' => 'form-horizontal', 'id'=>'form_filter_payment_credits']) !!}
<div class="form-row align-items-center px-4 pb-2 pt-3">
<div class="col-12 col-sm-4 col-md-4 col-lg-4 mb-1">

View file

@ -6,7 +6,7 @@
Finanzen / Rechnungen
</h5>
<div class="card-body p-0">
{!! Form::open(['url' => route('admin_payments_invoice'), 'class' => 'form-horizontal', 'id'=>'form_filter_payment_invoices']) !!}
{!! Form::open(['action' => route('admin_payments_invoice'), 'class' => 'form-horizontal', 'id'=>'form_filter_payment_invoices']) !!}
<div class="form-row align-items-center px-4 pb-2 pt-3">
<div class="col-12 col-sm-4 col-md-4 col-lg-4 mb-1">

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => route('admin_payments_credit'), 'class' => 'modal-content form-prevent-multiple-submits', 'enctype' => 'multipart/form-data']) !!}
{!! Form::open(['action' => route('admin_payments_credit'), 'class' => 'modal-content form-prevent-multiple-submits', 'enctype' => 'multipart/form-data']) !!}
<div class="modal-header">
<h5 class="modal-title">
{{ __('Gutschrift') }}

View file

@ -1,4 +1,4 @@
{!! Form::open(['url' => route('admin_payments_credit_create'), 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
{!! Form::open(['action' => route('admin_payments_credit_create'), 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
<style>
.unselectable {
-moz-user-select: none;

View file

@ -21,7 +21,7 @@
{{ __('navigation.sales_volumes') }} {{ __('navigation.products') }} (nach Rechnungen)
</h5>
<div class="card-body">
{!! Form::open(['url' => route('admin_payments_sales_volumes_download'), 'class' => '']) !!}
{!! Form::open(['action' => route('admin_payments_sales_volumes_download'), 'class' => '']) !!}
{!! Form::hidden('key', 'value') !!}
<button type="submit" name="action" value="export" class="btn btn-sm btn-primary mb-2"><i class="ion ion-md-download"></i> &nbsp;Export kompakte Liste als xls</button>

View file

@ -26,7 +26,7 @@
</ul>
</div>
<div class="card-body">
{!! Form::open(['url' => route('admin_payments_taxadvisor_download'), 'class' => '']) !!}
{!! Form::open(['action' => route('admin_payments_taxadvisor_download'), 'class' => '']) !!}
{!! Form::hidden('key', 'value') !!}
<button type="submit" name="action" value="export" class="btn btn-md btn-primary mb-2"><i class="ion ion-md-download"></i> &nbsp;Export als xls</button>
<hr>

View file

@ -20,7 +20,7 @@
{{ __('Create/Edit Produkt') }}
</h4>
{!! Form::open(['url' => route('admin_product_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
{!! Form::open(['action' => route('admin_product_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
<input type="hidden" name="id" id="id" value="@if($product->id>0){{$product->id}}@else new @endif">
<div class="text-left mt-0 mb-2">

View file

@ -36,13 +36,7 @@
{!! HTMLHelper::getCategoriesOptions($product->categories()->pluck('category_id')->toArray(), false) !!}
</select>
</div>
{{--
<div class="form-group col-sm-5">
<label class="form-label" for="show_at">{{ __('Produkt anzeigen') }} alt</label>
{{ Form::select('show_at', $product->showATs, $product->show_at, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }}
</div>
--}}
<div class="form-group col-sm-2">
<label class="form-label" for="pos">{{ __('Listenposition') }}</label>
{{ Form::text('pos', $product->pos, array('placeholder'=>__('1, 2, 3, etc'), 'class'=>'form-control', 'id'=>'pos')) }}

View file

@ -0,0 +1,153 @@
@extends('layouts.layout-2')
@section('content')
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<div class="card">
<h5 class="card-header">
Umsatz- und Gutschriftenbericht
</h5>
<div class="card-body">
{!! Form::open(['action' => route('admin_revenue_export'), 'class' => '']) !!}
<div class="form-row align-items-center px-0 pb-2 pt-0">
<div class="col-6 col-sm-3 col-md-3 col-lg-3 mb-1">
<select class="custom-select on_change_select_filter" name="revenue_filter_year">
@foreach($filter_years as $key=>$value)
<option value="{{$value}}" @if(session('revenue_filter_year') == $value) selected @endif>{{$value}}</option>
@endforeach
</select>
</div>
<div class="col-6 col-sm-3 col-md-3 col-lg-3 mb-1">
{{--
<select class="custom-select on_change_select_filter" name="revenue_filter_month">
@foreach($filter_months as $key=>$value)
<option value="{{$key}}" @if(session('revenue_filter_month') == $key) selected @endif>{{$value}}</option>
@endforeach
</select>
--}}
</div>
<div class="col-6 col-sm-3 col-md-3 col-lg-3 mb-1">
{{-- <select class="custom-select on_change_select_filter" name="revenue_filter_type">
<option value="year" @if(session('revenue_filter_type') == 'year') selected @endif>Ganzes Jahr</option>
<option value="month" @if(session('revenue_filter_type') == 'month') selected @endif>Einzelner Monat</option>
</select>
--}}
</div>
<div class="col-6 col-sm-3 col-md-3 col-lg-3 mb-1">
<button type="submit" class="btn btn-primary btn-block">
<i class="ion ion-md-download"></i> Export Excel
</button>
</div>
</div>
{!! Form::close() !!}
<hr>
<!-- Umsätze Section -->
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h6 class="mb-0">Umsätze {{ session('revenue_filter_year') }}</h6>
</div>
<div class="card-body">
@if(isset($revenue_summary['yearly']) && $revenue_summary['yearly']->count() > 0)
@foreach($revenue_summary['yearly'] as $item)
<div class="row mb-2">
<div class="col-4"><strong>{{ $item->period_label }}</strong></div>
<div class="col-8">
<small class="text-muted">Netto:</small> {{ number_format($item->total_net, 2, ',', '.') }} <br>
<small class="text-muted">Steuer:</small> {{ number_format($item->total_tax, 2, ',', '.') }} <br>
<strong>Brutto: {{ number_format($item->total_gross, 2, ',', '.') }} </strong>
</div>
</div>
@endforeach
@else
<p class="text-muted">Keine Umsätze für {{ session('revenue_filter_year') }} gefunden</p>
@endif
<hr>
<h6>Monatliche Aufschlüsselung</h6>
@if(isset($revenue_summary['monthly']) && $revenue_summary['monthly']->count() > 0)
@foreach($revenue_summary['monthly'] as $item)
<div class="row mb-1">
<div class="col-4">{{ $item->period_label }}</div>
<div class="col-8">
<small>{{ number_format($item->total_net, 2, ',', '.') }} / {{ number_format($item->total_tax, 2, ',', '.') }} / <strong>{{ number_format($item->total_gross, 2, ',', '.') }} </strong></small>
</div>
</div>
@endforeach
@else
<p class="text-muted">Keine monatlichen Umsätze gefunden</p>
@endif
</div>
</div>
</div>
<!-- Gutschriften Section -->
<div class="col-md-6">
<div class="card">
<div class="card-header">
<h6 class="mb-0">Gutschriften {{ session('revenue_filter_year') }}</h6>
</div>
<div class="card-body">
@if(isset($credit_summary['yearly']) && $credit_summary['yearly']->count() > 0)
@foreach($credit_summary['yearly'] as $item)
<div class="row mb-2">
<div class="col-4"><strong>{{ $item->period_label }}</strong></div>
<div class="col-8">
<small class="text-muted">Netto:</small> {{ number_format($item->total_net, 2, ',', '.') }} <br>
<small class="text-muted">Steuer:</small> {{ number_format($item->total_tax, 2, ',', '.') }} <br>
<strong>Brutto: {{ number_format($item->total_gross, 2, ',', '.') }} </strong>
</div>
</div>
@endforeach
@else
<p class="text-muted">Keine Gutschriften für {{ session('revenue_filter_year') }} gefunden</p>
@endif
<hr>
<h6>Monatliche Aufschlüsselung</h6>
@if(isset($credit_summary['monthly']) && $credit_summary['monthly']->count() > 0)
@foreach($credit_summary['monthly'] as $item)
<div class="row mb-1">
<div class="col-4">{{ $item->period_label }}</div>
<div class="col-8">
<small>{{ number_format($item->total_net, 2, ',', '.') }} / {{ number_format($item->total_tax, 2, ',', '.') }} / <strong>{{ number_format($item->total_gross, 2, ',', '.') }} </strong></small>
</div>
</div>
@endforeach
@else
<p class="text-muted">Keine monatlichen Gutschriften gefunden</p>
@endif
</div>
</div>
</div>
</div>
</div>
</div>
<script>
$( document ).ready(function() {
$('select.on_change_select_filter').on('change', function(){
window.location.href = window.location.pathname + '?' +
'revenue_filter_year=' + $('select[name=revenue_filter_year]').val() +
'&revenue_filter_month=' + $('select[name=revenue_filter_month]').val() +
'&revenue_filter_type=' + $('select[name=revenue_filter_type]').val();
});
});
</script>
@endsection

View file

@ -179,8 +179,10 @@
<a href="{{ $shopping_order->user_shop->getSubdomain(false) }}" class="badge badge-success"
target="_blank">{{ $shopping_order->user_shop->getSubdomain(false) }}</a>
@else
<span class="badge badge-danger"
target="_blank">{{ $shopping_order->user_shop->getSubdomain(false) }}</span>
@if ($shopping_order->user_shop)
<span class="badge badge-danger"
target="_blank">{{ $shopping_order->user_shop->getSubdomain(false) }}</span>
@endif
@endif
</div>
</div>
@ -445,7 +447,9 @@
</thead>
<tbody>
@php($count = 0)
@if(isset($shopping_order->shopping_payments) && $shopping_order->shopping_payments)
@foreach ($shopping_order->shopping_payments as $shopping_payment)
@if(isset($shopping_payment) && $shopping_payment)
<tr>
<th scope="row">{{ ++$count }}</th>
<td>{{ $shopping_payment->getPaymentType() }}</td>
@ -499,7 +503,9 @@
</td>
</tr>
@endif
@endif
@endforeach
@endif
</tbody>
</table>
</div>
@ -547,8 +553,7 @@
<div class="modal fade" id="modals-invoice">
<div class="modal-dialog">
<form class="modal-content form-prevent-multiple-submits" action="{{ route('admin_sales_invoice') }}"
method="post">
<form class="modal-content form-prevent-multiple-submits" action="{{ route('admin_sales_invoice') }}" method="post">
@csrf
<input type="hidden" name="id" value="{{ $shopping_order->id }}">
<input type="hidden" name="action" value="create_invoice">

View file

@ -4,8 +4,8 @@
<h4 class="font-weight-bold py-2 mb-2">
{{ __('Einstellungen') }}
</h4>
{!! Form::open(['url' => route('admin_setting_store'), 'class' => 'form-horizontal']) !!}
{!! Form::open(['action' => route('admin_setting_store'), 'method' => 'POST', 'class' => 'form-horizontal']) !!}
<div class="card mb-2">
<div class="card-body">

View file

@ -25,7 +25,7 @@
</div>
<div class="card mb-2">
{!! Form::open(['url' => route('admin_shipping_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
{!! Form::open(['action' => route('admin_shipping_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
<input type="hidden" name="id" value="@if($value->id>0){{$value->id}}@else new @endif">
<h5 class="card-header">
{{ __('order.shipping_costs') }}
@ -201,24 +201,30 @@
<div class="card-datatable table-responsive">
<table class="datatables-style table table-striped table-bordered">
<tbody>
@if(isset($value->countries))
@foreach($value->countries as $country)
<tr>
<td>
{{ $country->country->de }}
</td>
<td>
@if(!$country->shopping_orders->count())
<a class="text-danger" href="{{ route('admin_shipping_country_delete', [$country->id]) }}" onclick="return confirm('{{__('Really delete entry?')}}');"><i class="fa fa-trash-alt"></i></a>
@if(isset($country->country))
{{ $country->country->de }}
@else
-
@endif
</td>
<td>
@if(!$country->hasShoppingOrders())
<a class="text-danger" href="{{ route('admin_shipping_country_delete', [$country->id]) }}" onclick="return confirm('{{__('Really delete entry?')}}');">
<i class="fa fa-trash-alt"></i></a>
@else
-
@endif
</td>
</tr>
@endforeach
@endif
</tbody>
</table>
@if(!$value->countries->count())
@if(!$value->countries || !$value->countries->count())
<div class="mt-4 ml-4">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-country"
data-id="new"

View file

@ -20,7 +20,7 @@
{{ __('Edit Startseite') }}
</h4>
{!! Form::open(['url' => route('admin_sites_store', [$site]), 'class' => 'form-horizontal', 'id'=>'']) !!}
{!! Form::open(['action' => route('admin_sites_store', [$site]), 'class' => 'form-horizontal', 'id'=>'']) !!}
<div class="text-left mt-0 mb-2">
<button type="submit" class="btn btn-submit btn-primary">{{ __('save') }}</button>&nbsp;

View file

@ -20,7 +20,7 @@
{{ __('Create/Edit Contact') }}
</h4>
{!! Form::open(['url' => route('admin_user_store'), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
{!! Form::open(['action' => route('admin_user_store'), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
<input type="hidden" name="user_id" id="user_id" value="@if($user->id>0){{$user->id}}@else new @endif">
{{-- @include('user.form') --}}

View file

@ -227,10 +227,10 @@
<!-- Modal delete -->
<div class="modal fade" id="modals-user-delete">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
<form class="modal-content" action="{{ route('admin_user_delete') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{__('User')}} <span class="font-weight-light">{{__('löschen')}}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
@ -243,12 +243,23 @@
</div>
</div>
<div class="form-group">
<p>User die Einkäufe getätigt haben, oder Kunden haben, sollte nicht gelöscht werden, es kann zu Systemfehler führen.</p>
<hr>
<h5>User löschen</h5>
<p>Dieser User wird gelöscht, alle Daten werden auf den übergeordneten Berater übertragen, jedoch sind die Grunddaten als Admin hier noch einsehbar.</p>
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="realy_delete_user">
<span class="custom-control-label">User wirklich löschen?</span>
</label>
</div>
<div class="form-group">
<hr>
<h5>User komplett ohne Wiederherstellung löschen</h5>
<p>Dieser User wird gelöscht, hier wird keine Wiederherstellung möglich sein.</p>
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="realy_delete_user_complete">
<span class="custom-control-label">User komplett ohne Wiederherstellung löschen?</span>
</label>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>

View file

@ -0,0 +1,53 @@
@extends('layouts.auth')
@section('content')
<!-- Content -->
<div class="authentication-wrapper authentication-2 ui-bg-cover ui-bg-overlay-container px-4" style="background-image: url({{asset('images/back.jpg')}});">
<div class="ui-bg-overlay bg-dark opacity-25"></div>
<div class="authentication-inner py-5">
<div class="card">
@include('layouts.includes.header-language')
<div class="p-4 p-sm-4" style="padding-bottom: 1.5rem !important;">
<div class="d-flex justify-content-center align-items-center pb-2 mb-2">
<div class="">
<div class="w-100 position-relative">
<a href="https://www.mivita.care"><img src="{{ asset('/images/logo_mivita.png') }}" alt="mivita.care" class=""></a>
</div>
</div>
</div>
<form method="POST" class="my-2" action="{{ route('change_login_confirm') }}" aria-label="{{ __('Login') }}">
@csrf
<h4 class="text-center mb-4">{{ __('portal.change_login_title2') }}</h4>
<div class="d-flex flex-column align-items-center m-0 mt-2">
<p class="text-center">
{{ __('portal.change_login_description2') }}
</p>
</div>
<div class="d-flex justify-content-between align-items-center m-0">
<button type="submit" class="btn btn-primary btn-block">{{ __('portal.logout_button') }}</button>
</div>
<div class="d-flex flex-column align-items-center m-0 mt-2">
<p class="text-center small border-top pt-2 mt-2">
{{ __('portal.change_login_description3') }}
</p>
</div>
</form>
<div class="mt-1 text-center justify-content-center">
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="data_protection" data-target="#modal-loading">{{__('register.data_protection')}}</button>
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="imprint" data-target="#modal-loading">{{__('imprint')}}</button>
</div>
<div class="mt-1 text-center justify-content-center">
<a href="{{ Util::getMyMivitaShopUrl() }}" class="btn btn-secondary mt-2 btn-sm">{{__('portal.back_to_shop')}}</a>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -45,7 +45,7 @@
{{ __('Forgot your Password?') }}
</a>
</label>
<input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" value="goto7-my-testsystem" required>
<input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" value="gaqto7-paggud-hydQac" required>
@if ($errors->has('password'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('password') }}</strong>
@ -94,9 +94,7 @@
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('loading_modal') }}" data-data="data_protection" data-target="#modal-loading">{{__('register.data_protection')}}</button>
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('loading_modal') }}" data-data="imprint" data-target="#modal-loading">{{__('imprint')}}</button>
</div>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,124 @@
<style>
/* Basis-Styles */
.btn-md-extra {
padding: 0.3rem 0.6rem;
font-size: 0.8rem;
line-height: 1.5;
border-radius: 0.25rem;
}
.md-btn-extra {
width: calc(1.7rem + 2px) !important;
line-height: 1.5rem;
}
.form-control.input-extra {
padding: 0.28rem 0.6rem;
font-size: 0.8rem;
font-weight: 600;
min-height: calc(1.8rem + 2px);
height: calc(1.8rem + 2px);
width: 44px;
}
.form-control.input-extra.active {
background-color: #f0f0f0;
}
.input-group-min-w {
min-width: 102px;
}
.img-extra {
min-width: 55px;
max-height: 160px;
}
.product-active {
opacity: 1;
}
.product-inactive {
opacity: 0.6;
}
/* Mobile Optimierungen */
@media (max-width: 767px) {
.table thead {
display: none;
}
.table, .table tbody, .table tr, .table td {
display: block;
width: 100%;
}
.table tr {
margin-bottom: 1.5rem;
border: 1px solid #dee2e6;
border-radius: 0.25rem;
padding: 1rem;
background: #fff;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.table td {
border: none;
padding: 0.75rem 0;
position: relative;
padding-left: 50%;
}
.table td:before {
content: attr(data-label);
position: absolute;
left: 0;
width: 45%;
padding-right: 1rem;
font-weight: 600;
color: #666;
}
.table td:first-child {
padding-top: 1rem;
}
.table td:last-child {
padding-bottom: 1rem;
}
.media {
flex-direction: column;
align-items: flex-start !important;
}
.media img {
margin-bottom: 1rem;
margin-right: 0 !important;
max-width: 100%;
height: auto;
}
.media-body {
width: 100%;
}
.input-group-min-w {
min-width: auto;
width: 100%;
}
.input-group {
width: 100% !important;
justify-content: center;
}
.form-control.input-extra {
width: 60px;
}
.no-line-break {
white-space: normal;
}
}
</style>

View file

@ -0,0 +1,117 @@
@props([
'products' => [],
'productType' => 'base', // 'base' oder 'upgrade'
'formRoute' => '',
'formStep' => 3
])
{!! Form::open(['action' => route($formRoute, $formStep), 'method' => 'POST', 'class' => '']) !!}
@include('components.abo.product-table-styles')
<div class="card-body">
<div class="row">
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('payment.ordering_country') }}</div>
{{ App\Services\UserService::getOrderInfo('billing_state') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('payment.country_of_delivery') }}</div>
{{ App\Services\UserService::getOrderInfo('shipping_state') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('payment.VAT') }}</div>
{{ App\Services\UserService::getOrderInfo('tax_free') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('payment.reverse_charge_procedure') }}</div>
{{ App\Services\UserService::getOrderInfo('user_reverse_charge') }}
</div>
</div>
@if($productType === 'base')
<div class="alert alert-warning">
<strong>{!! __('abo.abo_type_info', ['base'=>get_abo_type_badge('base'), 'upgrade'=>get_abo_type_badge('upgrade')]) !!}</strong>
</div>
@if(isset($error))
<div class="alert alert-danger">
<strong>{{ $error }}</strong>
</div>
@endif
@endif
@if(count($products) > 0)
<div class="table-responsive">
<table class="table table- m-0">
<thead>
<tr>
<th>{{ __('abo.' . $productType . '_product') }}</th>
<th>&nbsp;</th>
<th class="text-right">{{ __('order.unit_price') }}</th>
</tr>
</thead>
<tbody>
@foreach($products as $product)
<tr>
<td class="text-center align-middle px-0" data-label="{{ __('abo.' . $productType . '_product') }}">
<div class="no-line-break input-group-min-w">
<div class="input-group d-inline-flex w-auto">
<span class="input-group-prepend">
<button type="button" class="btn btn-secondary icon-btn md-btn-extra remove-product-qty"
data-row-id="{{ $product->id }}"
data-product-id="{{ $product->id }}">-</button>
</span>
<input type="text"
class="form-control text-center input-extra table-input-event-onchange"
name="{{ $productType }}_product_qty[{{ $product->id }}]"
data-row-id="{{ $product->id }}"
data-product-id="{{ $product->id }}"
value="0">
<span class="input-group-append">
<button type="button" class="btn btn-secondary icon-btn md-btn-extra add-product-qty"
data-row-id="{{ $product->id }}"
data-product-id="{{ $product->id }}">+</button>
</span>
</div>
</div>
</td>
<td class="p-4" data-label="">
<div class="media align-items-center product-inactive" id="product-{{ $product->id }}">
@if(count($product->images))
<img src="{{ route('product_image', [$product->images->first()->slug]) }}"
class="d-block ui-w-100 ui-bordered mr-4"
alt="{{ $product->getLang('name') }}">
@endif
<div class="media-body">
<h5 class="d-block text-dark">
{{$product->getLang('name')}}
<br>{!! get_abo_type_badge($productType) !!}
</h5>
{!! $product->getLang('copy') !!}
</div>
</div>
</td>
<td class="text-right font-weight-semibold align-middle p-4" data-label="{{ __('order.unit_price') }}">
<span class="no-line-break">
{{ $product->getFormattedPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country) }}
</span>
@if(\App\Services\UserService::$user_country && \App\Services\UserService::$user_country->currency)
<span class="no-line-break">
{!! $product->getFormattedPriceCurrencyWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country) !!}
</span>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endif
</div>
<div class="card-footer">
<button type="submit" class="btn btn-secondary" name="action" value="next">{{ __('abo.confirm_and_next') }}</button>
</div>
{!! Form::close() !!}

View file

@ -143,6 +143,23 @@
</td>
</tr>
@endif
@if(isset($otp))
<tr>
<td>
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td style="color:#37302d;line-height:1.6em; font-size: 30px; font-weight: bold;" align="center">
{{ $otp }}
</td>
</tr>
</table>
</center>
</td>
</tr>
@endif
@if(isset($url))
<tr>
<td>
<center>
@ -166,7 +183,8 @@
</table>
</center>
</td>
<tr>
</tr>
@endif
<tr>
<td style="color:#37302d;font-size: 14px;">
<center>
@ -175,7 +193,9 @@
<td style="color:#37302d;padding:20px;line-height:1.6em" align="center">
<br>
{{ $copy2line }}<br>
@if(isset($url))
<span style="color: #cabda9; font-weight: normal; font-size: 13px; text-decoration: underline; word-wrap: break-word;white-space: pre-line;">{{ $url }}</span>
@endif
<br><br>
{{ $copy3line }}
<br><br>

View file

@ -265,11 +265,13 @@
<tr>
<td style="line-height:1.6em;">
<b>{{__('email.checkout_mail_pay_success')}} </b><br>
@if($shopping_payment)
@if(isset($shopping_payment) && $shopping_payment)
{{__('email.checkout_mail_pay_with')}} {{$shopping_payment->getPaymentType()}}<br>
{{__('email.checkout_mail_pay_ref')}} {{$shopping_payment->reference}}<br>
@endif
@if(isset($shopping_order->shopping_user->billing_email) && $shopping_order->shopping_user->billing_email)
{{__('email.checkout_mail_your_mail')}} {{ $shopping_order->shopping_user->billing_email }}<br>
@endif
</td>
</tr>
</table>

View file

@ -182,10 +182,14 @@
@else
<b>{{__('email.checkout_mail_system_status')}} {{$txaction}}</b><br>
@endif
@if(isset($shopping_payment) && $shopping_payment)
{{__('email.checkout_mail_pay_with')}} {{$shopping_payment->getPaymentType()}}<br>
{{__('email.checkout_mail_pay_ref')}} {{$shopping_payment->reference}}<br>
@endif
@if(isset($shopping_order->shopping_user->billing_email) && $shopping_order->shopping_user->billing_email)
{{__('email.checkout_mail_your_mail')}} {{ $shopping_order->shopping_user->billing_email }}<br>
@endif
@if($txaction === 'error' && isset($payment_error))
<hr>
<b>

View file

@ -0,0 +1,227 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mivita.care</title>
<style type="text/css">
img {
max-width: 600px;
outline: none;
text-decoration: none;
-ms-interpolation-mode: bicubic;
}
a {
text-decoration: none;
border: 0;
outline: none;
color: #919f7a;
}
a:hover {
color: #b6b600;
}
a img {
border: none;
}
td, h1, h2, h3 {
font-family: Helvetica, Verdana, Arial, sans-serif;
font-weight: 400;
}
td {
text-align: center;
}
body {
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none;
width: 100%;
height: 100%;
color: #37302d;
background: #ffffff;
font-size: 15px;
line-height: 26px
}
table {
border-collapse: collapse !important;
}
.headline {
color: #37302d;
font-size: 16px;
}
.force-full-width {
width: 100% !important;
}
</style>
</head>
<body class="body" style="padding:0; margin:0; display:block; background:#f8f8f8; -webkit-text-size-adjust:none" bgcolor="#f8f8f8">
<div style="display: none; mso-hide: all; width: 0px; height: 0px; max-width: 0px; max-height: 0px; font-size: 0px; line-height: 0px;">
@if(isset($copy1line))
{{ strip_tags($copy1line) }}
@endif
@if(isset($content))
{{ strip_tags($content) }}
@endif
</div>
<table align="center" cellpadding="0" cellspacing="0" width="100%" height="100%">
<tr>
<td align="center" valign="top" bgcolor="#f8f8f8" width="100%">
<center>
<br>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="700" class="w320">
<tr>
<td align="center" valign="top">
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td style=" text-align:center;">
<center>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="">
<tbody class="">
<tr class="">
<td align="center" valign="top" style="font-size: 0px;" class="">
<picture class="">
<img src="https://my.mivita.care/images/logo_mivita.png" alt="mivita.care" style="border:none" width="230">
</picture>
</td>
</tr>
<tr>
<td><br></td>
</tr>
</tbody>
</table>
</center>
</td>
</tr>
</table>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%"
bgcolor="#ffffff">
<tr>
<td class="headline" align="center">
<br><br>
<b>{{ $salutation }} </b>
</td>
</tr>
@if(isset($copy1line))
<tr>
<td>
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td style="color:#37302d;line-height:1.6em;" align="center">
<br>
{!! nl2br($copy1line) !!}
<br>
<br>
</td>
</tr>
</table>
</center>
</td>
</tr>
@endif
@if(isset($content))
<tr>
<td>
<table style="padding: 20px;line-height:1.6em; border:1px solid #eee; background-color: #f6fdf5" cellpadding="2" cellspacing="0" align="center" width="100%">
<tr>
<td>
{!! nl2br($content) !!}
</td>
</tr>
</table>
</td>
</tr>
@endif
<tr>
<td>
<center>
<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
<tbody>
<tr>
<td style="word-wrap:break-word;background:transparent;font-size:0px;padding:10px 25px;padding-top:15px;padding-bottom:15px;padding-right:40px;padding-left:40px;" align="center" valign="top" background="data:image/gif;base64,">
<table role="presentation" cellpadding="0" cellspacing="0" align="center" border="0">
<tbody>
<tr>
<td style="border:none;border-radius:20px;color:#ffffff;cursor:auto;padding:15px 25px;" align="center" valign="middle" bgcolor="#b5c49b">
<p style="text-decoration:none;background:#b5c49b;color:#ffffff;font-family:Arial, sans-serif;font-size:13px;font-weight:normal;line-height:120%;text-transform:none;margin:0px;">
<a href="{{ $url }}" style="color:#ffffff;font-size:14px;font-weight:bold;text-align:center;text-decoration:none;-webkit-text-size-adjust:none;">{{ $button }}</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</center>
</td>
<tr>
<tr>
<td style="color:#37302d;font-size: 14px;">
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td style="color:#37302d;padding:20px;line-height:1.6em" align="center">
<br>
{{ $copy2line }}<br>
<span style="color: #cabda9; font-weight: normal; font-size: 13px; text-decoration: underline; word-wrap: break-word;white-space: pre-line;">{{ $url }}</span>
<br><br>
{{ $copy3line }}
<br><br>
{{ $greetings }} <br><b>{{ $sender }}</b>
<br>
</td>
</tr>
<tr>
<td><br></td>
</tr>
</table>
</center>
</td>
</tr>
</table>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" class="force-full-width"
bgcolor="#f8f8f8">
<tr>
<td style="color:#7B7B7E; font-size:14px;padding:20px;line-height:1.6em" align="center">
<p>
{{__('email.footer_copy1')}}
</p>
<br>
<a href="https://www.mivita.care" style="color: #7B7B7E; text-decoration: underline;">www.mivita.care</a>
<br>
</td>
</tr>
<tr>
<td style="color:#bbbbbb; font-size:12px;padding:20px;line-height:1.6em" align="center">
<p>{{__('email.footer_copy2')}}</p>
<a href="https://www.mivita.care/datenschutz">{{ __('dataprotect.data_protect') }}</a> <br>
<p>{{__('email.footer_copy3')}}</p>
<br>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
</body>
</html>

View file

@ -0,0 +1,486 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>@yield('title')</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Nunito&display=swap" rel="stylesheet">
<!-- Styles -->
<style>
html {
line-height: 1.15;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
header,
nav,
section {
display: block;
}
figcaption,
main {
display: block;
}
a {
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
strong {
font-weight: inherit;
}
strong {
font-weight: bolder;
}
code {
font-family: monospace, monospace;
font-size: 1em;
}
dfn {
font-style: italic;
}
svg:not(:root) {
overflow: hidden;
}
button,
input {
font-family: sans-serif;
font-size: 100%;
line-height: 1.15;
margin: 0;
}
button,
input {
overflow: visible;
}
button {
text-transform: none;
}
button,
html [type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
legend {
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
padding: 0;
white-space: normal;
}
[type="checkbox"],
[type="radio"] {
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 0;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
menu {
display: block;
}
canvas {
display: inline-block;
}
template {
display: none;
}
[hidden] {
display: none;
}
html {
-webkit-box-sizing: border-box;
box-sizing: border-box;
font-family: sans-serif;
}
*,
*::before,
*::after {
-webkit-box-sizing: inherit;
box-sizing: inherit;
}
p {
margin: 0;
}
button {
background: transparent;
padding: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
*,
*::before,
*::after {
border-width: 0;
border-style: solid;
border-color: #dae1e7;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
border-radius: 0;
}
button,
input {
font-family: inherit;
}
input::-webkit-input-placeholder {
color: inherit;
opacity: .5;
}
input:-ms-input-placeholder {
color: inherit;
opacity: .5;
}
input::-ms-input-placeholder {
color: inherit;
opacity: .5;
}
input::placeholder {
color: inherit;
opacity: .5;
}
button,
[role=button] {
cursor: pointer;
}
.bg-transparent {
background-color: transparent;
}
.bg-white {
background-color: #fff;
}
.bg-teal-light {
background-color: #64d5ca;
}
.bg-blue-dark {
background-color: #2779bd;
}
.bg-indigo-light {
background-color: #7886d7;
}
.bg-purple-light {
background-color: #a779e9;
}
.bg-no-repeat {
background-repeat: no-repeat;
}
.bg-cover {
background-size: cover;
}
.border-grey-light {
border-color: #dae1e7;
}
.hover\:border-grey:hover {
border-color: #b8c2cc;
}
.rounded-lg {
border-radius: .5rem;
}
.border-2 {
border-width: 2px;
}
.hidden {
display: none;
}
.flex {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.items-center {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.justify-center {
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
.font-sans {
font-family: Nunito, sans-serif;
}
.font-light {
font-weight: 300;
}
.font-bold {
font-weight: 700;
}
.font-black {
font-weight: 900;
}
.h-1 {
height: .25rem;
}
.leading-normal {
line-height: 1.5;
}
.m-8 {
margin: 2rem;
}
.my-3 {
margin-top: .75rem;
margin-bottom: .75rem;
}
.mb-8 {
margin-bottom: 2rem;
}
.max-w-sm {
max-width: 30rem;
}
.min-h-screen {
min-height: 100vh;
}
.py-3 {
padding-top: .75rem;
padding-bottom: .75rem;
}
.px-6 {
padding-left: 1.5rem;
padding-right: 1.5rem;
}
.pb-full {
padding-bottom: 100%;
}
.absolute {
position: absolute;
}
.relative {
position: relative;
}
.pin {
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.text-black {
color: #22292f;
}
.text-grey-darkest {
color: #3d4852;
}
.text-grey-darker {
color: #606f7b;
}
.text-2xl {
font-size: 1.5rem;
}
.text-5xl {
font-size: 3rem;
}
.uppercase {
text-transform: uppercase;
}
.antialiased {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.tracking-wide {
letter-spacing: .05em;
}
.w-16 {
width: 4rem;
}
.w-full {
width: 100%;
}
@media (min-width: 768px) {
.md\:bg-left {
background-position: left;
}
.md\:bg-right {
background-position: right;
}
.md\:flex {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.md\:my-6 {
margin-top: 1.5rem;
margin-bottom: 1.5rem;
}
.md\:min-h-screen {
min-height: 100vh;
}
.md\:pb-0 {
padding-bottom: 0;
}
.md\:text-3xl {
font-size: 1.875rem;
}
.md\:text-15xl {
font-size: 9rem;
}
.md\:w-1\/2 {
width: 50%;
}
}
@media (min-width: 992px) {
.lg\:bg-center {
background-position: center;
}
}
</style>
</head>
<body class="antialiased font-sans">
<div class="md:flex min-h-screen">
<div class="w-full md:w-1/2 bg-white flex items-center justify-center">
<div class="max-w-sm m-8">
<div class="text-black text-5xl md:text-15xl font-black">
@yield('code', __('Oh no'))
</div>
<div class="w-16 h-1 bg-purple-light my-3 md:my-6"></div>
<p class="text-grey-darker text-2xl md:text-3xl font-light mb-8 leading-normal">
@yield('message')
</p>
<a href="{{ app('router')->has('home') ? route('home') : url('/') }}">
<button class="bg-transparent text-grey-darkest font-bold uppercase tracking-wide py-3 px-6 border-2 border-grey-light hover:border-grey rounded-lg">
{{ __('Go Home') }}
</button>
</a>
</div>
</div>
<div class="relative pb-full md:flex md:pb-0 md:min-h-screen w-full md:w-1/2">
@yield('image')
</div>
</div>
</body>
</html>

View file

@ -13,22 +13,20 @@
<link rel="stylesheet" href="{{ asset('/fonts/roboto-pacifico.css?v=1') }}">
<!-- Icons. Uncomment required icon fonts -->
<link rel="stylesheet" href="{{ mix('/vendor/fonts/fontawesome.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/ionicons.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/linearicons.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/open-iconic.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/pe-icon-7-stroke.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/fontawesome.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/ionicons.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/linearicons.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/appwork.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/theme-corporate.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/colors.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/uikit.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/appwork.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/theme-corporate.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/colors.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/uikit.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/mycolors.css') }}">
<script src="{{ mix('/vendor/js/material-ripple.js') }}"></script>
<script src="{{ asset('/vendor/js/material-ripple.js') }}"></script>
<script src="{{ mix('/vendor/js/layout-helpers.js') }}"></script>
<script src="{{ asset('/vendor/js/layout-helpers.js') }}"></script>
<!-- Core scripts -->
@ -66,8 +64,8 @@
</div>
<!-- Core scripts -->
<script src="{{ mix('/vendor/libs/popper/popper.js') }}"></script>
<script src="{{ mix('/vendor/js/bootstrap.js') }}"></script>
<script src="{{ asset('/vendor/libs/popper/popper.js') }}"></script>
<script src="{{ asset('/vendor/js/bootstrap.js') }}"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

View file

@ -10,76 +10,49 @@
<title>{{ config('app.name') }}</title>
<!-- Favicon -->
<link rel="icon" type="image/png" href="{{ asset('/favicon.ico') }}">
<!-- Main font -->
<link rel="stylesheet" href="{{ asset('/fonts/roboto-pacifico.css?v=1') }}">
<!-- Icons. Uncomment required icon fonts -->
<link rel="stylesheet" href="{{ mix('/vendor/fonts/fontawesome.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/ionicons.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/linearicons.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/open-iconic.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/pe-icon-7-stroke.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/fontawesome.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/ionicons.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/linearicons.css') }}">
<!-- Core stylesheets -->
<link rel="stylesheet" href="{{ mix('/vendor/css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/appwork.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/theme-corporate.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/colors.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/uikit.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/appwork.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/theme-corporate.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/colors.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/uikit.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/mycolors.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/growl/growl.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/bootstrap-select/bootstrap-select.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/select2/select2.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/datatables/datatables.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/growl/growl.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/bootstrap-select/bootstrap-select.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/select2/select2.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/datatables/datatables.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/bootstrap-material-datetimepicker/bootstrap-material-datetimepicker.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/slim-image-cropper/slim/slim.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/dropzone/dropzone.css?v=1') }}">
<!-- `perfect-scrollbar` library required by SideNav plugin -->
<link rel="stylesheet" href="{{ asset('/vendor/libs/perfect-scrollbar/perfect-scrollbar.css') }}">
<!-- Layout helpers -->
<script src="{{ mix('/vendor/js/layout-helpers.js') }}"></script>
<script src="{{ asset('/vendor/js/layout-helpers.js') }}"></script>
<!-- Libs -->
<!-- `perfect-scrollbar` library required by SideNav plugin -->
<link rel="stylesheet" href="{{ mix('/vendor/libs/perfect-scrollbar/perfect-scrollbar.css') }}">
@yield('styles')
<!-- Application stylesheets -->
<link rel="stylesheet" href="{{ mix('/css/application.css') }}?v=1{{ get_file_last_time('css/application.css') }}">
<script src="{{ asset('/js/jquery.min.js') }}"></script>
@yield('styles')
<!-- Application stylesheets -->
<link rel="stylesheet" href="{{ asset('/css/application.css') }}?v={{ get_file_last_time('css/application.css') }}">
<!-- Cookie Consent -->
<link rel="stylesheet" type="text/css" href="{{ asset('/css/cookieconsent.min.css') }}" />
<script src="{{ asset('/js/cookieconsent.min.js') }}"></script>
<script>
window.addEventListener("load", function(){
window.cookieconsent.initialise({
"palette": {
"popup": {
"background": "#b5c49b",
"text": "#ffffff"
},
"button": {
"background": "#d7d700",
"text": "#ffffff"
}
},
"content": {
"message": "{{__('This website uses cookies') }}",
"dismiss": "{{__('OK')}}",
"link": "{{__('register.data_protection')}}",
"href": "{{ url('datenschutz') }}",
"target": "_blank",
}
})});
</script>
<style>
</style>
<script src="{{ asset('/js/jquery.min.js') }}"></script>
</head>
<body>
@ -91,102 +64,70 @@
</div>
</div>
<!-- Core scripts -->
<script src="{{ mix('/vendor/libs/popper/popper.js') }}"></script>
<script src="{{ mix('/vendor/js/bootstrap.js') }}"></script>
<script src="{{ mix('/vendor/js/sidenav.js') }}"></script>
<script src="{{ mix('/vendor/libs/growl/growl.js') }}"></script>
<script src="{{ asset('/vendor/libs/moment-develop/min/moment.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/moment-develop/locale/de.js') }}"></script>
<script src="{{ asset('/vendor/libs/popper/popper.js') }}" defer></script>
<script src="{{ asset('/vendor/js/bootstrap.js') }}" defer></script>
<script src="{{ asset('/vendor/js/sidenav.js') }}" defer></script>
<script src="{{ asset('/vendor/libs/growl/growl.js') }}" defer></script>
<script src="{{ asset('/vendor/libs/moment-develop/min/moment.min.js') }}" defer></script>
<script src="{{ asset('/vendor/libs/moment-develop/locale/de.js') }}" defer></script>
<script src="{{ mix('/vendor/libs/validate/validate.js') }}"></script>
<script src="{{ asset('/vendor/libs/validate/validate.js') }}" defer></script>
<script src="{{ mix('/vendor/libs/bootstrap-select/bootstrap-select.js') }}"></script>
<script src="{{ mix('/vendor/libs/select2/select2.js') }}"></script>
<script src="{{ mix('/vendor/libs/datatables/datatables.js') }}"></script>
<script src="{{ asset('/vendor/libs/bootstrap-select/bootstrap-select.js') }}" defer></script>
<script src="{{ asset('/vendor/libs/select2/select2.js') }}" defer></script>
<script src="{{ asset('/vendor/libs/datatables/datatables.js') }}" defer></script>
<script src="{{ mix('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.js') }}"></script>
<script src="{{asset('/js/bootstrap-datepicker.de.min.js')}}"></script>
<script src="{{ asset('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.js') }}" defer></script>
<script src="{{asset('/js/bootstrap-datepicker.de.min.js')}}" defer></script>
<script src="{{ asset('/vendor/libs/bootstrap-material-datetimepicker/bootstrap-material-datetimepicker.js') }}"></script>
<script src="{{ asset('/vendor/libs/bootstrap-material-datetimepicker/bootstrap-material-datetimepicker.js') }}" defer></script>
<script src="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/lang/summernote-de-DE.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote-cleaner/summernote-cleaner.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.min.js') }}" defer></script>
<script src="{{ asset('/vendor/libs/summernote/lang/summernote-de-DE.js') }}" defer></script>
<script src="{{ asset('/vendor/libs/summernote-cleaner/summernote-cleaner.js') }}" defer></script>
<script src="{{ asset('/vendor/libs/slim-image-cropper/slim/slim.kickstart.min.js') }}" defer></script>
<script src="{{ asset('/vendor/libs/dropzone/dropzone.js?v=1')}}" defer></script>
<script src="{{ asset('/js/forms_file-upload.js?v=1') }}" defer></script>
<script src="{{ asset('/vendor/libs/slim-image-cropper/slim/slim.kickstart.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/dropzone/dropzone.js?v=1')}}"></script>
<script src="{{ asset('/js/forms_file-upload.js?v=1') }}"></script>
<script src="{{ asset('/vendor/libs/clipboard/clipboard.min.js')}}"></script>
<script src="{{ asset('/vendor/libs/clipboard/clipboard.min.js')}}" defer></script>
<!-- `perfect-scrollbar` library required by SideNav plugin -->
<script src="{{ mix('/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') }}"></script>
<script src="{{ asset('/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') }}" defer></script>
<script src="{{ asset('/js/shopping_card.js') }}?v=1{{ get_file_last_time('/js/shopping_card.js') }}"></script>
<script src="{{ asset('/js/shopping_card.js') }}?v={{ get_file_last_time('/js/shopping_card.js') }}" defer></script>
<!-- Application javascripts -->
<script src="{{ mix('/js/application.js') }}"></script>
<script src="{{ asset('/js/custom.js') }}?v=1{{ get_file_last_time('/js/custom.js') }}"></script>
<script src="{{ asset('/js/application.js') }}" defer></script>
<script src="{{ asset('/js/custom.js') }}?v={{ get_file_last_time('/js/custom.js') }}" defer></script>
<!-- Cookie Consent -->
<script src="{{ asset('/js/cookieconsent.min.js') }}"></script>
<script>
window.addEventListener("load", function(){
window.cookieconsent.initialise({
"palette": {
"popup": {
"background": "#b5c49b",
"text": "#ffffff"
},
"button": {
"background": "#d7d700",
"text": "#ffffff"
}
},
"content": {
"message": "{{__('This website uses cookies') }}",
"dismiss": "{{__('OK')}}",
"link": "{{__('register.data_protection')}}",
"href": "{{ url('datenschutz') }}",
"target": "_blank",
}
})});
</script>
@yield('scripts')
<script type="text/javascript">
$(document).ready(function() {
$('.summernote').summernote({
height: 140,
lang: 'de-DE',
cleaner:{
action: 'both', // both|button|paste 'button' only cleans via toolbar button, 'paste' only clean when pasting content, both does both options.
newline: '<br>', // Summernote's default is to use '<p><br></p>'
notStyle: 'position:absolute;top:0;left:0;right:0', // Position of Notification
icon: '<i class="note-icon">[Your Button]</i>',
keepHtml: false, // Remove all Html formats
keepOnlyTags: ['<p>', '<br>', '<ul>', '<li>', '<b>', '<strong>','<i>', '<a>'], // If keepHtml is true, remove all tags except these
keepClasses: false, // Remove Classes
badTags: ['style', 'script', 'applet', 'embed', 'noframes', 'noscript', 'html'], // Remove full tags with contents
badAttributes: ['style', 'start'], // Remove attributes from remaining tags
limitChars: false, // 0/false|# 0/false disables option
limitDisplay: 'both', // text|html|both
limitStop: false // true/false
}
});
$('.summernote-small').summernote({
height: 140,
lang: 'de-DE',
toolbar: [
// [groupName, [list of button]]
['style', ['style']],
['style', ['bold', 'italic', 'underline', 'clear']],
['fontsize', ['fontsize']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['height', ['height']],
['view',['fullscreen','codeview']],
],
cleaner:{
action: 'both', // both|button|paste 'button' only cleans via toolbar button, 'paste' only clean when pasting content, both does both options.
newline: '<br>', // Summernote's default is to use '<p><br></p>'
notStyle: 'position:absolute;top:0;left:0;right:0', // Position of Notification
icon: '<i class="note-icon">[Your Button]</i>',
keepHtml: false, // Remove all Html formats
keepOnlyTags: ['<p>', '<br>', '<ul>', '<li>', '<b>', '<strong>','<i>', '<a>'], // If keepHtml is true, remove all tags except these
keepClasses: false, // Remove Classes
badTags: ['style', 'script', 'applet', 'embed', 'noframes', 'noscript', 'html'], // Remove full tags with contents
badAttributes: ['style', 'start'], // Remove attributes from remaining tags
limitChars: false, // 0/false|# 0/false disables option
limitDisplay: 'both', // text|html|both
limitStop: false // true/false
}
});
$('.note-status-output').hide();
});
</script>
</body>
</html>

View file

@ -15,26 +15,24 @@
<link rel="stylesheet" href="{{ asset('/fonts/roboto-pacifico.css?v=1') }}">
<!-- Icons. Uncomment required icon fonts -->
<link rel="stylesheet" href="{{ mix('/vendor/fonts/fontawesome.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/ionicons.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/linearicons.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/open-iconic.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/pe-icon-7-stroke.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/fontawesome.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/ionicons.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/linearicons.css') }}">
<!-- Core stylesheets -->
<link rel="stylesheet" href="{{ mix('/vendor/css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/appwork.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/theme-corporate.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/colors.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/uikit.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/appwork.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/theme-corporate.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/colors.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/uikit.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/mycolors.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/growl/growl.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/growl/growl.css') }}">
<!-- Layout helpers -->
<script src="{{ mix('/vendor/js/layout-helpers.js') }}"></script>
<script src="{{ asset('/vendor/js/layout-helpers.js') }}"></script>
<!-- Core scripts -->
@ -113,14 +111,14 @@
</div>
<!-- / Content -->
<script src="{{ mix('/vendor/libs/popper/popper.js') }}"></script>
<script src="{{ mix('/vendor/js/bootstrap.js') }}"></script>
<script src="{{ mix('/vendor/js/sidenav.js') }}"></script>
<script src="{{ mix('/vendor/libs/growl/growl.js') }}"></script>
<script src="{{ asset('/vendor/libs/popper/popper.js') }}"></script>
<script src="{{ asset('/vendor/js/bootstrap.js') }}"></script>
<script src="{{ asset('/vendor/js/sidenav.js') }}"></script>
<script src="{{ asset('/vendor/libs/growl/growl.js') }}"></script>
<!-- Core scripts -->
<!-- Libs -->
<script src="{{ mix('/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') }}"></script>
<script src="{{ asset('/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') }}"></script>
<script src="{{ asset('/js/custom.js') }}"></script>

View file

@ -7,8 +7,13 @@
<nav class="layout-footer footer bg-footer-theme">
<div class="container-fluid container-p-x pb-3 text-right">
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('loading_modal') }}" data-data="data_protection" data-target="#modal-loading">{{__('register.data_protection')}}</button>
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('loading_modal') }}" data-data="imprint" data-target="#modal-loading">{{__('imprint')}}</button>
@if(Request::getHost() == config('app.pre_url_portal') . config('app.domain') . config('app.tld_care'))
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="data_protection" data-target="#modal-loading">{{__('register.data_protection')}}</button>
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="imprint" data-target="#modal-loading">{{__('imprint')}}</button>
@else
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('loading_modal') }}" data-data="data_protection" data-target="#modal-loading">{{__('register.data_protection')}}</button>
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('loading_modal') }}" data-data="imprint" data-target="#modal-loading">{{__('imprint')}}</button>
@endif
</div>
</nav>

View file

@ -71,10 +71,21 @@
<div>{{ __('navigation.my_team') }}</div>
</a>
<ul class="sidenav-menu">
<li class="sidenav-item{{ Request::is('user/team/structure') ? ' active' : '' }}">
<a href="{{ route('user_team_structure') }}" class="sidenav-link"><i class="sidenav-icon ion ion ion-md-funnel rotate-180" style="text-align: right"></i><div>{{ __('navigation.structure') }}</div></a>
</li>
@if(Auth::user()->isVIP())
<li class="sidenav-item{{ Request::is('user/team/members/show') ? ' active' : '' }}">
<a href="{{ route('user_team_members_show') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-people"></i><div>{{ __('navigation.overview') }}</div>
<div class="pl-1 ml-auto">
<div class="badge badge-secondary">VIP</div>
</div>
</a>
</li>
<li class="sidenav-item{{ Request::is('user/team/structure') ? ' active' : '' }}">
<a href="{{ route('user_team_structure') }}" class="sidenav-link"><i class="sidenav-icon ion ion ion-md-funnel rotate-180" style="text-align: right"></i><div>{{ __('navigation.structure') }}</div>
<div class="pl-1 ml-auto">
<div class="badge badge-secondary">VIP</div>
</div>
</a>
</li>
<li class="sidenav-item{{ Request::is('user/team/export') ? ' active' : '' }}">
<a href="{{ route('user_team_export') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-download"></i><div>{{ __('navigation.export') }}</div>
<div class="pl-1 ml-auto">
@ -82,12 +93,22 @@
</div>
</a>
</li>
<li class="sidenav-item{{ Request::is('user/team/marketingplan') ? ' active' : '' }}">
<a href="{{ route('user_team_marketingplan') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-trending-up"></i><div>{{ __('navigation.marketingplan') }}</div>
<div class="pl-1 ml-auto">
<div class="badge badge-secondary">VIP</div>
</div>
</a>
</li>
@endif
<li class="sidenav-item{{ Request::is('user/team/structure/old') ? ' active' : '' }}">
<a href="{{ route('user_team_structure_old') }}" class="sidenav-link"><i class="sidenav-icon ion ion ion-md-funnel rotate-180" style="text-align: right"></i><div>{{ __('navigation.structure') }}</div></a>
</li>
<li class="sidenav-item{{ Request::is('user/team/points') ? ' active' : '' }}">
<a href="{{ route('user_team_points') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-arrow-dropup-circle"></i><div>{{ __('navigation.points') }}</div></a>
</li>
<li class="sidenav-item{{ Request::is('user/team/members') ? ' active' : '' }}">
<a href="{{ route('user_team_members') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-person-add"></i><div>{{ __('navigation.new_member') }}</div></a>
<li class="sidenav-item{{ Request::is('user/team/add/member') ? ' active' : '' }}">
<a href="{{ route('user_team_add_member') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-person-add"></i><div>{{ __('navigation.new_member') }}</div></a>
</li>
</ul>
</li>
@ -206,6 +227,9 @@
<li class="sidenav-item{{ Request::is('admin/payments/sales/volume') ? ' active' : '' }}">
<a href="{{ route('admin_payments_sales_volumes') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-cart"></i><div>{{ __('navigation.sales_volumes') }}</div></a>
</li>
<li class="sidenav-item{{ Request::is('admin/revenue') ? ' active' : '' }}">
<a href="{{ route('admin_revenue') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-cash"></i><div>{{ __('navigation.revenue') }}</div></a>
</li>
<li class="sidenav-item{{ Request::is('admin/payments/taxadvisor') ? ' active' : '' }}">
<a href="{{ route('admin_payments_taxadvisor') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-redo"></i><div>{{ __('navigation.tax_advisor') }}</div></a>
</li>
@ -224,6 +248,12 @@
<li class="sidenav-item{{ Request::is('admin/business/structure', 'admin/business/structure/*') ? ' active' : '' }}">
<a href="{{ route('admin_business_structure') }}" class="sidenav-link"><i class="sidenav-icon ion ion ion-md-funnel rotate-180" style="text-align: right"></i><div>{{ __('navigation.structure') }}</div></a>
</li>
<li class="sidenav-item{{ Request::is('admin/business-optimized/show') ? ' active' : '' }}">
<a href="{{ route('admin_business_optimized') }}" class="sidenav-link"><i class="sidenav-icon ion ion ion-md-list"></i><div>{{ __('navigation.overview') }} <span class="badge badge-secondary">Optimized</span></div></a>
</li>
<li class="sidenav-item{{ Request::is('admin/business-optimized/structure') ? ' active' : '' }}">
<a href="{{ route('admin_business_optimized_structure') }}" class="sidenav-link"><i class="sidenav-icon ion ion ion-md-funnel rotate-180" style="text-align: right"></i><div>{{ __('navigation.structure') }} <span class="badge badge-secondary">Optimized</span></div></a>
</li>
<li class="sidenav-item{{ Request::is('admin/business/points') ? ' active' : '' }}">
<a href="{{ route('admin_business_points') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-arrow-dropup-circle"></i><div>{{ __('navigation.points') }}</div></a>
</li>

View file

@ -11,7 +11,7 @@
{!! __('website.phone_number') !!} <br>
{!! __('website.email') !!}: {!! __('website.email_address') !!} <br></p>
<p><strong>{!! __('website.business_owner') !!}:</strong><br> {!! __('website.business_owner') !!}<br><br>
<p><strong>{!! __('website.business_owner') !!}:</strong><br> {!! __('website.business_owner_value') !!}<br><br>
<strong>{!! __('website.registry_court') !!}:</strong><br> {!! __('website.registry_court_value') !!}<br><br>

View file

@ -24,7 +24,7 @@
</div>
</div>
<!-- / Logo -->
@include('legal.shop_term_of_use_de)
@include('legal.shop_term_of_use_de')
<a class="btn btn-primary pull-right" href="{{url('/')}}">{{__('back')}}</a>

View file

@ -0,0 +1,35 @@
{!! Form::open(['action' => route('portal.my_subscriptions.create', 3), 'method' => 'POST', 'class' => '']) !!}
@include('portal.abo.componenten.product-table-styles')
<div class="card-body">
@include('portal.abo.componenten.vat-info')
<div class="alert alert-warning">
<strong>{!! __('abo.abo_type_info', ['base'=>get_abo_type_badge('base'), 'upgrade'=>get_abo_type_badge('upgrade')]) !!}</strong>
</div>
@if(isset($error))
<div class="alert alert-danger">
<strong>{{ $error }}</strong>
</div>
@endif
@include('portal.abo.componenten.product-table', [
'products' => $basis_products ?? [],
'productType' => 'base',
'formRoute' => 'portal.my_subscriptions.create',
'formStep' => 3
])
</div>
<div class="card-footer">
<button type="submit" class="btn btn-default" name="action" value="back">{{ __('abo.back') }}</button>
<button type="submit" class="btn btn-secondary float-right" name="action" value="next">{{ __('abo.confirm_and_next') }}</button>
</div>
{!! Form::close() !!}

View file

@ -0,0 +1,192 @@
{!! Form::open(['action' => route('portal.my_subscriptions.create', 5), 'method' => 'POST', 'class' => '']) !!}
<div class="card-body">
@if(Yard::instance('subscription')->content()->count())
<style>
.cart-item {
position: relative;
padding: 15px 0;
border-bottom: 1px solid #ddd;
}
.cart-item:last-child {
border-bottom: none;
}
.cart-item .product-image {
max-width: 80px;
}
.cart-item .product-title {
font-size: 1.1em;
font-weight: 500;
color: #393939;
}
.cart-item .product-details {
font-size: 0.9em;
color: #666;
}
.cart-item .quantity-input {
width: 80px;
text-align: center;
}
.cart-summary {
background: #f8f9fa;
padding: 20px;
border-radius: 5px;
}
.cart-summary .table {
margin-bottom: 0;
}
.cart-summary .table td {
border-top: none;
padding: 8px 0;
}
.cart-summary .total-row {
font-weight: bold;
border-top: 1px solid #ddd;
}
</style>
<div class="cart-overview">
<h4 class="mb-4">{{ __('abo.abo_order_hl') }}</h4>
@if(isset($error))
<div class="alert alert-danger">
<strong>{{ $error }}</strong>
</div>
@endif
@foreach(Yard::instance('subscription')->getContentByOrder() as $row)
@php($product = \App\Models\Product::find($row->id))
<div class="cart-item">
<div class="row align-items-center">
<div class="col-3 col-sm-2">
@if($row->options->has('image'))
<img src="{{ route('product_image', [$row->options->image]) }}" class="product-image" alt="{{ $row->name }}">
@endif
</div>
<div class="col-9 col-sm-10">
<div class="row">
<div class="col-12 col-sm-6 col-md-7">
<div class="product-title">
{{ $row->name }}
{!! get_abo_type_badge_by_product($product) !!}
</div>
<div class="product-details">
<div>{{ __('order.content') }}: {{ $product->contents }}</div>
<div>{{ __('order.art_no') }}: {{ $product->number }}</div>
</div>
</div>
<div class="col-6 col-sm-3 col-md-2">
<div class="price-single">
<div style="">{{ $row->price() }} {{ Yard::instance('subscription')->getUserTaxFree() }}</div>
@if(Yard::instance('subscription')->isPriceCurrency())
<span class="small">~{{ Yard::instance('subscription')->getCurrencyByKey('price', $row, 2) }} {{ Yard::instance('subscription')->getPriceCurrencyUnit() }} </span>
@endif
</div>
</div>
<div class="col-6 col-sm-3 col-md-3">
<div class="quantity-select text-right">
@if($row->options->comp)
<span class="text-right">1 x</span>
@else
<span class="text-right">{{ $row->qty }} x</span>
@endif
</div>
<div class="price-total text-right mt-2">
<span class="font-bold text-price-total"><strong>{{ $row->subtotal() }} &euro; </strong></span>
@if(Yard::instance('subscription')->isPriceCurrency())
<br>
<span class="small">~{{ Yard::instance('subscription')->getCurrencyByKey('subtotal', $row, 2) }} {{ Yard::instance('subscription')->getPriceCurrencyUnit() }} </span> @endif
</div>
</div>
</div>
</div>
</div>
</div>
@endforeach
<div class="cart-summary mt-4">
<table class="table">
<tbody>
<tr>
<td>{{ __('order.subtotal') }}:</td>
<td class="text-right">
{{ Yard::instance('subscription')->total() }}
@if(Yard::instance('subscription')->isPriceCurrency())
<span class="small">~{{ Yard::instance('subscription')->getCurrencyByKey('subtotal') }} {{ Yard::instance('subscription')->getPriceCurrencyUnit() }}</span>
@endif
</td>
</tr>
<tr>
<td>{{ __('Delivery country') }}:</td>
<td class="text-right">
{{ Yard::instance('subscription')->getShippingCountryName() }}
</td>
</tr>
<tr>
<td>{{ __('order.shipping_costs') }}:</td>
<td class="text-right">
{{ Yard::instance('subscription')->shipping() }}
</td>
</tr>
@if(Yard::instance('subscription')->getUserTaxFree())
<tr>
<td class="">{{ __('order.sum_net') }}:</td>
<td class="text-right">{{ Yard::instance('subscription')->subtotalWithShipping() }} </td>
</tr>
@else
<tr>
<td class="">{{ __('order.total_without_VAT') }}:</td>
<td class="text-right">{{ Yard::instance('subscription')->subtotalWithShipping() }} </td>
</tr>
<tr>
<td class="">{{ __('order.plus_VAT') }}:</td>
<td class="text-right">{{ Yard::instance('subscription')->taxWithShipping() }} </td>
</tr>
@endif
<tr class="total-row">
<td>
@if(Yard::instance('subscription')->getUserTaxFree())
{{ __('order.total_net') }}:
@else
{{ __('order.total_gross') }}:
@endif
</td>
<td class="text-right">
{{ Yard::instance('subscription')->totalWithShipping() }}
@if(Yard::instance('subscription')->isPriceCurrency())
<span class="small">~{{ Yard::instance('subscription')->getCurrencyByKey('totalWithShipping') }} {{ Yard::instance('subscription')->getPriceCurrencyUnit() }}</span>
@endif
</td>
</tr>
</tbody>
</table>
</div>
<div class="abo-settings mt-4">
<h5>{{ __('abo.abo_settings') }}</h5>
<div class="form-group">
<label>{{ __('abo.delivery_day') }}*</label>
<select class="form-control custom-select" name="abo_interval">
{!! HTMLHelper::getAboDeliveryOptions() !!}
</select>
</div>
<div class="alert alert-info">
<i class="fa fa-info-circle"></i> {!! __('abo.abo_order_info') !!}
</div>
</div>
</div>
@endif
</div>
<div class="card-footer">
<button type="submit" class="btn btn-default" name="action" value="back">{{ __('abo.back') }}</button>
<div class="float-right">
<button type="submit" class="btn btn-secondary" name="action" value="checkout"><i class="ion ion-ios-redo"></i> {{ __('order.confirm_and_proceed_to_checkout') }}</button>
</div>
<br><br>
<div class="text-right">
<em class="small"> <i class="fa fa-lock"></i> {!! __('payment.checkout_ssl_server') !!}</em>
</div>
</div>
{!! Form::close() !!}

View file

@ -0,0 +1,15 @@
{!! Form::open(['action' => route('portal.my_subscriptions.create', 2), 'method' => 'POST', 'class' => '']) !!}
<div class="card-body">
<h4>{{ __('abo.my_address') }}</h4>
<p>{{ __('abo.my_address_check_info') }}<br>
<a href="{{route('portal.my_data.edit')}}"><i class="fa fa-edit"></i> {{ __('navigation.my_data') }} {{ __('abo.edit') }}</a></p>
<p>{!! __('order.reorder_info_2', ['country' => $shopping_user->getDeliveryCountry(), 'link' => route('portal.my_data.edit')]) !!}</p>
@include('admin.customer._customer_detail')
</div>
<div class="card-footer">
<button type="submit" class="btn btn-default" name="action" value="back">{{ __('abo.back') }}</button>
<button type="submit" class="btn btn-secondary float-right" name="action" value="next">{{ __('abo.confirm_and_next') }}</button>
</div>
{!! Form::close() !!}

View file

@ -0,0 +1,34 @@
{!! Form::open(['action' => route('portal.my_subscriptions.create', 1), 'method' => 'POST', 'class' => '']) !!}
<div class="card-body">
<h4>{{ __('abo.abo_delivery') }}</h4>
<p>
{{ __('abo.abo_order_info') }}
</p>
<hr class="container-m-nx mt-0 mb-4">
<h5>{{ __('abo.pros_hl') }}</h5>
<ul>
{!! __('abo.pros_list') !!}
</ul>
@if(isset($no_shopping_user) && $no_shopping_user)
@endif
</div>
<div class="card-footer">
@if(!isset($no_shopping_user))
<div class="text-right">
<button type="submit" class="btn btn-secondary" name="action" value="next">{{ __('abo.understood_and_next') }}</button>
</div>
@else
<h4>{{ __('navigation.my_data') }}</h4>
<div class="alert alert-warning">{{ __('abo.change_my_data_empty') }}</div>
<a href="{{ route('portal.my_data.edit') }}" class="btn btn-secondary"><i
class="ion ion-md-person text-default mr-1"></i> {{ __('portal.change_my_data_empty_button') }}</a>
@endif
</div>
{!! Form::close() !!}

View file

@ -0,0 +1,32 @@
{!! Form::open(['action' => route('portal.my_subscriptions.create', 4), 'method' => 'POST', 'class' => '']) !!}
@include('portal.abo.componenten.product-table-styles')
<div class="card-body">
@include('portal.abo.componenten.vat-info')
<div class="alert alert-warning">
<strong>{!! __('abo.abo_type_info', ['base'=>get_abo_type_badge('base'), 'upgrade'=>get_abo_type_badge('upgrade')]) !!}</strong>
</div>
@if(isset($error))
<div class="alert alert-danger">
<strong>{{ $error }}</strong>
</div>
@endif
@include('portal.abo.componenten.product-table', [
'products' => $upgrade_products ?? [],
'productType' => 'upgrade',
'formRoute' => 'portal.my_subscriptions.create',
'formStep' => 4
])
</div>
<div class="card-footer">
<button type="submit" class="btn btn-default" name="action" value="back">{{ __('abo.back') }}</button>
<button type="submit" class="btn btn-secondary float-right" name="action" value="next">{{ __('abo.confirm_and_next') }}</button>
</div>
{!! Form::close() !!}

View file

@ -0,0 +1,124 @@
<style>
/* Basis-Styles */
.btn-md-extra {
padding: 0.3rem 0.6rem;
font-size: 0.8rem;
line-height: 1.5;
border-radius: 0.25rem;
}
.md-btn-extra {
width: calc(1.7rem + 2px) !important;
line-height: 1.5rem;
}
.form-control.input-extra {
padding: 0.28rem 0.6rem;
font-size: 0.8rem;
font-weight: 600;
min-height: calc(1.8rem + 2px);
height: calc(1.8rem + 2px);
width: 44px;
}
.form-control.input-extra.active {
background-color: #f0f0f0;
}
.input-group-min-w {
min-width: 102px;
}
.img-extra {
min-width: 55px;
max-height: 160px;
}
.product-active {
opacity: 1;
}
.product-inactive {
opacity: 0.6;
}
/* Mobile Optimierungen */
@media (max-width: 767px) {
.table thead {
display: none;
}
.table, .table tbody, .table tr, .table td {
display: block;
width: 100%;
}
.table tr {
margin-bottom: 1.5rem;
border: 1px solid #dee2e6;
border-radius: 0.25rem;
padding: 1rem;
background: #fff;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.table td {
border: none;
padding: 0.75rem 0;
position: relative;
padding-left: 50%;
}
.table td:before {
content: attr(data-label);
position: absolute;
left: 0;
width: 45%;
padding-right: 1rem;
font-weight: 600;
color: #666;
}
.table td:first-child {
padding-top: 1rem;
}
.table td:last-child {
padding-bottom: 1rem;
}
.media {
flex-direction: column;
align-items: flex-start !important;
}
.media img {
margin-bottom: 1rem;
margin-right: 0 !important;
max-width: 100%;
height: auto;
}
.media-body {
width: 100%;
}
.input-group-min-w {
min-width: auto;
width: 100%;
}
.input-group {
width: 100% !important;
justify-content: center;
}
.form-control.input-extra {
width: 60px;
}
.no-line-break {
white-space: normal;
}
}
</style>

View file

@ -0,0 +1,82 @@
@props([
'products' => [],
'productType' => 'base', // 'base' oder 'upgrade'
'formRoute' => '',
'formStep' => 3
])
@if(count($products) > 0)
<div class="table-responsive">
<table class="table table- m-0">
<thead>
<tr>
<th>{{ __('abo.' . $productType . '_product') }}</th>
<th>&nbsp;</th>
<th class="text-right">{{ __('order.unit_price') }}</th>
</tr>
</thead>
<tbody>
@foreach($products as $product)
@php
$cartItem = Yard::instance('subscription')->getCartItemByProduct($product->id, 'withTaxFree');
$qty = isset($cartItem->qty) ? $cartItem->qty : 0;
$rowId = isset($cartItem->rowId) ? $cartItem->rowId : '';
@endphp
<tr>
<td class="text-center align-middle px-0" data-label="{{ __('abo.' . $productType . '_product') }}">
<div class="no-line-break input-group-min-w">
<div class="input-group d-inline-flex w-auto">
<span class="input-group-prepend">
<button type="button" class="btn btn-secondary icon-btn md-btn-extra remove-product-qty"
data-row-id="{{ $rowId }}"
data-product-id="{{ $product->id }}">-</button>
</span>
<input type="text"
class="form-control text-center input-extra table-input-event-onchange"
name="{{ $productType }}_product_qty[{{ $product->id }}]"
data-row-id="{{ $rowId }}"
data-product-id="{{ $product->id }}"
value="{{ $qty }}">
<span class="input-group-append">
<button type="button" class="btn btn-secondary icon-btn md-btn-extra add-product-qty"
data-row-id="{{ $rowId }}"
data-product-id="{{ $product->id }}">+</button>
</span>
</div>
</div>
</td>
<td class="p-4" data-label="">
<div class="media align-items-center product-inactive" id="product-{{ $product->id }}">
@if(count($product->images))
<img src="{{ route('product_image', [$product->images->first()->slug]) }}"
class="d-block ui-w-100 ui-bordered mr-4"
alt="{{ $product->getLang('name') }}">
@endif
<div class="media-body">
<h5 class="d-block text-dark">
{{$product->getLang('name')}}
<br>{!! get_abo_type_badge($productType) !!}
</h5>
{!! $product->getLang('copy') !!}
</div>
</div>
</td>
<td class="text-right font-weight-semibold align-middle p-4" data-label="{{ __('order.unit_price') }}">
<span class="no-line-break">
{{ $product->getFormattedPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country) }}
</span>
@if(\App\Services\UserService::$user_country && \App\Services\UserService::$user_country->currency)
<span class="no-line-break">
{!! $product->getFormattedPriceCurrencyWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country) !!}
</span>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endif

View file

@ -0,0 +1,18 @@
<div class="row">
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('payment.ordering_country') }}</div>
{{ App\Services\UserService::getOrderInfo('billing_state') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('payment.country_of_delivery') }}</div>
{{ App\Services\UserService::getOrderInfo('shipping_state') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('payment.VAT') }}</div>
{{ App\Services\UserService::getOrderInfo('tax_free') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('payment.reverse_charge_procedure') }}</div>
{{ App\Services\UserService::getOrderInfo('user_reverse_charge') }}
</div>
</div>

View file

@ -0,0 +1,60 @@
@extends('portal.layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-2 mb-2">
{{ __('navigation.my_abo') }}
<span class="text-muted">{{ '#'.$user_abo->payone_userid }}</span>
</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.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')
</div>
@endif
{{ Form::close() }}
<div class="card mt-3 mb-3">
@include('admin.abo._executions')
</div>
<a href="{{route('user_abos', [$view])}}" 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

View file

@ -0,0 +1,174 @@
@extends('portal.layouts.layout-2')
@section('content')
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<h4 class="font-weight-bold py-2 mb-2">
{{__('abo.create_abo')}}
</h4>
<style>
.smartwizard-abo .nav-link {
pointer-events: none;
opacity: 0.7;
}
.smartwizard-abo .nav-link.active {
pointer-events: auto;
opacity: 1;
}
</style>
<div id="smartwizard" class="smartwizard-abo">
<ul class="card px-4 pt-3 mb-3">
<li>
<a href="#smartwizard-step-0" class="mb-3">
<span class="sw-done-icon ion ion-md-checkmark"></span>
<span class="sw-number">1</span>
{{__('abo.abo')}}
<div class="text-muted small">{{__('abo.info')}}</div>
</a>
</li>
<li>
<a href="#smartwizard-step-1" class="mb-3">
<span class="sw-done-icon ion ion-md-checkmark"></span>
<span class="sw-number">2</span>
{{__('abo.data')}}
<div class="text-muted small">{{__('abo.check')}}</div>
</a>
</li>
<li>
<a href="#smartwizard-step-2" class="mb-3">
<span class="sw-done-icon ion ion-md-checkmark"></span>
<span class="sw-number">3</span>
{{__('abo.basis_product')}}
<div class="text-muted small">{{__('abo.choose')}}</div>
</a>
</li>
<li>
<a href="#smartwizard-step-3" class="mb-3">
<span class="sw-done-icon ion ion-md-checkmark"></span>
<span class="sw-number">4</span>
{{__('abo.upgrade_products')}}
<div class="text-muted small">{{__('abo.choose')}}</div>
</a>
</li>
<li>
<a href="#smartwizard-step-4" class="mb-3">
<span class="sw-done-icon ion ion-md-checkmark"></span>
<span class="sw-number">5</span>
{{__('abo.check')}}
<div class="text-muted small">{{__('abo.order')}}</div>
</a>
</li>
</ul>
<div class="mb-3">
<div id="smartwizard-step-0" class="card animated fadeIn">
@include('portal.abo._create_info')
</div>
@if(!isset($no_shopping_user))
<div id="smartwizard-step-1" class="card animated fadeIn">
@include('portal.abo._create_data')
</div>
<div id="smartwizard-step-2" class="card animated fadeIn">
@include('portal.abo._create_basis_product')
</div>
<div id="smartwizard-step-3" class="card animated fadeIn">
@include('portal.abo._create_upgrade_products')
</div>
<div id="smartwizard-step-4" class="card animated fadeIn">
@include('portal.abo._create_check')
</div>
@endif
</div>
</div>
@endsection
@section('scripts')
<link rel="stylesheet" href="{{ asset('/vendor/libs/smartwizard/smartwizard.css') }}">
<script src="{{ asset('/vendor/libs/smartwizard/smartwizard.js') }}"></script>
<script src="{{ asset('js/product-quantity.js') }}?v={{ get_file_last_time('/js/product-quantity.js') }}"></script>
<script>
$( document ).ready(function() {
$('.smartwizard-abo').smartWizard({
autoAdjustHeight: true,
backButtonSupport: true,
useURLhash: false,
showStepURLhash: false,
selected: '{{$step}}',
toolbarSettings: {
showNextButton: false,
showPreviousButton: false,
},
/*events: {
leaveStep: function(e, anchorObject, stepNumber, stepDirection) {
// Formular im aktuellen Schritt finden
const $currentForm = $(e.target).find('.tab-pane.active form');
if ($currentForm.length) {
// Temporäres Formular erstellen und absenden
const $tempForm = $('<form>', {
'method': 'POST',
'action': $currentForm.attr('action'),
'style': 'display: none;'
});
// Alle Input-Felder kopieren
$currentForm.find('input').each((_, input) => {
const $input = $(input);
if ($input.attr('type') === 'text') {
const value = parseInt($input.val()) || 0;
if (value > 0) {
$tempForm.append($('<input>', {
'type': 'hidden',
'name': $input.attr('name'),
'value': value
}));
}
}
});
// CSRF-Token hinzufügen
$tempForm.append($('<input>', {
'type': 'hidden',
'name': '_token',
'value': $('meta[name="csrf-token"]').attr('content')
}));
// Action-Button-Wert hinzufügen
$tempForm.append($('<input>', {
'type': 'hidden',
'name': 'action',
'value': 'next'
}));
// Formular zum Body hinzufügen und absenden
$('body').append($tempForm);
$tempForm.submit();
return false; // Verhindert den normalen Schrittwechsel
}
}
}*/
});
});
</script>
@endsection

View file

@ -0,0 +1,114 @@
@extends('portal.layouts.layout-2')
@section('content')
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<h4 class="font-weight-bold py-2 mb-2">
{{__('abo.create_abo')}}
</h4>
<div id="smartwizard" class="smartwizard-abo">
<ul class="card px-4 pt-3 mb-3">
<li>
<a href="#smartwizard-step-0" class="mb-3">
<span class="sw-done-icon ion ion-md-checkmark"></span>
<span class="sw-number">1</span>
{{__('abo.abo')}}
<div class="text-muted small">{{__('abo.info')}}</div>
</a>
</li>
<li>
<a href="#smartwizard-step-1" class="mb-3">
<span class="sw-done-icon ion ion-md-checkmark"></span>
<span class="sw-number">1</span>
{{__('abo.data')}}
<div class="text-muted small">{{__('abo.check')}}</div>
</a>
</li>
<li>
<a href="#smartwizard-step-2" class="mb-3">
<span class="sw-done-icon ion ion-md-checkmark"></span>
<span class="sw-number">2</span>
{{__('abo.basis_product')}}
<div class="text-muted small">{{__('abo.choose')}}</div>
</a>
</li>
<li>
<a href="#smartwizard-step-3" class="mb-3">
<span class="sw-done-icon ion ion-md-checkmark"></span>
<span class="sw-number">3</span>
{{__('abo.upgrade_products')}}
<div class="text-muted small">{{__('abo.choose')}}</div>
</a>
</li>
<li>
<a href="#smartwizard-step-4" class="mb-3">
<span class="sw-done-icon ion ion-md-checkmark"></span>
<span class="sw-number">4</span>
{{__('abo.check')}}
<div class="text-muted small">{{__('abo.order')}}</div>
</a>
</li>
</ul>
<div class="mb-3">
<div id="smartwizard-step-0" class="card animated fadeIn">
@include('portal.abo._create_info')
</div>
<div id="smartwizard-step-1" class="card animated fadeIn">
</div>
<div id="smartwizard-step-2" class="card animated fadeIn">
</div>
<div id="smartwizard-step-3" class="card animated fadeIn">
</div>
<div id="smartwizard-step-4" class="card animated fadeIn">
</div>
</div>
</div>
@endsection
@section('scripts')
<link rel="stylesheet" href="{{ mix('/vendor/libs/smartwizard/smartwizard.css') }}">
<script src="{{ mix('/vendor/libs/smartwizard/smartwizard.js') }}"></script>
<script>
$( document ).ready(function() {
$('.smartwizard-abo').smartWizard({
autoAdjustHeight: true,
backButtonSupport: true,
useURLhash: false,
showStepURLhash: false,
selected: '{{$step}}',
toolbarSettings: {
showNextButton: false,
showPreviousButton: false,
}
});
});
</script>
@endsection

View file

@ -0,0 +1,53 @@
@extends('portal.layouts.auth')
@section('content')
<!-- Content -->
<div class="authentication-wrapper authentication-2 ui-bg-cover ui-bg-overlay-container px-4" style="background-image: url({{asset('images/back-in2.jpg')}});">
<div class="ui-bg-overlay bg-dark opacity-25"></div>
<div class="authentication-inner py-5">
<div class="card">
@include('layouts.includes.header-language')
<div class="p-4 p-sm-4" style="padding-bottom: 1.5rem !important;">
<div class="d-flex justify-content-center align-items-center pb-2 mb-2">
<div class="">
<div class="w-100 position-relative">
<a href="https://www.mivita.care"><img src="{{ asset('/images/logo_mivita.png') }}" alt="mivita.care" class=""></a>
</div>
</div>
</div>
<form method="POST" class="my-2" action="{{ route('portal.logout_change') }}" aria-label="{{ __('portal.login_button') }}">
@csrf
<h4 class="text-center mb-4">{{ __('portal.change_login_title') }}</h4>
<div class="d-flex flex-column align-items-center m-0 mt-2">
<p class="text-center">
{{ __('portal.change_login_description') }}
</p>
</div>
<div class="d-flex justify-content-between align-items-center m-0">
<button type="submit" class="btn btn-primary btn-block">{{ __('portal.logout_button') }}</button>
</div>
<div class="d-flex flex-column align-items-center m-0 mt-2">
<p class="text-center small border-top pt-2 mt-2">
{{ __('portal.change_login_description3') }}
</p>
</div>
</form>
<div class="mt-1 text-center justify-content-center">
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="data_protection" data-target="#modal-loading">{{__('register.data_protection')}}</button>
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="imprint" data-target="#modal-loading">{{__('imprint')}}</button>
</div>
<div class="mt-1 text-center justify-content-center">
<a href="{{ Util::getMyMivitaShopUrl() }}" class="btn btn-secondary mt-2 btn-sm">{{__('portal.back_to_shop')}}</a>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,74 @@
@extends('portal.layouts.auth')
@section('content')
<!-- Content -->
<div class="authentication-wrapper authentication-2 ui-bg-cover ui-bg-overlay-container px-4" style="background-image: url({{asset('images/back-in2.jpg')}});">
<div class="ui-bg-overlay bg-dark opacity-25"></div>
<div class="authentication-inner py-5">
<div class="card">
@include('layouts.includes.header-language')
<div class="p-4 p-sm-4" style="padding-bottom: 1.5rem !important;">
<!-- Logo -->
<div class="d-flex justify-content-center align-items-center pb-2 mb-2">
<div class="">
<div class="w-100 position-relative">
<a href="https://www.mivita.care"><img src="{{ asset('/images/logo_mivita.png') }}" alt="mivita.care" class=""></a>
</div>
</div>
</div>
<!-- / Logo -->
<!-- Form -->
<form method="POST" class="my-2" action="{{ route('portal.login.send-otp') }}" aria-label="{{ __('portal.login_button') }}">
@csrf
<h4 class="text-center mb-4">{{ __('portal.login_title') }}</h4>
@if(Util::isTestSystem(true))
<h5 class="text-center mb-4">TestSystem</h5>
@php
$email = 'kevin@adametz.media';
@endphp
@endif
<div class="form-group">
<label class="form-label">{{ __('portal.login_email') }}</label>
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ $email ?? old('email') }}" required autofocus>
@if ($errors->has('email'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
<div class="d-flex justify-content-between align-items-center m-0">
<button type="submit" class="btn btn-primary btn-block">{{ __('portal.login_button') }}</button>
</div>
<div class="d-flex flex-column align-items-center m-0 mt-2 border-top pt-2">
<p class="text-center small">
{{ __('portal.login_send_otp_description') }}
</p>
<p class="text-center small border-top pt-2 mt-2">
{{ __('portal.login_send_otp_description2') }}
</p>
</div>
</form>
<!-- / Form -->
<div class="mt-1 text-center justify-content-center">
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="data_protection" data-target="#modal-loading">{{__('register.data_protection')}}</button>
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="imprint" data-target="#modal-loading">{{__('imprint')}}</button>
</div>
<div class="mt-1 text-center justify-content-center">
<a href="{{ Util::getMyMivitaShopUrl() }}" class="btn btn-secondary mt-2 btn-sm">{{__('portal.back_to_shop')}}</a>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,184 @@
@extends('portal.layouts.auth')
@section('content')
<style>
.otp-input {
height: 58px;
padding: 0 10px;
text-align: center;
font-size: 24px;
font-weight: bold;
border-radius: 8px;
border: 1px solid #e0e0e0;
transition: all 0.2s ease-in-out;
}
.otp-input:focus {
border-color: #007bff;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.otp-input:focus-visible {
outline: none;
}
.otp-input:hover {
border-color: #007bff;
}
.otp-input:active {
border-color: #007bff;
}
.otp-input:disabled {
background-color: #f8f9fa;
border-color: #e9ecef;
color: #adb5bd;
}
.gap-2 {
gap: .5rem;
}
</style>
<!-- Content -->
<div class="authentication-wrapper authentication-2 ui-bg-cover ui-bg-overlay-container px-4" style="background-image: url({{asset('images/back.jpg')}});">
<div class="ui-bg-overlay bg-dark opacity-25"></div>
<div class="authentication-inner py-5">
<div class="card">
@include('layouts.includes.header-language')
<div class="p-4 p-sm-4" style="padding-bottom: 1.5rem !important;">
<!-- Logo -->
<div class="d-flex justify-content-center align-items-center pb-2 mb-2">
<div class="">
<div class="w-100 position-relative">
<a href="https://www.mivita.care"><img src="{{ asset('/images/logo_mivita.png') }}" alt="mivita.care" class=""></a>
</div>
</div>
</div>
<!-- / Logo -->
<!-- Form -->
<form method="POST" class="my-3" action="{{ route('portal.login.verify-otp') }}" aria-label="{{ __('portal.login_button') }}" id="otp-form">
@csrf
<h4 class="text-center mb-4">{{ __('portal.verify_otp_title') }}</h4>
<div class="form-group">
<label class="form-label text-center">{{ __('portal.verify_otp_description') }}</label>
<div class="mb-3">
<div class="d-flex align-items-center gap-2">
<input type="text" class="form-control otp-input" maxlength="1" id="otp1" name="otp1" placeholder="" value="{{ isset($otp_value) && strlen($otp_value) === 6 ? $otp_value[0] : '' }}">
<input type="text" class="form-control otp-input" maxlength="1" id="otp2" name="otp2" placeholder="" value="{{ isset($otp_value) && strlen($otp_value) === 6 ? $otp_value[1] : '' }}">
<input type="text" class="form-control otp-input" maxlength="1" id="otp3" name="otp3" placeholder="" value="{{ isset($otp_value) && strlen($otp_value) === 6 ? $otp_value[2] : '' }}">
<input type="text" class="form-control otp-input" maxlength="1" id="otp4" name="otp4" placeholder="" value="{{ isset($otp_value) && strlen($otp_value) === 6 ? $otp_value[3] : '' }}">
<input type="text" class="form-control otp-input" maxlength="1" id="otp5" name="otp5" placeholder="" value="{{ isset($otp_value) && strlen($otp_value) === 6 ? $otp_value[4] : '' }}">
<input type="text" class="form-control otp-input" maxlength="1" id="otp6" name="otp6" placeholder="" value="{{ isset($otp_value) && strlen($otp_value) === 6 ? $otp_value[5] : '' }}">
</div>
</div>
{{-- Hidden field to combine OTP values --}}
<input type="hidden" name="otp" id="otp" value="{{ isset($otp_value) && strlen($otp_value) === 6 ? $otp_value : '' }}">
<input type="hidden" name="email" id="email" value="{{ $email }}">
</div>
@error('otp')
<div class="text-danger text-center font-weight-bold mt-1">{{ $message }}</div>
@enderror
<div class="d-flex justify-content-between align-items-center m-0 mt-3">
<button type="submit" class="btn btn-primary btn-block">{{ __('portal.login_button') }}</button>
</div>
<div class="d-flex justify-content-between align-items-center m-0 mt-4">
<p class="text-center small">
{{ __('portal.verify_otp_resend') }}<br>
<a class="btn btn-link btn-xs btn-secondary mt-2" href="{{ route('portal.login.form') }}">{{ __('portal.verify_otp_resend_link') }}</a>
</p>
</div>
</form>
<!-- / Form -->
<div class="mt-2 text-center justify-content-center">
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="data_protection" data-target="#modal-loading">{{__('register.data_protection')}}</button>
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="imprint" data-target="#modal-loading">{{__('imprint')}}</button>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
document.addEventListener('DOMContentLoaded', function () {
const inputs = document.querySelectorAll('.otp-input');
const otpForm = document.getElementById('otp-form');
const hiddenOtpField = document.getElementById('otp');
inputs.forEach((input, index) => {
input.addEventListener('input', (e) => {
// Move to next input if current one is filled
if (input.value.length === 1 && index < inputs.length - 1) {
inputs[index + 1].focus();
}
combineOtpValues(); // Update hidden field on input
});
input.addEventListener('keydown', (e) => {
// Move to previous input on backspace if current one is empty
if (e.key === 'Backspace' && input.value.length === 0 && index > 0) {
inputs[index - 1].focus();
}
combineOtpValues(); // Update hidden field on keydown
});
input.addEventListener('paste', (e) => {
e.preventDefault();
const pasteData = (e.clipboardData || window.clipboardData).getData('text');
const digits = pasteData.replace(/\D/g, '').split(''); // Get only digits
inputs.forEach((inputField, i) => {
if (digits[i]) {
inputField.value = digits[i];
if (i < inputs.length - 1 && digits.length > 1) { // Move focus if pasting multiple digits
inputs[i + 1].focus();
}
} else {
inputField.value = ''; // Clear if paste data is shorter
}
});
if(digits.length >= inputs.length) {
inputs[inputs.length - 1].focus(); // Focus last field if paste is long enough
}
combineOtpValues(); // Update hidden field after paste
});
});
// Combine OTP values into the hidden field before submitting
function combineOtpValues() {
let combinedValue = '';
inputs.forEach(input => {
combinedValue += input.value;
});
hiddenOtpField.value = combinedValue;
console.log(hiddenOtpField.value);
}
// Ensure combined value is updated on form submit
otpForm.addEventListener('submit', function(e) {
combineOtpValues();
// Basic validation: ensure all 6 digits are entered
if (hiddenOtpField.value.length !== 6) {
e.preventDefault(); // Prevent form submission
// Optionally: show an error message to the user
alert('Bitte geben Sie alle 6 Ziffern des OTP-Codes ein.');
}
});
// Automatically focus the first input field if it's empty
if(inputs[0].value === '') {
inputs[0].focus();
} else if(hiddenOtpField.value.length === 6) {
// If prefilled, focus the submit button or last input
inputs[inputs.length - 1].focus();
}
});
</script>
@endsection

View file

@ -0,0 +1,437 @@
<div class="card mb-4">
<h5 class="card-header">
<div class="row">
<div class="col-xs-12 col-sm-6">
{{ __('customer.customer_billing_address') }}
</div>
<div class="col-xs-12 col-sm-6">
<span class="text-tiny float-right">* {{trans('register.required_fields')}}</span>
<span class="d-none d-lg-inline">{{ __('Delivery address') }}</span>
</div>
</div>
</h5>
<div class="card-body">
<div class="row">
<div class="col-12 col-lg-6">
<div class="form-row">
<div class="form-group col-md-12">
<label for="billing_company" class="form-label">{{ __('Company name') }} ({{__('optional')}})</label>
{{ Form::text('billing_company', $shopping_user->billing_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'billing_company', 'tabindex' => 1)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_salutation') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Salutation') }}*</label>
<select class="selectpicker" data-style="btn-light" name="billing_salutation" id="billing_salutation" required tabindex="2">
{!! HTMLHelper::getSalutation($shopping_user->billing_salutation) !!}
</select>
@if ($errors->has('billing_salutation'))
<span class="help-block">
<strong>{{ $errors->first('billing_salutation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_firstname') ? 'has-error' : '' }}">
<label class="form-label" for="billing_firstname">{{ __('First name') }}*</label>
{{ Form::text('billing_firstname', $shopping_user->billing_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'billing_firstname', 'required'=>true, 'tabindex' => 4)) }}
@if ($errors->has('billing_firstname'))
<span class="help-block">
<strong>{{ $errors->first('billing_firstname') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('billing_lastname') ? 'has-error' : '' }}">
<label class="form-label" for="billing_lastname">{{ __('Last name') }}*</label>
{{ Form::text('billing_lastname', $shopping_user->billing_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'billing_lastname', 'required'=>true, 'tabindex' => 5)) }}
@if ($errors->has('billing_lastname'))
<span class="help-block">
<strong>{{ $errors->first('billing_lastname') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_address') ? 'has-error' : '' }}">
<label class="form-label" for="billing_address">{{ __('Street') }} / {{ __('House number') }}*</label>
{{ Form::text('billing_address', $shopping_user->billing_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_address', 'tabindex' => 6)) }}
@if ($errors->has('billing_address'))
<span class="help-block">
<strong>{{ $errors->first('billing_address') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_address_2') ? 'has-error' : '' }}">
<label class="form-label" for="billing_address_2">{{ __('Flat Building optional') }}</label>
{{ Form::text('billing_address_2', $shopping_user->billing_address_2, array('placeholder'=>__('Flat Building optional'), 'class'=>'form-control', 'id'=>'billing_address_2', 'tabindex' => 6)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_zipcode') ? 'has-error' : '' }}">
<label class="form-label" for="billing_zipcode">{{ __('Postcode') }}*</label>
{{ Form::text('billing_zipcode', $shopping_user->billing_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_zipcode', 'tabindex' => 7)) }}
@if ($errors->has('billing_zipcode'))
<span class="help-block">
<strong>{{ $errors->first('billing_zipcode') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('billing_city') ? 'has-error' : '' }}">
<label class="form-label" for="billing_city">{{ __('City') }}*</label>
{{ Form::text('billing_city', $shopping_user->billing_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_city', 'tabindex' => 8)) }}
@if ($errors->has('billing_city'))
<span class="help-block">
<strong>{{ $errors->first('billing_city') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_country_id') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Country') }}*</label>
<select class="selectpicker" name="billing_country_id" id="billing_country_id" data-style="btn-light" data-live-search="true" required tabindex="9">
{!! HTMLHelper::getContriesWithMore($shopping_user->billing_country_id) !!}
</select>
@if ($errors->has('billing_country_id'))
<span class="help-block">
<strong>{{ $errors->first('billing_country_id') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_phone') ? 'has-error' : '' }}">
<label class="form-label" for="billing_phone">{{ __('Phone') }}</label>
{{ Form::text('billing_phone', $shopping_user->billing_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'billing_phone', 'tabindex' => 11)) }}
</div>
</div>
</div>
<div class="col-12 col-lg-6">
<div class="d-md-block d-lg-none">
<hr>
<h5 class="mt-4">{{ __('Delivery address') }}</h5>
</div>
<div id="show_shipping_address" style="@if($shopping_user->same_as_billing) display:none @endif">
<div class="form-row">
<div class="form-group col-md-12">
<label for="shipping_company" class="form-label">{{ __('Company name') }} ({{__('optional')}})</label>
{{ Form::text('shipping_company', $shopping_user->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'shipping_company', 'tabindex' => 16)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_salutation') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Salutation') }}*</label>
<select class="selectpicker" data-style="btn-light" name="shipping_salutation" id="shipping_salutation" required tabindex="17">
{!! HTMLHelper::getSalutation($shopping_user->shipping_salutation) !!}
</select>
@if ($errors->has('shipping_salutation'))
<span class="help-block">
<strong>{{ $errors->first('shipping_salutation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_firstname') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_firstname">{{ __('First name') }}*</label>
{{ Form::text('shipping_firstname', $shopping_user->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_firstname', 'tabindex' => 18)) }}
@if ($errors->has('shipping_firstname'))
<span class="help-block">
<strong>{{ $errors->first('shipping_firstname') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('shipping_lastname') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_lastname">{{ __('Last name') }}*</label>
{{ Form::text('shipping_lastname', $shopping_user->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_lastname', 'tabindex' => 19)) }}
@if ($errors->has('shipping_lastname'))
<span class="help-block">
<strong>{{ $errors->first('shipping_lastname') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_address') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_address">{{ __('Street') }} / {{ __('House number') }}*</label>
{{ Form::text('shipping_address', $shopping_user->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_address', 'tabindex' => 20)) }}
@if ($errors->has('shipping_address'))
<span class="help-block">
<strong>{{ $errors->first('shipping_address') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_address_2') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_address_2">{{ __('Flat Building optional') }}</label>
{{ Form::text('shipping_address_2', $shopping_user->shipping_address_2, array('placeholder'=>__('Flat Building optional'), 'class'=>'form-control', 'id'=>'shipping_address_2', 'tabindex' => 21)) }}
@if ($errors->has('shipping_address_2'))
<span class="help-block">
<strong>{{ $errors->first('shipping_address_2') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_zipcode') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_zipcode">{{ __('Postcode') }}*</label>
{{ Form::text('shipping_zipcode', $shopping_user->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_zipcode', 'tabindex' => 22)) }}
@if ($errors->has('shipping_zipcode'))
<span class="help-block">
<strong>{{ $errors->first('shipping_zipcode') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('shipping_city') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_city">{{ __('City') }}*</label>
{{ Form::text('shipping_city', $shopping_user->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_city', 'tabindex' => 23)) }}
@if ($errors->has('shipping_city'))
<span class="help-block">
<strong>{{ $errors->first('shipping_city') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_country_id') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Country') }}*</label>
<select class="selectpicker" name="shipping_country_id" id="shipping_country_id" data-style="btn-light" data-live-search="true" required tabindex="24">
{!! HTMLHelper::getContriesWithMore($shopping_user->shipping_country_id) !!}
</select>
@if ($errors->has('shipping_country_id'))
<span class="help-block">
<strong>{{ $errors->first('shipping_country_id') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="shipping_phone">{{ __('Phone') }}</label>
{{ Form::text('shipping_phone', $shopping_user->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'shipping_phone', 'tabindex' => 26)) }}
</div>
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="same_as_billing" id="same_as_billing" @if($shopping_user->same_as_billing) checked="checked" @endif>
<span class="custom-control-label">{{__('Shipping to the same address')}}</span>
</label>
</div>
<hr>
</div>
</div>
@if($isView === 'customer')
@endif
<div class="card mb-4">
<div class="card-body">
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="has_buyed" id="has_buyed" @if($shopping_user->has_buyed) checked="checked" @endif>
<span class="custom-control-label">{{ __('customer.customer_has_already_buy') }}</span>
</label>
</div>
<div class="alert alert-warning mt-3" id="show_has_buyed" style="display: @if($shopping_user->has_buyed) block @else none @endif;">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="subscribed" id="subscribed" @if($shopping_user->subscribed) checked="checked" @endif >
<span class="custom-control-label">{{ __('customer.newsletter_subscribed_copy1') }}</span>
</label>
</div>
</div>
</div>
<hr>
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="remarks">{{ __('Comments') }}</label>
{{ Form::textarea('remarks', $shopping_user->remarks, array('placeholder'=>__('Comments'), 'class'=>'form-control', 'rows'=>4, 'id'=>'remarks')) }}
</div>
</div>
<hr>
{{ Form::hidden('faker_mail', $shopping_user->faker_mail) }}
{{ Form::hidden('language', $shopping_user->language) }}
@if($isView === 'customer-add')
{{ Form::hidden('billing_email_1', $billing_email) }}
{{ Form::hidden('billing_email-confirm_1', $billing_email) }}
@if($shopping_user->faker_mail)
{{ Form::hidden('billing_email', $billing_email) }}
{{ Form::hidden('billing_email-confirm', $billing_email) }}
@else
<div class="form-row">
<div class="form-group col-md-6">
<label class="form-label" for="billing_email">{{ __('E-Mail Address') }}*</label>
{{ Form::text('billing_email', $billing_email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'billing_email', 'readonly')) }}
</div>
<div class="form-group col-md-6">
<label class="form-label" for="billing_email-confirm">{{ __('Confirm E-Mail') }}*</label>
{{ Form::text('billing_email-confirm', $billing_email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'id'=>'billing_email-confirm', 'readonly')) }}
</div>
</div>
@endif
@else
@if($shopping_user->faker_mail)
{{ Form::hidden('billing_email', $shopping_user->billing_email) }}
{{ Form::hidden('billing_email-confirm', $shopping_user->billing_email) }}
@if($isAdmin != 1)
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
<h6 class="card-header bg-light">
<a href="#" class="" data-toggle="collapse" data-target="#collapseNewMailAddress" aria-expanded="@if($errors->has('new_email_address')) true @else false @endif" aria-controls="collapseNewMailAddress">
<i class="fa fa-caret-expand"></i> {{ __('E-Mail Address') }} {{ __('add') }}
</a>
</h6>
<div class="collapse @if($errors->has('new_email_address')) show @endif" id="collapseNewMailAddress">
<div class="form-row mt-2 mb-0">
<div class="form-group col-md-12 {{ $errors->has('new_email_address') ? 'has-error' : '' }}">
<label class="form-label" for="new_email_address">{{ __('E-Mail Address') }}*</label>
{{ Form::text('new_email_address', '', array('placeholder'=>__('E-Mail Address'), 'class'=>'form-control', 'id'=>'new_email_address', 'required'=>true ,'tabindex' => 1)) }}
@if ($errors->has('new_email_address'))
<span class="help-block">
<strong>{{ $errors->first('new_email_address') }}</strong>
</span>
@endif
<p class="mt-2">{{ __('customer.customer_sovereignty_info1') }}</p>
<button type="submit" class="btn btn-secondary btn-sm" name="action" value="add-mail-shopping-user-store">{{ __('E-Mail Address') }} {{ __('customer.check_and_save') }}</button>
</div>
</div>
</div>
@endif
@else
<div class="form-row">
<div class="form-group col-md-6">
<label class="form-label" for="billing_email">{{ __('E-Mail Address') }}*</label>
{{ Form::text('billing_email', $shopping_user->billing_email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'billing_email')) }}
</div>
<div class="form-group col-md-6">
<label class="form-label" for="billing_email-confirm">{{ __('Confirm E-Mail') }}</label>
{{ Form::text('billing_email-confirm', $shopping_user->billing_email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'id'=>'billing_email-confirm')) }}
</div>
</div>
@endif
@endif
</div>
</div>
<script type="application/javascript">
$( document ).ready(function() {
$('input#has_buyed').on('change', function () {
if($(this).prop('checked')){
$('input#subscribed').prop('checked', true);
$('#show_has_buyed').show('slow');
}else{
$('input#subscribed').prop('checked', false);
$('#show_has_buyed').hide('slow');
}
});
// Shipping Address show|hide
$("#same_as_billing").on("change", function () {
$('#show_shipping_address').slideToggle(200, function () {
// scroll down to shipping area.
if ($('#show_shipping_address').is(":visible")) {
_scrollTo('#show_shipping_address', 20);
}
});
});
$.extend( $.validator.messages, {
required: "{{__('account.validator_required')}}",
maxlength: $.validator.format( "{{__('account.validator_maxlength')}}" ),
minlength: $.validator.format( "{{__('account.validator_minlength')}}" ),
rangelength: $.validator.format( "{{__('account.validator_rangelength')}}" ),
email: "{{__('account.validator_email')}}",
url: "{{__('account.validator_url')}}",
date: "{{__('account.validator_date')}}",
number: "{{__('account.validator_number')}}",
digits: "{{__('account.validator_digits')}}",
equalTo: "{{__('account.validator_equalTo')}}",
range: $.validator.format( "{{__('account.validator_range')}}" ),
max: $.validator.format( "{{__('account.validator_max')}}" ),
min: $.validator.format( "{{__('account.validator_min')}}" ),
creditcard: "{{__('account.validator_creditcard')}}"
});
// Set up validator
$('#lead-form-validation').validate({
rules: {
'billing_email-confirm': {
required: true,
equalTo: "#billing_email"
},
},
errorPlacement: function errorPlacement(error, element) {
$(element).parents('.form-group').append(
error.addClass('invalid-feedback small d-block')
)
},
highlight: function (element) {
if ($(element).hasClass('selectpicker')) {
$(element).parent().addClass('is-invalid');
}
$(element).addClass('is-invalid');
},
unhighlight: function (element) {
$(element).removeClass('is-invalid');
$(element).parents('.form-group').find('.is-invalid').removeClass('is-invalid');
},
messages : {
required: "{{__('This field is required.')}}",
country_id : {
required: "{{__('This field is required.')}}",
},
salutation : {
required: "{{__('please specify')}}",
},
first_name : {
required: "{{__('This field is required.')}}",
},
last_name : {
required: "{{__('This field is required.')}}",
},
zipcode : {
required: "{{__('This field is required.')}}",
},
address : {
required: "{{__('This field is required.')}}",
},
city : {
required: "{{__('This field is required.')}}",
},
equalTo : "{{__('Please enter the same value again.')}}",
'billing_email-confirm' : {
equalTo : "{{__('Please enter the same value again.')}}",
required: "{{__('This field is required.')}}",
},
billing_email: {
required : "{{__('This field is required.')}}",
email: "{{ __('Please enter a valid email address.') }}",
remote : "{{ __('This E-mail is already in use.') }}"
},
},
onkeyup: false
});
});
</script>

View file

@ -0,0 +1,328 @@
<div class="card mb-4">
<h5 class="card-header">
<div class="row">
<div class="col-xs-12 col-sm-6">
{{ __('customer.customer_billing_address') }}
</div>
<div class="col-xs-12 col-sm-6">
<span class="text-tiny float-right">* {{trans('register.required_fields')}}</span>
<span class="d-none d-lg-inline">{{ __('Delivery address') }}</span>
</div>
</div>
</h5>
<div class="card-body">
<div class="row">
<div class="col-12 col-lg-6">
<div class="form-row">
<div class="form-group col-md-12">
<label for="billing_company" class="form-label">{{ __('Company name') }} ({{__('optional')}})</label>
{{ Form::text('billing_company', $shopping_user->billing_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'billing_company', 'tabindex' => 1)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_salutation') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Salutation') }}*</label>
<select class="selectpicker" data-style="btn-light" name="billing_salutation" id="billing_salutation" required tabindex="2">
{!! HTMLHelper::getSalutation($shopping_user->billing_salutation) !!}
</select>
@if ($errors->has('billing_salutation'))
<span class="help-block">
<strong>{{ $errors->first('billing_salutation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_firstname') ? 'has-error' : '' }}">
<label class="form-label" for="billing_firstname">{{ __('First name') }}*</label>
{{ Form::text('billing_firstname', $shopping_user->billing_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'billing_firstname', 'required'=>true, 'tabindex' => 4)) }}
@if ($errors->has('billing_firstname'))
<span class="help-block">
<strong>{{ $errors->first('billing_firstname') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('billing_lastname') ? 'has-error' : '' }}">
<label class="form-label" for="billing_lastname">{{ __('Last name') }}*</label>
{{ Form::text('billing_lastname', $shopping_user->billing_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'billing_lastname', 'required'=>true, 'tabindex' => 5)) }}
@if ($errors->has('billing_lastname'))
<span class="help-block">
<strong>{{ $errors->first('billing_lastname') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_address') ? 'has-error' : '' }}">
<label class="form-label" for="billing_address">{{ __('Street') }} / {{ __('House number') }}*</label>
{{ Form::text('billing_address', $shopping_user->billing_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_address', 'tabindex' => 6)) }}
@if ($errors->has('billing_address'))
<span class="help-block">
<strong>{{ $errors->first('billing_address') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_address_2') ? 'has-error' : '' }}">
<label class="form-label" for="billing_address_2">{{ __('Flat Building optional') }}</label>
{{ Form::text('billing_address_2', $shopping_user->billing_address_2, array('placeholder'=>__('Flat Building optional'), 'class'=>'form-control', 'id'=>'billing_address_2', 'tabindex' => 6)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('billing_zipcode') ? 'has-error' : '' }}">
<label class="form-label" for="billing_zipcode">{{ __('Postcode') }}*</label>
{{ Form::text('billing_zipcode', $shopping_user->billing_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_zipcode', 'tabindex' => 7)) }}
@if ($errors->has('billing_zipcode'))
<span class="help-block">
<strong>{{ $errors->first('billing_zipcode') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('billing_city') ? 'has-error' : '' }}">
<label class="form-label" for="billing_city">{{ __('City') }}*</label>
{{ Form::text('billing_city', $shopping_user->billing_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_city', 'tabindex' => 8)) }}
@if ($errors->has('billing_city'))
<span class="help-block">
<strong>{{ $errors->first('billing_city') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_country_id') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Country') }}*</label>
<select class="selectpicker" name="billing_country_id" id="billing_country_id" data-style="btn-light" data-live-search="true" required tabindex="9">
{!! HTMLHelper::getContriesWithMore($shopping_user->billing_country_id) !!}
</select>
@if ($errors->has('billing_country_id'))
<span class="help-block">
<strong>{{ $errors->first('billing_country_id') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('billing_phone') ? 'has-error' : '' }}">
<label class="form-label" for="billing_phone">{{ __('Phone') }}</label>
{{ Form::text('billing_phone', $shopping_user->billing_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'billing_phone', 'tabindex' => 11)) }}
</div>
</div>
</div>
<div class="col-12 col-lg-6">
<div class="d-md-block d-lg-none">
<hr>
<h5 class="mt-4">{{ __('Delivery address') }}</h5>
</div>
<div id="show_shipping_address" style="@if($shopping_user->same_as_billing) display:none @endif">
<div class="form-row">
<div class="form-group col-md-12">
<label for="shipping_company" class="form-label">{{ __('Company name') }} ({{__('optional')}})</label>
{{ Form::text('shipping_company', $shopping_user->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'shipping_company', 'tabindex' => 16)) }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_salutation') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Salutation') }}*</label>
<select class="selectpicker" data-style="btn-light" name="shipping_salutation" id="shipping_salutation" required tabindex="17">
{!! HTMLHelper::getSalutation($shopping_user->shipping_salutation) !!}
</select>
@if ($errors->has('shipping_salutation'))
<span class="help-block">
<strong>{{ $errors->first('shipping_salutation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_firstname') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_firstname">{{ __('First name') }}*</label>
{{ Form::text('shipping_firstname', $shopping_user->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_firstname', 'tabindex' => 18)) }}
@if ($errors->has('shipping_firstname'))
<span class="help-block">
<strong>{{ $errors->first('shipping_firstname') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('shipping_lastname') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_lastname">{{ __('Last name') }}*</label>
{{ Form::text('shipping_lastname', $shopping_user->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_lastname', 'tabindex' => 19)) }}
@if ($errors->has('shipping_lastname'))
<span class="help-block">
<strong>{{ $errors->first('shipping_lastname') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_address') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_address">{{ __('Street') }} / {{ __('House number') }}*</label>
{{ Form::text('shipping_address', $shopping_user->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_address', 'tabindex' => 20)) }}
@if ($errors->has('shipping_address'))
<span class="help-block">
<strong>{{ $errors->first('shipping_address') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_address_2') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_address_2">{{ __('Flat Building optional') }}</label>
{{ Form::text('shipping_address_2', $shopping_user->shipping_address_2, array('placeholder'=>__('Flat Building optional'), 'class'=>'form-control', 'id'=>'shipping_address_2', 'tabindex' => 21)) }}
@if ($errors->has('shipping_address_2'))
<span class="help-block">
<strong>{{ $errors->first('shipping_address_2') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 {{ $errors->has('shipping_zipcode') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_zipcode">{{ __('Postcode') }}*</label>
{{ Form::text('shipping_zipcode', $shopping_user->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_zipcode', 'tabindex' => 22)) }}
@if ($errors->has('shipping_zipcode'))
<span class="help-block">
<strong>{{ $errors->first('shipping_zipcode') }}</strong>
</span>
@endif
</div>
<div class="form-group col-md-6 {{ $errors->has('shipping_city') ? 'has-error' : '' }}">
<label class="form-label" for="shipping_city">{{ __('City') }}*</label>
{{ Form::text('shipping_city', $shopping_user->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_city', 'tabindex' => 23)) }}
@if ($errors->has('shipping_city'))
<span class="help-block">
<strong>{{ $errors->first('shipping_city') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 {{ $errors->has('shipping_country_id') ? 'has-error' : '' }}">
<label class="form-label">{{ __('Country') }}*</label>
<select class="selectpicker" name="shipping_country_id" id="shipping_country_id" data-style="btn-light" data-live-search="true" required tabindex="24">
{!! HTMLHelper::getContriesWithMore($shopping_user->shipping_country_id) !!}
</select>
@if ($errors->has('shipping_country_id'))
<span class="help-block">
<strong>{{ $errors->first('shipping_country_id') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="shipping_phone">{{ __('Phone') }}</label>
{{ Form::text('shipping_phone', $shopping_user->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'shipping_phone', 'tabindex' => 26)) }}
</div>
</div>
</div>
<div class="form-group">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="same_as_billing" id="same_as_billing" @if($shopping_user->same_as_billing) checked="checked" @endif>
<span class="custom-control-label">{{__('Shipping to the same address')}}</span>
</label>
</div>
<hr>
</div>
</div>
</div>
</div>
<script type="application/javascript">
$( document ).ready(function() {
// Shipping Address show|hide
$("#same_as_billing").on("change", function () {
$('#show_shipping_address').slideToggle(200, function () {
// scroll down to shipping area.
if ($('#show_shipping_address').is(":visible")) {
_scrollTo('#show_shipping_address', 20);
}
});
});
$.extend( $.validator.messages, {
required: "{{__('account.validator_required')}}",
maxlength: $.validator.format( "{{__('account.validator_maxlength')}}" ),
minlength: $.validator.format( "{{__('account.validator_minlength')}}" ),
rangelength: $.validator.format( "{{__('account.validator_rangelength')}}" ),
email: "{{__('account.validator_email')}}",
url: "{{__('account.validator_url')}}",
date: "{{__('account.validator_date')}}",
number: "{{__('account.validator_number')}}",
digits: "{{__('account.validator_digits')}}",
equalTo: "{{__('account.validator_equalTo')}}",
range: $.validator.format( "{{__('account.validator_range')}}" ),
max: $.validator.format( "{{__('account.validator_max')}}" ),
min: $.validator.format( "{{__('account.validator_min')}}" ),
creditcard: "{{__('account.validator_creditcard')}}"
});
// Set up validator
$('#lead-form-validation').validate({
rules: {
'billing_email-confirm': {
required: true,
equalTo: "#billing_email"
},
},
errorPlacement: function errorPlacement(error, element) {
$(element).parents('.form-group').append(
error.addClass('invalid-feedback small d-block')
)
},
highlight: function (element) {
if ($(element).hasClass('selectpicker')) {
$(element).parent().addClass('is-invalid');
}
$(element).addClass('is-invalid');
},
unhighlight: function (element) {
$(element).removeClass('is-invalid');
$(element).parents('.form-group').find('.is-invalid').removeClass('is-invalid');
},
messages : {
required: "{{__('This field is required.')}}",
country_id : {
required: "{{__('This field is required.')}}",
},
salutation : {
required: "{{__('please specify')}}",
},
first_name : {
required: "{{__('This field is required.')}}",
},
last_name : {
required: "{{__('This field is required.')}}",
},
zipcode : {
required: "{{__('This field is required.')}}",
},
address : {
required: "{{__('This field is required.')}}",
},
city : {
required: "{{__('This field is required.')}}",
},
equalTo : "{{__('Please enter the same value again.')}}",
'billing_email-confirm' : {
equalTo : "{{__('Please enter the same value again.')}}",
required: "{{__('This field is required.')}}",
},
billing_email: {
required : "{{__('This field is required.')}}",
email: "{{ __('Please enter a valid email address.') }}",
remote : "{{ __('This E-mail is already in use.') }}"
},
},
onkeyup: false
});
});
</script>

View file

@ -0,0 +1,33 @@
@extends('portal.layouts.layout-2')
@section('content')
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<h4 class="font-weight-bold py-2 mb-2">
{{ __('navigation.my_data') }}
</h4>
{!! Form::open(['action' => route('portal.my_data.store'), 'method' => 'POST', 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
@include('portal.customer._edit_form')
<div class="text-left mt-3">
<button type="submit" class="btn btn-secondary" name="action" value="shopping-user-store">{{ __('save changes') }}</button>&nbsp;
</div>
{!! Form::close() !!}
@endsection

View file

@ -0,0 +1,32 @@
@extends('portal.layouts.layout-2')
@section('content')
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<h4 class="media align-items-center font-weight-bold py-3 mb-2">
{{-- <img src="assets/img/avatars/1.png" alt="" class="ui-w-50 rounded-circle"> --}}
<div class="media-body ml-3">
{{ __('home.welcome_back') }}, @if($user->shopping_user_id) {{ $user->name }} @else {{ __('portal.guest') }} @endif
<div class="text-muted text-tiny mt-1"><small class="font-weight-normal">{{ __('home.today_is') }} {{__('cal.weekdays.'.$now->format('l'))}}, {{$now->format('j')}}. {{__('cal.months.'.$now->format('F'))}} {{$now->format('Y')}}</small></div>
</div>
</h4>
<hr class="container-m-nx mt-0 mb-4">
<div class="row">
@include('portal.dashboard.settings')
</div>
@endsection

View file

@ -0,0 +1,66 @@
<div class="col-md-6">
<div class="card mb-4">
<h5 class="card-header with-elements">
<div class="card-header-title">{{ __('navigation.my_data') }}</div>
</h5>
<div class="card-body">
@if (!$user->shopping_user_id)
<p>{{ __('portal.change_my_data_empty') }}</p>
@else
<p>{{ __('portal.change_my_data') }}</p>
@endif
<a href="{{ route('portal.my_data.edit') }}" class="btn btn-secondary"><i
class="ion ion-md-person text-default mr-1"></i> {{ __('navigation.my_data') }}</a>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card mb-4">
<h5 class="card-header with-elements">
<div class="card-header-title">{{ __('navigation.my_orders') }}</div>
</h5>
<div class="card-body">
@if (!$user->shopping_user_id)
<p>{{ __('portal.my_orders_empty') }}</p>
@else
<p>{{ __('portal.my_orders_info') }}</p>
@endif
<a href="{{ route('portal.my_orders') }}" class="btn btn-secondary"><i
class="ion ion-md-cart text-default mr-1"></i> {{ __('navigation.my_orders') }}</a>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card mb-4">
<h5 class="card-header with-elements">
<div class="card-header-title">{{ __('navigation.myabo') }}</div>
</h5>
<div class="card-body">
@if (!$user->shopping_user_id)
<p>{{ __('portal.my_subscriptions_empty') }}</p>
@else
<p>{{ __('portal.my_subscriptions_info') }}</p>
@endif
<a href="{{ route('portal.my_subscriptions') }}" class="btn btn-secondary"><i
class="ion ion-md-refresh-circle text-default mr-1"></i> {{ __('navigation.myabo') }}</a>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card mb-4">
<h5 class="card-header with-elements">
<div class="card-header-title">{{ __('navigation.logout') }}</div>
</h5>
<div class="card-body">
<p> {{ __('home.log_out_and_see_you_soon') }}</p>
<a href="{{ route('portal.logout') }}" class="btn btn-primary"><i
class="ion ion-ios-power text-default mr-1"></i> {{ __('navigation.logout') }}</a>
</div>
</div>
</div>

View file

@ -0,0 +1,192 @@
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}" class="default-style layout-collapsed">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name') }}</title>
<!-- Main font -->
<link rel="stylesheet" href="{{ asset('/fonts/roboto-pacifico.css?v=1') }}">
<!-- Icons. Uncomment required icon fonts -->
<link rel="stylesheet" href="{{ mix('/vendor/fonts/fontawesome.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/ionicons.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/linearicons.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/open-iconic.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/fonts/pe-icon-7-stroke.css') }}">
<!-- Core stylesheets -->
<link rel="stylesheet" href="{{ mix('/vendor/css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/appwork.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/theme-corporate.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/colors.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/css/uikit.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/mycolors.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/growl/growl.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/bootstrap-select/bootstrap-select.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/select2/select2.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/datatables/datatables.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/bootstrap-material-datetimepicker/bootstrap-material-datetimepicker.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/slim-image-cropper/slim/slim.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/dropzone/dropzone.css?v=1') }}">
<!-- Layout helpers -->
<script src="{{ mix('/vendor/js/layout-helpers.js') }}"></script>
<!-- Libs -->
<!-- `perfect-scrollbar` library required by SideNav plugin -->
<link rel="stylesheet" href="{{ mix('/vendor/libs/perfect-scrollbar/perfect-scrollbar.css') }}">
@yield('styles')
<!-- Application stylesheets -->
<link rel="stylesheet" href="{{ mix('/css/application.css') }}?v=1{{ get_file_last_time('css/application.css') }}">
<script src="{{ asset('/js/jquery.min.js') }}"></script>
<link rel="stylesheet" type="text/css" href="{{ asset('/css/cookieconsent.min.css') }}" />
<script src="{{ asset('/js/cookieconsent.min.js') }}"></script>
<script>
window.addEventListener("load", function(){
window.cookieconsent.initialise({
"palette": {
"popup": {
"background": "#b5c49b",
"text": "#ffffff"
},
"button": {
"background": "#d7d700",
"text": "#ffffff"
}
},
"content": {
"message": "{{__('This website uses cookies') }}",
"dismiss": "{{__('OK')}}",
"link": "{{__('register.data_protection')}}",
"href": "{{ url('datenschutz') }}",
"target": "_blank",
}
})});
</script>
<style>
</style>
</head>
<body>
@yield('layout-content')
<div class="modal fade" id="modals-load-content">
<div class="modal-dialog modal-lg">
</div>
</div>
<!-- Core scripts -->
<script src="{{ mix('/vendor/libs/popper/popper.js') }}"></script>
<script src="{{ mix('/vendor/js/bootstrap.js') }}"></script>
<script src="{{ mix('/vendor/js/sidenav.js') }}"></script>
<script src="{{ mix('/vendor/libs/growl/growl.js') }}"></script>
<script src="{{ asset('/vendor/libs/moment-develop/min/moment.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/moment-develop/locale/de.js') }}"></script>
<script src="{{ mix('/vendor/libs/validate/validate.js') }}"></script>
<script src="{{ mix('/vendor/libs/bootstrap-select/bootstrap-select.js') }}"></script>
<script src="{{ mix('/vendor/libs/select2/select2.js') }}"></script>
<script src="{{ mix('/vendor/libs/datatables/datatables.js') }}"></script>
<script src="{{ mix('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.js') }}"></script>
<script src="{{asset('/js/bootstrap-datepicker.de.min.js')}}"></script>
<script src="{{ asset('/vendor/libs/bootstrap-material-datetimepicker/bootstrap-material-datetimepicker.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/lang/summernote-de-DE.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote-cleaner/summernote-cleaner.js') }}"></script>
<script src="{{ asset('/vendor/libs/slim-image-cropper/slim/slim.kickstart.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/dropzone/dropzone.js?v=1')}}"></script>
<script src="{{ asset('/js/forms_file-upload.js?v=1') }}"></script>
<script src="{{ asset('/vendor/libs/clipboard/clipboard.min.js')}}"></script>
<!-- `perfect-scrollbar` library required by SideNav plugin -->
<script src="{{ mix('/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') }}"></script>
<script src="{{ asset('/js/shopping_card.js') }}?v=1{{ get_file_last_time('/js/shopping_card.js') }}"></script>
<!-- Application javascripts -->
<script src="{{ mix('/js/application.js') }}"></script>
<script src="{{ asset('/js/custom.js') }}?v=1{{ get_file_last_time('/js/custom.js') }}"></script>
@yield('scripts')
<script type="text/javascript">
$(document).ready(function() {
$('.summernote').summernote({
height: 140,
lang: 'de-DE',
cleaner:{
action: 'both', // both|button|paste 'button' only cleans via toolbar button, 'paste' only clean when pasting content, both does both options.
newline: '<br>', // Summernote's default is to use '<p><br></p>'
notStyle: 'position:absolute;top:0;left:0;right:0', // Position of Notification
icon: '<i class="note-icon">[Your Button]</i>',
keepHtml: false, // Remove all Html formats
keepOnlyTags: ['<p>', '<br>', '<ul>', '<li>', '<b>', '<strong>','<i>', '<a>'], // If keepHtml is true, remove all tags except these
keepClasses: false, // Remove Classes
badTags: ['style', 'script', 'applet', 'embed', 'noframes', 'noscript', 'html'], // Remove full tags with contents
badAttributes: ['style', 'start'], // Remove attributes from remaining tags
limitChars: false, // 0/false|# 0/false disables option
limitDisplay: 'both', // text|html|both
limitStop: false // true/false
}
});
$('.summernote-small').summernote({
height: 140,
lang: 'de-DE',
toolbar: [
// [groupName, [list of button]]
['style', ['style']],
['style', ['bold', 'italic', 'underline', 'clear']],
['fontsize', ['fontsize']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['height', ['height']],
['view',['fullscreen','codeview']],
],
cleaner:{
action: 'both', // both|button|paste 'button' only cleans via toolbar button, 'paste' only clean when pasting content, both does both options.
newline: '<br>', // Summernote's default is to use '<p><br></p>'
notStyle: 'position:absolute;top:0;left:0;right:0', // Position of Notification
icon: '<i class="note-icon">[Your Button]</i>',
keepHtml: false, // Remove all Html formats
keepOnlyTags: ['<p>', '<br>', '<ul>', '<li>', '<b>', '<strong>','<i>', '<a>'], // If keepHtml is true, remove all tags except these
keepClasses: false, // Remove Classes
badTags: ['style', 'script', 'applet', 'embed', 'noframes', 'noscript', 'html'], // Remove full tags with contents
badAttributes: ['style', 'start'], // Remove attributes from remaining tags
limitChars: false, // 0/false|# 0/false disables option
limitDisplay: 'both', // text|html|both
limitStop: false // true/false
}
});
$('.note-status-output').hide();
});
</script>
</body>
</html>

View file

@ -0,0 +1,136 @@
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}" class="default-style layout-collapsed">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name') }}</title>
<!-- Main font -->
<link rel="stylesheet" href="{{ asset('/fonts/roboto-pacifico.css?v=1') }}">
<!-- Icons. Uncomment required icon fonts -->
<link rel="stylesheet" href="{{ asset('/vendor/fonts/fontawesome.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/ionicons.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/linearicons.css') }}">
<!-- Core stylesheets -->
<link rel="stylesheet" href="{{ asset('/vendor/css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/appwork.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/theme-corporate.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/colors.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/uikit.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/mycolors.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/growl/growl.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/bootstrap-select/bootstrap-select.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/select2/select2.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/datatables/datatables.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/bootstrap-material-datetimepicker/bootstrap-material-datetimepicker.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/slim-image-cropper/slim/slim.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/dropzone/dropzone.css?v=1') }}">
<!-- Layout helpers -->
<script src="{{ asset('/vendor/js/layout-helpers.js') }}"></script>
<!-- Libs -->
<!-- `perfect-scrollbar` library required by SideNav plugin -->
<link rel="stylesheet" href="{{ asset('/vendor/libs/perfect-scrollbar/perfect-scrollbar.css') }}">
@yield('styles')
<!-- Application stylesheets -->
<link rel="stylesheet" href="{{ asset('/css/application.css') }}?v=1{{ get_file_last_time('css/application.css') }}">
<script src="{{ asset('/js/jquery.min.js') }}"></script>
<link rel="stylesheet" type="text/css" href="{{ asset('/css/cookieconsent.min.css') }}" />
<script src="{{ asset('/js/cookieconsent.min.js') }}"></script>
<script>
window.addEventListener("load", function(){
window.cookieconsent.initialise({
"palette": {
"popup": {
"background": "#b5c49b",
"text": "#ffffff"
},
"button": {
"background": "#d7d700",
"text": "#ffffff"
}
},
"content": {
"message": "{{__('This website uses cookies') }}",
"dismiss": "{{__('OK')}}",
"link": "{{__('register.data_protection')}}",
"href": "{{ url('datenschutz') }}",
"target": "_blank",
}
})});
</script>
<style>
</style>
</head>
<body>
@yield('layout-content')
<div class="modal fade" id="modals-load-content">
<div class="modal-dialog modal-lg">
</div>
</div>
<!-- Core scripts -->
<script src="{{ asset('/vendor/libs/popper/popper.js') }}"></script>
<script src="{{ asset('/vendor/js/bootstrap.js') }}"></script>
<script src="{{ asset('/vendor/js/sidenav.js') }}"></script>
<script src="{{ asset('/vendor/libs/growl/growl.js') }}"></script>
<script src="{{ asset('/vendor/libs/moment-develop/min/moment.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/moment-develop/locale/de.js') }}"></script>
<script src="{{ asset('/vendor/libs/validate/validate.js') }}"></script>
<script src="{{ asset('/vendor/libs/bootstrap-select/bootstrap-select.js') }}"></script>
<script src="{{ asset('/vendor/libs/select2/select2.js') }}"></script>
<script src="{{ asset('/vendor/libs/datatables/datatables.js') }}"></script>
<script src="{{ asset('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.js') }}"></script>
<script src="{{asset('/js/bootstrap-datepicker.de.min.js')}}"></script>
<script src="{{ asset('/vendor/libs/bootstrap-material-datetimepicker/bootstrap-material-datetimepicker.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/lang/summernote-de-DE.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote-cleaner/summernote-cleaner.js') }}"></script>
<script src="{{ asset('/vendor/libs/slim-image-cropper/slim/slim.kickstart.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/dropzone/dropzone.js?v=1')}}"></script>
<script src="{{ asset('/js/forms_file-upload.js?v=1') }}"></script>
<script src="{{ asset('/vendor/libs/clipboard/clipboard.min.js')}}"></script>
<!-- `perfect-scrollbar` library required by SideNav plugin -->
<script src="{{ asset('/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') }}"></script>
<script src="{{ asset('/js/shopping_card.js') }}?v=1{{ get_file_last_time('/js/shopping_card.js') }}"></script>
<!-- Application javascripts -->
<script src="{{ asset('/js/application.js') }}"></script>
<script src="{{ asset('/js/custom.js') }}?v=1{{ get_file_last_time('/js/custom.js') }}"></script>
@yield('scripts')
</body>
</html>

View file

@ -0,0 +1,125 @@
<!DOCTYPE html>
<html lang="en" class="default-style">
<head>
<title>{{ config('app.name') }} Login</title>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="IE=edge,chrome=1">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<meta name="csrf-token" content="{{ csrf_token() }}">
<link rel="stylesheet" href="{{ asset('/fonts/roboto-pacifico.css?v=1') }}">
<!-- Icons. Uncomment required icon fonts -->
<link rel="stylesheet" href="{{ asset('/vendor/fonts/fontawesome.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/ionicons.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/fonts/linearicons.css') }}">
<!-- Core stylesheets -->
<link rel="stylesheet" href="{{ asset('/vendor/css/bootstrap.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/appwork.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/theme-corporate.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/colors.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/uikit.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/mycolors.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/growl/growl.css') }}">
<!-- Layout helpers -->
<script src="{{ asset('/vendor/js/layout-helpers.js') }}"></script>
<!-- Core scripts -->
<!-- Libs -->
<link rel="stylesheet" href="{{ asset('/vendor/libs/perfect-scrollbar/perfect-scrollbar.css') }}">
<!-- Page -->
<link rel="stylesheet" href="{{ asset('/vendor/css/pages/authentication.css') }}">
<script src="{{ asset('/js/jquery.min.js') }}"></script>
<link rel="stylesheet" type="text/css" href="{{ asset('/css/cookieconsent.min.css') }}" />
<script src="{{ asset('/js/cookieconsent.min.js') }}"></script>
<script>
window.addEventListener("load", function(){
window.cookieconsent.initialise({
"palette": {
"popup": {
"background": "#b5c49b",
"text": "#ffffff"
},
"button": {
"background": "#d7d700",
"text": "#ffffff"
}
},
"content": {
"message": "{{__('This website uses cookies') }}",
"dismiss": "{{__('OK')}}",
"link": "{{__('register.data_protection')}}",
"href": "{{ url('datenschutz') }}",
"target": "_blank",
}
})});
</script>
</head>
<body>
<div class="page-loader">
<div class="bg-primary"></div>
</div>
@if(Session::has('alert-error'))
<script>
$( document ).ready(function() {
$.growl.error({
title: "{{__('error')}}",
message: '{{ Session::get('alert-error') }}',
location: 'tr'
});
});
</script>
@endif
@if(Session::has('alert-success'))
<script>
$( document ).ready(function() {
$.growl({
title: "{{__('saved')}}",
message: '{{ Session::get('alert-success') }}',
location: 'tr'
});
});
</script>
@endif
<!-- / Styles -->
@yield('content')
<div class="modal fade" id="modal-loading" style="display: none;" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" id="modal-loading-response">
</div>
</div>
</div>
<script src="{{ asset('/vendor/libs/popper/popper.js') }}"></script>
<script src="{{ asset('/vendor/js/bootstrap.js') }}"></script>
<script src="{{ asset('/vendor/js/sidenav.js') }}"></script>
<script src="{{ asset('/vendor/libs/growl/growl.js') }}"></script>
<script src="{{ asset('/vendor/libs/perfect-scrollbar/perfect-scrollbar.js') }}"></script>
<script src="{{ asset('/js/custom.js') }}"></script>
@yield('scripts')
</body>
</html>

View file

@ -0,0 +1,21 @@
<div id="topBar" class="pt-2">
<div class="container">
<ul class="top-links list-inline pull-right">
<li>
<a class="dropdown-toggle no-text-underline" data-toggle="dropdown" href="#"><span style="text-transform:none;">
{{ __('website.language') }} :</span> <img style="height: 16px" width="16" src="{{ asset('images/flags/'.strtolower(\App::getLocale()).'.svg') }}" alt="lang">
</a>
<ul class="dropdown-menu pull-right">
@foreach (\App\Services\UserService::getTransChange() as $code => $name)
<li>
<a @if(\App::getLocale() === $code) class="active" @endif tabindex="-1" href="{{ route('translation', [$code]) }}">
<img style="height: 16px" width="16" src="{{ asset('images/flags/'.strtolower($code).'.svg') }}" alt="lang"> &nbsp; <span style="text-transform:none;">{{ $name }}</span>
</a>
</li>
@endforeach
</ul>
</li>
</ul>
</div>
</div>

View file

@ -0,0 +1,29 @@
<nav class="layout-footer footer bg-footer-theme">
<div class="container-fluid container-p-x pb-3">
</div>
</nav>
<nav class="layout-footer footer bg-footer-theme">
<div class="container-fluid container-p-x pb-3 text-right">
@if(Request::getHost() == config('app.pre_url_portal') . config('app.domain') . config('app.tld_care'))
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="data_protection" data-target="#modal-loading">{{__('register.data_protection')}}</button>
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('portal.loading_modal') }}" data-data="imprint" data-target="#modal-loading">{{__('imprint')}}</button>
@else
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('loading_modal') }}" data-data="data_protection" data-target="#modal-loading">{{__('register.data_protection')}}</button>
<button type="button" class="btn btn-outline-primary mt-2 btn-sm update_modal_data_load" data-url="{{ route('loading_modal') }}" data-data="imprint" data-target="#modal-loading">{{__('imprint')}}</button>
@endif
</div>
</nav>
<div class="modal fade" id="modal-loading" style="display: none;" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content" id="modal-loading-response">
</div>
</div>
</div>

View file

@ -0,0 +1,26 @@
<nav class="layout-navbar navbar navbar-expand-lg align-items-lg-center bg-navbar-theme container-p-x" id="layout-navbar">
<!-- Brand -->
<a href="https://www.mivita.care"><img src="{{ asset('/images/logo_mivita.png') }}" alt="mivita.care" style="width: 170px;"></a>
<div class="navbar-nav align-items-center ml-auto" style="flex-direction: row;-webkit-box-orient: horizontal;
-webkit-box-direction: normal;">
<div class="demo-navbar-messages nav-item dropdown mr-1">
<a class="nav-link dropdown-toggle hide-arrow text-right" href="#" data-toggle="dropdown">
<i class="ion ion-ios-globe navbar-icon align-middle"></i>
<div class="badge badge-default">{{ __('website.language') }} : <img style="height: 16px" width="16" src="{{ asset('images/flags/'.strtolower(\App::getLocale()).'.svg') }}" alt="lang">
</div>
</a>
<div class="dropdown-menu dropdown-menu-right">
@foreach (\App\Services\UserService::getTransChange() as $code => $name)
<a href="{{ route('translation', [$code]) }}" class="dropdown-item @if(\App::getLocale() === $code) active @endif ">
<img style="height: 16px" width="16" src="{{ asset('images/flags/'.strtolower($code).'.svg') }}" alt="lang"> &nbsp; {{ $name }}
</a>
@endforeach
</div>
</div>
</div>
</nav>
<div class="ui-rect ui-bg-cover mb-2" style=" padding-top:15% !important; background-image: url('/assets/images/vision-min.jpg');"></div>

View file

@ -0,0 +1,53 @@
<nav class="layout-navbar navbar navbar-expand-lg align-items-lg-center bg-navbar-theme container-p-x" id="layout-navbar">
@empty($hide_layout_sidenav_toggle)
<div class="layout-sidenav-toggle navbar-nav align-items-lg-center mr-auto mr-lg-1-5">
<a class="nav-item nav-link px-0 ml-2" href="javascript:void(0)">
<i class="ion ion-md-menu text-large align-middle"></i>
</a>
</div>
@endempty
<a href="https://www.mivita.care"><img src="{{ asset('/images/logo_mivita.png') }}" alt="mivita.care" style="width: 170px;"></a>
<div class="navbar-nav align-items-center ml-auto" style="flex-direction: row;-webkit-box-orient: horizontal;
-webkit-box-direction: normal;">
<div class="demo-navbar-messages nav-item dropdown mr-1">
<a class="nav-link dropdown-toggle hide-arrow text-right" href="#" data-toggle="dropdown">
<i class="ion ion-ios-globe navbar-icon align-middle"></i>
<div class="badge badge-default">{{ __('website.language') }} : <img style="height: 16px" width="16" src="{{ asset('images/flags/'.strtolower(\App::getLocale()).'.svg') }}" alt="lang">
</div>
</a>
<div class="dropdown-menu dropdown-menu-right">
@foreach (\App\Services\UserService::getTransChange() as $code => $name)
<a href="{{ route('translation', [$code]) }}" class="dropdown-item @if(\App::getLocale() === $code) active @endif ">
<img style="height: 16px" width="16" src="{{ asset('images/flags/'.strtolower($code).'.svg') }}" alt="lang"> &nbsp; {{ $name }}
</a>
@endforeach
</div>
</div>
<div class="nav-item text-big font-weight-light line-height-1 opacity-25 mr-1 ml-1">|</div>
<div class="demo-navbar-user nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown">
<span class="d-inline-flex flex-row-reverse align-items-center align-middle">
<span class="px-1 ml-0 ml-0">{{ Auth::user()->email }}</span>
</span>
</a>
<div class="dropdown-menu dropdown-menu-right">
<a href="{{ route('portal.logout') }}" class="dropdown-item">
<i class="ion ion-ios-log-out text-danger"></i> &nbsp; {{ __('navigation.logout') }}</a>
</div>
</div>
</div>
</nav>

View file

@ -0,0 +1,47 @@
@if(Auth::check())
<div id="layout-sidenav" class="{{ isset($layout_sidenav_horizontal) ? 'layout-sidenav-horizontal sidenav-horizontal container-p-x flex-grow-0' : 'layout-sidenav sidenav-vertical' }} sidenav bg-sidenav-theme">
<!-- Inner -->
<ul class="sidenav-inner{{ empty($layout_sidenav_horizontal) ? ' py-1' : '' }}">
@if(Auth::guard('customers')->check())
<li class="sidenav-item{{ Request::is('portal/dashboard') ? ' active' : '' }}">
<a href="{{ route('portal.dashboard') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-home"></i><div>{{__('navigation.dashboard')}}</div></a>
</li>
<li class="sidenav-item{{ Request::is('portal/my-data/*') ? ' active' : '' }}">
<a href="{{ route('portal.my_data.edit') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-person"></i><div>{{ __('navigation.my_data') }}</div></a>
</li>
<li class="sidenav-item{{ Request::is('portal/my-orders', 'portal/my-orders/*') ? ' active' : '' }}">
<a href="{{ route('portal.my_orders') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-cart"></i><div>{{ __('navigation.my_orders') }}</div></a>
</li>
@if(Auth::user()->is_admin || Util::isTestSystem(true))
<li class="sidenav-item{{ Request::is('portal/subscriptions') ? ' active' : '' }}">
<a href="{{ route('portal.my_subscriptions') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-refresh-circle"></i><div>{{ __('navigation.myabo') }} <span class="badge badge-warning">DEV</span></div> </a>
</li>
@endif
{{--
<li class="sidenav-item{{ Request::is('portal/settings') ? ' active' : '' }}">
<a href="{{ route('portal.settings') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-settings"></i><div>{{ __('navigation.settings') }}</div></a>
</li>
--}}
@endif
<li class="sidenav-divider mb-1"></li>
@if(Auth::guard('customers')->check())
<li class="sidenav-item">
<a href="{{ Util::getMyMivitaShopUrl() }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-cart"></i><div>{{ __('navigation.to_shop') }}</div></a>
</li>
@endif
<li class="sidenav-item">
<a href="{{ route('portal.logout') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-power"></i><div>{{ __('navigation.logout') }}</div></a>
</li>
</ul>
</div>
@endif

View file

@ -0,0 +1,76 @@
@extends('portal.layouts.application')
@section('layout-content')
@if(Session::has('alert-save'))
<script>
$( document ).ready(function() {
$.growl({
title: "{{__('saved')}}",
message: "{{__('The changes have been saved.')}}",
location: 'tr'
});
});
</script>
@endif
@if(Session::has('alert-error'))
<script>
$( document ).ready(function() {
$.growl.error({
title: "{{__('error')}}",
message: '{{ Session::get('alert-error') }}',
location: 'tr'
});
});
</script>
@endif
@if(Session::has('alert-success'))
<script>
$( document ).ready(function() {
$.growl({
title: "{{__('saved')}}",
message: '{{ Session::get('alert-success') }}',
location: 'tr'
});
});
</script>
@endif
<!-- Layout wrapper -->
<div class="layout-wrapper layout-2">
<div class="layout-inner">
<!-- Layout sidenav -->
@include('portal.layouts.includes.layout-sidenav')
<!-- Layout container -->
<div class="layout-container">
<!-- Layout navbar -->
@include('portal.layouts.includes.layout-navbar')
<!-- Layout content -->
<div class="layout-content">
<!-- Content -->
<div class="container-fluid flex-grow-1 container-p-y">
@yield('content')
</div>
<!-- / Content -->
<!-- Layout footer -->
@include('portal.layouts.includes.layout-footer')
</div>
<!-- Layout content -->
</div>
<!-- / Layout container -->
</div>
<!-- Overlay -->
<div class="layout-overlay layout-sidenav-toggle"></div>
</div>
<!-- / Layout wrapper -->
@endsection

View file

@ -0,0 +1,97 @@
@extends('portal.layouts.layout-2')
@section('content')
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<h4 class="font-weight-bold py-2 mb-2">
{{ __('navigation.my_orders') }}
</h4>
<div class="card">
<div class="card-datatable table-responsive">
<table class="table table-striped table-bordered" style="min-width:550px;" id="datatables-orders">
<thead>
<tr>
<th>#</th>
<th>{{__('tables.date')}}</th>
<th>{{__('tables.amount')}}</th>
<th>{{__('tables.status')}}</th>
<th>{{__('tables.shipping')}}</th>
<th>{{__('tables.firstname')}}</th>
<th>{{__('tables.lastname')}}</th>
<th>{{__('tables.email')}}</th>
<th>{{__('tables.invoice')}}</th>
<th>{{__('tables.art')}}</th>
</tr>
</thead>
<tbody>
@if($shopping_user->shopping_order)
@forelse($shopping_user->getAllOrdersByMember() as $shopping_order)
<tr>
<td>
<a href="{{ route('portal.my_orders.show', $shopping_order->id) }}"
class="btn icon-btn btn-sm btn-primary">
<span class="fa fa-eye"></span>
</a>
</td>
<td>{{ $shopping_order->created_at->format('d.m.Y') }}</td>
<td>
<span class="no-line-break">
{{ $shopping_order->getFormattedTotalShipping() }}
</span>
</td>
<td>{!! \App\Services\Payment::getShoppingOrderBadge($shopping_order) !!}</td>
<td>
<span class="badge badge-pill badge-{{ $shopping_order->getShippedColor() }}">
{{ $shopping_order->getShippedType() }}
</span>
</td>
<td>{{ $shopping_order->shopping_user->billing_firstname }}</td>
<td>{{ $shopping_order->shopping_user->billing_lastname }}</td>
<td>{{ $shopping_order->shopping_user->billing_email }}</td>
<td>{{ $shopping_order->isInvoice() ? '<span class="no-line-break"><a href="'.route('storage_file', [$shopping_order->id, 'invoice', 'download']).'" class="btn btn-primary btn-xs"><i class="fa fa-download"></i></a>
<a href="'.route('storage_file', [$ShoppingOrder->id, 'invoice', 'stream']).'" target="_blank" class="btn btn-warning btn-xs"><i class="fa fa-eye"></i></a></span>' : '-';
}}</td>
<td>{!! \App\Services\Payment::getPaymentForBadge($shopping_order) !!}</td>
</tr>
@empty
<tr>
<td colspan="6" class="text-center">{{ __('order.no_orders_found') }}</td>
</tr>
@endforelse
@endif
</tbody>
</table>
</div>
</div>
@endsection
@section('scripts')
<script>
$( document ).ready(function() {
$('#datatables-orders').DataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"order": [[ 1, "desc" ]],
"language": {
"url": "/js/datatables-{{ \App::getLocale() }}.json"
}
});
});
</script>
@endsection

View file

@ -0,0 +1,317 @@
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-3 mb-1">
<strong class="mr-2">{{ __('Status') }}:</strong>
<span class="text-big">
{!! \App\Services\Payment::getShoppingOrderBadge($shopping_order) !!}
</span>
</div>
<div class="col-md-3 mb-1">
<strong class="mr-2">{{ __('order.shipping') }}:</strong>
@if($shopping_order->payment_for !== 8)
<span class="text-big">
<span
class="badge badge-pill badge-{{ $shopping_order->getShippedColor() }}">{{ $shopping_order->getShippedType() }}</span>
</span>
@endif
</div>
<div class="col-md-3 mb-1">
<strong class="mr-2">{{ __('order.invoice') }}:</strong>
@if ($shopping_order->isInvoice())
<a href="{{ route('storage_file', [$shopping_order->id, 'invoice', 'download']) }}"
class="btn btn-primary btn-sm"><i class="fa fa-download"></i></a>
<a href="{{ route('storage_file', [$shopping_order->id, 'invoice', 'stream']) }}"
target="_blank" class="btn btn-warning btn-sm"><i class="fa fa-eye"></i></a>
@endif
@if (($shopping_order->txaction === 'extern' || $shopping_order->txaction === 'extern_paid') && $shopping_order->wp_invoice_path)
<a href="{{ $shopping_order->wp_invoice_path }}" class="btn btn-secondary btn-sm"><i
class="fa fa-external-link-alt"></i> <i class="fa fa-download"></i></a>
@endif
</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">{{ __('order.order_date') }}</div>
{{ $shopping_order->created_at->format('d.m.Y H:i') }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('order.number_of_items') }}</div>
{{ $shopping_order->getItemsCount() }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('order.total_price') }}</div>
{{ $shopping_order->getFormattedTotalShipping() }} &euro;
</div>
</div>
</div>
<hr class="m-0">
<div class="card-body">
<h6 class="font-weight-semibold">
@if ($shopping_order->shopping_user->is_from === 'shopping' ||
$shopping_order->shopping_user->is_from === 'extern')
{{ __('order.billing_address_of_client') }}
@else
{{ __('order.billing_address_of_the_advisor') }}
@endif
</h6>
<div class="row">
@if ($shopping_order->shopping_user->billing_company)
<div class="col-md-12 mb-3">
<div class="text-muted small">{{ __('Company') }}</div>
{{ $shopping_order->shopping_user->billing_company }}
</div>
@endif
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Salutation') }}</div>
{{ \App\Services\HTMLHelper::getSalutationLang($shopping_order->shopping_user->billing_salutation) }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('First name') }}</div>
{{ $shopping_order->shopping_user->billing_firstname }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Last name') }}</div>
{{ $shopping_order->shopping_user->billing_lastname }}
</div>
</div>
<div class="row">
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Street') }}</div>
{{ $shopping_order->shopping_user->billing_address }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Addition') }}</div>
{{ $shopping_order->shopping_user->billing_address_2 }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Postcode') }}</div>
{{ $shopping_order->shopping_user->billing_zipcode }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('City') }}</div>
{{ $shopping_order->shopping_user->billing_city }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('E-Mail') }}</div>
{{ $shopping_order->shopping_user->billing_email }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Phone') }}</div>
{{ $shopping_order->shopping_user->billing_phone }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Country') }}</div>
{{ $shopping_order->shopping_user->billing_country->getLocated() }}
</div>
</div>
</div>
@if ($shopping_order->shopping_user->is_from !== 'homeparty')
<hr class="m-0">
<div class="card-body">
<h6 class="font-weight-semibold">
@if ($shopping_order->shopping_user->is_from === 'user_order' ||
$shopping_order->shopping_user->is_from === 'extern')
@if ($shopping_order->shopping_user->is_for === 'me')
{{ __('order.delivery_address_of_the_consultant') }}
@else
{{ __('order.delivery_address_of_the_client') }}
@endif
@endif
@if ($shopping_order->shopping_user->is_from === 'wizard')
{{ __('order.delivery_address_of_the_consultant') }}
@endif
@if ($shopping_order->shopping_user->is_from === 'membership')
{{ __('order.delivery_address_of_the_consultant') }}
@endif
@if ($shopping_order->shopping_user->is_from === 'shopping')
{{ __('order.delivery_address_of_the_client') }}
@endif
</h6>
@if ($shopping_order->shopping_user->same_as_billing)
{{ __('email.checkout_mail_same_address') }}
@else
<div class="row">
@if ($shopping_order->shopping_user->shipping_company)
<div class="col-md-12 mb-3">
<div class="text-muted small">{{ __('Company') }}</div>
{{ $shopping_order->shopping_user->shipping_company }}
</div>
@endif
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Salutation') }}</div>
{{ \App\Services\HTMLHelper::getSalutationLang($shopping_order->shopping_user->shipping_salutation) }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('First name') }}</div>
{{ $shopping_order->shopping_user->shipping_firstname }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Last name') }}</div>
{{ $shopping_order->shopping_user->shipping_lastname }}
</div>
</div>
<div class="row">
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Street') }}</div>
{{ $shopping_order->shopping_user->shipping_address }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Addition') }}</div>
{{ $shopping_order->shopping_user->shipping_address_2 }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Postcode') }}</div>
{{ $shopping_order->shopping_user->shipping_zipcode }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('City') }}</div>
{{ $shopping_order->shopping_user->shipping_city }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('E-Mail') }}</div>
{{ $shopping_order->shopping_user->shipping_email }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Phone') }}</div>
{{ $shopping_order->shopping_user->shipping_phone }}
</div>
<div class="col-md-3 mb-3">
<div class="text-muted small">{{ __('Country') }}</div>
{{ $shopping_order->shopping_user->shipping_country->getLocated() }}
</div>
</div>
@endif
</div>
@endif
<hr class="m-0">
<div class="card-body">
<h6 class="font-weight-semibold">
@if ($shopping_order->shopping_user->is_from === 'user_order')
@if ($shopping_order->shopping_user->is_for === 'me')
{{ __('order.order_for_consultant') }}
@else
{{ __('order.order_for_client') }}
@endif
@endif
@if ($shopping_order->shopping_user->is_from === 'wizard')
{{ __('order.adviser_order_for_registration') }}
@endif
@if ($shopping_order->shopping_user->is_from === 'membership')
{{ __('order.adviser_order_for_membership') }}
@endif
@if ($shopping_order->shopping_user->is_from === 'shopping')
{{ __('order.client_order_via_shop') }}
@endif
@if ($shopping_order->shopping_user->is_from === 'homeparty')
<h5>{{ __('order.consultant_order_for_home_party') }} </h5>
<hr>
@endif
@if ($shopping_order->shopping_user->is_from === 'collection')
<h5>{{ __('order.adviser_collective_invoice') }}</h5>
<hr>
@endif
</h6>
<style>
table.table-product,
table.table-product tr td,
table.table-product tr th {
border: none;
}
table.table-product tr.border-top td {
border-top: 1px solid #b8b8b9;
}
table.table-product tr.border-bottom td,
table.table-product tr.border-bottom th {
border-bottom: 1px solid #b8b8b9;
}
</style>
@if ($shopping_order->shopping_user->is_from !== 'homeparty' && $shopping_order->shopping_user->is_from !== 'collection')
@include('portal.order._detail_shopping_order')
@endif
</div>
<hr class="m-0">
<div class="card-body">
<h6 class="font-weight-semibold">
{{ __('order.reorder') }}
</h6>
<div class="row">
<div class="col-md-12 mb-2">
<p><em>{!! __('order.reorder_info') !!}</em></p>
<p><a href="{{ route('portal.my_orders.create', ['id' => $shopping_order->id]) }}" class="btn btn-primary">
{{ __('order.reorder') }}
</a></p>
<p>{!! __('order.reorder_info_2', ['country' => $shopping_user->getDeliveryCountry(), 'link' => route('portal.my_data.edit')]) !!}</p>
</div>
</div>
</div>
<hr class="m-0">
<div class="card-body">
<h6 class="font-weight-semibold">
{{ __('tables.payment') }}
</h6>
@if ($shopping_order->txaction !== 'extern')
<div class="card-datatable table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="min-width: 60px">#</th>
<th>{{ __('tables.payment_type') }}</th>
<th>{{ __('tables.total') }}</th>
<th>{{ __('tables.status') }}</th>
<th>{{ __('tables.date') }}</th>
<th>{{ __('tables.reference_number') }}</th>
</tr>
</thead>
<tbody>
@php($count = 0)
@if(isset($shopping_order->shopping_payments) && $shopping_order->shopping_payments)
@foreach ($shopping_order->shopping_payments as $shopping_payment)
@if(isset($shopping_payment) && $shopping_payment)
<tr>
<th scope="row">{{ ++$count }}</th>
<td>{{ $shopping_payment->getPaymentType() }}</td>
<td>{{ $shopping_payment->getPaymentAmount() }}</td>
<td>{!! \App\Services\Payment::getShoppingPaymentBadge($shopping_payment) !!}</td>
<td>{{ $shopping_payment->created_at->format('d.m.Y H:i') }}</td>
<td>{{ $shopping_payment->reference }}</td>
</tr>
@endif
@endforeach
@endif
</tbody>
</table>
</div>
@else
<div class="row">
<div class="col-sm-12">
<div class="alert alert-info p-2 mt-2">
<ul>
<li>{{ __('order.order_via_external_shop') }} </li>
</ul>
</div>
</div>
</div>
@endif
</div>
</div>

View file

@ -0,0 +1,110 @@
<div class="table-responsive">
<table class="table table-product m-0" style="">
<tbody>
<tr class="border-bottom">
<th>{{ __('tables.product') }}</th>
<th class="text-right">
@if($shopping_order->shopping_user->is_from === 'user_order')
{{ __('tables.net_price') }}
@else
{{ __('tables.price') }}
@endif
</th>
<th class="text-right">{{ __('tables.quantity') }}</th>
<th class="text-right">{{ __('tables.sum') }}</th>
</tr>
@foreach($shopping_order->shopping_order_items as $shopping_order_item)
<tr class="border-bottom">
<td class="px-3 py-2">
<div class="media align-items-center">
@if($shopping_order_item->product)
@if($shopping_order_item->product->images)
@if($image = $shopping_order_item->product->images->first())
<img src="{{ route('product_image', [$image->slug]) }}" class="d-block ui-w-80 mr-4" alt>
@endif
@endif
<div class="media-body">
<a href="{{route('admin_product_edit', [$shopping_order_item->product->id])}}" class="d-block"><strong>{{ $shopping_order_item->product->getLang('name') }} </strong>
@if($shopping_order->is_abo)
&nbsp; {!! get_abo_type_badge_by_product($shopping_order_item->product) !!}
@endif
</a>
<small>
<span class="text-muted">{{ __('order.content') }}: </span> {{ $shopping_order_item->product->contents }}<br>
<span class="text-muted">{{ __('order.weight') }}: </span> {{ $shopping_order_item->product->weight }} g<br>
<span class="text-muted">{{ __('order.number') }}: </span> {{ $shopping_order_item->product->number }}
</small>
</div>
@endif
</div>
</td>
<td class="align-middle px-3 py-2 nowrap text-right" style="min-width:100px;">
@if($shopping_order->shopping_user->is_from === 'user_order')
{{ $shopping_order_item->getFormattedPriceNet() }} &euro;
@else
{{ $shopping_order_item->getFormattedPrice() }} &euro;
@endif
</td>
<!-- Set column width -->
<td class="align-middle px-3 py-2 text-right" style="min-width: 60px;">
{{ $shopping_order_item->qty }}
</td>
<!-- Set column width -->
<td class="font-weight-semibold align-middle px-3 py-2 text-right" style="min-width:120px;">
@if($shopping_order->shopping_user->is_from === 'user_order')
{{ $shopping_order_item->getFormattedTotalPriceNet() }} &euro;
@else
{{ $shopping_order_item->getFormattedTotalPrice() }} &euro;
@endif
</td>
</tr>
@endforeach
</tbody>
<tfoot>
<tr class="border-bottom">
<td colspan="3">
<span class="medium-text">{{__('email.checkout_mail_shipping')}}</span>
</td>
<td style="color:#37302d; text-align: right; vertical-align: top;line-height:1.3em;">
<span class="medium-text">
@if($shopping_order->tax > 0)
{{ $shopping_order->getFormattedShipping() }} &euro;
@else
{{ $shopping_order->getFormattedShippingNet() }} &euro;
@endif
</span>
</td>
</tr>
<tr>
<td colspan="3" class="py-1">
<span class="medium-text">{{__('email.checkout_mail_subtotal_ws')}}</span>
</td>
<td class="py-1" style="color:#37302d; text-align: right; vertical-align: top;line-height:1.3em;">
<span class="medium-text">{{ $shopping_order->getFormattedSubtotalWs() }} &euro;</span>
</td>
</tr>
<tr class="border-bottom">
<td colspan="3" class="py-1">
<span class="medium-text">{{__('email.checkout_mail_tax')}}</span>
</td>
<td class="py-1" style="color:#37302d; text-align: right; vertical-align: top;line-height:1.3em;">
<span class="medium-text">{{ $shopping_order->getFormattedTax() }} &euro;</span>
</td>
</tr>
<tr>
<td colspan="3">
<b>{{__('email.checkout_mail_total')}}</b>
</td>
<td style="color:#37302d; text-align: right; vertical-align: top;line-height:1.6em;">
<b>{{ $shopping_order->getFormattedTotalShipping() }} &euro;</b>
<br>
<span style="font-size: 0.8em">{{__('email.checkout_mail_tax_info')}}</span>
</td>
</tr>
</tfoot>
</table>
</div>

View file

@ -0,0 +1,21 @@
@extends('portal.layouts.layout-2')
@section('content')
<style>
.medium, .medium-text {
font-size: 93%;
font-weight: 400;
}
.font-weight-semibold {
font-weight: 600 !important;
color: #6b7758;
}
</style>
<h4 class="font-weight-bold py-2 mb-2">
<a href="{{route('portal.my_orders')}}" class="btn btn-sm btn-default float-right">{{ __('back') }}</a>
{{ __('shop.order_customer') }} <span class="text-muted">#{{$shopping_order->id}}</span>
</h4>
@include('portal.order._detail')
<a href="{{route('portal.my_orders')}}" class="btn btn-sm btn-default mt-2 float-right">{{ __('back') }}</a>
@endsection

View file

@ -0,0 +1,97 @@
@extends('portal.layouts.layout-2')
@section('content')
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<h4 class="font-weight-bold py-2 mb-2">
{{ __('navigation.my_orders') }}
</h4>
<div class="card">
<div class="card-datatable table-responsive">
<table class="table table-striped table-bordered" style="min-width:550px;" id="datatables-orders">
<thead>
<tr>
<th>#</th>
<th>{{__('tables.date')}}</th>
<th>{{__('tables.amount')}}</th>
<th>{{__('tables.status')}}</th>
<th>{{__('tables.shipping')}}</th>
<th>{{__('tables.firstname')}}</th>
<th>{{__('tables.lastname')}}</th>
<th>{{__('tables.email')}}</th>
<th>{{__('tables.invoice')}}</th>
<th>{{__('tables.art')}}</th>
</tr>
</thead>
<tbody>
@if($shopping_user->shopping_order)
@forelse($shopping_user->getAllOrdersByMember() as $shopping_order)
<tr>
<td>
<a href="{{ route('portal.my_orders.show', $shopping_order->id) }}"
class="btn icon-btn btn-sm btn-primary">
<span class="fa fa-eye"></span>
</a>
</td>
<td>{{ $shopping_order->created_at->format('d.m.Y') }}</td>
<td>
<span class="no-line-break">
{{ $shopping_order->getFormattedTotalShipping() }}
</span>
</td>
<td>{!! \App\Services\Payment::getShoppingOrderBadge($shopping_order) !!}</td>
<td>
<span class="badge badge-pill badge-{{ $shopping_order->getShippedColor() }}">
{{ $shopping_order->getShippedType() }}
</span>
</td>
<td>{{ $shopping_order->shopping_user->billing_firstname }}</td>
<td>{{ $shopping_order->shopping_user->billing_lastname }}</td>
<td>{{ $shopping_order->shopping_user->billing_email }}</td>
<td>{{ $shopping_order->isInvoice() ? '<span class="no-line-break"><a href="'.route('storage_file', [$shopping_order->id, 'invoice', 'download']).'" class="btn btn-primary btn-xs"><i class="fa fa-download"></i></a>
<a href="'.route('storage_file', [$shopping_order->id, 'invoice', 'stream']).'" target="_blank" class="btn btn-warning btn-xs"><i class="fa fa-eye"></i></a></span>' : '-';
}}</td>
<td>{!! \App\Services\Payment::getPaymentForBadge($shopping_order) !!}</td>
</tr>
@empty
<tr>
<td colspan="6" class="text-center">{{ __('order.no_orders_found') }}</td>
</tr>
@endforelse
@endif
</tbody>
</table>
</div>
</div>
@endsection
@section('scripts')
<script>
$( document ).ready(function() {
$('#datatables-orders').DataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"order": [[ 1, "desc" ]],
"language": {
"url": "/js/datatables-{{ \App::getLocale() }}.json"
}
});
});
</script>
@endsection

View file

@ -6,7 +6,7 @@
SysAdmin Business Struktur speichern
</h5>
<div class="col-sm-6 mb-2">
{!! Form::open(['url' => route('sysadmin_tool_store', ['business_structur']), 'class' => 'form-horizontal', 'id'=>'filter_sales_member']) !!}
{!! Form::open(['action' => route('sysadmin_tool_store', ['business_structur']), 'class' => 'form-horizontal', 'id'=>'filter_sales_member']) !!}
<button type="submit" name="action" value="store" class="btn btn-primary"><i class="ion"></i> store</button>
{!! Form::close() !!}

View file

@ -10,7 +10,7 @@
<div class="col-sm-6 mb-2">
<p>From shopping_order_items where product_id = 36, 37 | 100, 118</p>
{!! Form::open(['url' => route('sysadmin_tool_store', ['buyings_products']), 'class' => 'form-horizontal', 'id'=>'filter_sales_member']) !!}
{!! Form::open(['action' => route('sysadmin_tool_store', ['buyings_products']), 'class' => 'form-horizontal', 'id'=>'filter_sales_member']) !!}
<button type="submit" name="action" value="store" class="btn btn-primary"><i class="ion"></i> store</button>
{!! Form::close() !!}

Some files were not shown because too many files have changed in this diff Show more