Membership

This commit is contained in:
Kevin Adametz 2020-03-07 19:44:58 +01:00
parent 37cb2b06c7
commit 21abafb8db
51 changed files with 1549 additions and 493 deletions

20
resources/lang/de/payment.php Executable file
View file

@ -0,0 +1,20 @@
<?php
return [
'status' => [
'store_payment' => 'Zahlung gespeichert',
'checkout_payment' => 'Checkout',
'payment_error' => 'Zahlung Fehler',
'payment_redirect' => 'Zahlung weitergeleitet',
'payment_approved' => 'Zahlung genehmigt',
'txaction_failed' => 'Zahlung fehlgeschlagen',
'txaction_appointed' => 'Zahlung genehmigt',
'txaction_paid' => 'Zahlung bestätigt',
'success_payment' => 'Zahlung erflogreich',
'success' => 'Erflogreich ausgeführt',
'payment_not_found' => 'Zahlung nicht gefunden',
'checkout_cancel' => ' Zahlungsvorgang Abbruch',
'checkout_error' => 'Zahlungsvorgang Fehler',
],
];

View file

@ -50,12 +50,17 @@
<label class="form-label" for="copy">{{ __('copy') }}</label>
{{ Form::textarea('copy', $product->copy , array('placeholder'=>__('Leistungen'), 'class'=>'form-control summernote', 'id'=>'copy')) }}
</div>
<div class="form-group col-sm-12">
<label class="form-label" for="title">{{ __('Action') }}</label>
{{ Form::select('action[]', $product->actions, $product->action, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'action', 'multiple') ) }}
<div class="form-row">
<div class="form-group col-sm-8">
<label class="form-label" for="action">{{ __('Action') }}</label>
{{ Form::select('action[]', $product->actions, $product->action, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'action', 'multiple') ) }}
</div>
<div class="form-group col-sm-4">
<label class="form-label" for="upgrade_to_id">{{ __('Upgrade to ID') }}</label>
{{ Form::text('upgrade_to_id', $product->upgrade_to_id, array('placeholder'=>__('Product ID when need an upgrade'), 'class'=>'form-control', 'id'=>'upgrade_to_id')) }}
</div>
</div>
</div>
</div>

View file

@ -7,7 +7,6 @@
{{ __('User') }}
</h4>
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-users table table-striped table-bordered">
@ -19,12 +18,12 @@
<th>{{__('Last name')}}</th>
<th>{{__('E-Mail')}}</th>
<th>{{__('Zugang')}}</th>
<th>{{__('verified')}}</th>
<th>{{__('active')}}</th>
<th>{{__('shop')}}</th>
<th>{{__('ab')}}</th>
<th>{{__('verified')}} (seit)</th>
<th>{{__('active')}} (seit)</th>
<th>{{__('Account')}} (bis)</th>
<th>{{__('Shop')}} (bis)</th>
<th>{{__('Shop')}} ab</th>
<th>{{__('delete')}}</th>
</tr>
</thead>
</table>
@ -33,16 +32,15 @@
<!-- Modal template -->
<div class="modal fade" id="modals-default">
<!-- Modal admin -->
<div class="modal fade" id="modals-admin">
<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">{{__('create/edit')}}</span></h5>
<h5 class="modal-title">{{__('User')}} <span class="font-weight-light">{{__('create/edit')}}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
@ -62,28 +60,159 @@
</select>
</div>
</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" name="save-admin" value="save-admin">{{__('save')}}</button>
</div>
</form>
</div>
</div>
<!-- Modal confirmed -->
<div class="modal fade" id="modals-confirmed">
<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">{{__('create/edit')}}</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">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="confirmed" checked>
<span class="custom-control-label">{{__('verified')}}</span>
</label>
</div>
<div class="form-row">
<div class="form-group col">
<label for="confirmation_date" class="form-label">{{__('Datum')}} seit</label>
<input type="text" name="confirmation_date" class="form-control b-material-datetime-picker" placeholder="25.10.2020 10:30">
</div>
</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" name="save-confirmed" value="save-confirmed">{{__('save')}}</button>
</div>
</form>
</div>
</div>
<!-- Modal active -->
<div class="modal fade" id="modals-active">
<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">{{__('create/edit')}}</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">
<label class="custom-control custom-checkbox m-0">
<input type="checkbox" class="custom-control-input" name="active" checked>
<span class="custom-control-label">{{__('active')}}</span>
</label>
</div>
<div class="form-row">
<div class="form-group col">
<label for="active_date" class="form-label">{{__('Datum')}} seit</label>
<input type="text" name="active_date" class="form-control b-material-datetime-picker" placeholder="25.10.2020 10:30">
</div>
</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">{{__('save')}}</button>
<button type="submit" class="btn btn-primary" name="save-active" value="save-active">{{__('save')}}</button>
</div>
</form>
</div>
</div>
<!-- Modal account -->
<div class="modal fade" id="modals-account">
<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">{{__('create/edit')}}</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-row">
<div class="form-group col">
<label for="payment_account" class="form-label">{{__('Account')}} bis</label>
<input type="text" name="payment_account" class="form-control b-material-datetime-picker" placeholder="25.10.2020 10:30">
</div>
</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" name="save-account" value="save-account">{{__('save')}}</button>
</div>
</form>
</div>
</div>
<!-- Modal account -->
<div class="modal fade" id="modals-shop">
<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">{{__('create/edit')}}</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-row">
<div class="form-group col">
<label for="payment_shop" class="form-label">{{__('Shop')}} bis</label>
<input type="text" name="payment_shop" class="form-control b-material-datetime-picker" placeholder="25.10.2020 10:30">
</div>
</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" name="save-shop" value="save-shop">{{__('save')}}</button>
</div>
</form>
</div>
@ -91,21 +220,51 @@
<script>
$( document ).ready(function() {
$('#modals-default').on('show.bs.modal', function (event) {
$('#modals-admin').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'));
$(this).find(".modal-body select[name='admin']").val(button.data('admin'));
$('.selectpicker').selectpicker('refresh');
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
$(this).find(".modal-body input[name='confirmed']").prop( "checked", button.data('confirmed'));
});
$('#modals-confirmed').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'));
$(this).find(".modal-body input[name='confirmed']").prop( "checked", button.data('confirmed'));
$(this).find(".modal-body input[name='confirmation_date']").val(button.data('confirmation_date'));
});
$('#modals-active').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'));
$(this).find(".modal-body input[name='active']").prop( "checked", button.data('active'));
$(this).find(".modal-body input[name='active_date']").val(button.data('active_date'));
});
$('#modals-account').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'));
$(this).find(".modal-body input[name='payment_account']").val(button.data('payment_account'));
});
$('#modals-shop').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'));
$(this).find(".modal-body input[name='payment_shop']").val(button.data('payment_shop'));
});
$('.datatables-users').dataTable({
"processing": true,
"serverSide": true,
"ajax": '{!! route('data_table_users') !!}',
"order": [[0, "asc" ]],
"order": [[0, "desc" ]],
"columns": [
{ data: 'id', searchable: false},
{ data: 'first_name', name: 'account.first_name' },
@ -114,6 +273,7 @@
{ data: 'admin', name: 'admin' },
{ data: 'confirmed', name: 'confirmed' },
{ data: 'active', name: 'active' },
{ data: 'account', name: 'account' },
{ data: 'shop', name: 'shop' },
{ data: 'since', name: 'since' },
{ data: 'action_delete', orderable: false, searchable: false},

View file

@ -23,6 +23,7 @@
<h5 class="text-center text-muted font-weight-normal mb-4">{{ __('Login to your account') }}</h5>
<!-- Form -->
<form method="POST" class="my-5" action="{{ route('login') }}" aria-label="{{ __('Login') }}">
@csrf

View file

@ -30,7 +30,7 @@
<div class="row">
@if($user->active == 1)
@if($user->payment_account && $user->daysActiveAccount() <= 29)
@if($user->payment_account && $user->daysActiveAccount() <= config('mivita.renewal_days'))
<div class="d-flex col-xl-12 align-items-stretch">
<!-- SHOP -->
<div class="card w-100 mb-4">
@ -38,27 +38,28 @@
{{__('Mitgliedschaft / Jahresbeitrag') }}
</h5>
<div class="card-body">
<h5><strong>Achtung:</strong> Deine Mitgliedschaft wurde verlängert!</h5>
@if($user->daysActiveAccount() <= 0)
@if($user->isActiveAccount())
<h5 class="alert badge-danger"><strong>Achtung:</strong> Deine Mitgliedschaft läuft heute aus, bitte aktualisiere jetzt Deine Zahlung!</h5>
@else
<h5 class="alert badge-danger"><strong>Achtung:</strong> Deine Mitgliedschaft ist vor {{ $user->daysActiveAccount()*-1 }} Tagen ausgelaufen, bitte aktualisiere jetzt Deine Zahlung!</h5>
@endif
@elseif($user->daysActiveAccount() < 14)
<h5 class="alert badge-warning"><strong>Achtung:</strong> Deine Mitgliedschaft läuft in {{$user->daysActiveAccount()}} Tagen aus, bitte aktualisiere jetzt Deine Zahlung!</h5>
@if($user->daysActiveAccount() <= 0)
@if($user->isActiveAccount())
<h5 class="alert badge-danger">Dein Zahlungsfrist läuft heute aus, bitte aktualisiere jetzt Deine Mitgliedschaft!</h5>
@else
<h5 class="alert badge-default"><strong>Achtung:</strong> Deine Mitgliedschaft läuft in {{$user->daysActiveAccount()}} Tagen aus, bitte aktualisiere jetzt Deine Zahlung!</h5>
{{--
TODO SEPA
--}}
<h5 class="alert badge-danger">Dein Zahlungsfrist ist vor {{ $user->daysActiveAccount()*-1 }} Tagen ausgelaufen, bitte aktualisiere jetzt Deine Mitgliedschaft!</h5>
@endif
<p>Erst wenn Dein Jahresbeitrag bei uns eingeht wird Deine Mitgliedschaft automastisch um ein Jahr verlängert.</p>
<p>Die Verlängerung gibt ab erstes Abschlussdatum ein weiteres volles Jahr, bis zum <strong>{{$user->modifyActiveAccount()}}</strong></p>
@elseif($user->daysActiveAccount() < config('mivita.abo_booking_days') )
<h5 class="alert badge-warning">Dein Zahlungsfrist läuft in {{$user->daysActiveAccount()}} Tagen aus, bitte aktualisiere jetzt Deine Mitgliedschaft!</h5>
@else
<h5 class="alert badge-default">Dein Zahlungsfrist läuft in {{$user->daysActiveAccount()}} Tagen aus, bitte aktualisiere jetzt Deine Mitgliedschaft!</h5>
@if($user->abo_options && $user->payment_account)
<p>Deine Abo-Option ist aktiv, wir werden am <strong>{!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!}</strong> Deine Mitgliedschaftsgebühr automatisch per SEPA Mandat einziehen.<br>
@endif
@endif
<p>Erst wenn Dein Jahresbeitrag bei uns eingeht wird Deine Mitgliedschaft automastisch für ein Jahr verlängert. Die Verlängerung gilt ab erstes Abschlussdatum ein weiteres volles Jahr, bis zum <strong>{{$user->modifyActiveAccount()}}</strong>.
Sollte nach Ablauf der Zahlungsfrist Dein Jahresbeitrag nicht bei uns eingehen, wird Dein Account gesperrt.</p>
</div>
<div class="card-footer py-3">
<a href="" class="btn btn-info mb-3"><i class="ion ion-ios-refresh text-default mr-1"></i> Mitgliedschaft jetzt hier verlängern</a>
<a href="{{route('user_membership')}}" class="btn btn-info mb-3"><i class="ion ion-ios-refresh text-default mr-1"></i> Mitgliedschaft jetzt hier verwalten</a>
</div>
</div>
<!-- / SHOP -->
@ -126,34 +127,36 @@
<div class="card-body">
@if($user->isActiveAccount() )
<p><span class="ion ion-md-checkmark-circle-outline text-primary"></span>
<strong>{{__('Berater-Mitgliedschaft aktiv')}}</strong> {{__('bis zum:')}} {{ $user->getPaymentAccountDateFormat() }}</p>
<div class="badge btn-success p-2">
<i class="ion ion-md-checkmark-circle-outline text-white"></i>
<strong>{{__('Berater-Mitgliedschaft aktiv')}}</strong> {{__('bis zum:')}} <strong></strong>{{ $user->getPaymentAccountDateFormat() }}</div>
@else
<p><span class="ion ion-md-close-circle-outline text-danger"></span>
<div class="badge badge-danger p-2">
<i class="ion ion-md-close-circle-outline text-white"></i>
<strong>{{__('Berater-Account inaktiv')}} </strong>
@if($user->payment_account)
{{__('abgelaufen am')}}: {{ $user->getPaymentAccountDateFormat() }}
{{__('abgelaufen am')}}: <strong></strong>{{ $user->getPaymentAccountDateFormat() }}
@endif
</p>
</div>
@endif
<div class="clearfix mb-2"></div>
@if($user->isActiveShop())
<p><span class="ion ion-md-checkmark-circle-outline text-primary"></span>
<strong>{{__('Berater-Online-Shop aktiv')}}</strong> {{__('bis zum')}}: {{ $user->getPaymentShopDateFormat() }}</p>
<div class="badge btn-success p-2">
<i class="ion ion-md-checkmark-circle-outline text-white"></i>
<strong>{{__('Berater-Online-Shop aktiv')}}</strong> {{__('bis zum')}}: <strong></strong>{{ $user->getPaymentShopDateFormat() }}</div>
@else
<p><span class="ion ion-md-close-circle-outline text-danger"></span>
<div class="badge badge-danger p-2">
<i class="ion ion-md-close-circle-outline text-white"></i>
<strong>{{__('Berater-Shop inaktiv')}}</strong>
@if($user->payment_shop)
{{__('abgelaufen am')}}: {{ $user->getPaymentShopDateFormat() }}
{{__('abgelaufen am')}}: <strong></strong>{{ $user->getPaymentShopDateFormat() }}
@endif
</p>
</div>
@endif
</div>
@if($user->payment_order_id)
<div class="card-footer py-3">
<a href="{{route('user_membership')}}" class="btn btn-secondary"><i class="ion ion-ios-people text-default mr-1"></i> {{__('Mitgliedschaft verwalten')}}</a>
</div>
@endif
</div>
<!-- / SHOP -->

View file

@ -35,13 +35,13 @@
<link rel="stylesheet" href="{{ mix('/vendor/libs/datatables/datatables.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/bootstrap-material-datetimepicker/bootstrap-material-datetimepicker.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/slim-image-cropper/slim/slim.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/dropzone/dropzone.css') }}">
<!-- Layout helpers -->
<script src="{{ mix('/vendor/js/layout-helpers.js') }}"></script>
@ -102,6 +102,8 @@
<script src="{{ mix('/vendor/js/bootstrap.js') }}"></script>
<script src="{{ mix('/vendor/js/sidenav.js') }}"></script>
<script src="{{ mix('/vendor/libs/growl/growl.js') }}"></script>
<script src="{{ asset('/vendor/libs/moment-develop/min/moment.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/moment-develop/locale/de.js') }}"></script>
<script src="{{ mix('/vendor/libs/validate/validate.js') }}"></script>
@ -112,6 +114,7 @@
<script src="{{ mix('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.js') }}"></script>
<script src="{{asset('/js/bootstrap-datepicker.de.min.js')}}"></script>
<script src="{{ asset('/vendor/libs/bootstrap-material-datetimepicker/bootstrap-material-datetimepicker.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/lang/summernote-de-DE.js') }}"></script>
@ -119,7 +122,7 @@
<script src="{{ asset('/vendor/libs/slim-image-cropper/slim/slim.kickstart.min.js') }}"></script>
<script src="{{asset('/vendor/libs/dropzone/dropzone.js')}}"></script>
<script src="{{ asset('/vendor/libs/dropzone/dropzone.js')}}"></script>
<script src="{{ asset('/js/forms_file-upload.js') }}"></script>
@ -137,7 +140,6 @@
<script type="text/javascript">
$(document).ready(function() {
$('.datepicker-base').datepicker({
orientation: 'auto right',
calendarWeeks: true,
@ -150,8 +152,18 @@
format: 'dd.mm.yyyy',
language: 'de',
clearBtn: true,
});
$('.b-material-datetime-picker').bootstrapMaterialDatePicker({
weekStart: 1,
format : 'DD.MM.YYYY HH:mm',
shortTime: false,
nowButton : true,
clearButton: true,
lang: 'de',
//currentDate: ''
});
$('.summernote').summernote({
height: 140,
lang: 'de-DE',

View file

@ -2,7 +2,7 @@
<hr>
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="abo_options" @if($user && $user->abo_options) checked="checked" @endif>
<span class="custom-control-label secondary"><strong>Abo-Option:</strong> Klicke dieses Box an, wenn Du Deine jährlichen Mitgliedschaft-Beiträge automatisch abbuchen lassen willst. Wähle dann bei der Zahlung SEPA-Lastschrift aus, wir speichern Dein SEPA-Lastschrift Mandart und buchen 14 Tage vor ablauf deine Jahresgebühr automatisch ab.</span>
<span class="custom-control-label secondary"><strong>Abo-Option:</strong> Klicke dieses Box an, wenn Du Deine jährlichen Mitgliedschaft-Beiträge automatisch abbuchen lassen willst. Wir speichern Dein SEPA-Lastschrift Mandart und buchen {{config('mivita.abo_booking_days')}} Tage vor Ablauf Deine Jahresgebühr automatisch ab.</span>
<p class="text-muted">Du kannst Deine Abo-Option jederzeit im Login-Bereich rückgängig machen. Ohne Abo-Option musst du vor Ablauf der Frist selbstänig im Login-Bereich die Zahlung ausführen.</p>
</label>
<hr>

View file

@ -0,0 +1,51 @@
<!-- Description -->
<div class="card mb-4">
<div class="card-body">
{!! Form::open(['url' => route('user_membership_store', ['change_order']), 'class' => 'form-horizontal']) !!}
<div class="table-responsive">
<table class="table table- m-0">
<tbody class="switchers-stacked">
@foreach($products as $product)
<tr>
<td class="text-center align-middle px-0">
<label class="switcher switcher-secondary">
<input type="radio" class="switcher-input" value="{{$product->id}}" name="switchers-package-wizard" @if($product->id == $user->payment_order_id) checked @endif >
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label"></span>
</label>
</td>
<td class="p-4">
<div class="media align-items-center">
@if(count($product->images))
<img src="{{ route('product_image', [$product->images->first()->slug]) }}" class="d-block ui-w-60 ui-bordered mr-4" alt="">
@endif
<div class="media-body">
<h5 class="d-block text-dark">{{$product->name}} @if($product->id == $user->payment_order_id) (aktives Paket) @endif</h5>
{!! $product->getLang('copy') !!}
</div>
</div>
</td>
<td class="text-right font-weight-semibold align-middle p-4">{{$product->getFormattedPrice()}} EUR / p.a.</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="text-left mt-3">
<hr>
<button type="submit" class="btn btn-secondary">{{ __('auswählen und speichern') }}</button>&nbsp;
</div>
{!! Form::close() !!}
</div>
</div>
<!-- / Description -->

View file

@ -0,0 +1,57 @@
<!-- Description -->
<div class="card mb-4">
<div class="card-body">
{!! Form::open(['url' => route('user_membership_store', ['payment']), 'class' => 'form-horizontal']) !!}
<div class="table-responsive">
<table class="table table- m-0">
<tbody class="switchers-stacked">
@foreach($products as $product)
<tr>
<td class="text-center align-middle px-0">
<label class="switcher switcher-secondary">
<input type="radio" class="switcher-input" value="{{$product->id}}" name="switchers-package-wizard" @if($product->id == $user->payment_order_id) checked @endif >
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label"></span>
</label>
</td>
<td class="p-4">
<div class="media align-items-center">
@if(count($product->images))
<img src="{{ route('product_image', [$product->images->first()->slug]) }}" class="d-block ui-w-60 ui-bordered mr-4" alt="">
@endif
<div class="media-body">
<h5 class="d-block text-dark">{{$product->name}}</h5>
{!! $product->getLang('copy') !!}
</div>
</div>
</td>
<td class="text-right font-weight-semibold align-middle p-4">{{$product->getFormattedPrice()}} EUR / p.a.</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<div class="text-left mt-3">
<hr>
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="abo_options">
<span class="custom-control-label secondary"><strong>Abo-Option:</strong> Klicke dieses Box an, wenn Du Deine jährlichen Mitgliedschaft-Beiträge automatisch abbuchen lassen willst. Wähle dann bei der Zahlung SEPA-Lastschrift aus, wir speichern Dein SEPA-Lastschrift Mandart und buchen {{config('mivita.abo_booking_days')}} Tage vor ablauf deine Jahresgebühr automatisch ab.</span>
<p class="text-muted">Du kannst Deine Abo-Option jederzeit im Login-Bereich rückgängig machen. Ohne Abo-Option musst du vor Ablauf der Frist selbstänig im Login-Bereich die Zahlung ausführen.</p>
</label>
<hr>
<button type="submit" class="btn btn-secondary">{{ __('wählen und weiter zur Kasse') }}</button>&nbsp;
<br><br>
<em class="small text-center"> <i class="fa fa-lock"></i> Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt.</em>
</div>
{!! Form::close() !!}
</div>
</div>
<!-- / Description -->

View file

@ -0,0 +1,65 @@
<!-- Description -->
<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']) !!}
<div class="table-responsive">
<table class="table table- m-0">
<tbody class="switchers-stacked">
@foreach($products as $product)
@if($product->id === $user->payment_order_id || $product->identifier === 'show_order')
<tr>
<td class="text-center align-middle px-0">
<label class="switcher switcher-secondary">
<input type="radio" class="switcher-input" value="{{$product->id}}" name="switchers-package-wizard" @if($product->id == $user->payment_order_id) checked @endif >
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label"></span>
</label>
</td>
<td class="p-4">
<div class="media align-items-center">
@if(count($product->images))
<img src="{{ route('product_image', [$product->images->first()->slug]) }}" class="d-block ui-w-60 ui-bordered mr-4" alt="">
@endif
<div class="media-body">
<h5 class="d-block text-dark">{{$product->name}}</h5>
{!! $product->getLang('copy') !!}
</div>
</div>
</td>
<td class="text-right font-weight-semibold align-middle p-4">{{$product->getFormattedPrice()}} EUR / p.a.</td>
</tr>
@endif
@endforeach
</tbody>
</table>
</div>
<div class="text-left mt-3">
@if(!$user->abo_options)
<hr>
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="abo_options">
<span class="custom-control-label secondary"><strong>Abo-Option:</strong> Klicke dieses Box an, wenn Du Deine jährlichen Mitgliedschaft-Beiträge automatisch abbuchen lassen willst. Wähle dann bei der Zahlung SEPA-Lastschrift aus, wir speichern Dein SEPA-Lastschrift Mandart und buchen {{config('mivita.abo_booking_days')}} Tage vor ablauf deine Jahresgebühr automatisch ab.</span>
<p class="text-muted">Du kannst Deine Abo-Option jederzeit im Login-Bereich rückgängig machen. Ohne Abo-Option musst du vor Ablauf der Frist selbstänig im Login-Bereich die Zahlung ausführen.</p>
</label>
<hr>
@else
<p><strong>Alternativ hast Du die Möglichkeit jetzt direkt Deine Mitgliedschaft mit anderen Zahlungsmöglichkeite zu bezahlen.</strong><br>
Ist die Mitgliedschaft vor dem {!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!} bezahlt, wird das SEPA Mandart nicht ausgeführt!</p>
<hr>
@endif
<button type="submit" class="btn btn-secondary">{{ __('wählen und weiter zur Kasse') }}</button>&nbsp;
<br><br>
<em class="small text-center"> <i class="fa fa-lock"></i> Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt.</em>
</div>
{!! Form::close() !!}
</div>
</div>
<!-- / Description -->

View file

@ -1,7 +1,6 @@
@php($months = Carbon::now()->diffInMonths(Carbon::parse($user->payment_account)) +1)
{!! Form::open(['url' => route('user_membership_store_payment'), 'class' => 'form-horizontal']) !!}
<input type="hidden" name="qty" value="{{$months}}">
{!! Form::open(['url' => 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">
<tbody class="switchers-stacked">
@ -31,8 +30,8 @@
<td class="text-right font-weight-semibold align-middle p-4">{{$product->getFormattedPrice()}} EUR / Monat</td>
</tr>
<tr>
<td colspan="2" class="text-right">Restlaufzeit: {{$months}} @if($months==1) Monat @else Monate @endif</td>
<td class="text-right font-weight-semibold"> {!! Util::formatNumber($months * $product->price) !!} EUR</td>
<td colspan="2" class="text-right">Restlaufzeit: {{$diff_months}} @if($diff_months==1) Monat @else Monate @endif</td>
<td class="text-right font-weight-semibold"> {!! Util::formatNumber($diff_months * $product->price) !!} EUR</td>
</tr>
@endforeach
</tbody>

View file

@ -17,108 +17,124 @@
@endif
<h4 class="font-weight-bold py-2 mb-2">
{{ __('Deine Mitgliedschaft') }}
{{ __('Mitgliedschaft') }}
</h4>
<div class="row">
<div class="col order-2 order-md-1">
@if($user->isActiveAccount() && !$user->isActiveShop())
<div class="card w-100 mb-4">
<h5 class="card-header">{{__('MIVITA BUSINESS Paket')}} {{__('Upgrade')}}</h5>
<div class="card-body">
<h5 class="d-block text-dark">Erweitere jetzt Deine Mitglidschaft auf MIVITA BUSINESS Paket!</h5>
<p>Berechnet werden die restlichen Monate bis zur Berater-Mitgliedschaft Verlängerung. Danach wird jährlich der MIVITA BUSINESS Paketpreis berechnet.</p>
@include('user.membership._upgrade')
</div>
</div>
@endif
@if($user->abo_options && $user->payment_account)
@if($user->isRenewalAccount())
<div class="card w-100 mb-4">
<h5 class="card-header">{{__('Abo-Option')}} {{__('deaktivieren')}}</h5>
<h5 class="card-header">Deine Mitglidschaft wurde am {!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!} verlänget.</h5>
<div class="card-body">
<p>Abo-Option dekativeren und SEPA Mandat zurückziehen.<br>
Die nächste Buchung ist am: <strong>{!! Carbon::parse($user->payment_account)->modify('- 29 days')->format('d.m.Y') !!}</strong></p>
<button type="submit" class="btn btn-secondary">{{ __('Abo-Option') }} {{__('deaktivieren')}}</button>&nbsp;
@if($userHistoryPaymentOrder && $userHistoryPaymentOrder->status > 2)
<h6 class="alert badge-{{$userHistoryPaymentOrder->getStatusColor()}}">Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryPaymentOrder->getStatusType())}}</h6>
@endif
@if($user->abo_options && $user->payment_account)
<p class="alert py-2 px-2 badge-secondary">Deine Abo-Option ist aktiv, wir werden am <strong>{!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!}</strong> Deine Mitgliedschaftsgebühr automatisch per SEPA Mandat einziehen.<br>
@else
@if($user->payment_order_id && $user->payment_order_product->identifier === 'show_upgrade')
<p></p>
@endif
@endif
@if($user->payment_order_id)
@if($user->payment_order_product->identifier === 'show_upgrade')
<p><strong>Eine Rückstufung Deiner Berater-Mitgliedschaft ist nicht mehr möglich.</strong></p>
<p><strong>Du hast die Möglichkeit Dein Paket zu upgraden, wähle einfach das erweiterte Paket aus und gehe weiter zur Zahlung.</strong></p>
@endif
@if($user->payment_order_product->identifier === 'show_order')
<p><strong>Eine Änderung Deiner Berater-Mitgliedschaft ist nicht mehr möglich.</strong></p>
@endif
@endif
@include('user.membership._payment_order')
</div>
</div>
@endif
@else
{{--
TODO
//Warnungen und Zahlungen verlängerung.
//upgrade speichern über api
//Verlängern
//cron sepa
//cron Mails erinnerungen
//downgrade
--}}
<!-- Description -->
<div class="card mb-4">
<div class="card-body">
{!! Form::open(['url' => route('wizard_store_payment', [20]), 'class' => 'form-horizontal']) !!}
<div class="table-responsive">
<table class="table table- m-0">
<tbody class="switchers-stacked">
@foreach($products as $product)
<tr>
<td class="text-center align-middle px-0">
<label class="switcher switcher-secondary">
<input type="radio" class="switcher-input" value="{{$product->id}}" name="switchers-package-wizard" @if($product->id == $user->payment_order_id) checked @endif >
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label"></span>
</label>
</td>
<td class="p-4">
<div class="media align-items-center">
@if(count($product->images))
<img src="{{ route('product_image', [$product->images->first()->slug]) }}" class="d-block ui-w-60 ui-bordered mr-4" alt="">
@endif
<div class="media-body">
<h5 class="d-block text-dark">{{$product->name}}</h5>
{!! $product->getLang('copy') !!}
</div>
</div>
</td>
<td class="text-right font-weight-semibold align-middle p-4">{{$product->getFormattedPrice()}} EUR / p.a.</td>
</tr>
@endforeach
</tbody>
</table>
{{-- upgrade downgrade next booking --}}
@if($user->payment_account)
<div class="card w-100 mb-4">
<h5 class="card-header">{{__('Mitgliedschaft')}} {{__('anpassen')}}</h5>
<div class="card-body">
<h6 class="d-block text-dark">Ändere Deine Mitglidschaft für die nächste Vertragsverlängerung.</h6>
<p>Die restlichen Läufzeiten bleiben erhalten, erst mit der Verlängerung wird das geänderte Paket aktiv.</p>
@include('user.membership._change')
</div>
<div class="text-left mt-3">
<hr>
</div>
@endif
{{-- no Shop - Upgrade --}}
@if($user->isActiveAccount() && !$user->isActiveShop())
<div class="card w-100 mb-4">
<h5 class="card-header">{{__('MIVITA BUSINESS Paket')}} {{__('Upgrade')}}</h5>
<div class="card-body">
<h5 class="d-block text-dark">Erweitere jetzt Deine Mitglidschaft auf MIVITA BUSINESS Paket!</h5>
<p>Berechnet werden die restlichen Monate bis zur Berater-Mitgliedschaft Verlängerung. Danach wird jährlich der MIVITA BUSINESS Paketpreis berechnet.</p>
@include('user.membership._upgrade')
</div>
</div>
@endif
{{-- remove ABO Options --}}
@if($user->abo_options && $user->payment_account)
<div class="card w-100 mb-4">
{!! Form::open(['url' => route('user_membership_store', ['remove_abo']), 'class' => 'form-horizontal']) !!}
<h5 class="card-header">{{__('Abo-Option')}} {{__('deaktivieren')}}</h5>
<div class="card-body">
<p>Abo-Option dekativeren und SEPA Mandat zurückziehen.<br>
Die nächste Buchung ist am: <strong>{!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!}</strong></p>
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="abo_options_remove">
<span class="custom-control-label secondary">Hiermit bestätige ich, mein SEPA zu löschen und die Abo-Option dekativeren.</span>
</label>
<button type="submit" class="btn btn-secondary btn-sm">{{ __('Abo-Option') }} {{__('deaktivieren')}}</button>&nbsp;
</div>
{!! Form::close() !!}
</div>
@endif
@if($user->payment_account)
<div class="card w-100 mb-4">
{!! Form::open(['url' => route('user_membership_store', ['delete_membership']), 'class' => 'form-horizontal']) !!}
<h5 class="card-header">{{__('Mitgliedschaft')}} {{__('beenden')}}</h5>
<div class="card-body">
<p>Du möchtest kein MIVITA Berater mehr sein und Deine Mitgliedschaft beenden?<br>
Damit gibst du alle möglichen Provisionen, Vergünstigungen, Zugang zum Sales-Center und noch viel mehr auf. Mit absenden dieser Option erhalten wir ein Nachricht und kümmern uns um die Löschung Deines Accounts. Dieser Vorgang kann ein paar Tage dauern.</p>
@if($userHistoryDeleteMembership && $userHistoryDeleteMembership->status == 50)
<p class="alert py-2 px-2 badge-danger">Die Beendigung und Löschung Deiner MIVITA Mitgliedschaft ist beantragt.<br>
@else
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="abo_options">
<span class="custom-control-label secondary"><strong>Abo-Option:</strong> Klicke dieses Box an, wenn Du Deine jährlichen Mitgliedschaft-Beiträge automatisch abbuchen lassen willst. Wähle dann bei der Zahlung SEPA-Lastschrift aus, wir speichern Dein SEPA-Lastschrift Mandart und buchen 14 Tage vor ablauf deine Jahresgebühr automatisch ab.</span>
<p class="text-muted">Du kannst Deine Abo-Option jederzeit im Login-Bereich rückgängig machen. Ohne Abo-Option musst du vor Ablauf der Frist selbstänig im Login-Bereich die Zahlung ausführen.</p>
<input type="checkbox" class="custom-control-input" name="delete_membership_mivita">
<span class="custom-control-label secondary">Ja, ich möchte die MIVITA Mitgliedschaft beenden, ich verzichte auf jeglichen Anspruch gegenüber MIVITA und möchte, dass mein Account gelöscht wird!</span>
</label>
<hr>
<button type="submit" class="btn btn-secondary">{{ __('wählen und weiter zur Kasse') }}</button>&nbsp;
<br><br>
<em class="small text-center"> <i class="fa fa-lock"></i> Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt.</em>
<button type="submit" class="btn btn-default btn-sm">{{ __('Mitgliedschaft hiermit beenden') }}</button>&nbsp;
@endif
</div>
{!! Form::close() !!}
</div>
</div>
<!-- / Description -->
@endif
@endif
{{--
TODO
//cron sepa
//cron Mails erinnerungen
--}}
</div>
<div class="col-md-5 col-xl-4 order-1 order-md-2">
<!-- Project details -->
@ -130,7 +146,15 @@
<div class="text-muted">{{__('gebuchtes Paket')}}</div>
<div class="text-right">
@if($user->payment_order_id)
{{ $user->payment_order->name }}
{{ $user->payment_order_product->name }}
@endif
</div>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
<div class="text-muted">{{__('Vertragsverlängerung')}}</div>
<div class="text-right">
@if($user->payment_account)
{{ $user->nextRenewalAccount() }}
@endif
</div>
</li>

View file

@ -49,7 +49,7 @@
<hr>
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="abo_options">
<span class="custom-control-label secondary"><strong>Abo-Option:</strong> Klicke dieses Box an, wenn Du Deine jährlichen Mitgliedschaft-Beiträge automatisch abbuchen lassen willst. Wähle dann bei der Zahlung SEPA-Lastschrift aus, wir speichern Dein SEPA-Lastschrift Mandart und buchen 14 Tage vor ablauf deine Jahresgebühr automatisch ab.</span>
<span class="custom-control-label secondary"><strong>Abo-Option:</strong> Klicke dieses Box an, wenn Du Deine jährlichen Mitgliedschaft-Beiträge automatisch abbuchen lassen willst. Wähle dann bei der Zahlung SEPA-Lastschrift aus, wir speichern Dein SEPA-Lastschrift Mandart und buchen {{config('mivita.abo_booking_days')}} Tage vor ablauf deine Jahresgebühr automatisch ab.</span>
<p class="text-muted">Du kannst Deine Abo-Option jederzeit im Login-Bereich rückgängig machen. Ohne Abo-Option musst du vor Ablauf der Frist selbstänig im Login-Bereich die Zahlung ausführen.</p>
</label>
<hr>

View file

@ -134,9 +134,6 @@
<div class="m-checkout">
{!! Form::open(['url' => route('checkout.checkout_card_final'), 'class' => 'row clearfix', 'id'=>'']) !!}
@ -428,7 +425,11 @@
</a>
@else
<a href="{{ Util::getUserCardBackUrl('/card/show') }}" class="btn btn-default btn-sm btn- size-15 mt-4">
<i class="fa fa-chevron-left"></i> zurück zum Warenkorb
@if(Util::getUserPaymentFor() > 1)
<i class="fa fa-chevron-left"></i> zurück {{ Util::getMyMivitaUrl(false) }}
@else
<i class="fa fa-chevron-left"></i> zurück zum Warenkorb
@endif
</a>
@endif
</div>
@ -437,14 +438,21 @@
<!-- PAYMENT METHOD -->
<fieldset class="box-border-shadow p-20">
<h4>Zahlungsart</h4>
<hr>
<div class="toggle-transparent toggle-bordered-full clearfix">
<div class="toggle active">
<div class="toggle-content">
<div class="row nomargin-bottom">
@if(($shopping_user->abo_options === 1) && (Util::getUserPaymentFor() >= 3))
<div class="col-lg-12 nomargin clearfix">
<label class="mt-4 fs-14 fw-400 radio pull-left" style="width: 100%">
{!! Form::radio('payment_method', 'elv', '1') !!}
<i></i> <span class="weight-400"><span class="fa fa-check text-primary"></span> SEPA Lastschrift</span>
<img class="float-right" width="90" src="{{asset('images/payments-assets/sepa.png')}}" alt="SEPA Lastschrift">
</label>
</div>
@else
<div class="col-lg-12 nomargin clearfix">
<label class="mt-0 fs-14 fw-400 radio pull-left nomargin-top" style="width: 100%">
{!! Form::radio('payment_method', 'wlt#PPE', (!old('payment_method') ? '1' : '')) !!}
@ -460,8 +468,6 @@
<img class="float-right" width="90" src="{{asset('images/payments-assets/creditcard.png')}}" alt="Mastercard + Visa">
</label>
</div>
<div class="col-lg-12 nomargin clearfix">
<label class="mt-4 fs-14 fw-400 radio pull-left" style="width: 100%">
{!! Form::radio('payment_method', 'sb#PNT', '') !!}
@ -484,6 +490,8 @@
</label>
</div>
@endif
{{-- <div class="col-lg-12 nomargin clearfix">
<label class="mt-0 fs-14 fw-400 radio pull-left" style="width: 100%">
<input name="payment_method" type="radio" value="sb#GPY" />
@ -504,9 +512,7 @@
</label>
</div>
--}}
</div>
</div>
</div>
</div>
@ -684,7 +690,6 @@
</div>
<!-- /CHECKOUT -->
{!! Form::close() !!}
</div>
</div>
</section>

View file

@ -71,7 +71,11 @@
</a>
@else
<a href="{{ Util::getUserCardBackUrl('/card/show') }}">
<i class="fa fa-chevron-left"></i> zurück zum Warenkorb
@if(Util::getUserPaymentFor() > 1)
<i class="fa fa-chevron-left"></i> zurück {{ Util::getMyMivitaUrl(false) }}
@else
<i class="fa fa-chevron-left"></i> zurück zum Warenkorb
@endif
</a>
@endif
<!-- /Links -->

View file

@ -81,7 +81,11 @@
</a>
@else
<a href="{{ Util::getUserCardBackUrl('/card/show') }}">
<i class="fa fa-chevron-left"></i> zurück zum Warenkorb
@if(Util::getUserPaymentFor() > 1)
<i class="fa fa-chevron-left"></i> zurück {{ Util::getMyMivitaUrl(false) }}
@else
<i class="fa fa-chevron-left"></i> zurück zum Warenkorb
@endif
</a>
@endif
</li>