commit 08-2025

This commit is contained in:
Kevin Adametz 2025-08-12 15:51:04 +02:00
parent 9b54eb0512
commit 02f2a4c23e
184 changed files with 31653 additions and 22327 deletions

View file

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

View file

@ -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) !!}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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>&nbsp;

View file

@ -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> &nbsp;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

View file

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

View file

@ -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>&nbsp;
@ -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">

View file

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

View file

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

View file

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

View file

@ -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') }}

View file

@ -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') }}

View file

@ -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') }}

View file

@ -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']}}">

View file

@ -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') }}

View file

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

View file

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

View file

@ -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']) !!}

View file

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

View file

@ -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))
&nbsp; {!! $entry->delete !!}
@endif
</div>

View file

@ -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))
&nbsp; {!! $entry->delete !!}
@endif
</div>

View file

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

View file

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

View file

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

View file

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

View 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>&nbsp;
</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

View 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

View 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

View 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

View file

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

View file

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

View file

@ -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()}} &euro;
</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

View 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

View 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

View file

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

View file

@ -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') }}

View file

@ -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>&nbsp;

View file

@ -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> &nbsp;Export als xls</button>
<hr>

View file

@ -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') --}}

View 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>

View 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>

View 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>

View file

@ -0,0 +1,5 @@
@extends('errors::minimal')
@section('title', __('Unauthorized'))
@section('code', '401')
@section('message', __('Unauthorized'))

View file

@ -0,0 +1,5 @@
@extends('errors::minimal')
@section('title', __('Forbidden'))
@section('code', '403')
@section('message', __($exception->getMessage() ?: 'Forbidden'))

View file

@ -0,0 +1,5 @@
@extends('errors::minimal')
@section('title', __('Page Expired'))
@section('code', '419')
@section('message', __('Page Expired'))

View file

@ -0,0 +1,5 @@
@extends('errors::minimal')
@section('title', __('Too Many Requests'))
@section('code', '429')
@section('message', __('Too Many Requests'))

View file

@ -0,0 +1,5 @@
@extends('errors::minimal')
@section('title', __('Server Error'))
@section('code', '500')
@section('message', __('Server Error'))

View file

@ -0,0 +1,5 @@
@extends('errors::minimal')
@section('title', __('Service Unavailable'))
@section('code', '503')
@section('message', __('Service Unavailable'))

View 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>

View 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>

File diff suppressed because one or more lines are too long

View file

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

View file

@ -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)) }}

View file

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

View file

@ -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)) }}

View file

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

View file

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

View file

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

View file

@ -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)) }}

View file

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

View file

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

View file

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

View file

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

View file

@ -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) !!}

View file

@ -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']) !!}

View file

@ -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 = '';

View file

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

View file

@ -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>&nbsp;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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')

View file

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

View file

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

View file

@ -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']) }}

View file

@ -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>&nbsp;

View file

@ -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')

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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>&nbsp;
@ -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>&nbsp;
</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>&nbsp;
{!! 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>&nbsp;
@ -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