Lieferland UST CH, Reverse Charge

This commit is contained in:
Kevin Adametz 2021-08-03 16:00:01 +02:00
parent 351a8f763c
commit d46824a4ac
19 changed files with 455 additions and 41 deletions

View file

@ -210,6 +210,9 @@ return [
'has_customer_buyed' => 'Die Angabe',
'billing_country_code' => 'Land Code',
'sales_partnership' => 'Vertriebspartnerschaft',
'sales_partnership_message' => 'Vertriebspartnerschaft Hinweis'
'sales_partnership_message' => 'Vertriebspartnerschaft Hinweis',
'tax_number' => 'Steuernummer',
'tax_identification_number' => 'USt-ID Nummer',
'reverse_charge' => 'Reverse Charge Verfahren'
],
];

View file

@ -50,6 +50,32 @@
</div>
</div>
<div class="card mb-2">
<h5 class="card-header">
Lieferland
</h5>
<div class="card-body">
<div class="form-group col-sm-12">
<label class="custom-control custom-checkbox">
{!! Form::checkbox('eu_country', 1, $country->eu_country, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Reverse Charge Verfahren (Berater aus diesen Ländern können mit ihrer UST-ID steuerfrei kaufen) </span>
</label>
</div>
<div class="form-group col-sm-12">
<label class="form-label">Basis- / Lieferland</label>
<div class="custom-controls-stacked">
<label class="custom-control custom-radio">
{!! Form::radio('supply_country', 0, !$country->supply_country, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Basisland (in diese Länder kann aus den deutschem Raum bestellt werden)</span>
</label>
<label class="custom-control custom-radio">
{!! Form::radio('supply_country', 1, $country->supply_country, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Lieferland (in diese Länder kann nur direkt bestellt werden, bsp. Schweiz)</span>
</label>
</div>
</div>
</div>
</div>
<div class="card mb-2">
<h5 class="card-header">
@ -60,7 +86,7 @@
<div class="form-group col-sm-12">
<label class="custom-control custom-checkbox">
{!! Form::checkbox('switch', 1, $country->switch, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Land aus Auswahl auf der Webseite anzeigen (Länderwechsel)</span>
<span class="custom-control-label">Land als Auswahl auf der Webseite anzeigen (Länderwechsel)</span>
</label>
</div>
<div class="form-group col-sm-12">

View file

@ -15,7 +15,9 @@
<th>{{__('Code')}}</th>
<th>{{__('Phone')}}</th>
<th>{{__('Status')}}</th>
<th>{{__('Reverse Charge')}}</th>
<th>{{__('Länderwechsel')}}</th>
<th>{{__('Lieferland') }}</th>
<th>{{__('e. Preis')}}</th>
<th>{{__('e. Währung')}}</th>
<th>{{__('Kalkulation')}}</th>
@ -33,7 +35,9 @@
<td>{{ $value->code }}</td>
<td>{{ $value->phone }}</td>
<td data-sort="{{ $value->active }}">{!! get_active_badge($value->active) !!}</td>
<td data-sort="{{ $value->eu_country }}">{!! get_active_badge($value->eu_country) !!}</td>
<td data-sort="{{ $value->switch }}">{!! get_active_badge($value->switch) !!}</td>
<td data-sort="{{ $value->supply_country }}">{!! get_active_badge($value->supply_country) !!}</td>
<td data-sort="{{ $value->own_eur }}">{!! get_active_badge($value->own_eur) !!}</td>
<td data-sort="{{ $value->currency }}">{!! get_active_badge($value->currency) !!} {{$value->currency_unit}}</td>
<td data-sort="{{ $value->currency_calc }}">

View file

@ -25,6 +25,7 @@
<th>{{__('Shop')}} ab</th>
<th>{{__('Zahlungsarten')}}</th>
<th>{{__('Test Modus')}}</th>
<th>{{__('login')}}</th>
<th>{{__('delete')}}</th>
</tr>
</thead>
@ -187,7 +188,7 @@
</div>
</div>
<!-- Modal account -->
<!-- Modal shop -->
<div class="modal fade" id="modals-shop">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
@ -221,6 +222,41 @@
</div>
</div>
<!-- Modal delete -->
<div class="modal fade" id="modals-user-delete">
<div class="modal-dialog">
<form class="modal-content" action="{{ route('admin_user_store') }}" method="post">
@csrf
<input type="hidden" class="form-control" name="id">
<div class="modal-header">
<h5 class="modal-title">{{__('User')}} <span class="font-weight-light">{{__('löschen')}}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<label for="email" class="form-label">{{__('E-Mail')}}</label>
<input type="text" class="form-control" name="email" placeholder="{{__('E-Mail')}}" readonly>
</div>
</div>
<div class="form-group">
<p>User die Einkäufe getätigt haben, oder Kunden haben, sollte nicht gelöscht werden, es kann zu Systemfehler führen.</p>
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="realy_delete_user">
<span class="custom-control-label">User wirklich löschen?</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-danger" name="user-delete" value="user-delete">{{__('User löschen')}}</button>
</div>
</form>
</div>
</div>
<!-- Modal test modus -->
<div class="modal fade" id="modals-test_mode">
<div class="modal-dialog">
@ -331,6 +367,13 @@
$(this).find(".modal-body input[name='email']").val(button.data('email'));
$(this).find(".modal-body input[name='payment_shop']").val(button.data('payment_shop'));
});
$('#modals-user-delete').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
$(this).find(".modal-body input[name='email']").val(button.data('email'));
});
$('#modals-payment_methods').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
$(this).find(".modal-content input[name='id']").val(button.data('id'));
@ -374,6 +417,7 @@
{ data: 'since', name: 'since' },
{ data: 'my_payment_methods', name: 'my_payment_methods' },
{ data: 'test_mode', name: 'test_mode' },
{ data: 'action_login', orderable: false, searchable: false},
{ data: 'action_delete', orderable: false, searchable: false},
],
"bLengthChange": false,

View file

@ -315,14 +315,54 @@
</select>
<p class="badge">Wähle Kleinunternehmer, wenn Du nicht mehr als 22.000 EUR Umsatz pro Jahr mit Deinem Gewerbe erwirtschaftest.</p>
</div>
<div class="form-group col-md-6">
<label class="form-label" for="tax_number">{{ __('Steuernummer') }} @if($user->account->getCountryAttrAs('tax_number'))* @endif</label>
{{ Form::text('tax_number', $user->account->tax_number, array('placeholder'=>__('Steuernummer'), 'class'=>'form-control', 'id'=>'tax_number', $user->account->getCountryAttrAs('tax_number','required'))) }}
</div>
<div class="form-group col-md-6">
<label class="form-label" for="tax_identification_number">{{ __('USt-ID Nummer') }} @if($user->account->getCountryAttrAs('tax_id_number'))* @endif</label>
{{ Form::text('tax_identification_number', $user->account-> tax_identification_number, array('placeholder'=>__('USt-ID Nummer'), 'class'=>'form-control', 'id'=>'tax_identification_number', $user->account->getCountryAttrAs('tax_id_number','required'))) }}
</div>
@if(!isset($step) && $user->account->country_id && $user->account->country->eu_country)
<div class="col-sm-12">
<hr>
</div>
<div class="form-group col-md-6 {{ $errors->has('tax_identification_number') ? 'has-error' : '' }}">
<label class="form-label" for="tax_identification_number">{{ __('USt-ID Nummer') }} @if($user->account->getCountryAttrAs('tax_id_number'))* @endif</label>
{{ Form::text('tax_identification_number', $user->account-> tax_identification_number, array('placeholder'=>__('USt-ID Nummer'), 'class'=>'form-control', 'id'=>'tax_identification_number', $user->account->getCountryAttrAs('tax_id_number','required'), ($user->account->reverse_charge_valid ? 'readonly' : ''))) }}
@if ($errors->has('tax_identification_number'))
<span class="help-block">
<strong>{{ $errors->first('tax_identification_number') }}</strong>
</span>
@endif
</div>
<div class="form-group col-sm-12 {{ $errors->has('reverse_charge') ? 'has-error' : '' }}">
<label class="custom-control custom-checkbox">
{!! Form::checkbox('reverse_charge', 1, $user->account->reverse_charge, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">Reverse Charge Verfahren</span><br>
<em>Umkehrung der Steuerschuldnerschaft oder auch Abzugsverfahren. In diesem Spezialfall muss der Leistungsempfänger (Berater) und nicht der leistende Unternehmer (mivita) die Umsatzsteuer entrichten.
<strong>Bei der Aktivierung wird die USt-ID benötigt und validiert.</strong></em>
</label>
@if($user->account->reverse_charge_valid)
<div class="badge badge-secondary">Aktiv seit: {{ $user->account->getReverseChargeValidFormat() }}</div>
<button type="submit" class="btn btn-xs btn-danger" name="reverse_charge_delete" value="1"><i class="fa fa-trash"></i> &nbsp;{{ __('Reverse Charge Verfahren und UST-ID löschen') }}</button>
@endif
@if ($errors->has('reverse_charge'))
<span class="help-block">
<strong>{{ $errors->first('reverse_charge') }}</strong>
</span>
@endif
</div>
@if(!$user->account->reverse_charge_valid)
<button type="submit" class="btn btn-sm btn-primary" name="reverse_charge_validate" value="1">{{ __('UST-ID validieren und Reverse Charge Verfahren aktivieren') }}</button>
@endif
@else
<div class="form-group col-md-6">
<label class="form-label" for="tax_identification_number">{{ __('USt-ID Nummer') }} @if($user->account->getCountryAttrAs('tax_id_number'))* @endif</label>
{{ Form::text('tax_identification_number', $user->account-> tax_identification_number, array('placeholder'=>__('USt-ID Nummer'), 'class'=>'form-control', 'id'=>'tax_identification_number', $user->account->getCountryAttrAs('tax_id_number','required'))) }}
</div>
@endif
</div>

View file

@ -22,7 +22,12 @@
</div>
</div>
<!-- /CALLOUT -->
<!-- FOOTER -->
<footer id="footer">
@ -86,6 +91,14 @@
<div class="copyright">
<div class="container">
<ul class="pull-right nomargin list-inline mobile-block">
<li>&copy; All Rights Reserved, mivita.care</li>
<li>&bull;</li>
<li class="{{ Request::is('agb') ? ' active' : '' }}"><a
href="{{ url('/zahlungsarten') }}">Zahlungsarten</a></li>
<li>&bull;</li>
<li class="{{ Request::is('agb') ? ' active' : '' }}"><a
href="{{ url('/versandkosten') }}">Versandkosten</a></li>
<li>&bull;</li>
<li class="{{ Request::is('agb') ? ' active' : '' }}"><a
href="{{ url('/agb') }}">AGB</a></li>
<li>&bull;</li>
@ -98,8 +111,40 @@
<li class="{{ Request::is('impressum') ? ' active' : '' }} "><a
href="{{ url('/impressum') }}">Impressum</a></li>
</ul>
&copy; All Rights Reserved, mivita.care
</div>
</div>
</footer>
<!-- /FOOTER -->
<div class="bordered-bottom nomargin mt-4 mb-2">
<div class="container">
<div class="row">
<div class="col-sm-1 col-md-2">
</div>
<div class="col-xs-12 col-sm-10 col-md-8 text-center">
<div class="row">
<div class="col-xs-2 col-sm-2 col-md-2">
<img class="img-responsive" src="/images/payments-assets/paypal.png" alt="">
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
<img class="img-responsive" src="/images/payments-assets/sofort.png" alt="">
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
<img class="img-responsive" src="/images/payments-assets/sepa.png" alt="">
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
<img class="img-responsive" src="/images/payments-assets/creditcard.png" alt="">
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
<img class="img-responsive" src="/images/payments-assets/vor.png" alt="">
</div>
</div>
</div>
</div>
</div>
</div>

View file

@ -326,7 +326,7 @@
</div>
<div class="clearfix mb-2">
<span class="pull-right small">{{ Yard::instance('shopping')->shipping() }} </span>
<span class="pull-left small">Versandkosten:</span>
<span class="pull-left small"><a href="{{ url('/versandkosten') }}" style="color:#666666;text-decoration: underline">Versandkosten</a>:</span>
</div>
<hr class="mt-4 mb-4">
<div class="clearfix mb-2" style="font-size: 90%">
@ -354,7 +354,7 @@
</div>
<br><br>
<hr>
<p><em class="small" style="color: #828282">Alle Preise inkl. gesetzl. Mehrwertsteuer zzgl. Versandkosten, wenn nicht anders beschrieben</em></p>
<p><em class="small" style="color: #828282">Alle Preise inkl. gesetzl. Mehrwertsteuer <a href="{{ url('/versandkosten') }}" style="text-decoration: underline">zzgl. Versandkosten</a>, wenn nicht anders beschrieben</em></p>
<!-- /CART -->
</div>
</section>

View file

@ -103,7 +103,7 @@
{{ $product->getFormattedPrice() }}
@endif<br>
<span style="font-size: 13px; color:#1d1d1d; font-weight: 500;">{{$product->getBasePriceFormattedFull()}}</span><br>
<span style="font-size: 13px; color:#6e6e6e; font-weight: 500;"><em>inkl. {{$product->getFormattedTax()}}% MwSt. zzgl. Versandkosten</em></span>
<span style="font-size: 13px; color:#6e6e6e; font-weight: 500;"><em>inkl. {{$product->getFormattedTax()}}% MwSt. <a href="{{ url('/versandkosten') }}" style="color:#666;text-decoration: underline">zzgl. Versandkosten</a></em></span>
</div>
<hr>

View file

@ -0,0 +1,15 @@
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')
<section>
<div class="container">
<div class="white-box">
<h3 class="box-title m-b-0">Versandarten & Versandkosten</h3>
<hr>
</div>
</div>
</section>
@endsection

View file

@ -0,0 +1,75 @@
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')
<section>
<div class="container">
<div class="white-box">
<h3 class="box-title m-b-0">Zahlungsarten</h3>
<hr>
<div class="row">
<div class="col-xs-4 col-sm-3 col-md-2">
<img class="img-responsive" src="/images/payments-assets/paypal.png" alt="">
</div>
<div class="col-xs-12 col-sm-9 col-md-10">
<h4 class="block bold size-18">Zahlung mit Paypal</h4>
<p>Nach der erfolgreichen Überprüfung werden Sie auf die abgesicherte Bezahlseite von Paypal umgeleitet, um die Zahlung fortzusetzen. Bitte schließen Sie den Browser nach der erfolgreichen Zahlung nicht, bis Sie zum Shop zurückgeleitet wurden.</p>
</div>
</div>
<hr>
<div class="row">
<div class="col-xs-4 col-sm-3 col-md-2">
<img class="img-responsive" src="/images/payments-assets/sofort.png" alt="">
</div>
<div class="col-xs-12 col-sm-9 col-md-10">
<h4 class="block bold size-18">Sofortüberweisung</h4>
<p>Nach der erfolgreichen Überprüfung werden Sie auf die abgesicherte Zahlungsseite von PAYONE für SOFORT Überweisungen umgeleitet, um die Zahlung fortzusetzen. Bitte schließen Sie den Browser nach der erfolgreichen Zahlung nicht, bis Sie zum Shop zurückgeleitet wurden.</p>
</div>
</div>
<hr>
<div class="row">
<div class="col-xs-4 col-sm-3 col-md-2">
<img class="img-responsive" src="/images/payments-assets/sepa.png" alt="">
</div>
<div class="col-xs-12 col-sm-9 col-md-10">
<h4 class="block bold size-18">SEPA Lastschrift</h4>
<p>Ihr Konto wird nach Abschicken der Bestellung für diese eine Bestellung belastet. Das SEPA-Lastschriftverfahren wird über unseren Zahlungsdienstleister PAYONE abgewickelt.</p>
</div>
</div>
<hr>
<div class="row">
<div class="col-xs-4 col-sm-3 col-md-2">
<img class="img-responsive" src="/images/payments-assets/creditcard.png" alt="">
</div>
<div class="col-xs-12 col-sm-9 col-md-10">
<h4 class="block bold size-18">Kreditkarte</h4>
<p>Der Betrag wird von Ihrer Kreditkarte abgebucht, sobald die Bestellung abgeschickt wird. Das Kreditkartenverfahren wird über unseren Zahlungsdienstleister PAYONE abgewickelt.</p>
</div>
</div>
<hr>
<div class="row">
<div class="col-xs-4 col-sm-3 col-md-2">
<img class="img-responsive" src="/images/payments-assets/vor.png" alt="">
</div>
<div class="col-xs-12 col-sm-9 col-md-10">
<h4 class="block bold size-18">Vorauskasse</h4>
<p>Nachdem Sie die Bestellung abgeschickt haben, erhalten Sie eine Email mit den Bankdaten, um die Zahlung durchzuführen. Nach Eingang des Betrages, wird Deine Ware verschickt.</p>
</div>
</div>
</div>
</div>
</section>
@endsection

View file

@ -112,24 +112,61 @@
</div>
<div class="copyright">
<div class="container">
<ul class="pull-right nomargin list-inline mobile-block">
<li class="{{ Request::is('agb') ? ' active' : '' }}"><a
href="{{ url('/agb') }}">AGB</a></li>
<li>&bull;</li>
<li class=""><a target="_blank"
href="{{ asset('download/mivita_widerruf_formular.pdf') }}">Widerrufsbelehrung</a></li>
<li>&bull;</li>
<li class="{{ Request::is('datenschutz') ? ' active' : '' }}"><a
href="{{ url('/datenschutz') }}">Datenschutzerklärung</a></li>
<li>&bull;</li>
<li class="{{ Request::is('impressum') ? ' active' : '' }} "><a
href="{{ url('/impressum') }}">Impressum</a></li>
</ul>
&copy; All Rights Reserved, mivita.care
<ul class="pull-right nomargin list-inline mobile-block">
<li>&copy; All Rights Reserved, mivita.care</li>
<li>&bull;</li>
<li class="{{ Request::is('agb') ? ' active' : '' }}"><a
href="{{ url('/zahlungsarten') }}">Zahlungsarten</a></li>
<li>&bull;</li>
<li class="{{ Request::is('agb') ? ' active' : '' }}"><a
href="{{ url('/versandkosten') }}">Versandkosten</a></li>
<li>&bull;</li>
<li class="{{ Request::is('agb') ? ' active' : '' }}"><a
href="{{ url('/agb') }}">AGB</a></li>
<li>&bull;</li>
<li class=""><a target="_blank"
href="{{ asset('download/mivita_widerruf_formular.pdf') }}">Widerrufsbelehrung</a></li>
<li>&bull;</li>
<li class="{{ Request::is('datenschutz') ? ' active' : '' }}"><a
href="{{ url('/datenschutz') }}">Datenschutzerklärung</a></li>
<li>&bull;</li>
<li class="{{ Request::is('impressum') ? ' active' : '' }} "><a
href="{{ url('/impressum') }}">Impressum</a></li>
</ul>
</div>
</div>
</footer>
<!-- /FOOTER -->
<div class="bordered-bottom nomargin mt-4 mb-2">
<div class="container">
<div class="row">
<div class="col-sm-1 col-md-2">
</div>
<div class="col-xs-12 col-sm-10 col-md-8 text-center">
<div class="row">
<div class="col-xs-2 col-sm-2 col-md-2">
<img class="img-responsive" src="/images/payments-assets/paypal.png" alt="">
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
<img class="img-responsive" src="/images/payments-assets/sofort.png" alt="">
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
<img class="img-responsive" src="/images/payments-assets/sepa.png" alt="">
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
<img class="img-responsive" src="/images/payments-assets/creditcard.png" alt="">
</div>
<div class="col-xs-2 col-sm-2 col-md-2">
<img class="img-responsive" src="/images/payments-assets/vor.png" alt="">
</div>
</div>
</div>
</div>
</div>
</div>