mivita/resources/views/user/membership/index.blade.php
Kevin 30fb031d12 Mitgliedschaft: Erinnerungen und eigenes Verlaengerungs-Produkt
Die Erinnerungsmails vor Ablauf der Mitgliedschaft beschrieben noch den
abgeschafften SEPA-Einzug und verlinkten auf die Hauptdomain, wo
/user/membership nicht existiert. Das Produkt fuer die Verlaengerung war
zudem dasselbe wie bei der Registrierung und sprach deshalb vom
Neuabschluss.

- Erinnerungen: nur noch Stufen 31/33/34/35, SEPA-Stufen 32/36/37 samt
  :price und :pay_date entfallen; Button verlinkt auf my.mivita.care;
  fehlt ein Text zum Status, wird die Mail geloggt statt roh versendet.
- Alle Erinnerungstexte (de/en/es/fr) erklaeren jetzt, dass ohne Zahlung
  der Account pausiert und offene Provisionen ausgezahlt werden.
- Eigenes Produkt fuer die Verlaengerung (identifier show_renewal) als
  Kopie des Mitgliedschafts-Produkts inkl. Preisen, Kategorien und
  Uebersetzungen fuer en/es/fr; die Mitgliedschaftsseite faellt ohne
  dieses Produkt auf das bisherige zurueck.
- Mitgliedschaftsseite auf ein Paket reduziert: Upgrade-, Wechsel- und
  Abo-Optionen entfernt, Texte auf die manuelle Verlaengerung umgestellt.
- Alte Cron-Weboberflaeche entfernt, der Versand laeuft ueber den
  Scheduler (payments:check-accounts).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 08:24:32 +00:00

211 lines
11 KiB
PHP

@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">
{{ __('navigation.my_membership') }}
</h4>
<div class="row">
<div class="col order-2 order-md-1">
{{-- Verlaengerungsfenster: ab config('mivita.renewal_days') Tagen vor Ablauf ist die Zahlung moeglich.
Es gibt nur noch eine Mitgliedschaft: Zahlung eingegangen => +1 Jahr, sonst laeuft sie aus. --}}
@if($user->isRenewalAccount())
<div class="card w-100 mb-4">
<h5 class="card-header">{{ __('membership.renewal_hl') }}</h5>
<div class="card-body">
@if($user->isActiveAccount())
<p>{{ __('membership.renewal_info', ['datetime' => $user->getPaymentAccountDateFormat()]) }}</p>
@else
<p>{{ __('membership.renewal_expired_info', ['datetime' => $user->getPaymentAccountDateFormat()]) }}</p>
@endif
<p>{{ __('membership.renewal_consequence') }}</p>
@if($userHistoryPaymentOrder && $userHistoryPaymentOrder->status > 2)
<h6 class="alert badge-{{$userHistoryPaymentOrder->getStatusColor()}}">{{__('membership.payment_has_been_made') }} {{__('membership.status') }}: {{ trans('payment.status.'.$userHistoryPaymentOrder->getStatusType())}}</h6>
<h5 class="card-header bg-light">
<a href="#" data-toggle="collapse" data-target="#collapsePaymentForm" aria-expanded="false" aria-controls="collapsePaymentForm">
<i class="fa fa-caret-expand"></i> {{ __('membership.open_payment_options') }}
</a>
</h5>
<div class="collapse" id="collapsePaymentForm">
@include('user.membership._payment_order')
</div>
@else
<h6 class="alert badge-warning">{{ __('membership.alert_contract_renewal') }}</h6>
@include('user.membership._payment_order')
@endif
</div>
</div>
@elseif($user->payment_account && $user->isActiveAccount())
<div class="card w-100 mb-4">
<h5 class="card-header">{{ __('membership.renewal_hl') }}</h5>
<div class="card-body">
<p>{{ __('membership.active_info', ['datetime' => $user->getPaymentAccountDateFormat(), 'renewal_date' => $user->nextRenewalAccount()]) }}</p>
<p>{{ __('membership.renewal_consequence') }}</p>
</div>
</div>
@endif
<div class="card w-100 mb-4">
<h5 class="card-header">Zahlungshistorie</h5>
<div class="card-body">
<p>
Die Zahlungshistorie zeigt Dir alle Zahlungen für Deine MIVITA Mitgliedschaft.
</p>
<div class="card-datatable table-responsive py-0">
<table class="datatables-style table table-striped table-bordered">
<thead>
<tr>
<th>#</th>
<th>{{__('tables.date')}}</th>
<th>{{__('tables.amount')}}</th>
<th>{{__('tables.payment')}}</th>
<th>{{__('tables.status')}}</th>
<th>{{__('tables.art')}}</th>
<th>{{__('tables.rf_no')}}</th>
</tr>
</thead>
<tbody>
@foreach($userShoppingOrders as $value)
<tr>
<td>
<a href="{{ route('user_order_detail', [$value->id]) }}" class="btn icon-btn btn-sm btn-primary">
<span class="fa fa-edit"></span>
</a>
</td>
<td>{{ $value->created_at->format("d.m.Y") }}</td>
<td>{{ $value->getFormattedTotalShipping() }}€</td>
<td>{{ $value->getLastShoppingPayment('getPaymentType') }}</td>
<td>{!! \App\Services\Payment::getShoppingOrderBadge($value) !!}</td>
<td>{!! App\Services\Payment::getPaymentForBadge($value) !!}</td>
<td>{{ $value->getLastShoppingPayment('reference') }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
@if($user->payment_account)
<div class="card w-100 mb-4">
{!! Form::open(['action' => route('user_membership_store', ['delete_membership']), 'class' => 'form-horizontal']) !!}
<h5 class="card-header">{{__('membership.membership')}} {{__('membership.end')}}</h5>
<div class="card-body">
<p>{{__('membership.end_copy_1')}}<br>
{{__('membership.end_copy_2')}}</p>
@if($userHistoryDeleteMembership && $userHistoryDeleteMembership->status == 50)
<p class="alert py-2 px-2 badge-danger">{{__('membership.end_copy_3')}}<br>
@else
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="delete_membership_mivita">
<span class="custom-control-label secondary">{{__('membership.end_checkbox')}}</span>
</label>
<button type="submit" class="btn btn-default btn-sm">{{__('membership.end_button')}}</button>&nbsp;
@endif
</div>
{!! Form::close() !!}
</div>
@endif
</div>
<div class="col-md-5 col-xl-4 order-1 order-md-2">
<div class="card mb-4">
<h5 class="card-header">{{__('membership.membership')}} {{__('membership.details')}}</h5>
<ul class="list-group list-group-flush">
<li class="list-group-item d-flex justify-content-between align-items-center">
<div class="text-muted">{{__('membership.booked_package')}}</div>
<div class="text-right">
@if($user->payment_order_id)
{{ $user->payment_order_product->getLang('name') }}
@endif
</div>
</li>
@if($user->payment_account && ! $user->isRenewalAccount())
<li class="list-group-item d-flex justify-content-between align-items-center">
<div class="text-muted">{{__('membership.renewal_possible_from')}}</div>
<div class="text-right">
{{ $user->nextRenewalAccount() }}
</div>
</li>
@endif
<li class="list-group-item d-flex justify-content-between align-items-center">
<div class="text-muted">{{ __('membership.consultant_membership') }}</div>
<div class="text-right">
@if($user->isActiveAccount() )
<span class="badge badge-pill badge-success"><i class="fa fa-check"></i> {{ __('membership.active') }}</span>
@else
<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i> {{ __('membership.inactive') }}</span>
@endif
</div>
</li>
@if($user->isActiveAccount() )
<li class="list-group-item d-flex justify-content-between align-items-center">
<div class="text-muted">{{__('membership.until')}}</div>
<div class="text-right">
{{ $user->getPaymentAccountDateFormat() }}
</div>
</li>
@else
@if($user->payment_account)
<li class="list-group-item d-flex justify-content-between align-items-center">
<div class="text-muted">{{__('membership.expired_on')}}</div>
<div class="text-right">
{{ $user->getPaymentAccountDateFormat() }}
</div>
</li>
@endif
@endif
<li class="list-group-item d-flex justify-content-between align-items-center">
<div class="text-muted">{{ __('membership.consultant_online_shop') }}</div>
<div class="text-right">
@if($user->isActiveShop() )
<span class="badge badge-pill badge-success"><i class="fa fa-check"></i> {{ __('membership.active') }}</span>
@else
<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i> {{ __('membership.inactive') }}</span>
@endif
</div>
</li>
@if($user->isActiveShop() )
<li class="list-group-item d-flex justify-content-between align-items-center">
<div class="text-muted">{{__('membership.until')}}</div>
<div class="text-right">
{{ $user->getPaymentShopDateFormat() }}
</div>
</li>
@else
@if($user->payment_shop)
<li class="list-group-item d-flex justify-content-between align-items-center">
<div class="text-muted">{{__('membership.expired_on')}}</div>
<div class="text-right">
{{ $user->getPaymentShopDateFormat() }}
</div>
</li>
@endif
@endif
</ul>
</div>
</div>
</div>
@endsection