20-02-2026

This commit is contained in:
Kevin Adametz 2026-02-20 17:55:06 +01:00
parent a8b395e20d
commit a00c42e770
252 changed files with 28785 additions and 8907 deletions

View file

@ -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) }}
&euro;</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> &euro;</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>&nbsp;
<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">&times;</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>&nbsp;
<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>

View file

@ -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,