commit 08-2025
This commit is contained in:
parent
9b54eb0512
commit
02f2a4c23e
184 changed files with 31653 additions and 22327 deletions
|
|
@ -200,7 +200,7 @@
|
|||
|
||||
@if(Yard::instance('shopping')->content()->count())
|
||||
<!-- CART -->
|
||||
{!! Form::open(['url' => url(Util::getPostRoute().'card/update'), 'class' => 'cartContent clearfix', 'id'=>'']) !!}
|
||||
{!! Form::open(['action' => url(Util::getPostRoute().'card/update'), 'class' => 'cartContent clearfix', 'id'=>'']) !!}
|
||||
|
||||
<!-- cart content -->
|
||||
<div id="cartContent">
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@
|
|||
|
||||
<div class="m-checkout">
|
||||
|
||||
{!! Form::open(['url' => route('checkout.checkout_card_final'), 'class' => 'row clearfix', 'id'=>'checkout_card_final']) !!}
|
||||
{!! Form::open(['action' => route('checkout.checkout_card_final'), 'class' => 'row clearfix', 'id'=>'checkout_card_final']) !!}
|
||||
|
||||
{!! Form::hidden('selected_country', '') !!}
|
||||
{!! Form::hidden('is_for', $shopping_user->is_for) !!}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
<p>Du interessierst Dich für unser Geschäft oder hast Fragen zu den Produkten? Dann freuen wir uns auf eine Nachricht von Dir. Wir werden uns im Anschluss sobald wie möglich bei Dir zurückmelden.</p>
|
||||
|
||||
<div class="box-static box-transparent box-bordered padding-20">
|
||||
{!! Form::open(['url' => '/kontakt']) !!}
|
||||
{!! Form::open(['action' => '/kontakt']) !!}
|
||||
<div class="text-right" style="margin-bottom: 8px; margin-top: -16px;">
|
||||
<em class="small">* {{trans('register.required_fields')}}</em>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@
|
|||
</div>
|
||||
<hr>
|
||||
<div class="shop-item-price text-right" style="line-height: 1.3em">
|
||||
{!! Form::open(['url' => url(Util::getPostRoute().'card/add/'.$product->id), 'class' => 'mb-0', 'id'=>'']) !!}
|
||||
{!! Form::open(['action' => url(Util::getPostRoute().'card/add/'.$product->id), 'class' => 'mb-0', 'id'=>'']) !!}
|
||||
<div class="qty float-left">
|
||||
<input type="number" value="1" name="quantity" maxlength="3" max="999" min="1"><br>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@
|
|||
|
||||
<div class="box-static box-transparent box-bordered padding-20">
|
||||
|
||||
{!! Form::open(['url' => '/registrierung']) !!}
|
||||
{!! Form::open(['action' => '/registrierung']) !!}
|
||||
@if(isset($from_member_id))
|
||||
{!! Form::hidden('from_member_id', $from_member_id) !!}
|
||||
@endif
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -13,7 +13,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">
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<a href="{{route('admin_customer_detail', [$shopping_user->id])}}" class="btn btn-sm btn-default float-right">zurück</a>
|
||||
{{ __('Kunden Details') }} bearbeiten
|
||||
</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>
|
||||
|
|
|
|||
|
|
@ -1,114 +0,0 @@
|
|||
@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">
|
||||
{{ __('navigation.products') }} {{ __('navigation.sales_volumes') }}
|
||||
</h5>
|
||||
<div class="card-body">
|
||||
{!! Form::open(['url' => route('admin_evaluation_sales_volumes_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>
|
||||
<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="product_sales_vol_filter_month">
|
||||
@foreach($filter_months as $key=>$value)
|
||||
<option value="{{$key}}" @if(session('product_sales_vol_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="product_sales_vol_filter_year">
|
||||
@foreach($filter_years as $key=>$value)
|
||||
<option value="{{$value}}" @if(session('product_sales_vol_filter_year') == $value) selected @endif>{{$value}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
|
||||
<div class="card">
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="table table-striped table-bordered" id="datatable-sales-volume">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{__('#') }}</th>
|
||||
<th>{{__('tables.product')}}</th>
|
||||
<th>{{__('tables.article_no')}}</th>
|
||||
<th>{{__('tables.quantity')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
$( document ).ready(function() {
|
||||
|
||||
|
||||
var oTable = $('#datatable-sales-volume').DataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
"stateSave": true,
|
||||
"searching": false,
|
||||
ajax: {
|
||||
url: '{!! route('admin_evaluation_sales_volumes_datatable') !!}',
|
||||
data: function(d) {
|
||||
d.product_sales_vol_filter_month = $('select[name=product_sales_vol_filter_month]').val();
|
||||
d.product_sales_vol_filter_year = $('select[name=product_sales_vol_filter_year]').val();
|
||||
}
|
||||
},
|
||||
"order": [[0, "asc" ]],
|
||||
"columns": [
|
||||
{ data: 'id', orderable: true, searchable: false },
|
||||
{ data: 'name', name: 'name', orderable: true, searchable: false },
|
||||
{ data: 'number', name: 'number', orderable: true, searchable: false },
|
||||
{ data: 'value', name: 'value', orderable: true, searchable: false },
|
||||
|
||||
],
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 100,
|
||||
"language": {
|
||||
"url": "/js/datatables-{{ \App::getLocale() }}.json"
|
||||
}
|
||||
});
|
||||
|
||||
$('select.on_change_select_filter').on('change', function(){
|
||||
oTable.draw();
|
||||
});
|
||||
|
||||
$('input.on_keyup_input_filter').on('keyup', function(){
|
||||
oTable.draw();
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -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>
|
||||
|
|
@ -56,7 +56,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">
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
{!! Form::open(['url' => route('admin_lead_download'), 'class' => '']) !!}
|
||||
{!! Form::open(['action' => route('admin_lead_download'), 'class' => '']) !!}
|
||||
<div class="form-row align-items-center">
|
||||
<div class="col-sm-5 col-md-5">
|
||||
<label class="form-label" for="filter_user_shop_id">Art Vertriebspartner</label>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
</div>
|
||||
</h5>
|
||||
<div class="card-body">
|
||||
{!! Form::open(['url' => route('admin_lead_update')."?show=".$show, 'class' => 'form-horizontal', 'id'=>'white-label-form']) !!}
|
||||
{!! Form::open(['action' => route('admin_lead_update')."?show=".$show, 'class' => 'form-horizontal', 'id'=>'white-label-form']) !!}
|
||||
<input type="hidden" name="user_id" value="{{$user->id}}">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-12">
|
||||
|
|
|
|||
|
|
@ -1,58 +0,0 @@
|
|||
@if($m_data_error)
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
<li>{{ $m_data_error }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="card-body m-0 p-0">
|
||||
<div class="table-responsive">
|
||||
<table class="table card-table m-0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th style="width: 33%">{{ __('Name') }}</th>
|
||||
<th style="width: 66%">{{ __('Account ID') }}</th>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ \App\Services\HTMLHelper::getSalutationLang($user->account->m_salutation) }} {{ $user->account->m_first_name }} {{ $user->account->m_last_name }}</td>
|
||||
<td>{{ $user->account->m_account }}</td>
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table card-table m-0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th style="width: 33%">{{ __('Art Vertriebspartner') }}</th>
|
||||
<th style="width: 33%">{{ __('Rolle') }}</th>
|
||||
<th style="width: 33%">{{ __('Sponsor') }}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>@if($user->lead_type) {{ $user->lead_type->name }} @else Standard @endif</td>
|
||||
<td>@if($user->user_level){{ $user->user_level->name }}@endif</td>
|
||||
<td>@if($user->m_sponsor){{ $user->getMUserSponsor() }}@endif</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@if($user->account->m_notes)
|
||||
<table class="table card-table m-0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>{{ __('weitere Daten') }}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{$user->account->m_notes}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
</div>
|
||||
|
||||
<div class="card mb-2">
|
||||
{!! Form::open(['url' => route('admin_level_store',), 'class' => 'form-horizontal', 'id'=>'']) !!}
|
||||
{!! Form::open(['action' => route('admin_level_store',), 'class' => 'form-horizontal', 'id'=>'']) !!}
|
||||
<input type="hidden" name="id" value="@if($value->id>0){{$value->id}}@else new @endif">
|
||||
<h5 class="card-header">
|
||||
{{ __('Rolle') }}
|
||||
|
|
|
|||
|
|
@ -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_paycredit'), 'class' => 'modal-content form-prevent-multiple-submits', 'enctype' => 'multipart/form-data']) !!}
|
||||
{!! Form::open(['action' => route('admin_payments_paycredit'), 'class' => 'modal-content form-prevent-multiple-submits', 'enctype' => 'multipart/form-data']) !!}
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">
|
||||
{{ __('Einkaufsguthaben') }}
|
||||
|
|
|
|||
|
|
@ -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_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">
|
||||
{{ __('Vertriebspartner') }}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{!! Form::open(['url' => route('admin_promotion_detail', [$data['promotion_id']]), 'class' => 'modal-content form-prevent-multiple-submits', 'enctype' => 'multipart/form-data']) !!}
|
||||
{!! Form::open(['action' => route('admin_promotion_detail', [$data['promotion_id']]), 'class' => 'modal-content form-prevent-multiple-submits', 'enctype' => 'multipart/form-data']) !!}
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">
|
||||
{{ __('Produkt') }} <span class="font-weight-light">hinzufügen / bearbeiten</span>
|
||||
|
|
|
|||
|
|
@ -1,45 +0,0 @@
|
|||
{!! Form::open(['url' => route('admin_payments_credit'), 'class' => 'modal-content form-prevent-multiple-submits', 'enctype' => 'multipart/form-data']) !!}
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">
|
||||
{{ __('Gutschrift') }}
|
||||
<span class="font-weight-light">hinzufügen</span>
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<input type="hidden" name="action" value="{{$data['action']}}">
|
||||
<input type="hidden" name="id" value="{{$data['id']}}">
|
||||
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col-12">
|
||||
<label for="member_id" class="form-label">{{ __('Vertriebspartner auswählen') }}*</label>
|
||||
<select class="selectpicker" name="member_id" data-style="btn-light" data-live-search="true" required>
|
||||
{!! HTMLHelper::getMembersOptions(0, true) !!}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-12">
|
||||
<label class="form-label" for="credit">{{ __('Betrag') }} netto*</label>
|
||||
{{ Form::text('credit', '', array('placeholder'=>__('in Euro'), 'class'=>'form-control', 'required'=>true)) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-12">
|
||||
<label class="form-label" for="message">{{ __('Mitteilung') }}*</label>
|
||||
{{ Form::textarea('message', '' , array('placeholder'=>__('Mitteilung'), 'class'=>'form-control', 'rows'=>4, 'required'=>true)) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
|
||||
<button type="submit" class="btn btn-primary button-prevent-multiple-submits">{{__('Gutschrift hinzufügen')}}</button>
|
||||
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
|
||||
<script type="text/javascript">
|
||||
$( document ).ready(function() {
|
||||
|
||||
});
|
||||
</script>
|
||||
|
|
@ -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']) !!}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@
|
|||
<td><div class="no-line-break">{{ formatDate($user_pay_credit->created_at) }}</div></td>
|
||||
|
||||
@if($user_pay_credit->shopping_order_id)
|
||||
<td><a class="btn btn-secondary btn-xs" href="{{ route('admin_sales_users_detail', [$user_pay_credit->shopping_order_id]) }}"><i class="ion ion-md-eye"></i></a></td>
|
||||
<td><a class="btn btn-secondary btn-xs" href="{{ route('admin_sales_detail', [$user_pay_credit->shopping_order_id]) }}"><i class="ion ion-md-eye"></i></a></td>
|
||||
@else
|
||||
@if($user_pay_credit->status === 3 && $deleteTime = $user_pay_credit->deleteTime())
|
||||
<td>
|
||||
|
|
|
|||
|
|
@ -1,37 +0,0 @@
|
|||
<div class="td-entry-table-margin">
|
||||
{!! $entry->badge !!}
|
||||
|
||||
@if($entry->link)
|
||||
<a href="{{ $entry->link }}">
|
||||
@else
|
||||
<span>
|
||||
@endif
|
||||
|
||||
{!! $entry->name !!} /
|
||||
|
||||
@if($entry->reference)
|
||||
{!! $entry->reference !!} /
|
||||
@endif
|
||||
|
||||
@if($entry->total)
|
||||
({!! $entry->total !!})
|
||||
@endif
|
||||
|
||||
@if($entry->date)
|
||||
{!! $entry->date !!} /
|
||||
@endif
|
||||
|
||||
@if(isset($entry->price_formatted))
|
||||
<strong>{!! $entry->price_formatted !!} €</strong>
|
||||
@endif
|
||||
|
||||
@if($entry->link)
|
||||
</a>
|
||||
@else
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if(isset($entry->delete))
|
||||
{!! $entry->delete !!}
|
||||
@endif
|
||||
</div>
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
<div class="td-entry-table-margin">
|
||||
{!! $entry->badge !!}
|
||||
|
||||
@if($entry->link)
|
||||
<a href="{{ $entry->link }}">
|
||||
@else
|
||||
<span>
|
||||
@endif
|
||||
|
||||
{!! $entry->name !!} /
|
||||
|
||||
@if($entry->reference)
|
||||
{!! $entry->reference !!} /
|
||||
@endif
|
||||
|
||||
@if($entry->total)
|
||||
({!! $entry->total !!})
|
||||
@endif
|
||||
|
||||
@if($entry->date)
|
||||
{!! $entry->date !!} /
|
||||
@endif
|
||||
|
||||
@if(isset($entry->price_formatted))
|
||||
<strong>{!! $entry->price_formatted !!} €</strong>
|
||||
@endif
|
||||
|
||||
@if($entry->link)
|
||||
</a>
|
||||
@else
|
||||
</span>
|
||||
@endif
|
||||
|
||||
@if(isset($entry->delete))
|
||||
{!! $entry->delete !!}
|
||||
@endif
|
||||
</div>
|
||||
|
|
@ -117,7 +117,7 @@
|
|||
Zahlungen / erstellte Gutschriften
|
||||
</h6>
|
||||
<div class="col-sm-6 mb-0 mt-2">
|
||||
{!! Form::open(['url' => route('admin_payments_credit'), 'class' => 'form-horizontal', 'id'=>'form_filter_sales_year']) !!}
|
||||
{!! Form::open(['action' => route('admin_payments_credit'), 'class' => 'form-horizontal', 'id'=>'form_filter_sales_year']) !!}
|
||||
|
||||
<label class="form-label" for="filter_sales_year">Filter Jahr</label>
|
||||
<select class="custom-select" name="filter_sales_year" id="filter_sales_year">
|
||||
|
|
|
|||
|
|
@ -257,7 +257,7 @@
|
|||
Zahlungen / erstellte Gutschriften
|
||||
</h6>
|
||||
<div class="col-sm-6 mb-0 mt-2">
|
||||
{!! Form::open(['url' => route('admin_payments_credit'), 'class' => 'form-horizontal', 'id'=>'form_filter_sales_year']) !!}
|
||||
{!! Form::open(['action' => route('admin_payments_credit'), 'class' => 'form-horizontal', 'id'=>'form_filter_sales_year']) !!}
|
||||
|
||||
<label class="form-label" for="filter_sales_year">Filter Jahr</label>
|
||||
<select class="custom-select" name="filter_sales_year" id="filter_sales_year">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
Zahlungen / Rechnungen
|
||||
</h6>
|
||||
<div class="col-sm-6 mb-0 mt-2">
|
||||
{!! Form::open(['url' => route('admin_payments_invoice'), 'class' => 'form-horizontal', 'id'=>'form_filter_sales_year']) !!}
|
||||
{!! Form::open(['action' => route('admin_payments_invoice'), 'class' => 'form-horizontal', 'id'=>'form_filter_sales_year']) !!}
|
||||
|
||||
<label class="form-label" for="filter_sales_year">Filter Jahr</label>
|
||||
<select class="custom-select" name="filter_sales_year" id="filter_sales_year">
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
</div>
|
||||
</h6>
|
||||
{{-- <div class="col-sm-6 mb-0 mt-2">
|
||||
{!! Form::open(['url' => route('admin_payments_paycredit'), 'class' => 'form-horizontal', 'id'=>'form_filter_user_status']) !!}
|
||||
{!! Form::open(['action' => route('admin_payments_paycredit'), 'class' => 'form-horizontal', 'id'=>'form_filter_user_status']) !!}
|
||||
<label class="form-label" for="filter_user_status">Filter User</label>
|
||||
<select class="custom-select" name="filter_user_status" id="filter_user_status">
|
||||
<option value="all" @if($filter_user_status === 'all') selected @endif>alle</option>
|
||||
|
|
|
|||
107
resources/views/admin/payment/reminder/edit.blade.php
Normal file
107
resources/views/admin/payment/reminder/edit.blade.php
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
@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
|
||||
|
||||
<h4 class="font-weight-bold py-2 mb-2">
|
||||
{{ __('Erinnerung') }} {{ $reminder->id > 0 ? 'bearbeiten' : 'erstellen' }}
|
||||
</h4>
|
||||
|
||||
<div class="text-left mt-0 mb-2">
|
||||
<a href="{{ route('admin_payments_reminder') }}" class="btn btn-default">{{ __('back') }}</a>
|
||||
</div>
|
||||
|
||||
<div class="card mb-2">
|
||||
{!! Form::open(['action' => route('admin_payments_reminder_store',), 'class' => 'form-horizontal', 'id'=>'']) !!}
|
||||
<input type="hidden" name="id" value="@if($reminder->id>0){{$reminder->id}}@else new @endif">
|
||||
<div class="card-body">
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="title" class="form-label">{{__('Titel')}}*</label>
|
||||
{{ Form::text('title', $reminder->title, array('placeholder'=>__('Titel'), 'class'=>'form-control', 'required')) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="subject" class="form-label">{{__('Betreff')}}*</label>
|
||||
{{ Form::text('subject', $reminder->subject, array('placeholder'=>__('Betreff'), 'class'=>'form-control', 'required')) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="message" class="form-label">{{__('Nachricht')}}</label>
|
||||
{{ Form::textarea('message', $reminder->message, array('placeholder'=>__('Nachricht'), 'class'=>'form-control summernote-small')) }}
|
||||
<p> <i>Platzhalter: {billing_first_name}, {billing_last_name}, {order_number}, {order_date}, {order_total}</i></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="interval" class="form-label">{{__('Interval (in Tagen nach der Bestellung)')}}*</label>
|
||||
{{ Form::number('interval', $reminder->interval, array('placeholder'=>__('Interval'), 'class'=>'form-control', 'required')) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col">
|
||||
<label for="clearingtype" class="form-label">{{__('Typ')}}*</label>
|
||||
{{ Form::select('clearingtype', \App\Models\PaymentReminder::returnClearingtypes(), $reminder->clearingtype, array('placeholder'=>__('Typ'), 'class'=>'form-control custom-select', 'required')) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col-12">
|
||||
<label class="custom-control custom-checkbox m-2">
|
||||
{!! Form::checkbox('action', 'set_order_status_cancelled', $reminder->action == 'set_order_status_cancelled', ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">Action: Bestellung auf "storniert" setzen</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-12">
|
||||
<label class="custom-control custom-checkbox m-2">
|
||||
{!! Form::checkbox('active', 1, $reminder->active, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">{{__('active')}}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@if($reminder->id > 0)
|
||||
<div class="float-right">
|
||||
<a href="{{ route('admin_payments_reminder_delete', $reminder->id) }}" class="btn btn-danger btn-sm" onclick="return confirm('{{ __('Are you sure you want to delete this reminder?') }}')"><i class="fa fa-trash"></i> {{ __('delete') }}</a>
|
||||
</div>
|
||||
@endif
|
||||
<div class="text-left mt-0 mb-2">
|
||||
<button type="submit" class="btn btn-secondary">{{ __('save') }}</button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="text-left mt-2 mb-2">
|
||||
<a href="{{ route('admin_payments_reminder') }}" class="btn btn-default">{{ __('back') }}</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@endsection
|
||||
582
resources/views/admin/payment/reminder/index.blade.php
Normal file
582
resources/views/admin/payment/reminder/index.blade.php
Normal file
|
|
@ -0,0 +1,582 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
<style>
|
||||
/* Optimierte Reminder Badge Styles */
|
||||
.reminder-badge {
|
||||
transition: all 0.3s ease;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.reminder-badge:hover {
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 8px rgba(0,0,0,0.15);
|
||||
}
|
||||
|
||||
.reminder-badge.badge-warning {
|
||||
background: linear-gradient(45deg, #ffc107, #ffb300);
|
||||
border: 1px solid #ffa000;
|
||||
}
|
||||
|
||||
.reminder-badge.badge-danger {
|
||||
background: linear-gradient(45deg, #dc3545, #c82333);
|
||||
border: 1px solid #bd2130;
|
||||
}
|
||||
|
||||
.reminder-badge.badge-dark {
|
||||
background: linear-gradient(45deg, #343a40, #23272b);
|
||||
border: 1px solid #1d2124;
|
||||
}
|
||||
|
||||
.reminder-badge.badge-light {
|
||||
background: linear-gradient(45deg, #f8f9fa, #e9ecef);
|
||||
border: 1px solid #dee2e6;
|
||||
color: #6c757d !important;
|
||||
}
|
||||
|
||||
/* Tooltip Verbesserungen */
|
||||
.tooltip-inner {
|
||||
background-color: #343a40;
|
||||
color: white;
|
||||
border-radius: 6px;
|
||||
padding: 8px 12px;
|
||||
font-size: 12px;
|
||||
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
|
||||
}
|
||||
|
||||
.tooltip.bs-tooltip-top .arrow::before {
|
||||
border-top-color: #343a40;
|
||||
}
|
||||
|
||||
.tooltip.bs-tooltip-bottom .arrow::before {
|
||||
border-bottom-color: #343a40;
|
||||
}
|
||||
|
||||
/* Reminder Datum Styling */
|
||||
.reminder-date {
|
||||
font-size: 11px;
|
||||
opacity: 0.8;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
.reminder-date:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Countdown Styling */
|
||||
.countdown-info {
|
||||
font-size: 10px;
|
||||
font-weight: 500;
|
||||
padding: 2px 6px;
|
||||
border-radius: 12px;
|
||||
background: rgba(0,0,0,0.05);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.countdown-info:hover {
|
||||
background: rgba(0,0,0,0.1);
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
.countdown-info.text-info {
|
||||
background: rgba(23, 162, 184, 0.1);
|
||||
border: 1px solid rgba(23, 162, 184, 0.2);
|
||||
}
|
||||
|
||||
.countdown-info.text-danger {
|
||||
background: rgba(220, 53, 69, 0.1);
|
||||
border: 1px solid rgba(220, 53, 69, 0.2);
|
||||
animation: pulse 2s infinite;
|
||||
}
|
||||
|
||||
.countdown-info.text-success {
|
||||
background: rgba(40, 167, 69, 0.1);
|
||||
border: 1px solid rgba(40, 167, 69, 0.2);
|
||||
}
|
||||
|
||||
.countdown-days {
|
||||
font-weight: bold;
|
||||
color: #17a2b8;
|
||||
}
|
||||
|
||||
/* Pulse Animation für fällige Erinnerungen */
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.7);
|
||||
}
|
||||
70% {
|
||||
box-shadow: 0 0 0 10px rgba(220, 53, 69, 0);
|
||||
}
|
||||
100% {
|
||||
box-shadow: 0 0 0 0 rgba(220, 53, 69, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Responsive Anpassungen */
|
||||
@media (max-width: 768px) {
|
||||
.reminder-badge {
|
||||
font-size: 0.75rem;
|
||||
padding: 0.25rem 0.5rem;
|
||||
}
|
||||
|
||||
.reminder-date {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.countdown-info {
|
||||
font-size: 9px;
|
||||
padding: 1px 4px;
|
||||
}
|
||||
|
||||
.countdown-days {
|
||||
font-size: 9px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Info Box Styling */
|
||||
.info-box {
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
border-radius: 10px;
|
||||
padding: 20px;
|
||||
margin-bottom: 30px;
|
||||
color: white;
|
||||
box-shadow: 0 8px 32px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.info-box h5 {
|
||||
color: white;
|
||||
margin-bottom: 15px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.info-box .feature-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.info-box .feature-list li {
|
||||
padding: 8px 0;
|
||||
border-bottom: 1px solid rgba(255,255,255,0.1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.info-box .feature-list li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.info-box .feature-list li i {
|
||||
margin-right: 10px;
|
||||
width: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.info-box .workflow-steps {
|
||||
background: rgba(255,255,255,0.1);
|
||||
border-radius: 8px;
|
||||
padding: 15px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.info-box .workflow-steps h6 {
|
||||
color: white;
|
||||
margin-bottom: 10px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.info-box .step {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 8px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.info-box .step-number {
|
||||
background: rgba(255,255,255,0.2);
|
||||
border-radius: 50%;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 10px;
|
||||
font-weight: bold;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.info-box .cron-info {
|
||||
background: rgba(255,255,255,0.1);
|
||||
border-radius: 8px;
|
||||
padding: 15px;
|
||||
margin-top: 15px;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.info-box .cron-info code {
|
||||
background: rgba(0,0,0,0.3);
|
||||
padding: 2px 6px;
|
||||
border-radius: 4px;
|
||||
color: #ffd700;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">
|
||||
<i class="fas fa-envelope"></i> Erinnerungen
|
||||
</h4>
|
||||
<div class="float-right">
|
||||
<a href="{{ route('admin_payments_reminder_create') }}" class="btn btn-sm btn-primary">
|
||||
<span class="far fa-plus-circle"></span> Erinnerung hinzufügen
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="card-datatable table-responsive pt-2">
|
||||
<table class="datatables-style table table-striped table-bordered" id="datatable-pay-credit">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{__('Titel')}}</th>
|
||||
<th>{{__('Interval') }}</th>
|
||||
<th>{{__('Typ') }}</th>
|
||||
<th>{{__('Action') }}</th>
|
||||
<th>{{__('Aktiv') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
@foreach($reminders as $reminder)
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ route('admin_payments_reminder_edit', $reminder->id) }}" class="btn icon-btn btn-sm btn-primary"><span class="fa fa-edit"></span></a>
|
||||
</td>
|
||||
<td>{{ $reminder->title }}</td>
|
||||
<td>{{ $reminder->interval }}</td>
|
||||
<td>{{ $reminder->getClearingtype() }}</td>
|
||||
<td>{{ $reminder->action }}</td>
|
||||
<td>{!! get_active_badge($reminder->active) !!}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mt-4">
|
||||
<div class="col-12">
|
||||
<!-- Offene Zahlungen Übersicht -->
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4 class="card-title">
|
||||
<i class="fas fa-clock"></i> Offene Zahlungen - Übersicht
|
||||
</h4>
|
||||
<div class="card-tools">
|
||||
<span class="badge badge-primary">{{ $totalPayments }} offene Zahlungen</span>
|
||||
<span class="badge badge-warning">{{ number_format($totalAmount, 2, ',', '.') }} € Gesamtbetrag</span>
|
||||
</div>
|
||||
<div class="float-right">
|
||||
<a href="{{ route('admin_payments_reminder_logs') }}" class="btn btn-sm btn-info mr-2">
|
||||
<i class="fas fa-chart-line"></i> Logs & Statistiken
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<!-- Detaillierte Tabelle -->
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-striped" id="payment-reminders-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Bestell-ID</th>
|
||||
<th>Betrag</th>
|
||||
<th>Erstellt am</th>
|
||||
<th>Tage alt</th>
|
||||
<th>Name</th>
|
||||
<th>Email</th>
|
||||
<th>Zahlungsart</th>
|
||||
<th>Versand</th>
|
||||
<th>Erinnerung</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($detailedData as $payment)
|
||||
<tr>
|
||||
<td data-order="{{ $payment['order_id'] }}">
|
||||
|
||||
|
||||
<a class="btn btn-sm btn-outline-primary" href="{{ route('admin_sales_detail', $payment['order_id']) }}" target="_blank">
|
||||
<i class="fa fa-eye"></i> {{ $payment['order_id'] }}
|
||||
</a>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<span class="text-danger font-weight-bold">
|
||||
{{ number_format($payment['amount']/100, 2, ',', '.') }} €
|
||||
</span>
|
||||
</td>
|
||||
<td>{{ $payment['created_at'] }}</td>
|
||||
<td>
|
||||
@if($payment['days_old'] > 30)
|
||||
<span class="badge badge-danger">{{ $payment['days_old'] }} Tage</span>
|
||||
@elseif($payment['days_old'] > 14)
|
||||
<span class="badge badge-warning">{{ $payment['days_old'] }} Tage</span>
|
||||
@else
|
||||
<span class="badge badge-info">{{ $payment['days_old'] }} Tage</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>{{ $payment['name'] }}</td>
|
||||
<td>{{ $payment['email'] }}</td>
|
||||
<td>
|
||||
@if($payment['clearingtype'] == 'fnc')
|
||||
<span class="badge badge-primary">{{ $payment['clearingtype_name'] }}</span>
|
||||
@else
|
||||
<span class="badge badge-warning">{{ $payment['clearingtype_name'] }}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>{!! $payment['shipped'] !!}</td>
|
||||
<td>
|
||||
@if($payment['reminder'] > 0)
|
||||
<div class="d-flex flex-column align-items-start">
|
||||
<!-- Reminder Badge mit verbesserter Darstellung -->
|
||||
<span class="badge badge-pill reminder-badge badge-{{ $payment['reminder'] == 1 ? 'warning' : ($payment['reminder'] == 2 ? 'danger' : 'dark') }} mb-1"
|
||||
data-toggle="tooltip"
|
||||
data-placement="top"
|
||||
title="{{ $payment['reminder'] }}. Zahlungserinnerung gesendet">
|
||||
<i class="fas fa-envelope-open-text mr-1"></i>
|
||||
<strong>{{ $payment['reminder'] }}.</strong>
|
||||
@if($payment['reminder'] == 1)
|
||||
<i class="fas fa-exclamation-triangle ml-1"></i>
|
||||
@elseif($payment['reminder'] >= 2)
|
||||
<i class="fas fa-exclamation-circle ml-1"></i>
|
||||
@endif
|
||||
</span>
|
||||
|
||||
<!-- Datum mit verbesserter Formatierung -->
|
||||
@if($payment['reminder_date'])
|
||||
<small class="text-muted reminder-date"
|
||||
data-toggle="tooltip"
|
||||
data-placement="bottom"
|
||||
title="Letzte Erinnerung gesendet">
|
||||
<i class="far fa-clock mr-1"></i>
|
||||
{{ \Carbon\Carbon::parse($payment['reminder_date'])->diffForHumans() }}
|
||||
</small>
|
||||
@endif
|
||||
|
||||
<!-- Countdown für nächste Erinnerung -->
|
||||
@if(isset($payment['countdown']) && $payment['countdown'])
|
||||
@if($payment['countdown']['type'] == 'countdown')
|
||||
<small class="text-info countdown-info mt-1"
|
||||
data-toggle="tooltip"
|
||||
data-placement="bottom"
|
||||
title="Nächste Erinnerung am {{ \Carbon\Carbon::parse($payment['countdown']['next_reminder_date'])->format('d.m.Y') }}">
|
||||
<i class="fas fa-hourglass-half mr-1"></i>
|
||||
<span class="countdown-days">{{ $payment['countdown']['days_left'] }}</span> Tage
|
||||
</small>
|
||||
@elseif($payment['countdown']['type'] == 'overdue')
|
||||
<small class="text-danger countdown-info mt-1"
|
||||
data-toggle="tooltip"
|
||||
data-placement="bottom"
|
||||
title="Nächste Erinnerung war fällig am {{ \Carbon\Carbon::parse($payment['countdown']['next_reminder_date'])->format('d.m.Y') }}">
|
||||
<i class="fas fa-exclamation-triangle mr-1"></i>
|
||||
Fällig!
|
||||
</small>
|
||||
@elseif($payment['countdown']['type'] == 'completed')
|
||||
<small class="text-success countdown-info mt-1"
|
||||
data-toggle="tooltip"
|
||||
data-placement="bottom"
|
||||
title="Alle verfügbaren Erinnerungen wurden gesendet">
|
||||
<i class="fas fa-check-circle mr-1"></i>
|
||||
Alle gesendet
|
||||
</small>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
@else
|
||||
<span class="badge badge-pill reminder-badge badge-light text-muted"
|
||||
data-toggle="tooltip"
|
||||
data-placement="top"
|
||||
title="Noch keine Erinnerung gesendet">
|
||||
<i class="fas fa-envelope mr-1"></i>
|
||||
0
|
||||
</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
<a href="{{ route('admin_payments_reminder_action', ['action' => 'send_reminder', 'id' => $payment['payment_id']]) }}" class="btn btn-sm btn-outline-primary"
|
||||
onclick="return confirm('Möchten Sie wirklich eine Zahlungserinnerung senden?')">
|
||||
<i class="fas fa-envelope"></i> Erinnerung senden
|
||||
</a>
|
||||
<a href="{{ route('admin_payments_reminder_action', ['action' => 'no_payment', 'id' => $payment['payment_id']]) }}" class="btn btn-sm btn-outline-danger"
|
||||
onclick="return confirm('Soll die Zahlung als nicht bezahlt markiert werden?')">
|
||||
<i class="fas fa-trash"></i> keine Zahlung
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="9" class="text-center text-muted">
|
||||
<i class="fas fa-check-circle"></i> Keine offenen Zahlungen gefunden
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
{{-- <div class="info-box mt-4">
|
||||
<h5><i class="fas fa-info-circle mr-2"></i>Zahlungserinnerungen System - Übersicht & Funktionsweise</h5>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-cogs mr-2"></i>System-Features:</h6>
|
||||
<ul class="feature-list">
|
||||
<li><i class="fas fa-check text-success"></i>Dynamisch konfigurierbare Erinnerungsintervalle</li>
|
||||
<li><i class="fas fa-check text-success"></i>Automatische E-Mail-Versendung via Cron-Job</li>
|
||||
<li><i class="fas fa-check text-success"></i>Intelligente Fälligkeitsberechnung</li>
|
||||
<li><i class="fas fa-check text-success"></i>Detailliertes Logging & Statistiken</li>
|
||||
<li><i class="fas fa-check text-success"></i>Manuelle & automatische Aktionen</li>
|
||||
<li><i class="fas fa-check text-success"></i>Responsive Admin-Interface</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-clock mr-2"></i>Workflow:</h6>
|
||||
<div class="workflow-steps">
|
||||
<div class="step">
|
||||
<span class="step-number">1</span>
|
||||
<span>Offene Zahlung wird erkannt</span>
|
||||
</div>
|
||||
<div class="step">
|
||||
<span class="step-number">2</span>
|
||||
<span>Intervall-basierte Fälligkeitsprüfung</span>
|
||||
</div>
|
||||
<div class="step">
|
||||
<span class="step-number">3</span>
|
||||
<span>Automatische E-Mail-Versendung</span>
|
||||
</div>
|
||||
<div class="step">
|
||||
<span class="step-number">4</span>
|
||||
<span>Logging & Status-Update</span>
|
||||
</div>
|
||||
<div class="step">
|
||||
<span class="step-number">5</span>
|
||||
<span>Nächste Erinnerung planen</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-calendar-alt mr-2"></i>Reminder-Erstellung:</h6>
|
||||
<p style="font-size: 14px; line-height: 1.5;">
|
||||
Erstellen Sie neue Erinnerungen über den "Erinnerung hinzufügen" Button.
|
||||
Jeder Reminder kann individuell konfiguriert werden mit:
|
||||
</p>
|
||||
<ul class="feature-list" style="font-size: 13px;">
|
||||
<li><i class="fas fa-arrow-right text-info"></i>Titel & Beschreibung</li>
|
||||
<li><i class="fas fa-arrow-right text-info"></i>Intervall in Tagen (z.B. 7, 14, 30)</li>
|
||||
<li><i class="fas fa-arrow-right text-info"></i>Zahlungsart-Filter (FNC, PayPal, etc.)</li>
|
||||
<li><i class="fas fa-arrow-right text-info"></i>E-Mail-Template & Betreff</li>
|
||||
<li><i class="fas fa-arrow-right text-info"></i>Automatische Aktionen</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<h6><i class="fas fa-robot mr-2"></i>Automatisierung:</h6>
|
||||
<div class="cron-info">
|
||||
<strong>Cron-Job Konfiguration:</strong><br>
|
||||
<code>0 9 * * *</code> php /path/to/artisan payments:reminders<br><br>
|
||||
<strong>Ausführung:</strong> Täglich um 9:00 Uhr<br>
|
||||
<strong>Funktion:</strong> Prüft alle aktiven Reminder und sendet fällige E-Mails
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-12">
|
||||
<h6><i class="fas fa-chart-line mr-2"></i>Monitoring & Statistiken:</h6>
|
||||
<p style="font-size: 14px; line-height: 1.5;">
|
||||
Überwachen Sie die Performance Ihres Reminder-Systems über die "Logs & Statistiken" Seite.
|
||||
Dort finden Sie detaillierte Auswertungen zu Versandraten, Erfolgsquoten,
|
||||
durchschnittlichen Reaktionszeiten und mehr. Das System loggt jeden Schritt
|
||||
automatisch für vollständige Transparenz.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div> --}}
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// Tooltips initialisieren
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
|
||||
// DataTable für Payment Reminder Einstellungen
|
||||
$('#payment-reminders-settings-table').DataTable({
|
||||
"language": {
|
||||
"url": "//cdn.datatables.net/plug-ins/1.10.24/i18n/German.json"
|
||||
},
|
||||
"pageLength": 25,
|
||||
"responsive": true
|
||||
});
|
||||
|
||||
// DataTable für offene Zahlungen
|
||||
$('#payment-reminders-table').DataTable({
|
||||
"language": {
|
||||
"url": "//cdn.datatables.net/plug-ins/1.10.24/i18n/German.json"
|
||||
},
|
||||
"order": [[3, "desc"]], // Sortiere nach "Tage alt" absteigend
|
||||
"pageLength": 50,
|
||||
"responsive": true,
|
||||
"columnDefs": [
|
||||
{
|
||||
"targets": [8], // Reminder Spalte
|
||||
"orderable": true,
|
||||
"searchable": false
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
// Tooltips nach DataTable-Initialisierung neu initialisieren
|
||||
$('#payment-reminders-table').on('draw.dt', function() {
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
});
|
||||
});
|
||||
|
||||
function sendReminder(paymentId) {
|
||||
if (confirm('Möchten Sie wirklich eine Zahlungserinnerung senden?')) {
|
||||
// TODO: Implementiere Erinnerung senden
|
||||
alert('Erinnerung für Payment ID ' + paymentId + ' würde gesendet werden');
|
||||
}
|
||||
}
|
||||
|
||||
function viewDetails(paymentId) {
|
||||
// TODO: Implementiere Detail-Ansicht
|
||||
alert('Details für Payment ID ' + paymentId + ' würden angezeigt werden');
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
|
||||
333
resources/views/admin/payment/reminder/logs.blade.php
Normal file
333
resources/views/admin/payment/reminder/logs.blade.php
Normal file
|
|
@ -0,0 +1,333 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
<style>
|
||||
/* Statistik Cards */
|
||||
.stats-card {
|
||||
transition: all 0.3s ease;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.stats-card:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 20px rgba(0,0,0,0.15);
|
||||
}
|
||||
|
||||
.stats-number {
|
||||
font-size: 2rem;
|
||||
font-weight: bold;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.stats-label {
|
||||
font-size: 0.9rem;
|
||||
color: #6c757d;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
/* Log Tabelle */
|
||||
.log-table {
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
|
||||
.log-level {
|
||||
padding: 2px 8px;
|
||||
border-radius: 12px;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.log-level.info { background: rgba(23, 162, 184, 0.1); color: #17a2b8; }
|
||||
.log-level.warning { background: rgba(255, 193, 7, 0.1); color: #ffc107; }
|
||||
.log-level.error { background: rgba(220, 53, 69, 0.1); color: #dc3545; }
|
||||
.log-level.notice { background: rgba(40, 167, 69, 0.1); color: #28a745; }
|
||||
|
||||
/* Filter Form */
|
||||
.filter-form {
|
||||
background: #f8f9fa;
|
||||
border-radius: 8px;
|
||||
padding: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
@media (max-width: 768px) {
|
||||
.stats-number {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.log-table {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="container-fluid">
|
||||
<!-- Header -->
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h1 class="h3 mb-0">
|
||||
<i class="fas fa-chart-line"></i> Payment Reminder Logs & Statistiken
|
||||
</h1>
|
||||
<a href="{{ route('admin_payments_reminder') }}" class="btn btn-secondary">
|
||||
<i class="fas fa-arrow-left"></i> Zurück zur Übersicht
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Statistiken Übersicht -->
|
||||
{{-- <div class="row mb-4">
|
||||
<!-- 7 Tage -->
|
||||
<div class="col-md-4 mb-3">
|
||||
<div class="card stats-card bg-primary text-white">
|
||||
<div class="card-body text-center">
|
||||
<div class="stats-number">{{ $stats7Days['summary']['total_logs'] }}</div>
|
||||
<div class="stats-label">Logs (7 Tage)</div>
|
||||
<div class="mt-2">
|
||||
<small>
|
||||
<i class="fas fa-envelope"></i> {{ $stats7Days['summary']['emails_sent'] }} gesendet |
|
||||
<i class="fas fa-exclamation-triangle"></i> {{ $stats7Days['summary']['emails_failed'] }} fehlgeschlagen
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 30 Tage -->
|
||||
<div class="col-md-4 mb-3">
|
||||
<div class="card stats-card bg-success text-white">
|
||||
<div class="card-body text-center">
|
||||
<div class="stats-number">{{ $stats30Days['summary']['total_logs'] }}</div>
|
||||
<div class="stats-label">Logs (30 Tage)</div>
|
||||
<div class="mt-2">
|
||||
<small>
|
||||
<i class="fas fa-envelope"></i> {{ $stats30Days['summary']['emails_sent'] }} gesendet |
|
||||
<i class="fas fa-exclamation-triangle"></i> {{ $stats30Days['summary']['emails_failed'] }} fehlgeschlagen
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 90 Tage -->
|
||||
<div class="col-md-4 mb-3">
|
||||
<div class="card stats-card bg-info text-white">
|
||||
<div class="card-body text-center">
|
||||
<div class="stats-number">{{ $stats90Days['summary']['total_logs'] }}</div>
|
||||
<div class="stats-label">Logs (90 Tage)</div>
|
||||
<div class="mt-2">
|
||||
<small>
|
||||
<i class="fas fa-envelope"></i> {{ $stats90Days['summary']['emails_sent'] }} gesendet |
|
||||
<i class="fas fa-exclamation-triangle"></i> {{ $stats90Days['summary']['emails_failed'] }} fehlgeschlagen
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
--}}
|
||||
|
||||
<!-- Filter -->
|
||||
<div class="card filter-form">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title mb-3">
|
||||
<i class="fas fa-filter"></i> Filter
|
||||
</h5>
|
||||
<form method="GET" action="{{ route('admin_payments_reminder_logs') }}" class="row">
|
||||
<div class="col-md-3 mb-2">
|
||||
<label for="order_id" class="form-label">Order ID</label>
|
||||
<input type="number" class="form-control" id="order_id" name="order_id" value="{{ $orderId }}" placeholder="Order ID">
|
||||
</div>
|
||||
<div class="col-md-3 mb-2">
|
||||
<label for="action" class="form-label">Aktion</label>
|
||||
<select class="form-control custom-select" id="action" name="action">
|
||||
<option value="">Alle Aktionen</option>
|
||||
<option value="email_sent" {{ $action == 'email_sent' ? 'selected' : '' }}>E-Mail gesendet</option>
|
||||
<option value="email_exception" {{ $action == 'email_exception' ? 'selected' : '' }}>E-Mail Fehler</option>
|
||||
<option value="reminder_completed" {{ $action == 'reminder_completed' ? 'selected' : '' }}>Erinnerung abgeschlossen</option>
|
||||
<option value="action_completed" {{ $action == 'action_completed' ? 'selected' : '' }}>Aktion abgeschlossen</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-2 mb-2">
|
||||
<label for="start_date" class="form-label">Von</label>
|
||||
<input type="date" class="form-control" id="start_date" name="start_date" value="{{ $startDate }}">
|
||||
</div>
|
||||
<div class="col-md-2 mb-2">
|
||||
<label for="end_date" class="form-label">Bis</label>
|
||||
<input type="date" class="form-control" id="end_date" name="end_date" value="{{ $endDate }}">
|
||||
</div>
|
||||
<div class="col-md-2 mb-2 d-flex align-items-end">
|
||||
<button type="submit" class="btn btn-primary me-2">
|
||||
<i class="fas fa-search"></i> Filtern
|
||||
</button>
|
||||
<a href="{{ route('admin_payments_reminder_logs') }}" class="btn btn-outline-secondary">
|
||||
<i class="fas fa-times"></i> Reset
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Logs Tabelle -->
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title mb-0">
|
||||
<i class="fas fa-list"></i>
|
||||
@if($filteredLogs)
|
||||
Gefilterte Logs ({{ $filteredLogs->count() }} Einträge)
|
||||
@else
|
||||
Neueste Logs ({{ $recentLogs->count() }} Einträge)
|
||||
@endif
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped log-table" id="logs-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Aktion</th>
|
||||
<th>Level</th>
|
||||
<th>Model</th>
|
||||
<th>Model ID</th>
|
||||
<th>Nachricht</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse(($filteredLogs ?: $recentLogs) as $log)
|
||||
<tr>
|
||||
<td>
|
||||
<small>{{ $log->created_at->format('d.m.Y H:i:s') }}</small>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge badge-secondary">{{ $log->action }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="log-level {{ $log->getLevelType() }}">
|
||||
{{ ucfirst($log->getLevelType()) }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<small>{{ $log->model ?: '-' }}</small>
|
||||
</td>
|
||||
<td>
|
||||
@if($log->model_id)
|
||||
<a href="{{ route('admin_sales_detail', $log->model_id) }}" target="_blank" class="btn btn-sm btn-outline-primary">
|
||||
{{ $log->model_id }}
|
||||
</a>
|
||||
@else
|
||||
<small>-</small>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
<small>{{ Str::limit($log->message, 100) }}</small>
|
||||
@if(strlen($log->message) > 100)
|
||||
<button type="button" class="btn btn-sm btn-link" data-toggle="tooltip" data-placement="top" title="{{ $log->message }}">
|
||||
<i class="fas fa-eye"></i>
|
||||
</button>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="6" class="text-center text-muted">
|
||||
<i class="fas fa-inbox"></i> Keine Logs gefunden
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Detaillierte Statistiken -->
|
||||
<div class="row mt-4">
|
||||
<div class="col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title mb-0">
|
||||
<i class="fas fa-chart-pie"></i> Aktionen (30 Tage)
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Aktion</th>
|
||||
<th>Level</th>
|
||||
<th>Anzahl</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($stats30Days['detailed_stats'] as $stat)
|
||||
<tr>
|
||||
<td><small>{{ $stat->action }}</small></td>
|
||||
<td>
|
||||
<span class="log-level {{ $stat->level == 2 ? 'info' : ($stat->level == 5 ? 'error' : 'notice') }}">
|
||||
{{ $stat->level == 2 ? 'Info' : ($stat->level == 5 ? 'Error' : 'Notice') }}
|
||||
</span>
|
||||
</td>
|
||||
<td><strong>{{ $stat->count }}</strong></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title mb-0">
|
||||
<i class="fas fa-chart-bar"></i> Erfolgsrate (30 Tage)
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@php
|
||||
$totalEmails = $stats30Days['summary']['emails_sent'] + $stats30Days['summary']['emails_failed'];
|
||||
$successRate = $totalEmails > 0 ? round(($stats30Days['summary']['emails_sent'] / $totalEmails) * 100, 1) : 0;
|
||||
@endphp
|
||||
|
||||
<div class="text-center">
|
||||
<div class="display-4 text-success">{{ $successRate }}%</div>
|
||||
<div class="text-muted">Erfolgsrate</div>
|
||||
<div class="mt-3">
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-success" style="width: {{ $successRate }}%"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-2">
|
||||
<small class="text-muted">
|
||||
{{ $stats30Days['summary']['emails_sent'] }} erfolgreich / {{ $totalEmails }} gesamt
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// DataTable für Logs
|
||||
$('#logs-table').DataTable({
|
||||
"language": {
|
||||
"url": "//cdn.datatables.net/plug-ins/1.10.24/i18n/German.json"
|
||||
},
|
||||
"order": [[0, "desc"]], // Sortiere nach Datum absteigend
|
||||
"pageLength": 50,
|
||||
"responsive": true
|
||||
});
|
||||
|
||||
// Tooltips initialisieren
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
});
|
||||
</script>
|
||||
|
||||
@endsection
|
||||
176
resources/views/admin/payment/reminder/overview.blade.php
Normal file
176
resources/views/admin/payment/reminder/overview.blade.php
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3 class="card-title">
|
||||
<i class="fas fa-clock"></i> Payment Reminders
|
||||
</h3>
|
||||
<div class="card-tools">
|
||||
<span class="badge badge-primary">{{ $totalPayments }} offene Zahlungen</span>
|
||||
<span class="badge badge-warning">{{ number_format($totalAmount, 2, ',', '.') }} € Gesamtbetrag</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<!-- Statistiken -->
|
||||
<div class="row mb-4">
|
||||
<div class="col-md-3">
|
||||
<div class="info-box">
|
||||
<span class="info-box-icon bg-info"><i class="fas fa-list"></i></span>
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">Offene Zahlungen</span>
|
||||
<span class="info-box-number">{{ $totalPayments }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="info-box">
|
||||
<span class="info-box-icon bg-warning"><i class="fas fa-euro-sign"></i></span>
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">Gesamtbetrag</span>
|
||||
<span class="info-box-number">{{ number_format($totalAmount, 2, ',', '.') }} €</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="info-box">
|
||||
<span class="info-box-icon bg-success"><i class="fas fa-credit-card"></i></span>
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">Zahlungsarten</span>
|
||||
<span class="info-box-number">{{ count($clearingTypes) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="info-box">
|
||||
<span class="info-box-icon bg-danger"><i class="fas fa-calendar"></i></span>
|
||||
<div class="info-box-content">
|
||||
<span class="info-box-text">Letzte Aktualisierung</span>
|
||||
<span class="info-box-number">{{ now()->format('d.m.Y H:i') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Übersicht nach Zahlungsarten -->
|
||||
<div class="row mb-4">
|
||||
@foreach($summaryData as $clearingtype => $data)
|
||||
<div class="col-md-4">
|
||||
<div class="small-box bg-info">
|
||||
<div class="inner">
|
||||
<h3>{{ $data['count'] }}</h3>
|
||||
<p>{{ strtoupper($clearingtype) }} - {{ $data['interval'] }} Tage</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fas fa-credit-card"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<!-- Detaillierte Tabelle -->
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-striped" id="payment-reminders-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Zahlungsart</th>
|
||||
<th>Intervall (Tage)</th>
|
||||
<th>Bestell-ID</th>
|
||||
<th>Zahlungs-ID</th>
|
||||
<th>Betrag</th>
|
||||
<th>Erstellt am</th>
|
||||
<th>Tage alt</th>
|
||||
<th>Grenzdatum</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($detailedData as $payment)
|
||||
<tr>
|
||||
<td>
|
||||
<span class="badge badge-primary">{{ strtoupper($payment['clearingtype']) }}</span>
|
||||
</td>
|
||||
<td>{{ $payment['interval_days'] }}</td>
|
||||
<td>
|
||||
<a href="{{ route('admin_sales_detail', $payment['order_id']) }}" target="_blank">
|
||||
#{{ $payment['order_id'] }}
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ $payment['payment_id'] }}</td>
|
||||
<td>
|
||||
<span class="text-danger font-weight-bold">
|
||||
{{ number_format($payment['amount'], 2, ',', '.') }} €
|
||||
</span>
|
||||
</td>
|
||||
<td>{{ $payment['created_at'] }}</td>
|
||||
<td>
|
||||
@if($payment['days_old'] > 30)
|
||||
<span class="badge badge-danger">{{ $payment['days_old'] }} Tage</span>
|
||||
@elseif($payment['days_old'] > 14)
|
||||
<span class="badge badge-warning">{{ $payment['days_old'] }} Tage</span>
|
||||
@else
|
||||
<span class="badge badge-info">{{ $payment['days_old'] }} Tage</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>{{ $payment['date_limit'] }}</td>
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
<button type="button" class="btn btn-sm btn-outline-primary"
|
||||
onclick="sendReminder({{ $payment['payment_id'] }})">
|
||||
<i class="fas fa-envelope"></i> Erinnerung senden
|
||||
</button>
|
||||
<button type="button" class="btn btn-sm btn-outline-info"
|
||||
onclick="viewDetails({{ $payment['payment_id'] }})">
|
||||
<i class="fas fa-eye"></i> Details
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="9" class="text-center text-muted">
|
||||
<i class="fas fa-check-circle"></i> Keine offenen Zahlungen gefunden
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#payment-reminders-table').DataTable({
|
||||
"language": {
|
||||
"url": "//cdn.datatables.net/plug-ins/1.10.24/i18n/German.json"
|
||||
},
|
||||
"order": [[6, "desc"]], // Sortiere nach "Tage alt" absteigend
|
||||
"pageLength": 25,
|
||||
"responsive": true
|
||||
});
|
||||
});
|
||||
|
||||
function sendReminder(paymentId) {
|
||||
if (confirm('Möchten Sie wirklich eine Zahlungserinnerung senden?')) {
|
||||
// TODO: Implementiere Erinnerung senden
|
||||
alert('Erinnerung für Payment ID ' + paymentId + ' würde gesendet werden');
|
||||
}
|
||||
}
|
||||
|
||||
function viewDetails(paymentId) {
|
||||
// TODO: Implementiere Detail-Ansicht
|
||||
alert('Details für Payment ID ' + paymentId + ' würden angezeigt werden');
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
|
||||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
{{ __('Create/Edit Promotion') }}
|
||||
</h4>
|
||||
|
||||
{!! Form::open(['url' => route('admin_promotion_detail', $promotion->id), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('admin_promotion_detail', $promotion->id), 'class' => 'form-horizontal']) !!}
|
||||
<input type="hidden" name="id" id="id" value="@if($promotion->id>0){{$promotion->id}}@else new @endif">
|
||||
|
||||
<div class="text-left mt-0 mb-2">
|
||||
|
|
|
|||
|
|
@ -3,14 +3,14 @@
|
|||
<!-- Status -->
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-3 mb-1">
|
||||
<div class="col-sm-6 col-md-4 col-lg-3 mb-1">
|
||||
<strong class="mr-2">Status:</strong>
|
||||
<span class="text-big">
|
||||
{!! \App\Services\Payment::getPaymentForTypeBadge($shopping_order) !!}
|
||||
{!! \App\Services\Payment::getShoppingOrderBadge($shopping_order) !!}
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-md-3 mb-1">
|
||||
<div class="col-sm-6 col-md-4 col-lg-3 mb-1">
|
||||
<strong class="mr-2">Versand:</strong>
|
||||
@if($isAdmin)
|
||||
<button type="button" class="btn btn-sm btn-{{$shopping_order->getShippedColor()}}" data-toggle="modal" data-target="#modals-shipped"
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-md-3 mb-1">
|
||||
<div class="col-sm-6 col-md-4 col-lg-3 mb-1">
|
||||
<strong class="mr-2">Rechnung:</strong>
|
||||
@if($isAdmin)
|
||||
@if(App\Services\Invoice::isInvoice($shopping_order))
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
@endif
|
||||
</div>
|
||||
|
||||
<div class="col-md-3 mb-1">
|
||||
<div class="col-sm-6 col-md-4 col-lg-3 mb-1">
|
||||
@if ($isAdmin)
|
||||
<strong class="mr-2">Lieferschein:</strong>
|
||||
@if (App\Services\Invoice::isDelivery($shopping_order))
|
||||
|
|
@ -70,10 +70,14 @@
|
|||
|
||||
<a href="{{ route('storage_file', [$shopping_order->id, 'invoice_delivery', 'download']) }}"
|
||||
class="btn btn-dark btn-sm"><i class="fa fa-file-download"></i><i class="fa fa-file-download"></i></a>
|
||||
@endif
|
||||
|
||||
<a href="{{ route('admin_sales_send_logistic_mail', [$shopping_order->id]) }}"
|
||||
class="btn btn-info btn-sm"><i class="fa fa-envelope"></i></a>
|
||||
@endif
|
||||
|
||||
@endif
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -96,9 +100,8 @@
|
|||
{{$shopping_order->getFormattedTotalShipping()}} €
|
||||
</div>
|
||||
<div class="col-md-3 mb-3">
|
||||
{{-- <div class="text-muted small">Points gesamt</div>
|
||||
{{ $shopping_order->points }}
|
||||
--}}
|
||||
<div class="text-muted small">White Label</div>
|
||||
{{ $shopping_order->user_white_label ? 'Ja' : 'Nein' }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -134,7 +137,7 @@
|
|||
<button type="button" class="btn btn-xs btn-outline-info" data-toggle="modal" data-target="#modals-load-content"
|
||||
data-id="{{$shopping_order->shopping_user->id}}"
|
||||
data-action="shopping-user-is-like-member"
|
||||
data-back="{{route('admin_sales_customers_detail', [$shopping_order->id])}}"
|
||||
data-back="{{route('admin_sales_detail', [$shopping_order->id])}}"
|
||||
data-modal="modal-xl"
|
||||
data-route="{{route('modal_load')}}"><span class="fa fa-edit"></span> Vertriebspartner zuordnen</button>
|
||||
@else
|
||||
|
|
|
|||
15
resources/views/admin/sales/detail.blade.php
Normal file
15
resources/views/admin/sales/detail.blade.php
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
<h4 class="font-weight-bold py-2 mb-2">
|
||||
<a href="{{route('admin_sales')}}" class="btn btn-sm btn-default float-right">zurück</a>
|
||||
@if($isView === 'sales_customer')
|
||||
{{ __('Bestellung Kunde') }} <span class="text-muted">#{{$shopping_order->id}}</span>
|
||||
@elseif($isView === 'sales_user')
|
||||
{{ __('Bestellung Vertriebspartner') }} <span class="text-muted">#{{$shopping_order->id}}</span>
|
||||
@endif
|
||||
</h4>
|
||||
@include('admin.sales._detail')
|
||||
<a href="{{route('admin_sales')}}" class="btn btn-sm btn-default mt-2 float-right">zurück</a>
|
||||
|
||||
@endsection
|
||||
128
resources/views/admin/sales/index.blade.php
Normal file
128
resources/views/admin/sales/index.blade.php
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
|
||||
<h4 class="font-weight-bold py-2 mb-2">
|
||||
{{ __('Bestellungen Kunden') }}
|
||||
</h4>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="form-row align-items-center">
|
||||
|
||||
<div class="col-sm-6 col-md-4 col-lg-3 mb-2">
|
||||
<label class="form-label" for="filter_member_id">Filter zugewiesener Vertriebspartner</label>
|
||||
<select class="custom-select" name="filter_member_id" id="filter_member_id">
|
||||
<option value="">Filter aus</option>
|
||||
@foreach($filter_members as $member)
|
||||
<option value="{{$member->id}}" @if(get_user_attr('filter_member_id') == $member->id) selected @endif>{{$member->first_name}} {{$member->last_name}} |{{$member->email}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6 col-md-4 col-lg-3 mb-2">
|
||||
<label class="form-label" for="filter_txaction">Filter Status</label>
|
||||
<select class="custom-select" name="filter_txaction" id="filter_txaction">
|
||||
<option value="">Filter aus</option>
|
||||
@foreach(\App\Services\Payment::$txaction_text as $id=>$name)
|
||||
<option value="{{$id}}" @if(get_user_attr('filter_txaction') == $id) selected @endif>{{$name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-4 col-lg-3 mb-2">
|
||||
<label class="form-label" for="filter_shipped">Filter Versand</label>
|
||||
<select class="custom-select" name="filter_shipped" id="filter_shipped">
|
||||
<option value="">Filter aus</option>
|
||||
@foreach(\App\Models\ShoppingOrder::$shippedTypes as $id=>$name)
|
||||
<option value="{{$id}}" @if(get_user_attr('filter_shipped') === $id) selected @endif>{{$name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-6 col-md-4 col-lg-2 mb-2">
|
||||
<label class="form-label" for="filter_art">Filter Art</label>
|
||||
<select class="custom-select" name="filter_art" id="filter_art">
|
||||
<option value="">Filter aus</option>
|
||||
@foreach(\App\Services\PaymentService::$txaction_art as $id=>$name)
|
||||
<option value="{{$id}}" @if(get_user_attr('filter_art') == $id) selected @endif>{{$name}}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-sm-1 col-md-1 col-lg-1 mb-2 mt-4">
|
||||
<a href="{{ route('admin_sales') }}?reset=filter" data-toggle="tooltip" data-placement="top" title="Reset Filter" class="btn icon-btn btn-sm btn-outline-dark float-right">
|
||||
<span class="fa fa-sync"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="datatable-customers table table-striped table-bordered" id="datatable-customers">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{__('Datum')}}</th>
|
||||
<th>{{__('Betrag')}}</th>
|
||||
<th>{{__('Zahlung')}}</th>
|
||||
<th>{{__('Status')}}</th>
|
||||
<th>{{__('Versand')}}</th>
|
||||
<th>{{__('Art')}}</th>
|
||||
<th>{{__('First name')}}</th>
|
||||
<th>{{__('Last name')}}</th>
|
||||
<th>{{__('E-Mail')}}</th>
|
||||
<th>{{__('zugewiesener Vertriebspartner')}}</th>
|
||||
<th>{{__('Rf-Nr.')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
var oTable = $('#datatable-customers').DataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
ajax: {
|
||||
url: '{!! route( 'admin_sales_datatable') !!}',
|
||||
data: function(d) {
|
||||
d.filter_member_id = $('select[name=filter_member_id]').val();
|
||||
d.filter_txaction = $('select[name=filter_txaction]').val();
|
||||
d.filter_art = $('select[name=filter_art]').val();
|
||||
d.filter_shipped = $('select[name=filter_shipped]').val();
|
||||
}
|
||||
},
|
||||
"order": [[0, "desc" ]],
|
||||
"columns": [
|
||||
{ data: 'id', searchable: false },
|
||||
{ data: 'created_at', name: 'shopping_orders.created_at' },
|
||||
{ data: 'total_shipping', name: 'total_shipping' },
|
||||
{ data: 'payment', name: 'payment', orderable: false },
|
||||
{ data: 'txaction', name: 'txaction' },
|
||||
{ data: 'shipped', name: 'shipped' },
|
||||
{ data: 'payment_for', name: 'payment_for' },
|
||||
{ data: 'shopping_user.billing_firstname', name: 'shopping_user.billing_firstname' },
|
||||
{ data: 'shopping_user.billing_lastname', name: 'shopping_user.billing_lastname' },
|
||||
{ data: 'shopping_user.billing_email', name: 'shopping_user.billing_email' },
|
||||
{ data: 'member_id', name: 'member_id', searchable: false, orderable: false },
|
||||
{ data: 'reference', name: 'reference' },
|
||||
],
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 100,
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
$('#filter_member_id').on('change', function(){
|
||||
oTable.draw();
|
||||
});
|
||||
$('#filter_txaction').on('change', function(){
|
||||
oTable.draw();
|
||||
});
|
||||
$('#filter_art').on('change', function(){
|
||||
oTable.draw();
|
||||
});
|
||||
$('#filter_shipped').on('change', function(){
|
||||
oTable.draw();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
<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'), '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">
|
||||
{{ __('Versandkosten') }}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
{{ __('navigation.products') }} {{ __('navigation.sales_volumes') }}
|
||||
</h5>
|
||||
<div class="card-body">
|
||||
{!! Form::open(['url' => route('admin_stats_sales_volumes_download'), 'class' => '']) !!}
|
||||
{!! Form::open(['action' => route('admin_stats_sales_volumes_download'), 'class' => 'form-horizontal']) !!}
|
||||
{!! 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 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') --}}
|
||||
|
|
|
|||
15
resources/views/emails/exception.blade.php
Normal file
15
resources/views/emails/exception.blade.php
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<!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>error on gruene-seele.bio</title>
|
||||
<style type="text/css">
|
||||
{!! $css !!}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
{!! $content !!}
|
||||
</body>
|
||||
</html>
|
||||
123
resources/views/emails/logistic.blade.php
Normal file
123
resources/views/emails/logistic.blade.php
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
<!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>gruene-seele.bio</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: left;
|
||||
}
|
||||
|
||||
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: separate !important;
|
||||
}
|
||||
|
||||
.headline {
|
||||
color: #37302d;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.sub_headline {
|
||||
color: #788662;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.force-full-width {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
border-top: 1px solid #b7c59e;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body class="body" style="padding:0; margin:0; display:block; background:#f8f8f8; -webkit-text-size-adjust:none" bgcolor="#f8f8f8">
|
||||
|
||||
@if(isset($copy1line))
|
||||
<div style="display: none; mso-hide: all; width: 0px; height: 0px; max-width: 0px; max-height: 0px; font-size: 0px; line-height: 0px;">
|
||||
{{ $copy1line }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<table align="left" cellpadding="0" cellspacing="0" width="100%" height="100%">
|
||||
<tr>
|
||||
<td align="left" valign="top" bgcolor="#f4f1ef" width="100%">
|
||||
<br>
|
||||
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="700" class="w320">
|
||||
<tr>
|
||||
<td align="left" 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="middle" style="font-size: 0px;" class="">
|
||||
<center>
|
||||
<picture style="text-align: center">
|
||||
<img src="https://partner.gruene-seele.bio/images/gruene-seele-logo.jpg" alt="gruene-seele.bio" style="border:none" width="230">
|
||||
</picture>
|
||||
</center>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</center>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
184
resources/views/emails/payment_reminder.blade.php
Normal file
184
resources/views/emails/payment_reminder.blade.php
Normal file
|
|
@ -0,0 +1,184 @@
|
|||
<!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>gruene-seele.bio</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: left;
|
||||
}
|
||||
|
||||
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: separate !important;
|
||||
}
|
||||
|
||||
.headline {
|
||||
color: #37302d;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.sub_headline {
|
||||
color: #788662;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.force-full-width {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
border-top: 1px solid #b7c59e;
|
||||
}
|
||||
|
||||
</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;">
|
||||
{!! $content !!}
|
||||
</div>
|
||||
|
||||
<table align="left" cellpadding="0" cellspacing="0" width="100%" height="100%">
|
||||
<tr>
|
||||
<td align="left" valign="top" bgcolor="#f4f1ef" width="100%">
|
||||
<br>
|
||||
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="700" class="w320">
|
||||
<tr>
|
||||
<td align="left" 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="middle" style="font-size: 0px;" class="">
|
||||
<center>
|
||||
<picture style="text-align: center">
|
||||
<img src="https://partner.gruene-seele.bio/images/gruene-seele-logo.jpg" alt="gruene-seele.bio" style="border:none" width="230">
|
||||
</picture>
|
||||
</center>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</center>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table cellpadding="10" style="padding: 10px;" cellspacing="0" border="0" width="100%" bgcolor="#f4f1ef">
|
||||
|
||||
<tr>
|
||||
<td style="color:#37302d;line-height:1.6em;">
|
||||
{!! $content !!}
|
||||
</td>
|
||||
</tr>
|
||||
<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="#5f7567">
|
||||
<p style="text-decoration:none;background:#5f7567;color:#ffffff;font-family:Arial, sans-serif;font-size:13px;font-weight:normal;line-height:120%;text-transform:none;margin:0px;text-align: center">
|
||||
<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>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color:#37302d;text-align: center">
|
||||
<span style="color: #cabda9; font-weight: normal; font-size: 13px; text-decoration: underline; word-wrap: break-word;white-space: pre-line;">{{ $url }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</center>
|
||||
</td>
|
||||
<tr>
|
||||
</table>
|
||||
<center>
|
||||
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" class="force-full-width"
|
||||
bgcolor="#f4f1ef">
|
||||
<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.gruene-seele.bio" style="color: #7B7B7E; text-decoration: underline;">www.gruene-seele.bio</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.gruene-seele.bio/datenschutzerklaerung/">Datenschutzerklärung</a> <br>
|
||||
<p>{{__('email.footer_copy3')}}</p>
|
||||
<br>
|
||||
<br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
5
resources/views/errors/401.blade.php
Normal file
5
resources/views/errors/401.blade.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Unauthorized'))
|
||||
@section('code', '401')
|
||||
@section('message', __('Unauthorized'))
|
||||
5
resources/views/errors/403.blade.php
Normal file
5
resources/views/errors/403.blade.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Forbidden'))
|
||||
@section('code', '403')
|
||||
@section('message', __($exception->getMessage() ?: 'Forbidden'))
|
||||
5
resources/views/errors/419.blade.php
Normal file
5
resources/views/errors/419.blade.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Page Expired'))
|
||||
@section('code', '419')
|
||||
@section('message', __('Page Expired'))
|
||||
5
resources/views/errors/429.blade.php
Normal file
5
resources/views/errors/429.blade.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Too Many Requests'))
|
||||
@section('code', '429')
|
||||
@section('message', __('Too Many Requests'))
|
||||
5
resources/views/errors/500.blade.php
Normal file
5
resources/views/errors/500.blade.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Server Error'))
|
||||
@section('code', '500')
|
||||
@section('message', __('Server Error'))
|
||||
5
resources/views/errors/503.blade.php
Normal file
5
resources/views/errors/503.blade.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
@extends('errors::minimal')
|
||||
|
||||
@section('title', __('Service Unavailable'))
|
||||
@section('code', '503')
|
||||
@section('message', __('Service Unavailable'))
|
||||
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>
|
||||
57
resources/views/errors/layout.blade.php
Normal file
57
resources/views/errors/layout.blade.php
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<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, body {
|
||||
background-color: #fff;
|
||||
color: #636b6f;
|
||||
font-family: 'Nunito', sans-serif;
|
||||
font-weight: 100;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.full-height {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.position-ref {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 36px;
|
||||
padding: 20px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="flex-center position-ref full-height">
|
||||
<div class="content">
|
||||
<div class="title">
|
||||
@yield('message')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</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
|
|
@ -155,6 +155,7 @@
|
|||
@if(Auth::user()->isAdmin())
|
||||
<li class="sidenav-divider mb-1"></li>
|
||||
<li class="sidenav-header small font-weight-semibold">ADMIN</li>
|
||||
|
||||
<li class="sidenav-item{{ Request::is('admin/leads') ? ' active' : '' }} {{ Request::is('admin/lead/edit/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_leads') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-contacts"></i><div>{{ __('navigation.member') }}</div></a>
|
||||
</li>
|
||||
|
|
@ -162,20 +163,11 @@
|
|||
<li class="sidenav-item{{ Request::is('admin/customers') ? ' active' : '' }} {{ Request::is('admin/customer/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_customers') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-contacts"></i><div>{{ __('navigation.clients') }}</div></a>
|
||||
</li>
|
||||
<li class="sidenav-item @if(Request::is('admin/sales/*')) open @endif">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-ios-cart"></i>
|
||||
<div>{{ __('navigation.orders') }}</div>
|
||||
</a>
|
||||
<ul class="sidenav-menu">
|
||||
<li class="sidenav-item{{ Request::is('admin/sales/users', 'admin/sales/users/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_sales_users') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-contacts"></i><div>{{ __('navigation.member') }}</div></a>
|
||||
</li>
|
||||
<li class="sidenav-item{{ Request::is('admin/sales/customers', 'admin/sales/customers/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_sales_customers') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-contacts"></i><div>{{ __('navigation.clients') }}</div></a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<li class="sidenav-item{{ Request::is('admin/sales') ? ' active' : '' }} {{ Request::is('admin/sales/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_sales') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-cart"></i><div>{{ __('navigation.orders') }}</div></a>
|
||||
</li>
|
||||
|
||||
<li class="sidenav-item @if(Request::is('admin/payments/*')) open @endif">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-md-cash"></i>
|
||||
|
|
@ -191,7 +183,11 @@
|
|||
<li class="sidenav-item{{ Request::is('admin/payments/invoice') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_payments_invoice') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-arrow-dropleft-circle"></i><div>{{ __('navigation.invoice') }}</div></a>
|
||||
</li>
|
||||
<li class="sidenav-item{{ Request::is('admin/payments/reminder') ? ' active' : '' }} {{ Request::is('admin/payments/reminder/*') ? ' active' : '' }}">
|
||||
<a href="{{ route('admin_payments_reminder') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-alarm"></i><div>{{ __('navigation.reminder') }}</div></a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="sidenav-item @if(Request::is('admin/promotions', '/admin/promotion/*')) open @endif">
|
||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
|
||||
<i class="sidenav-icon ion ion-ios-rocket"></i>
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
{{-- <div class="card-body">
|
||||
<!-- Controls -->
|
||||
{!! Form::open(['url' => url()->current(), 'class' => '']) !!}
|
||||
{!! Form::open(['action' => url()->current(), 'class' => '']) !!}
|
||||
<div class="form-group mb-1">
|
||||
<label class="form-label" for="description">Description</label>
|
||||
{{ Form::textarea('text', $text, array('class'=>'form-control', 'rows'=>20)) }}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
Kunden
|
||||
</h4>
|
||||
|
||||
{!! Form::open(['url' => url()->current(), 'class' => '']) !!}
|
||||
{!! Form::open(['action' => url()->current(), 'class' => '']) !!}
|
||||
<div class="card mb-4">
|
||||
|
||||
<div class="card-body">
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<div class="card-body">
|
||||
<!-- Controls -->
|
||||
{!! Form::open(['url' => url()->current(), 'class' => '']) !!}
|
||||
{!! Form::open(['action' => url()->current(), 'class' => '']) !!}
|
||||
<div class="form-group mb-1">
|
||||
<label class="form-label" for="description">Description</label>
|
||||
{{ Form::textarea('text', $text, array('class'=>'form-control', 'rows'=>20)) }}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
Export VP
|
||||
</h4>
|
||||
|
||||
{!! Form::open(['url' => url()->current(), 'class' => '']) !!}
|
||||
{!! Form::open(['action' => url()->current(), 'class' => '']) !!}
|
||||
<div class="card mb-4">
|
||||
@if(count($values)>0)
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
</h6>
|
||||
<div class="card-body">
|
||||
|
||||
{!! Form::open([ 'url' => route('sysadmin_import_store'), 'method' => 'post', 'files' => true, 'enctype' => 'multipart/form-data', 'class' => 'dropzone', 'id' => 'realDropzone' ]) !!}
|
||||
{!! Form::open(['action' => route('sysadmin_import_store'), 'method' => 'post', 'files' => true, 'enctype' => 'multipart/form-data', 'class' => 'dropzone', 'id' => 'realDropzone' ]) !!}
|
||||
<div class="fallback">
|
||||
<input name="file" type="file" multiple>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
Kunden
|
||||
</h4>
|
||||
|
||||
{!! Form::open(['url' => url()->current(), 'class' => '']) !!}
|
||||
{!! Form::open(['action' => url()->current(), 'class' => '']) !!}
|
||||
<div class="card mb-4">
|
||||
|
||||
<div class="card-body">
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<div class="card-body">
|
||||
<!-- Controls -->
|
||||
{!! Form::open(['url' => url()->current(), 'class' => '']) !!}
|
||||
{!! Form::open(['action' => url()->current(), 'class' => '']) !!}
|
||||
<div class="form-group mb-1">
|
||||
<label class="form-label" for="description">Description</label>
|
||||
{{ Form::textarea('text', $text, array('class'=>'form-control', 'rows'=>1)) }}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
|
||||
|
||||
{!! Form::open([ 'url' => route('admin_translation_update', [$file, $language, $langsource, $show]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
|
||||
{!! Form::open(['action' => route('admin_translation_update', [$file, $language, $langsource, $show]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
|
||||
|
||||
<!-- /.left-aside-column-->
|
||||
<div class="right-aside">
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@
|
|||
|
||||
@if($translations)
|
||||
|
||||
{!! Form::open([ 'url' => route('admin_trans_eloquent_update', [$file, $language, $langsource, $show, $id]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
|
||||
{!! Form::open(['action' => route('admin_trans_eloquent_update', [$file, $language, $langsource, $show, $id]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
|
||||
|
||||
<!-- /.left-aside-column-->
|
||||
<div class="right-aside">
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
<!-- .left-aside-column-->
|
||||
@if($translations)
|
||||
|
||||
{!! Form::open([ 'url' => route('admin_translate_all_update', [$language, $from]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
|
||||
{!! Form::open(['action' => route('admin_translate_all_update', [$language, $from]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
|
||||
|
||||
<!-- /.left-aside-column-->
|
||||
<div class="right-aside">
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
@if($translations)
|
||||
|
||||
{!! Form::open([ 'url' => route('admin_translate_file_update', [$file, $language, $langsource, $show]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
|
||||
{!! Form::open(['action' => route('admin_translate_file_update', [$file, $language, $langsource, $show]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!}
|
||||
|
||||
<!-- /.left-aside-column-->
|
||||
<div class="right-aside">
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
{!! Form::open(['url' => route('user_checkout_store', [$identifier]), 'class' => 'row clearfix form-prevent-multiple-submits', 'id'=>'checkout_card_final']) !!}
|
||||
{!! Form::open(['action' => route('user_checkout_store', [$identifier]), 'class' => 'row clearfix form-prevent-multiple-submits', 'id'=>'checkout_card_final']) !!}
|
||||
{!! Form::hidden('selected_country', '') !!}
|
||||
{!! Form::hidden('is_for', $shopping_user->is_for) !!}
|
||||
{!! Form::hidden('is_from', $shopping_user->is_from) !!}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
|
||||
{!! Form::open(['url' => route('user_shop_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
|
||||
{!! Form::open(['action' => route('user_shop_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
|
||||
<div class="form-group">
|
||||
<label class="custom-control custom-checkbox float-right">
|
||||
{!! Form::checkbox('active', 1, $user->shop->active, ['class'=>'custom-control-input']) !!}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<div class="card-body" style="background: #fff; border: 1px solid rgba(24, 28, 33, 0.06);">
|
||||
<h4>{{ __('open your shop') }}</h4>
|
||||
|
||||
{!! Form::open(['url' => route('user_shop_register_form'), 'class' => 'form-horizontal' , 'id'=>'data-shop-form-validations']) !!}
|
||||
{!! Form::open(['action' => route('user_shop_register_form'), 'class' => 'form-horizontal' , 'id'=>'data-shop-form-validations']) !!}
|
||||
@php
|
||||
$shop_name_btn_color = 'btn-secondary';
|
||||
$shop_name_fa = '';
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
<div class="mb-3">
|
||||
<div id="smartwizard-3-step-1" class="card animated fadeIn">
|
||||
<div class="card-body">
|
||||
{!! Form::open(['url' => route('user_customer_edit', ['new']), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_customer_edit', ['new']), 'class' => 'form-horizontal']) !!}
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-12 {{ $errors->has('email') ? 'has-error' : '' }}">
|
||||
<label class="form-label" for="email">{{ __('E-Mail Address') }}*</label>
|
||||
|
|
@ -64,7 +64,7 @@
|
|||
|
||||
<hr>
|
||||
{!! Form::close() !!}
|
||||
{!! Form::open(['url' => route('user_customer_edit', ['new']), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_customer_edit', ['new']), 'class' => 'form-horizontal']) !!}
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-12 mt-2">
|
||||
<label class="switcher switcher-secondary">
|
||||
|
|
@ -88,7 +88,7 @@
|
|||
<div id="smartwizard-3-step-2" class="card animated fadeIn">
|
||||
<div class="card-body">
|
||||
@if($step == 1)
|
||||
{!! Form::open(['url' => route('user_customer_edit', ['new']), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
|
||||
{!! Form::open(['action' => route('user_customer_edit', ['new']), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
|
||||
@include('admin.customer._edit')
|
||||
|
||||
<div class="text-left mt-3">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<a href="{{route('user_customer_detail', [$shopping_user->id])}}" class="btn btn-sm btn-default float-right">zurück</a>
|
||||
{{ __('Kunden Details') }} bearbeiten
|
||||
</h4>
|
||||
{!! Form::open(['url' => route('user_customer_edit', [$shopping_user->id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
|
||||
{!! Form::open(['action' => route('user_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>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<div class="card-body">
|
||||
<p>{{__('Confirm your identity with your password before proceeding.')}}</p>
|
||||
|
||||
{!! Form::open(['url' => route('user_delete_account')]) !!}
|
||||
{!! Form::open(['action' => route('user_delete_account')]) !!}
|
||||
<div class="form-group row">
|
||||
<label class="col-form-label col-sm-2 text-sm-right">{{__('Password')}}*</label>
|
||||
<div class="col-sm-10">
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<h4 class="font-weight-bold py-2 mb-2">
|
||||
{{ __('navigation.my_data') }}
|
||||
</h4>
|
||||
{!! Form::open(['url' => route('user_edit'), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
|
||||
{!! Form::open(['action' => route('user_edit'), '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.user_form')
|
||||
<div class="text-left mt-3">
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
<!-- Modal template -->
|
||||
<div class="modal fade" id="modal-user-vat-validation">
|
||||
<div class="modal-dialog">
|
||||
{!! Form::open(['url' => route('user_edit'), 'class' => 'modal-content']) !!}
|
||||
{!! Form::open(['action' => route('user_edit'), '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">
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<a href="{{route('user_homepartys')}}" class="btn btn-sm btn-default float-right">zurück</a>
|
||||
</h4>
|
||||
|
||||
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-party-form-validation']) !!}
|
||||
{!! Form::open(['action' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-party-form-validation']) !!}
|
||||
|
||||
<div class="card mb-4">
|
||||
<h5 class="card-header">
|
||||
|
|
@ -97,7 +97,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
{!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
|
||||
{!! Form::open(['action' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
|
||||
<div class="card mb-4">
|
||||
<h5 class="card-header">
|
||||
<div class="row">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<a href="{{route('user_homeparty_guests', [$homeparty->id])}}" class="btn btn-sm btn-default float-right">zurück</a>
|
||||
</h4>
|
||||
|
||||
{!! Form::open(['url' => route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
|
||||
{!! Form::open(['action' => route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
|
||||
<div class="card mb-4">
|
||||
<h5 class="card-header">
|
||||
<div class="row">
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@
|
|||
<h6 class="alert badge-{{$userHistoryPaymentOrder->getStatusColor()}}">Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryPaymentOrder->getStatusType())}}</h6>
|
||||
@endif
|
||||
|
||||
{!! Form::open(['url' => route('user_homeparty_order', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-order-form']) !!}
|
||||
{!! Form::open(['action' => route('user_homeparty_order', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-order-form']) !!}
|
||||
|
||||
<div class="card mb-4">
|
||||
<h5 class="card-header">
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@
|
|||
<a href="{{route('homeparty', [$homeparty->token])}}" class="btn btn-sm btn-default float-right">zurück</a>
|
||||
</h4>
|
||||
|
||||
{!! Form::open(['url' => route('homeparty', [$homeparty->token, $homeparty_user->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
|
||||
{!! Form::open(['action' => route('homeparty', [$homeparty->token, $homeparty_user->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!}
|
||||
@if(Session::has('alert-save'))
|
||||
<div class="alert alert-dark-secondary alert-dismissible fade show">
|
||||
<div class="font-weight-bold">
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
|
||||
{!! Form::open(['url' => route('user_membership_store', ['change_order']), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_membership_store', ['change_order']), 'class' => 'form-horizontal']) !!}
|
||||
<div class="table-responsive">
|
||||
<table class="table table- m-0">
|
||||
<tbody class="switchers-stacked">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
{!! Form::open(['url' => route('user_membership_store', ['change_level']), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_membership_store', ['change_level']), 'class' => 'form-horizontal']) !!}
|
||||
<div class="table-responsive">
|
||||
<table class="table table- m-0">
|
||||
<tbody class="switchers-stacked">
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
|
||||
{!! Form::open(['url' => route('user_membership_store', ['payment']), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_membership_store', ['payment']), 'class' => 'form-horizontal']) !!}
|
||||
<div class="table-responsive">
|
||||
<table class="table table- m-0">
|
||||
<tbody class="switchers-stacked">
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<div class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h5>Dein gebuchtes Paket</h5>
|
||||
{!! Form::open(['url' => route('user_membership_store', ['payment_order']), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_membership_store', ['payment_order']), 'class' => 'form-horizontal']) !!}
|
||||
<div class="table-responsive">
|
||||
<table class="table table- m-0">
|
||||
<tbody class="switchers-stacked">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
{!! Form::open(['url' => route('user_membership_store', ['upgrade_order']), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_membership_store', ['upgrade_order']), 'class' => 'form-horizontal']) !!}
|
||||
<input type="hidden" name="qty" value="{{$diff_months}}">
|
||||
<div class="table-responsive">
|
||||
<table class="table table- m-0">
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@
|
|||
{{-- remove ABO Options
|
||||
@if($user->payment_account && $user->isAboOption())
|
||||
<div class="card w-100 mb-4">
|
||||
{!! Form::open(['url' => route('user_membership_store', ['remove_abo']), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_membership_store', ['remove_abo']), 'class' => 'form-horizontal']) !!}
|
||||
<h5 class="card-header">{{__('payment.status.auto_renewal_hl')}} {{__('deaktivieren')}}</h5>
|
||||
|
||||
<div class="card-body">
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
|
||||
@if($user->payment_account)
|
||||
<div class="card w-100 mb-4">
|
||||
{!! Form::open(['url' => route('user_membership_store', ['delete_membership']), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_membership_store', ['delete_membership']), 'class' => 'form-horizontal']) !!}
|
||||
<h5 class="card-header">{{__('Mitgliedschaft')}} {{__('beenden')}}</h5>
|
||||
|
||||
<div class="card-body">
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<div class="card">
|
||||
<div class="card-body p-2 p-md-4">
|
||||
|
||||
{!! Form::open(['url' => route('user_order_my_delivery', [$for, $delivery_id]), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_order_my_delivery', [$for, $delivery_id]), 'class' => 'form-horizontal']) !!}
|
||||
|
||||
<h4>Lieferdaten</h4>
|
||||
<div class="switchers-stacked">
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{!! Form::open(['url' => route('user_order_my_payment', [$for, $delivery_id]), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_order_my_payment', [$for, $delivery_id]), 'class' => 'form-horizontal']) !!}
|
||||
<input type="hidden" name="shipping_is_for" value="{{$for}}">
|
||||
|
||||
@if($for === 'cr')
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
Berater Bestellungen
|
||||
</h6>
|
||||
<div class="col-sm-6 mb-2">
|
||||
{!! Form::open(['url' => route('user_revenue'), 'class' => 'form-horizontal', 'id'=>'filter_sales_member']) !!}
|
||||
{!! Form::open(['action' => route('user_revenue'), 'class' => 'form-horizontal', 'id'=>'filter_sales_member']) !!}
|
||||
|
||||
<label class="form-label" for="filter_user_shop_id">Filter Jahr</label>
|
||||
<select class="custom-select" name="filter_sales_year" id="filter_sales_year">
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
<div class="row">
|
||||
<div class="col-sm-6 mb-0 mt-2 mb-2">
|
||||
{!! Form::open(['url' => route('user_payment_revenue'), 'class' => 'form-horizontal', 'id'=>'form_filter_year']) !!}
|
||||
{!! Form::open(['action' => route('user_payment_revenue'), 'class' => 'form-horizontal', 'id'=>'form_filter_year']) !!}
|
||||
<label class="form-label" for="filter_year">Filter Jahr</label>
|
||||
<select class="custom-select" name="filter_year" id="filter_year">
|
||||
@foreach($years as $year)
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
font-size: 1.1em;
|
||||
}
|
||||
</style>
|
||||
{!! Form::open(['url' => route('user_profile_image_upload'), 'class' => 'avatar px-2', 'enctype' => 'multipart/form-data']) !!}
|
||||
{!! Form::open(['action' => route('user_profile_image_upload'), 'class' => 'avatar px-2', 'enctype' => 'multipart/form-data']) !!}
|
||||
<div class="slim_holder text-center">
|
||||
<div class="slim" style="margin:0 auto;"
|
||||
data-label='<span class="text-green">Foto-Upload</span><br>(Datei suchen oder Drag & Drop)'
|
||||
|
|
@ -64,7 +64,7 @@
|
|||
@endif
|
||||
</div>
|
||||
<div class="form-group col-md-8">
|
||||
{!! Form::open(['url' => route('user_profile'), 'class' => 'form-horizontal']) !!}
|
||||
{!! Form::open(['action' => route('user_profile'), 'class' => 'form-horizontal']) !!}
|
||||
<input type="hidden" name="user_id" id="user_id" value="@if ($user->id > 0){{ $user->id }}@else new @endif">
|
||||
<label class="form-label" for="about_you">Kurzer Text über Dich (max. 600 Zeichen)</label>
|
||||
{{ Form::textarea('about_you', $user->account->about_you, ['placeholder' => __('Über dich'), 'class' => 'form-control bootstrap-maxlength text-autosize', 'maxlength' => 600, 'rows' => 1, 'id' => 'about_you']) }}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<div>{{ __('navigation.my_promotions') }} / {{ __('bearbeiten') }}</div>
|
||||
</h4>
|
||||
|
||||
{!! Form::open(['url' => route('user_promotion_detail', $user_promotion->id), 'class' => 'form-horizontal', 'id'=>"user-promotion-form-validations"]) !!}
|
||||
{!! Form::open(['action' => route('user_promotion_detail', $user_promotion->id), 'class' => 'form-horizontal', 'id'=>"user-promotion-form-validations"]) !!}
|
||||
|
||||
<div class="text-left mt-0 mb-2">
|
||||
<button type="submit" class="btn btn-submit" name="action" value="save-user-promotion">Promotion {{ __('save') }}</button>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<div>{{ __('navigation.my_shop') }} / {{ __('navigation.settings') }}</div>
|
||||
</h4>
|
||||
|
||||
{!! Form::open(['url' => route('user_shop_store'), 'class' => 'form-horizontal', 'id'=>"user-shop-form-validations"]) !!}
|
||||
{!! Form::open(['action' => route('user_shop_store'), 'class' => 'form-horizontal', 'id'=>"user-shop-form-validations"]) !!}
|
||||
|
||||
@include('user.shop.form')
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
<h4 class="font-weight-bold py-2 mb-2">
|
||||
<a href="{{route('user_shop_orders')}}" class="btn btn-sm btn-default float-right">zurück</a>
|
||||
{{ __('Bestellung Kunde') }} <span class="text-muted">#{{$shopping_order->id}}</span>
|
||||
</h4>
|
||||
@include('admin.sales._detail')
|
||||
<a href="{{route('user_shop_orders')}}" class="btn btn-sm btn-default mt-2 float-right">zurück</a>
|
||||
|
||||
@endsection
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
|
||||
<h4 class="font-weight-bold py-2 mb-2">
|
||||
{{ __('Bestellungen Kunden') }}
|
||||
</h4>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-datatable table-responsive">
|
||||
<table class="datatable-customers table table-striped table-bordered">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{__('First name')}}</th>
|
||||
<th>{{__('Last name')}}</th>
|
||||
<th>{{__('E-Mail')}}</th>
|
||||
<th>{{__('Datum')}}</th>
|
||||
<th>{{__('Status')}}</th>
|
||||
<th>{{__('Betrag')}}</th>
|
||||
<!--<th>{{__('Käufe')}}</th-->
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$( document ).ready(function() {
|
||||
$('.datatable-customers').dataTable({
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
"ajax": '{!! route('user_shop_orders_datatable') !!}',
|
||||
"order": [[0, "desc" ]],
|
||||
"columns": [
|
||||
{ data: 'id', searchable: false },
|
||||
{ data: 'shopping_user.billing_firstname', name: 'shopping_user.billing_firstname' },
|
||||
{ data: 'shopping_user.billing_lastname', name: 'shopping_user.billing_lastname' },
|
||||
{ data: 'shopping_user.billing_email', name: 'shopping_user.billing_email' },
|
||||
{ data: 'created_at', name: 'created_at' },
|
||||
{ data: 'txaction', name: 'txaction' },
|
||||
{ data: 'total_shipping', name: 'total_shipping' },
|
||||
// { data: 'shopping_user.orders', name: 'shopping_user.orders' },
|
||||
],
|
||||
"bLengthChange": false,
|
||||
"iDisplayLength": 100,
|
||||
"language": {
|
||||
"url": "/js/German.json"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
{!! Form::open(['url' => route('user_update_email')]) !!}
|
||||
{!! Form::open(['action' => route('user_update_email')]) !!}
|
||||
|
||||
<div class="form-group row">
|
||||
<label class="col-form-label col-sm-2 text-sm-right">{{__('New E-Mail Address')}}*</label>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
{{__('Change Password')}}
|
||||
</h6>
|
||||
<div class="card-body">
|
||||
{!! Form::open(['url' => route('user_update_password')]) !!}
|
||||
{!! Form::open(['action' => route('user_update_password')]) !!}
|
||||
<div class="form-group row">
|
||||
<label class="col-form-label col-sm-2 text-sm-right">{{__('Old Password')}}*</label>
|
||||
<div class="col-sm-10">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
{{__('Create Password')}}
|
||||
</h6>
|
||||
<div class="card-body">
|
||||
{!! Form::open(['url' => route('user_update_password_first')]) !!}
|
||||
{!! Form::open(['action' => route('user_update_password_first')]) !!}
|
||||
<div class="form-group row">
|
||||
<label class="col-form-label col-sm-2 text-sm-right">{{__('New Password')}}*</label>
|
||||
<div class="col-sm-10">
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
|
||||
{!! Form::open(['url' => route('wizard_store_payment', [20]), 'class' => 'form-horizontal']) !!}
|
||||
{!! 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">
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@
|
|||
<div class="mb-3">
|
||||
<div id="smartwizard-3-step-1" class="card animated fadeIn">
|
||||
<div class="card-body">
|
||||
{!! Form::open(['url' => route('wizard_store_create', [10]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation-confirm']) !!}
|
||||
{!! Form::open(['action' => route('wizard_store_create', [10]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation-confirm']) !!}
|
||||
@include('user.data_confirm')
|
||||
<div class="text-left mt-3">
|
||||
<button type="submit" class="btn btn-secondary">{{ __('zustimmen und weiter') }}</button>
|
||||
|
|
@ -74,14 +74,14 @@
|
|||
<div id="smartwizard-3-step-2" class="card animated fadeIn">
|
||||
<div class="card-body">
|
||||
@if(!$user->isPasswort())
|
||||
{!! Form::open(['url' => route('wizard_store_create', [11])]) !!}
|
||||
{!! Form::open(['action' => route('wizard_store_create', [11])]) !!}
|
||||
@include('user.update_password_first_form')
|
||||
<div class="text-left mt-3">
|
||||
<button type="submit" class="btn btn-secondary">{{ __('erstellen und weiter') }}</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
@else
|
||||
{!! Form::open(['url' => route('wizard_store_create', [11])]) !!}
|
||||
{!! Form::open(['action' => route('wizard_store_create', [11])]) !!}
|
||||
<p>Passwort wurde bereits erstellt.</p>
|
||||
<button type="submit" class="btn btn-secondary">{{ __('weiter') }}</button>
|
||||
{!! Form::close() !!}
|
||||
|
|
@ -90,7 +90,7 @@
|
|||
</div>
|
||||
<div id="smartwizard-3-step-3" class="card animated fadeIn">
|
||||
<div class="card-body">
|
||||
{!! Form::open(['url' => route('wizard_store_create', [12]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
|
||||
{!! Form::open(['action' => route('wizard_store_create', [12]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!}
|
||||
@include('user.user_form')
|
||||
<div class="text-left mt-3">
|
||||
<button type="submit" class="btn btn-secondary">{{ __('speichern und weiter') }}</button>
|
||||
|
|
@ -122,7 +122,7 @@
|
|||
<!-- Modal template -->
|
||||
<div class="modal fade" id="modal-user-vat-validation">
|
||||
<div class="modal-dialog">
|
||||
{!! Form::open(['url' => route('wizard_store_register', [1]), 'class' => 'modal-content']) !!}
|
||||
{!! Form::open(['action' => route('wizard_store_register', [1]), 'class' => 'modal-content']) !!}
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">{{ __('account.new_vat_validate') }}</span></h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
|
|
|
|||
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