Update Framework, Invoices

This commit is contained in:
Kevin Adametz 2022-04-14 13:14:36 +02:00
parent cc5c147c27
commit 9b0b5feb7e
174 changed files with 28356 additions and 8093 deletions

View file

@ -41,12 +41,8 @@
@else
&nbsp; | &nbsp;<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>
@endif
&nbsp; | &nbsp;<span class="small">{{ $product_category->product->getShowAtType() }}</span>
&nbsp; | &nbsp;<span class="small">{!! implode($product_category->product->getShowOnTypes(), ' / ') !!}</span>
&nbsp; | &nbsp;<a href="{{ route('admin_product_edit', [$product_category->product->id]) }}" class="btn btn-xs btn-secondary"><i class="fa fa-eye"></i></a>
@else
-
@endif

View file

@ -23,10 +23,11 @@
<th>{{__('Level')}}</th>
<th>{{__('Mitglied')}}</th>
<th>{{__('bis')}}</th>
<th>{{__('Onlineshop')}}</th>
<th>{{__('Shop')}}</th>
<th>{{__('bis')}}</th>
<th>{{__('Umsatz')}}</th>
<th>{{__('Sales')}}</th>
<th>{{__('Domain')}}</th>
{{-- <th>{{__('Umsatz')}}</th>
<th>{{__('Sales')}}</th> --}}
<th>{{__('verifiziert')}}</th>
<th>{{__('freigegeben')}}</th>
<th>{{__('Einv.')}}</th>
@ -61,8 +62,7 @@
{ data: 'payment_account_date', name: 'payment_account_date' },
{ data: 'payment_shop', name: 'payment_shop' },
{ data: 'payment_shop_date', name: 'payment_shop_date' },
{ data: 'turnover', name: 'turnover' },
{ data: 'sales_total', name: 'sales_total' },
{ data: 'shop_domain', name: 'shop_domain', orderable: false },
{ data: 'confirmed', name: 'confirmed' },
{ data: 'active', name: 'active' },
{ data: 'agreement', name: 'agreement' },

View file

@ -99,7 +99,9 @@
@if($current->shopping_order && $current->shopping_order->user_shop)
<span class="text-muted">#{{$current->shopping_order->user_shop->user->number}}</span><br>
{{$current->shopping_order->user_shop->user->getFullName()}}<br>
{{$current->shopping_order->user_shop->user->account->zipcode}} {{$current->shopping_order->user_shop->user->account->city}}<br>
@if(isset($current->shopping_order->user_shop->user->account->zipcode)){{$current->shopping_order->user_shop->user->account->zipcode}} @endif
@if(isset($current->shopping_order->user_shop->user->account->city)){{$current->shopping_order->user_shop->user->account->city}} @endif
<br>
@if($current->shopping_order->user_shop)
@if($current->shopping_order->user_shop->user->isActive() && $current->shopping_order->user_shop->user->isActiveShop())
<a href="{{$current->shopping_order->user_shop->getSubdomain(false)}}" class="badge badge-success" target="_blank">{{$current->shopping_order->user_shop->getSubdomain(false)}}</a>
@ -186,7 +188,8 @@
@if($possible->member_id)
<span class="text-muted">#{{$possible->member->number}}</span><br>
{{$possible->member->getFullName()}}<br>
{{$possible->member->account->zipcode}} {{$possible->member->account->city}}<br>
@if(isset($possible->member->account->zipcode)){{$possible->member->account->zipcode}} @endif
@if(isset($possible->member->account->city)){{$possible->member->account->city}} @endif <br>
@if($possible->member->shop)
@if($possible->member->isActive() && $possible->member->isActiveShop())
<a href="{{$possible->member->shop->getSubdomain(false)}}" class="badge badge-success" target="_blank">{{$possible->member->shop->getSubdomain(false)}}</a>

View file

@ -0,0 +1,103 @@
@extends('layouts.layout-2')
@section('content')
<div class="card">
<h6 class="card-header">
Finanzen / Rechnungen
</h6>
<div class="card-body p-0">
{!! Form::open(['url' => route('admin_payments_invoice'), 'class' => 'form-horizontal', 'id'=>'form_filter_payment_invoices']) !!}
<div class="form-row align-items-center px-4 pb-2 pt-3">
<div class="col-12 col-sm-4 col-md-4 col-lg-4 mb-1">
<input class="form-control on_keyup_invoice" name="invoice_filter_name" type="text" value="{{session('invoice_filter_name')}}" placeholder="Name">
</div>
<div class="col-6 col-sm-4 col-md-4 col-lg-4 mb-1">
<select class="custom-select on_change_invoice" name="invoice_filter_month">
@foreach($filter_months as $key=>$value)
<option value="{{$key}}" @if(session('invoice_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_invoice" name="invoice_filter_year">
@foreach($filter_years as $key=>$value)
<option value="{{$value}}" @if(session('invoice_filter_year') == $value) selected @endif>{{$value}}</option>
@endforeach
</select>
</div>
</div>
{!! Form::close() !!}
<div class="card-datatable table-responsive pt-0">
<table class="datatables-style table table-striped table-bordered" id="datatable-invoice">
<thead>
<tr>
<th>#</th>
<th>{{__('Re.Nr.')}}</th>
<th>{{__('Rechnung')}}</th>
<th>{{__('Betrag') }}</th>
<th>{{__('Status')}}</th>
<th>{{__('Vorname')}}</th>
<th>{{__('Nachname') }}</th>
<th>{{__('E-Mail') }}</th>
<th>{{__('Datum') }}</th>
<th>{{__('Art')}}</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<script>
$( document ).ready(function() {
var oTable = $('#datatable-invoice').DataTable({
"processing": true,
"serverSide": true,
"stateSave": true,
"searching": false,
ajax: {
url: '{!! route('admin_payments_invoice_datatable') !!}',
data: function(d) {
d.invoice_filter_name = $('input[name=invoice_filter_name]').val();
d.invoice_filter_month = $('select[name=invoice_filter_month]').val();
d.invoice_filter_year = $('select[name=invoice_filter_year]').val();
}
},
"order": [[0, "desc" ]],
"columns": [
{ data: 'id', searchable: false },
{ data: 'full_number', name: 'full_number' },
{ data: 'invoice', name: 'invoice', orderable: false, searchable: false },
{ data: 'total_shipping', name: 'total_shipping' },
{ data: 'txaction', name: 'txaction', searchable: false },
{ data: 'shopping_order.shopping_user.billing_firstname', name: 'shopping_order.shopping_user.billing_firstname', orderable: false },
{ data: 'shopping_order.shopping_user.billing_lastname', name: 'shopping_order.shopping_user.billing_lastname', orderable: false },
{ data: 'shopping_order.shopping_user.billing_email', name: 'shopping_order.shopping_user.billing_email', orderable: false },
{ data: 'created_at', name: 'created_at' },
{ data: 'status', name: 'status', searchable: false },
],
"bLengthChange": false,
"iDisplayLength": 100,
"language": {
"url": "/js/German.json"
}
});
$('select.on_change_invoice').on('change', function(){
oTable.draw();
});
$('input.on_keyup_invoice').on('keyup', function(){
oTable.draw();
});
});
/*$('#filter_sales_year').on('change', function(){
$('#form_filter_payment_invoices').submit();
});*/
</script>
@endsection

View file

@ -21,6 +21,7 @@
<th>{{__('Artikelnummer')}}</th>
<th>{{__('Kategorie')}}</th>
<th>{{__('Preis')}}</th>
<th>{{__('MwSt')}}</th>
<th>{{__('Points')}}</th>
<th>{{__('Inhalt')}}</th>
<th>{{__('Einheit')}}</th>
@ -55,6 +56,7 @@
@endforeach
</td>
<td>{{ $value->getFormattedPrice() }}</td>
<td>{{ $value->getFormattedTax() }}</td>
<td>{{ $value->points }}</td>
<td>{{ $value->contents_total }}</td>
<td>{{ $value->getUnitType() }}</td>

View file

@ -3,13 +3,13 @@
<!-- Status -->
<div class="card-body">
<div class="row">
<div class="col-md-6 mb-1">
<div class="col-md-3 mb-1">
<strong class="mr-2">Status:</strong>
<span class="text-big">
{!! \App\Services\Payment::getShoppingOrderBadge($shopping_order); !!}
</span>
</div>
<div class="col-md-6 mb-1">
<div class="col-md-3 mb-1">
<strong class="mr-2">Versand:</strong>
@if($isAdmin)
@ -26,6 +26,54 @@
</span>
@endif
</div>
<div class="col-md-3 mb-1">
<strong class="mr-2">Rechnung:</strong>
@if($isAdmin)
@if($shopping_order->isInvoice())
<a href="{{ route('storage_file', [$shopping_order->id, 'invoice', 'download']) }}" class="btn btn-primary btn-sm"><i class="fa fa-download"></i></a>
<a href="{{ route('storage_file', [$shopping_order->id, 'invoice', 'stream']) }}" target="_blank" class="btn btn-warning btn-sm"><i class="fa fa-eye"></i></a>
@if(Auth::user()->isSySAdmin())
<button type="button" class="btn btn-sm btn-info" data-toggle="modal" data-target="#modals-invoice"
data-id="{{ $shopping_order->id }}"
//TODO
//data-invoice="{{ $shopping_order->invoice_status }}"
data-back="{{url()->current()}}"
data-action="create_invoice">
<span class="fa fa-file"></span>
</button>
@endif
@else
{{--
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-invoice"
data-id="{{ $shopping_order->id }}"
//TODO
// data-invoice="{{ $shopping_order->invoice_status }}"
data-back="{{url()->current()}}"
data-action="create_invoice">
<span class="fa fa-file"></span> <strong>Rechnung erstellen</strong>
</button>
--}}
@endif
@else
@if($shopping_order->isInvoice())
<a href="{{ route('storage_file', [$shopping_order->id, 'invoice', 'download']) }}" class="btn btn-primary btn-sm"><i class="fa fa-download"></i></a>
<a href="{{ route('storage_file', [$shopping_order->id, 'invoice', 'stream']) }}" target="_blank" class="btn btn-warning btn-sm"><i class="fa fa-eye"></i></a>
@endif
@endif
@if($shopping_order->txaction === 'extern' && $shopping_order->wp_invoice_path)
<a href="{{$shopping_order->wp_invoice_path}}" class="btn btn-secondary btn-sm"><i class="fa fa-external-link-alt"></i> <i class="fa fa-download"></i></a>
@endif
</div>
<div class="col-md-3 mb-1">
@if($isAdmin)
<strong class="mr-2">Lieferschein:</strong>
@if($shopping_order->isInvoice())
<a href="{{ route('storage_file', [$shopping_order->id, 'delivery', 'download']) }}" class="btn btn-primary btn-sm"><i class="fa fa-download"></i></a>
<a href="{{ route('storage_file', [$shopping_order->id, 'delivery', 'stream']) }}" target="_blank" class="btn btn-warning btn-sm"><i class="fa fa-eye"></i></a>
@endif
@endif
</div>
</div>
</div>
@ -368,15 +416,14 @@
{{__('email.checkout_mail_shipping')}}
</td>
<td style="color:#37302d; text-align: right; vertical-align: top;line-height:1.6em;">
@if($shopping_order->shopping_user->is_from === 'user_order')
{{ $shopping_order->getFormattedShippingNet() }} &euro;
@if($shopping_order->tax > 0)
{{ $shopping_order->getFormattedShipping() }} &euro;
@else
{{ $shopping_order->getFormattedShipping() }} &euro;
{{ $shopping_order->getFormattedShippingNet() }} &euro;
@endif
</td>
</tr>
<tr>
<td colspan="3">
{{__('email.checkout_mail_subtotal_ws')}}
</td>
@ -512,7 +559,7 @@
@if($shopping_order->wp_invoice_path)
<div class="row">
<div class="col-sm-12">
<a href="{{$shopping_order->wp_invoice_path}}" target="_blank" class="btn btn-secondary btn-sm">Link zur Rechnung</a>
<a href="{{$shopping_order->wp_invoice_path}}" target="_blank" class="btn btn-secondary btn-sm"><i class="fa fa-external-link-alt"></i> Link zur Rechnung</a>
</div>
</div>
@endif
@ -623,7 +670,6 @@
</div>
@if($isAdmin)
<!-- Modal template -->
<div class="modal fade" id="modals-shipped">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_sales_store') }}" method="post">
@ -651,8 +697,46 @@
</div>
</div>
<div class="modal fade" id="modals-invoice">
<div class="modal-dialog">
<form class="modal-content form-prevent-multiple-submits" action="{{ route('admin_sales_invoice') }}" method="post">
@csrf
<input type="hidden" name="id" value="{{$shopping_order->id}}">
<input type="hidden" name="action" value="create_invoice">
<input type="hidden" name="back" value="{{url()->current()}}">
<input type="hidden" name="view" value="{{$isView}}">
<div class="modal-header">
<h5 class="modal-title">{{__('Rechnung')}}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-group col-sm-12">
{{ Form::select('invoice_option', ['create'=>'Rechnung erstellen'], false, array('data-live-search'=>'false', 'class'=>'selectpicker') ) }}
</div>
<div class="form-group col-sm-12">
<label class="form-label" for="invoice_date">{{ __('Rechnungsdatum') }}</label>
{!! Form::text('invoice_date', $shopping_order->created_at->format("d.m.Y"), ['class'=>'form-control datepicker-base']) !!}
</div>
<div class="form-group col-sm-12">
<label class="form-label" for="invoice_number">{{ __('Rechnungsnummer') }}</label>
{!! Form::text('invoice_number', App\Services\Invoice::getInvoiceNumber(), ['class'=>'form-control', 'disabled']) !!}
<em> nächste Rechnungsnummer <a href="{{ route('admin_settings') }}"><i class="fa fa-edit"></i></a></em>
</div>
<div class="form-group col-sm-12">
<label class="custom-control custom-checkbox">
{!! Form::checkbox('invoice_send_mail', 1, false, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Rechnung <strong>nicht</strong> senden an: {{ $shopping_order->shopping_user->billing_email }}</span>
</label>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{__('close')}}</button>
<button type="submit" class="btn btn-primary button-prevent-multiple-submits"><i class="spinner fa fa-spinner fa-spin"></i> {{__('save')}}</button>
</div>
</form>
</div>
</div>
<!-- Modal template -->
<div class="modal fade" id="modals-txaction">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_sales_store') }}" method="post">
@ -661,7 +745,6 @@
<input type="hidden" name="payment_id">
<input type="hidden" name="action" value="store_txaction">
<input type="hidden" name="back" value="{{url()->current()}}">
<div class="modal-header">
<h5 class="modal-title">{{__('Bestellung')}} {{__('Rechnung')}} </h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>

View file

@ -9,8 +9,8 @@
<th>{{__('Marge')}}</th>
<th class="text-right">{{__('Points')}}</th>
<th class="text-right">{{__('Verdienst')}}</th>
<th class="text-right">{{__('EK-Preis')}}</th>
<th class="text-right">{{__('VK-Preis')}}</th>
<th class="text-right">{{__('EK-Preis')}}</th>
</tr>
</thead>
<tbody>
@ -61,7 +61,7 @@
Lieferung an Gastgeber
@endif
@if($homeparty_guest->getDelivery() === 'direct')
Lieferung direkt an den Gast
Lieferung direkt an den Gast
@endif
</td>
</tr>
@ -121,7 +121,6 @@
<td class="border-top text-right"><strong>{{Util::formatNumber($user_cart['ek_price'])}} &euro;</strong></td>
</tr>
@endif
</tfoot>
</table>
@ -130,7 +129,6 @@
@if($homeparty_guest->is_host || $homeparty_guest->getDelivery() === 'direct')
<hr class="m-0">
<div class="card-body" style="background-color: #E5E9EF">
<h6 class="small font-weight-semibold">
Lieferadresse

View file

@ -54,11 +54,13 @@
<th>{{__('Zahlung')}}</th>
<th>{{__('Status')}}</th>
<th>{{__('Versand')}}</th>
<th>{{__('Rechnung')}}</th>
<th>{{__('First name')}}</th>
<th>{{__('Last name')}}</th>
<th>{{__('E-Mail')}}</th>
<th>{{__('zugewiesener Berater')}}</th>
<th>{{__('Rf-Nr.')}}</th>
<th>{{__('Art')}}</th>
<th>{{__('Käufe')}}</th>
<th>{{__('Gekauft im Shop')}}</th>
</tr>
@ -87,11 +89,13 @@
{ data: 'payment', name: 'payment', orderable: false },
{ data: 'txaction', name: 'txaction' },
{ data: 'shipped', name: 'shipped' },
{ data: 'invoice', name: 'invoice', orderable: 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: 'member_id', name: 'member_id', searchable: false, orderable: false },
{ data: 'reference', name: 'reference' },
{ data: 'payment_for', name: 'payment_for' },
{ data: 'shopping_user.orders', name: 'shopping_user.orders' },
{ data: 'user_shop_id', name: 'user_shop_id', searchable: false, orderable: true },
],

View file

@ -21,13 +21,13 @@
<th>{{__('Status')}}</th>
<th>{{__('Versand')}}</th>
<th>{{__('Art')}}</th>
<th>{{__('Rechnung')}}</th>
<th>{{__('First name')}}</th>
<th>{{__('Last name')}}</th>
<th>{{__('E-Mail')}}</th>
<th>B.{{__('First name')}}</th>
<th>B.{{__('Last name')}}</th>
<th>B.{{__('E-Mail')}}</th>
<th>{{__('Rf-Nr.')}}</th>
<th>{{__('Käufe')}}</th>
<th>{{__('Berater-Shop')}}</th>
@ -50,7 +50,8 @@
{ data: 'payment', name: 'payment', orderable: false },
{ data: 'txaction', name: 'txaction' },
{ data: 'shipped', name: 'shipped' },
{ data: 'is_for', name: 'is_for', orderable: false },
{ data: 'payment_for', name: 'payment_for' },
{ data: 'invoice', name: 'invoice', orderable: false },
{ data: 'shopping_user.shipping_firstname', name: 'shopping_user.shipping_firstname', orderable: false },
{ data: 'shopping_user.shipping_lastname', name: 'shopping_user.shipping_lastname', orderable: false },
{ data: 'shopping_user.shipping_email', name: 'shopping_user.shipping_email', orderable: false },

View file

@ -0,0 +1,33 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-2 mb-2">
{{ __('Einstellungen') }}
</h4>
{!! Form::open(['url' => route('admin_setting_store'), 'class' => 'form-horizontal']) !!}
{{-- <div class="card mb-2">
<div class="card-body">
<h4>Rechnungen Einstellungen</h4>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label">{{ __('nächste Rechnungsnummer') }}*</label>
{{ Form::text('settings[invoice-number][val]', \App\Models\Setting::getContentBySlug('invoice-number'), array('class'=>'form-control')) }}
{{ Form::hidden('settings[invoice-number][type]', 'int') }}
</div>
</div>
<div class="form-row">
<div class="form-group col-sm-12">
<label class="form-label">{{ __('nächste Gutschriftsnummer') }}*</label>
{{ Form::text('settings[credit-number][val]', \App\Models\Setting::getContentBySlug('credit-number'), array('class'=>'form-control')) }}
{{ Form::hidden('settings[credit-number][type]', 'int') }}
</div>
</div>
<button type="submit" name="action" value="save_prepayment" class="btn btn-primary btn-sm mb-2"><i class="ion ion-ios-save"></i> speichern</button>
</div>
</div>
--}}
{!! Form::close() !!}
@endsection