commit 08-2025
This commit is contained in:
parent
9ae662f63e
commit
480fdc65ed
404 changed files with 65310 additions and 2600431 deletions
|
|
@ -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')
|
||||
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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) }}
|
||||
|
|
|
|||
|
|
@ -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) }}
|
||||
<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) }} €</strong>
|
||||
({{ __('team.own') }}: {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_total) }} € | {{ __('team.shop') }}: {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_total_shop) }} €)
|
||||
</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) }})
|
||||
<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)
|
||||
<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') }})
|
||||
</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) }} €</strong></span>
|
||||
|
||||
({{ __('team.sales_store_net') }}: {{ formatNumber($TreeCalcBot->__get('business_user')->sales_volume_total_shop) }} € / {{ $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) }} €</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) }} €</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) }} €</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()) }} €</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')}} €</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) }} €</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) }} €</strong></td>
|
||||
</tr>
|
||||
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
69
resources/views/admin/business_optimized/error.blade.php
Normal file
69
resources/views/admin/business_optimized/error.blade.php
Normal 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
|
||||
159
resources/views/admin/business_optimized/show.blade.php
Normal file
159
resources/views/admin/business_optimized/show.blade.php
Normal 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
|
||||
189
resources/views/admin/business_optimized/structure.blade.php
Normal file
189
resources/views/admin/business_optimized/structure.blade.php
Normal 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>×</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
|
||||
|
|
@ -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> --}}
|
||||
|
||||
</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
|
||||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
<div class="custom-dd dd" id="nestable_list_check" data-href-save="{{ url('/admin/tags/update')}}">
|
||||
<ol class="dd-list">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -86,6 +86,9 @@
|
|||
"bLengthChange": false,
|
||||
"iDisplayLength": 50,
|
||||
"order": [[ 1, "asc" ]],
|
||||
"columnDefs": [
|
||||
{ "type": "num", "targets": 1 }
|
||||
],
|
||||
"language": {
|
||||
"url": "/js/datatables-{{ \App::getLocale() }}.json"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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') }}
|
||||
|
|
|
|||
|
|
@ -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']}}">
|
||||
|
|
|
|||
|
|
@ -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') }}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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') }}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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> Export kompakte Liste als xls</button>
|
||||
|
||||
|
|
|
|||
|
|
@ -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> Export als xls</button>
|
||||
<hr>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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')) }}
|
||||
|
|
|
|||
153
resources/views/admin/revenue/index.blade.php
Normal file
153
resources/views/admin/revenue/index.blade.php
Normal 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
|
||||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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') --}}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
53
resources/views/auth/change.blade.php
Normal file
53
resources/views/auth/change.blade.php
Normal 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
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
124
resources/views/components/abo/product-table-styles.blade.php
Normal file
124
resources/views/components/abo/product-table-styles.blade.php
Normal 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>
|
||||
117
resources/views/components/abo/product-table.blade.php
Normal file
117
resources/views/components/abo/product-table.blade.php
Normal 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> </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() !!}
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
227
resources/views/emails/customer_otp.blade.php
Normal file
227
resources/views/emails/customer_otp.blade.php
Normal 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>
|
||||
486
resources/views/errors/illustrated-layout.blade.php
Normal file
486
resources/views/errors/illustrated-layout.blade.php
Normal 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>
|
||||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
38
resources/views/errors/minimal.blade.php
Normal file
38
resources/views/errors/minimal.blade.php
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
35
resources/views/portal/abo/_create_basis_product.blade.php
Normal file
35
resources/views/portal/abo/_create_basis_product.blade.php
Normal 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() !!}
|
||||
|
||||
|
||||
|
||||
192
resources/views/portal/abo/_create_check.blade.php
Normal file
192
resources/views/portal/abo/_create_check.blade.php
Normal 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() }} € </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() !!}
|
||||
|
||||
15
resources/views/portal/abo/_create_data.blade.php
Normal file
15
resources/views/portal/abo/_create_data.blade.php
Normal 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() !!}
|
||||
34
resources/views/portal/abo/_create_info.blade.php
Normal file
34
resources/views/portal/abo/_create_info.blade.php
Normal 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() !!}
|
||||
|
|
@ -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() !!}
|
||||
|
|
@ -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>
|
||||
|
|
@ -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> </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
|
||||
18
resources/views/portal/abo/componenten/vat-info.blade.php
Normal file
18
resources/views/portal/abo/componenten/vat-info.blade.php
Normal 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>
|
||||
60
resources/views/portal/abo/my_abo.blade.php
Executable file
60
resources/views/portal/abo/my_abo.blade.php
Executable 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
|
||||
174
resources/views/portal/abo/my_abo_create.blade.php
Normal file
174
resources/views/portal/abo/my_abo_create.blade.php
Normal 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
|
||||
114
resources/views/portal/abo/no_shopping_user.blade.php
Normal file
114
resources/views/portal/abo/no_shopping_user.blade.php
Normal 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
|
||||
53
resources/views/portal/auth/change.blade.php
Normal file
53
resources/views/portal/auth/change.blade.php
Normal 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
|
||||
74
resources/views/portal/auth/login.blade.php
Normal file
74
resources/views/portal/auth/login.blade.php
Normal 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
|
||||
184
resources/views/portal/auth/verify-otp.blade.php
Normal file
184
resources/views/portal/auth/verify-otp.blade.php
Normal 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
|
||||
437
resources/views/portal/customer/_edit.blade.php
Normal file
437
resources/views/portal/customer/_edit.blade.php
Normal 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>
|
||||
328
resources/views/portal/customer/_edit_form.blade.php
Normal file
328
resources/views/portal/customer/_edit_form.blade.php
Normal 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>
|
||||
33
resources/views/portal/customer/edit.blade.php
Executable file
33
resources/views/portal/customer/edit.blade.php
Executable 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>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
|
||||
|
||||
|
||||
|
||||
@endsection
|
||||
32
resources/views/portal/dashboard.blade.php
Executable file
32
resources/views/portal/dashboard.blade.php
Executable 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
|
||||
66
resources/views/portal/dashboard/settings.blade.php
Normal file
66
resources/views/portal/dashboard/settings.blade.php
Normal 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>
|
||||
|
||||
|
||||
192
resources/views/portal/layout/application.blade.php
Normal file
192
resources/views/portal/layout/application.blade.php
Normal 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>
|
||||
136
resources/views/portal/layouts/application.blade.php
Normal file
136
resources/views/portal/layouts/application.blade.php
Normal 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>
|
||||
125
resources/views/portal/layouts/auth.blade.php
Executable file
125
resources/views/portal/layouts/auth.blade.php
Executable 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>
|
||||
|
|
@ -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"> <span style="text-transform:none;">{{ $name }}</span>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
29
resources/views/portal/layouts/includes/layout-footer.blade.php
Executable file
29
resources/views/portal/layouts/includes/layout-footer.blade.php
Executable 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>
|
||||
|
||||
|
||||
26
resources/views/portal/layouts/includes/layout-navbar-without.blade.php
Executable file
26
resources/views/portal/layouts/includes/layout-navbar-without.blade.php
Executable 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"> {{ $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>
|
||||
53
resources/views/portal/layouts/includes/layout-navbar.blade.php
Executable file
53
resources/views/portal/layouts/includes/layout-navbar.blade.php
Executable 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"> {{ $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> {{ __('navigation.logout') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
47
resources/views/portal/layouts/includes/layout-sidenav.blade.php
Executable file
47
resources/views/portal/layouts/includes/layout-sidenav.blade.php
Executable 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
|
||||
76
resources/views/portal/layouts/layout-2.blade.php
Executable file
76
resources/views/portal/layouts/layout-2.blade.php
Executable 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
|
||||
97
resources/views/portal/my_orders.blade.php
Executable file
97
resources/views/portal/my_orders.blade.php
Executable 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
|
||||
317
resources/views/portal/order/_detail.blade.php
Normal file
317
resources/views/portal/order/_detail.blade.php
Normal 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() }} €
|
||||
</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>
|
||||
110
resources/views/portal/order/_detail_shopping_order.blade.php
Normal file
110
resources/views/portal/order/_detail_shopping_order.blade.php
Normal 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)
|
||||
{!! 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() }} €
|
||||
@else
|
||||
{{ $shopping_order_item->getFormattedPrice() }} €
|
||||
@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() }} €
|
||||
@else
|
||||
{{ $shopping_order_item->getFormattedTotalPrice() }} €
|
||||
@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() }} €
|
||||
@else
|
||||
{{ $shopping_order->getFormattedShippingNet() }} €
|
||||
@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() }} €</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() }} €</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() }} €</b>
|
||||
<br>
|
||||
<span style="font-size: 0.8em">{{__('email.checkout_mail_tax_info')}}</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
21
resources/views/portal/order/my_order_show.blade.php
Normal file
21
resources/views/portal/order/my_order_show.blade.php
Normal 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
|
||||
97
resources/views/portal/order/my_orders.blade.php
Executable file
97
resources/views/portal/order/my_orders.blade.php
Executable 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
|
||||
|
|
@ -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() !!}
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue