20-02-2026
This commit is contained in:
parent
a8b395e20d
commit
a00c42e770
252 changed files with 28785 additions and 8907 deletions
|
|
@ -25,10 +25,13 @@
|
|||
@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']) !!}
|
||||
@php
|
||||
$addOnlyMode = App\Services\AboHelper::isAddOnlyMode($user_abo, $view);
|
||||
@endphp
|
||||
{!! Form::open(['action' => route('user_abos_update', [$view, $user_abo->id]), 'class' => 'form-horizontal', 'id'=>'cart-order-form', 'data-add-only-mode' => $addOnlyMode ? '1' : '0']) !!}
|
||||
<input type="hidden" name="is_for" value="{{ $user_abo->is_for }}">
|
||||
<div class="card mt-3">
|
||||
@include('admin.abo._order_abo')
|
||||
@include('admin.abo._order_abo', ['add_only_mode' => $addOnlyMode])
|
||||
</div>
|
||||
|
||||
@if($comp_products && Yard::instance('shopping')->getNumComp() > 0)
|
||||
|
|
@ -36,7 +39,7 @@
|
|||
@include('user.order.comp_product')
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
{{ Form::close() }}
|
||||
|
||||
<div class="card mt-3 mb-3">
|
||||
|
|
@ -44,7 +47,47 @@
|
|||
</div>
|
||||
|
||||
|
||||
<a href="{{route('user_abos', [$view])}}" class="btn btn-sm btn-default float-right">{{ __('back') }}</a>
|
||||
<a href="{{route('portal.my_subscriptions')}}" class="btn btn-sm btn-default float-right">{{ __('abo.back') }}</a>
|
||||
|
||||
<div class="modal fade" id="modal-confirm-add" tabindex="-1" role="dialog" aria-labelledby="modal-confirm-add-label" aria-hidden="true"
|
||||
data-title-add-only="{{ __('abo.confirm_add_title') }}"
|
||||
data-title-normal="{{ __('abo.confirm_add_title_normal') }}"
|
||||
data-warning-add-only="{{ __('abo.confirm_add_warning') }}"
|
||||
data-warning-normal="{{ __('abo.confirm_add_warning_normal') }}">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modal-confirm-add-label"></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-3">
|
||||
<i class="fa fa-exclamation-triangle"></i> <span id="confirm-add-warning-text"></span>
|
||||
</div>
|
||||
<table class="table table-sm mb-0">
|
||||
<tr>
|
||||
<td class="font-weight-bold">{{ __('order.article') }}:</td>
|
||||
<td id="confirm-add-product-name"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="font-weight-bold">{{ __('tables.price') }}:</td>
|
||||
<td id="confirm-add-product-price"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="font-weight-bold">{{ __('tables.quantity') }}:</td>
|
||||
<td id="confirm-add-qty-info"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">{{ __('abo.confirm_add_cancel') }}</button>
|
||||
<button type="button" class="btn btn-primary" id="confirm-add-btn">{{ __('abo.confirm_add_ok') }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
|
|
@ -57,4 +100,4 @@
|
|||
|
||||
|
||||
</script>
|
||||
@endsection
|
||||
@endsection
|
||||
|
|
|
|||
|
|
@ -256,6 +256,25 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mb-4">
|
||||
<h5 class="card-header">{{ __('account.preferred_language') }}</h5>
|
||||
<div class="card-body">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-6">
|
||||
<label class="form-label" for="language">{{ __('account.preferred_language') }}</label>
|
||||
<select class="selectpicker" name="language" id="language" data-style="btn-light">
|
||||
@foreach(\App\Models\ShoppingUser::getAvailableLanguages() as $code => $label)
|
||||
<option value="{{ $code }}" {{ ($shopping_user->language ?? \App::getLocale()) === $code ? 'selected' : '' }}>
|
||||
{{ $label }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<p class="badge badge-default mt-2">{{ __('customer.language_hint') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="application/javascript">
|
||||
$( document ).ready(function() {
|
||||
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@
|
|||
<script src="{{ asset('/js/custom.js') }}?v=1{{ get_file_last_time('/js/custom.js') }}"></script>
|
||||
|
||||
|
||||
@stack('scripts')
|
||||
@yield('scripts')
|
||||
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -3,33 +3,49 @@
|
|||
<div class="row">
|
||||
<div class="col-md-3 mb-1">
|
||||
<strong class="mr-2">{{ __('Status') }}:</strong>
|
||||
<div class="d-flex flex-wrap align-items-center mt-1" style="gap: 6px;">
|
||||
<span class="text-big">
|
||||
{!! \App\Services\Payment::getShoppingOrderBadge($shopping_order) !!}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 mb-1">
|
||||
<strong class="mr-2">{{ __('order.shipping') }}:</strong>
|
||||
<div class="d-flex flex-wrap align-items-center mt-1" style="gap: 6px;">
|
||||
@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>
|
||||
<div class="col-md-3 mb-1">
|
||||
<div class="col-md-6 mb-2">
|
||||
<strong class="mr-2">{{ __('order.invoice') }}:</strong>
|
||||
|
||||
<div class="d-flex flex-wrap align-items-center mt-1" style="gap: 6px;">
|
||||
@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>
|
||||
class="btn btn-primary btn-sm" title="Download DE"><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>
|
||||
target="_blank" class="btn btn-warning btn-sm" title="Ansicht DE"><i class="fa fa-eye"></i></a>
|
||||
{{-- Lokalisierte Versionen --}}
|
||||
@foreach($shopping_order->user_invoice->getAvailableLocales() as $locale)
|
||||
<a href="{{ route('storage_file', [$shopping_order->id, 'invoice', 'download', $locale]) }}"
|
||||
class="btn btn-outline-primary btn-sm" title="Download {{ strtoupper($locale) }}">
|
||||
<i class="fa fa-download"></i> {{ strtoupper($locale) }}
|
||||
</a>
|
||||
<a href="{{ route('storage_file', [$shopping_order->id, 'invoice', 'stream', $locale]) }}"
|
||||
class="btn btn-outline-warning btn-sm" title="Ansicht {{ strtoupper($locale) }}">
|
||||
<i class="fa fa-eye"></i> {{ strtoupper($locale) }}
|
||||
</a>
|
||||
@endforeach
|
||||
@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
|
||||
<a href="{{ $shopping_order->wp_invoice_path }}" class="btn btn-secondary btn-xs"><i
|
||||
class="fa fa-external-link-alt"></i> <i class="fa fa-download"></i></a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -279,7 +295,7 @@
|
|||
</h6>
|
||||
@if ($shopping_order->txaction !== 'extern')
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="table table-bordered table-striped">
|
||||
<table class="table table-bordered table-striped" id="datatable-order-payments">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="min-width: 60px">#</th>
|
||||
|
|
@ -291,24 +307,36 @@
|
|||
</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
|
||||
{{-- Daten werden per AJAX über DataTables geladen --}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@push('scripts')
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#datatable-order-payments').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: '{!! route('portal.my_orders.payments_datatable', $shopping_order->id) !!}',
|
||||
columns: [
|
||||
{ data: 'line_number', name: 'line_number', searchable: false, orderable: false },
|
||||
{ data: 'payment_type', name: 'clearingtype' },
|
||||
{ data: 'amount', name: 'amount' },
|
||||
{ data: 'status', name: 'txaction' },
|
||||
{ data: 'created_at', name: 'created_at' },
|
||||
{ data: 'reference', name: 'reference' },
|
||||
],
|
||||
bLengthChange: false,
|
||||
bPaginate: false,
|
||||
bInfo: false,
|
||||
ordering: false,
|
||||
language: {
|
||||
url: '/js/datatables-{{ \App::getLocale() }}.json'
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@else
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
|
|
|||
|
|
@ -19,79 +19,59 @@
|
|||
<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">
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="table table-striped table-bordered" 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>
|
||||
<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
|
||||
{{-- Daten werden per AJAX über DataTables geladen --}}
|
||||
</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"
|
||||
$(document).ready(function() {
|
||||
$('#datatables-orders').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: '{!! route('portal.my_orders.datatable') !!}',
|
||||
order: [[1, 'desc']],
|
||||
columns: [
|
||||
{ data: 'id', name: 'id', searchable: false, orderable: true },
|
||||
{ data: 'created_at', name: 'shopping_orders.created_at' },
|
||||
{ data: 'total_shipping', name: 'shopping_orders.total_shipping' },
|
||||
{ data: 'txaction', name: 'shopping_orders.txaction' },
|
||||
{ data: 'shipped', name: 'shopping_orders.shipped' },
|
||||
{ data: 'firstname', name: 'shopping_user.billing_firstname', orderable: false },
|
||||
{ data: 'lastname', name: 'shopping_user.billing_lastname', orderable: false },
|
||||
{ data: 'email', name: 'shopping_user.billing_email', orderable: false },
|
||||
{ data: 'invoice', name: 'invoice', searchable: false, orderable: false },
|
||||
{ data: 'payment_for', name: 'shopping_orders.payment_for' },
|
||||
],
|
||||
bLengthChange: false,
|
||||
iDisplayLength: 50,
|
||||
language: {
|
||||
url: '/js/datatables-{{ \App::getLocale() }}.json'
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
@endsection
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue