Guthaben aufladen, löschen, Ansichten

This commit is contained in:
Kevin Adametz 2021-04-26 16:07:03 +02:00
parent 6ac9fcc4d2
commit 3754f1c571
27 changed files with 603 additions and 89 deletions

View file

@ -18,6 +18,8 @@ return [
'checkout_error' => 'Zahlungsvorgang Fehler',
'auto_renewal_hl' => 'Automatische Verlängerung',
'auto_renewal_line_1' => 'Sicher ist sicher! Wir empfehlen, diese Option zu aktivieren, wenn Du Deine jährliche Mitgliedschaft dauerhaft bestehen lassen möchtest. Denn geht eine manuelle Zahlung nach Ablauf der Jahresmitgliedschaft nicht zeitig ein, deaktiviert das System Deinen Onlineshop bzw. Deinen Zugang zum Salescenter. Dann kannst Du keine Bestellungen mehr tätigen oder Einblick in Deinen Statistiken erhalten, bis eine erneute Zahlung Deinen Account reaktiviert. Daher raten wir Dir, die Zahlung per SEPA-Lastschrift zu tätigen. Wir speichern dieses Mandat und buchen 14 Tage vor Ablauf Deine Jahresgebühr automatisch ab. So hast Du einen reibungslosen Prozess, ohne dass Du darauf achten musst.',
'auto_renewal_line_2' => 'Du kannst diese Option natürlich jederzeit in Deinem Account rückgängig machen bzw. Deinen Account / Deine Vertriebspartnerschaft kündigen.'
'auto_renewal_line_2' => 'Du kannst diese Option natürlich jederzeit in Deinem Account rückgängig machen bzw. Deinen Account / Deine Vertriebspartnerschaft kündigen.',
],
'payment_for_account' => 'Aufladung durch Mitgliedschaft',
'user_order_deduction' => 'Abzug durch Bestellung',
];

View file

@ -696,9 +696,10 @@
<label class="mt-0 fs-14 fw-400">BIC*</label>
{!! Form::text('elv_bic', (isset($payment_data['bic']) ? $payment_data['bic'] : ''), ['class' => 'form-control', 'id'=>'elv_bic', 'placeholder'=>'Beisp.: PBNKDEFF']) !!}
</div>
@if($shopping_user->abo_options)
{{-- @if($shopping_user->abo_options)
<p>Automatische Verlängerung wurde ausgewählt. Dein SEPA-Mandart wird gespeichert und die jährliche Zahlung automatisch ausgeführt.</p>
@endif
--}}
</div>
</div>
</div>

View file

@ -0,0 +1,45 @@
{!! Form::open(['url' => route('admin_payments_paycredit'), 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!}
<div class="modal-header">
<h5 class="modal-title">
{{ __('Guthaben') }}
<span class="font-weight-light">aufladen</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') }}</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">{{__('Guthaben aufladen')}}</button>
</div>
{!! Form::close() !!}
<script type="text/javascript">
$( document ).ready(function() {
});
</script>

View file

@ -1,7 +1,7 @@
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">
{{ __('Staffelprovision') }} <strong>{{$user->user_level->name}}
{{ __('Staffelprovision') }} <strong>{{$user->user_level->name}}</strong>
</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>

View file

@ -0,0 +1,72 @@
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">
{{ __('Zahlungen / Guthaben') }}
<strong>
@if($user->account)
{{ $user->account->first_name }}
{{ $user->account->last_name }}
@endif
</strong>
</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']}}">
<input type="hidden" name="view" value="{{$data['view']}}">
<table class="table table-striped" style="border-top: 0">
<thead>
<tr>
<th style="width: 55%">Mitteilung</th>
<th>Betrag</th>
<th>altes Guthaben</th>
<th>neues Guthaben</th>
<th>Datum</th>
<th>Aktion</th>
</tr>
</thead>
<tbody>
@if($user && $user->user_pay_credits)
@foreach($user->user_pay_credits as $user_pay_credit)
<tr>
@if($user_pay_credit->status === 3)
<th scope="row"> {!! nl2br($user_pay_credit->message) !!}</th>
@else
<th scope="row">{{ trans('payment.'.$user_pay_credit->message) }}</th>
@endif
<td><div class="no-line-break">{{ formatNumber($user_pay_credit->credit) }} </div></td>
<td><div class="no-line-break">{{ formatNumber($user_pay_credit->old_credit_total) }} </div></td>
<td><div class="no-line-break">{{ formatNumber($user_pay_credit->new_credit_total) }} </div></td>
<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-ios-redo"></i></a></td>
@else
@if($user_pay_credit->status === 3 && $deleteTime = $user_pay_credit->deleteTime())
<td><div class="no-line-break"><a class="btn btn-danger btn-xs" href="{{ route('admin_payments_paycredit_delete', [$user_pay_credit->id]) }}"><i class="ion ion-ios-trash"></i></a> noch {{ $deleteTime }} min.</div>
</td>
@else
<td>-</td>
@endif
@endif
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">schließen</button>
</div>
</div>
<script type="text/javascript">
$( document ).ready(function() {
});
</script>

View file

@ -4,6 +4,15 @@
<div class="card">
<h6 class="card-header">
Zahlungen / Guthaben
<div class="float-right">
<button type="button" class="btn btn-sm btn-primary" data-toggle="modal" data-target="#modals-load-content"
data-id="new"
data-action="add-user-pay-credit"
data-back="{{url()->current()}}"
data-route="{{ route('modal_load') }}"><span class="far fa-plus-circle"></span> Guthaben aufladen
</button>
</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']) !!}
@ -17,8 +26,18 @@
</div>
--}}
<div class="card-datatable table-responsive pt-0">
@if(isset($add_credit_error) && $add_credit_error)
<div class="col-sm-12">
<div class="alert alert-danger p-2 mt-2">
<ul>
<li>{{ $add_credit_error }}</li>
</ul>
</div>
</div>
@endif
<div class="card-datatable table-responsive pt-2">
<table class="datatables-style table table-striped table-bordered" id="datatable-pay-credit">
<thead>
<tr>
@ -39,7 +58,6 @@
</div>
<script>
$( document ).ready(function() {
var oTable = $('#datatable-pay-credit').DataTable({
"processing": true,

View file

@ -199,8 +199,13 @@
</table>
<p class="text-right" style="font-size: 0.9em"><i>* Nettobeträge</i></p>
<hr>
<p><span class="ion ion-md-checkmark-circle-outline text-secondary"></span>
{{__('Guthaben')}} bis {{ $user->getPaymentAccountDateFormat(false) }}: <strong>{{ $user->getFormattedPaymentCredit() }} &euro;</strong>
<p>
<div class="float-right">
<a class="btn btn-sm btn-secondary" href="{{ route('user_payment_paycredit') }}">zur Übersicht</a>
</div>
<span class="ion ion-md-checkmark-circle-outline text-secondary"></span>
{{__('Guthaben')}}: <strong>{{ $user->getFormattedPaymentCredit() }} &euro;</strong>
</p>
<hr>
@else

View file

@ -19,6 +19,14 @@
<div>{{ __('navigation.my_account') }}</div>
</a>
<ul class="sidenav-menu">
<li class="sidenav-item Request::is('user/payment/paycredit') ? ' active' : '' }} {{ Request::is('user/payment/paycredit') ? ' active' : '' }}">
<a href="{{ route('user_payment_paycredit') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-cash"></i><div>{{ __('navigation.paycredit') }}</div></a>
</li>
{{--
<li class="sidenav-item Request::is('user/payment/credit') ? ' active' : '' }} {{ Request::is('user/payment/credit') ? ' active' : '' }}">
<a href="{{ route('user_payment_credit') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-cash"></i><div>{{ __('navigation.credit') }}</div></a>
</li>
--}}
<li class="sidenav-item{{ Request::is('user/edit') ? ' active' : '' }}">
<a href="{{ route('user_edit') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-create"></i><div>{{ __('navigation.my_data') }}</div></a>
</li>
@ -27,9 +35,7 @@
</li>
</ul>
</li>
{{-- <li class="sidenav-item Request::is('user/revenue') ? ' active' : '' }} {{ Request::is('user/revenues/*') ? ' active' : '' }}">
<a href="{{ route('user_revenue') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-cash"></i><div>{{ __('navigation.revenue') }}</div></a>
</li>--}}
@if(Auth::user()->isActiveAccount())
<li class="sidenav-item @if(Request::is('user/team/*')) open @endif">
@ -210,6 +216,11 @@
<i class="sidenav-icon ion ion-ios-settings"></i>
<div>Tools</div>
</a>
<ul class="sidenav-menu">
<li class="sidenav-item{{ Request::is('sysadmin/tools/pay_credits') ? ' active' : '' }}">
<a href="{{ route('sysadmin_tools', ['pay_credits']) }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-contact"></i><div>Kunden</div></a>
</li>
</ul>
{{-- <ul class="sidenav-menu">
<li class="sidenav-item{{ Request::is('sysadmin/tools/customers') ? ' active' : '' }}">
<a href="{{ route('sysadmin_tools_customers') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-contact"></i><div>Kunden</div></a>

View file

@ -0,0 +1,76 @@
@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 mb-4">
Kunden
</h4>
{!! Form::open(['url' => url()->current(), 'class' => '']) !!}
<div class="card mb-4">
<div class="card-body">
<!-- Controls -->
<div class="form-group mb-1">
<label class="form-label" for="description">Description</label>
{{ Form::textarea('text', $text, array('class'=>'form-control', 'rows'=>1)) }}
</div>
<button type="submit" name="action" value="store" class="btn btn-primary"><i class="ion"></i> store</button>
</div>
@if(count($values)>0)
<div class="card-body">
<div class="card-datatable table-responsive">
<table class="table table-striped table-bordered">
<thead>
<tr>
<th style="max-width: 60px;">ID</th>
<th>{{__('shopping_user_id')}}</th>
<th>{{__('total_shipping')}}</th>
<th>{{__('payment_credit')}}</th>
<th>{{__('txaction')}}</th>
</tr>
</thead>
<tbody>
@foreach($values as $shopping_order)
<tr>
<td>{{$shopping_order->id}}</td>
<td>{{$shopping_order->auth_user_id}}</td>
<td>{{$shopping_order->total_shipping}}</td>
<td>{{$shopping_order->payment_credit}}</td>
<td>{{$shopping_order->txaction}}</td>
</tr>
@endforeach
</tbody>
</table>
<!-- Controls -->
</div>
</div>
@endif
</div>
{!! Form::close() !!}
@endsection

View file

@ -41,7 +41,7 @@
</table>
</div>
<div class="text-left mt-3">
@if(!$user->isAboOption())
{{-- @if(!$user->isAboOption())
<hr>
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="abo_options">
@ -54,6 +54,7 @@
Ist die Mitgliedschaft vor dem {!! Carbon::parse($user->payment_account)->modify('-'.config('main.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 weitergeletet, die Verbindung ist SSL verschlüsselt.</em>

View file

@ -0,0 +1,47 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold py-2 mb-2">
{{ __('navigation.my_account') }} / {{ __('navigation.paycredit') }}
</h4>
<div class="card">
<div class="card-datatable table-responsive">
<table class="datatables-style table table-striped table-bordered">
<thead>
<tr>
<th style="width: 55%">Mitteilung</th>
<th>Betrag</th>
<th>altes Guthaben</th>
<th>neues Guthaben</th>
<th>Datum</th>
</tr>
</thead>
<tbody>
@if($user && $user->user_pay_credits)
@foreach($user->user_pay_credits as $user_pay_credit)
<tr>
@if($user_pay_credit->status === 3)
<th scope="row"> {!! nl2br($user_pay_credit->message) !!}</th>
@else
<th scope="row">{{ trans('payment.'.$user_pay_credit->message) }}
@if($user_pay_credit->shopping_order_id)
<a class="btn btn-outline-secondary btn-xs" href="{{ route('admin_sales_users_detail', [$user_pay_credit->shopping_order_id]) }}"><i class="ion ion-ios-redo"></i></a>
@endif
</th>
@endif
<td><div class="no-line-break">{{ formatNumber($user_pay_credit->credit) }} </div></td>
<td><div class="no-line-break">{{ formatNumber($user_pay_credit->old_credit_total) }} </div></td>
<td><div class="no-line-break">{{ formatNumber($user_pay_credit->new_credit_total) }} </div></td>
<td><div class="no-line-break">{{ formatDate($user_pay_credit->created_at) }}</div></td>
</tr>
@endforeach
@endif
</tbody>
</table>
</div>
</div>
<script>
</script>
@endsection