20-02-2026
This commit is contained in:
parent
a8b395e20d
commit
a00c42e770
252 changed files with 28785 additions and 8907 deletions
|
|
@ -1,149 +1,182 @@
|
|||
|
||||
|
||||
<div class="row">
|
||||
<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') }}
|
||||
{{ 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') }}
|
||||
{{ 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') }}
|
||||
{{ App\Services\UserService::getOrderInfo('tax_free') }}
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
<div class="text-muted small">{{ __('payment.reverse_charge_procedure') }}n</div>
|
||||
{{ App\Services\UserService::getOrderInfo('user_reverse_charge') }}
|
||||
{{ App\Services\UserService::getOrderInfo('user_reverse_charge') }}
|
||||
</div>
|
||||
</div>
|
||||
{!! Form::open(['action' => route('wizard_store_payment', [20]), 'class' => 'form-horizontal']) !!}
|
||||
<div class="table-responsive">
|
||||
<table class="table table- m-0" id="membership_package_payment">
|
||||
<tbody class="switchers-stacked">
|
||||
{!! Form::open([
|
||||
'action' => route('wizard_store_payment', [20]),
|
||||
'class' => 'form-horizontal',
|
||||
'id' => 'wizard-payment-form',
|
||||
]) !!}
|
||||
|
||||
<div class="alert alert-info mb-3">
|
||||
<i class="fa fa-info-circle mr-1"></i>
|
||||
{!! __('register.wizard_package_info') !!}
|
||||
</div>
|
||||
<style>
|
||||
.switcher-indicator.error-box-shadow,
|
||||
.error-box-shadow {
|
||||
box-shadow: 0 0 1px 1px #aa4343;
|
||||
}
|
||||
|
||||
.switcher-indicator {
|
||||
box-shadow: 0 0 1px 1px #a3a3a3;
|
||||
}
|
||||
</style>
|
||||
<div class="table-responsive" id="membership_package_payment_container" style="border-radius: 10px;">
|
||||
<table class="table table- m-0" id="membership_package_payment">
|
||||
<tbody class="switchers-stacked">
|
||||
@php($counter = 1)
|
||||
@foreach($products as $product)
|
||||
@foreach ($products as $product)
|
||||
<tr>
|
||||
<td class="text-center align-middle px-0">
|
||||
<label class="switcher switcher-secondary">
|
||||
<input type="radio" class="switcher-input"
|
||||
data-price="{{$product->getPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country)}}"
|
||||
value="{{$product->id}}" name="switchers-package-wizard" @if($counter == 2) checked @endif >
|
||||
<span class="switcher-indicator">
|
||||
<span class="switcher-yes"></span>
|
||||
<span class="switcher-no"></span>
|
||||
<input type="radio" class="switcher-input"
|
||||
data-price="{{ $product->getPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country) }}"
|
||||
data-is-membership-only="{{ $product->is_membership_only ? '1' : '0' }}"
|
||||
value="{{ $product->id }}" name="switchers-package-wizard">
|
||||
<span class="switcher-indicator" style="margin-left: 5px;">
|
||||
<span class="switcher-yes"></span>
|
||||
<span class="switcher-no"></span>
|
||||
</span>
|
||||
<span class="switcher-label"></span>
|
||||
</label>
|
||||
</td>
|
||||
<td class="p-4">
|
||||
<div class="media align-items-center">
|
||||
@if(count($product->images))
|
||||
<img src="{{ route('product_image', [$product->images->first()->slug]) }}" class="d-block ui-w-60 ui-bordered mr-4" alt="">
|
||||
@if (count($product->images))
|
||||
<img src="{{ route('product_image', [$product->images->first()->slug]) }}"
|
||||
class="d-block ui-w-60 ui-bordered mr-4" alt="">
|
||||
@endif
|
||||
<div class="media-body">
|
||||
<h5 class="d-block text-dark">{{$product->getLang('name')}}</h5>
|
||||
{!! $product->getLang('copy') !!}
|
||||
<h5 class="d-block text-dark">{{ $product->getLang('name') }}</h5>
|
||||
{!! $product->getLang('copy') !!}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-right font-weight-semibold align-middle p-4">
|
||||
<span class="no-line-break">{{ $product->getFormattedPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country) }} €</span> /p.a.
|
||||
@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>
|
||||
<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>
|
||||
@php($counter++)
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@if($products_on_board)
|
||||
<div class="table-responsive">
|
||||
<table class="table table- m-0" id="membership_onboarding_package">
|
||||
<tbody class="">
|
||||
@foreach($products_on_board as $product)
|
||||
<tr>
|
||||
<td class="text-center align-middle px-0">
|
||||
<label class="switcher switcher-square switcher-secondary">
|
||||
<input type="checkbox" class="switcher-input"
|
||||
data-price="{{$product->getPriceWith(\App\Services\UserService::getTaxFree(), false, \App\Services\UserService::$user_country)}}"
|
||||
name="products_on_board[]" value="{{$product->id}}">
|
||||
<span class="switcher-indicator">
|
||||
<span class="switcher-yes"></span>
|
||||
<span class="switcher-no"></span>
|
||||
</span>
|
||||
<span class="switcher-label"></span>
|
||||
</label>
|
||||
</td>
|
||||
<td class="p-4">
|
||||
<div class="media align-items-center">
|
||||
@if(count($product->images))
|
||||
<img src="{{ route('product_image', [$product->images->first()->slug]) }}" class="d-block ui-w-60 ui-bordered mr-4" alt="">
|
||||
@endif
|
||||
<div class="media-body">
|
||||
<h5 class="d-block text-dark">{{$product->getLang('name')}}</h5>
|
||||
{!! $product->getLang('copy') !!}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="text-right font-weight-semibold align-middle p-4">
|
||||
<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 class="alert alert-danger mt-2 d-none" id="wizard-selection-error">
|
||||
<i class="fa fa-exclamation-circle mr-1"></i>
|
||||
{{ __('register.wizard_no_selection') }}
|
||||
</div>
|
||||
|
||||
<div class="text-left mt-3">
|
||||
<hr>
|
||||
<div class="float-right">
|
||||
|
||||
<strong>{{ __('order.total_sum') }} @if (\App\Services\UserService::getTaxFree())
|
||||
{{ __('order.net') }}
|
||||
@else
|
||||
{{ __('order.gross') }}
|
||||
@endif: <span id="card_total_price">0</span> €</strong>
|
||||
</div>
|
||||
@endif
|
||||
<div class="text-left mt-3">
|
||||
<hr>
|
||||
{{-- <label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="abo_options">
|
||||
<span class="custom-control-label secondary"><strong>{{__('payment.auto_renewal_hl')}}:</strong> {{__('payment.auto_renewal_line_1')}}</span>
|
||||
<p class="text-muted">{{__('payment.auto_renewal_line_2')}}</p>
|
||||
</label>
|
||||
<hr>
|
||||
--}}
|
||||
<div class="float-right">
|
||||
|
||||
<strong>{{ __('order.total_sum') }} @if(\App\Services\UserService::getTaxFree()) {{ __('order.net') }} @else {{ __('order.gross') }} @endif: <span id="card_total_price">0</span> €</strong>
|
||||
<button type="button" id="btn-wizard-submit"
|
||||
class="btn btn-secondary">{{ __('payment.select_and_proceed_to_checkout') }}</button>
|
||||
<br><br>
|
||||
<em class="small text-center"> <i class="fa fa-lock"></i> {{ __('payment.checkout_ssl_server') }}</em>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
|
||||
{{-- Modal: Warnung bei reiner Mitgliedschaft ohne Starterpaket --}}
|
||||
<div class="modal fade" id="starterWarningModal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="starterWarningModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content border-warning">
|
||||
<div class="modal-header bg-warning text-dark">
|
||||
<h5 class="modal-title" id="starterWarningModalLabel"><i
|
||||
class="fa fa-exclamation-triangle mr-2"></i>{{ __('register.starter_warning_title') }}</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="alert alert-warning mb-0">
|
||||
<i class="fa fa-info-circle mr-1"></i>
|
||||
{!! __('register.starter_warning_text') !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-warning"
|
||||
data-dismiss="modal">{{ __('register.starter_warning_back') }}</button>
|
||||
<button type="button" class="btn btn-outline-secondary"
|
||||
id="btn-confirm-membership-only">{{ __('register.starter_warning_confirm') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-secondary">{{ __('payment.select_and_proceed_to_checkout') }}</button>
|
||||
<br><br>
|
||||
<em class="small text-center"> <i class="fa fa-lock"></i> {{ __('payment.checkout_ssl_server') }}</em>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
function calculate_package_payment(){
|
||||
var price_total = 0;
|
||||
$('#membership_package_payment .switcher-input').each(function () {
|
||||
if($(this).prop('checked')){
|
||||
price_total += parseFloat($(this).data('price'));
|
||||
}
|
||||
});
|
||||
$('#membership_onboarding_package .switcher-input').each(function () {
|
||||
if($(this).prop('checked')){
|
||||
price_total += parseFloat($(this).data('price'));
|
||||
}
|
||||
});
|
||||
$('#card_total_price').text(price_total.toFixed(2).toString().replace(".", ","));
|
||||
|
||||
}
|
||||
$('#membership_package_payment .switcher-input').on('change', function () {
|
||||
calculate_package_payment();
|
||||
});
|
||||
$('#membership_onboarding_package .switcher-input').on('change', function () {
|
||||
calculate_package_payment();
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
function calculate_package_payment() {
|
||||
var price_total = 0;
|
||||
$('#membership_package_payment .switcher-input').each(function() {
|
||||
if ($(this).prop('checked')) {
|
||||
price_total += parseFloat($(this).data('price'));
|
||||
}
|
||||
});
|
||||
$('#card_total_price').text(price_total.toFixed(2).toString().replace(".", ","));
|
||||
}
|
||||
$('#membership_package_payment .switcher-input').on('change', function() {
|
||||
calculate_package_payment();
|
||||
$('#wizard-selection-error').addClass('d-none');
|
||||
$('#membership_package_payment_container').removeClass('error-box-shadow');
|
||||
$('.switcher-indicator').removeClass('error-box-shadow');
|
||||
});
|
||||
</script>
|
||||
calculate_package_payment();
|
||||
|
||||
// Submit mit Warn-Modal bei reiner Mitgliedschaft
|
||||
$('#btn-wizard-submit').on('click', function() {
|
||||
var selected = $('input[name="switchers-package-wizard"]:checked');
|
||||
if (!selected.length) {
|
||||
$('#wizard-selection-error').removeClass('d-none');
|
||||
$('.switcher-indicator').addClass('error-box-shadow');
|
||||
$('#membership_package_payment_container').addClass('error-box-shadow');
|
||||
$('html, body').animate({
|
||||
scrollTop: $('#membership_package_payment').offset().top - 100
|
||||
}, 300);
|
||||
return;
|
||||
}
|
||||
if (selected.data('is-membership-only') == '1') {
|
||||
$('#starterWarningModal').modal('show');
|
||||
} else {
|
||||
$('#wizard-payment-form').submit();
|
||||
}
|
||||
});
|
||||
|
||||
$('#btn-confirm-membership-only').on('click', function() {
|
||||
$('#starterWarningModal').modal('hide');
|
||||
$('#wizard-payment-form').submit();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
@endif
|
||||
|
||||
<h4 class="font-weight-bold py-2 mb-2">
|
||||
{{__('register.complete_registration')}}
|
||||
{{ __('register.complete_registration') }}
|
||||
</h4>
|
||||
|
||||
<div id="smartwizard-3" class="smartwizard-register">
|
||||
|
|
@ -26,8 +26,8 @@
|
|||
<a href="#smartwizard-3-step-1" class="mb-3">
|
||||
<span class="sw-done-icon ion ion-md-checkmark"></span>
|
||||
<span class="sw-number">1</span>
|
||||
{{__('register.package')}}
|
||||
<div class="text-muted small">{{__('register.select')}}</div>
|
||||
{{ __('register.package') }}
|
||||
<div class="text-muted small">{{ __('register.select') }}</div>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
@ -35,11 +35,14 @@
|
|||
<div class="mb-3">
|
||||
<div id="smartwizard-3-step-1" class="card animated fadeIn">
|
||||
<div class="card-body">
|
||||
@if($userHistoryWizardPayment && $userHistoryWizardPayment->status > 2)
|
||||
<h6 class="alert badge-{{$userHistoryWizardPayment->getStatusColor()}}">{{__('membership.payment_has_been_made') }} {{__('membership.status') }} {{ trans('payment.status.'.$userHistoryWizardPayment->getStatusType())}}</h6>
|
||||
@if ($userHistoryWizardPayment && $userHistoryWizardPayment->status > 2)
|
||||
<h6 class="alert badge-{{ $userHistoryWizardPayment->getStatusColor() }}">
|
||||
{{ __('membership.payment_has_been_made') }} {{ __('membership.status') }}
|
||||
{{ trans('payment.status.' . $userHistoryWizardPayment->getStatusType()) }}</h6>
|
||||
<h5 class="card-header bg-light">
|
||||
<a href="#" class="" data-toggle="collapse" data-target="#collapsePaymentForm" aria-expanded="false" aria-controls="collapsePaymentForm">
|
||||
<i class="fa fa-caret-expand"></i> {{ __('register.open_payment_options') }}
|
||||
<a href="#" class="" data-toggle="collapse" data-target="#collapsePaymentForm"
|
||||
aria-expanded="false" aria-controls="collapsePaymentForm">
|
||||
<i class="fa fa-caret-expand"></i> {{ __('register.open_payment_options') }}
|
||||
</a>
|
||||
</h5>
|
||||
<div class="collapse" id="collapsePaymentForm">
|
||||
|
|
@ -63,7 +66,7 @@
|
|||
backButtonSupport: true,
|
||||
useURLhash: false,
|
||||
showStepURLhash: false,
|
||||
selected: '{{$step}}',
|
||||
selected: '{{ $step }}',
|
||||
toolbarSettings: {
|
||||
showNextButton: false,
|
||||
showPreviousButton: false,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue