Files
WebAPP/app/Http/Controllers/CateringController.php
Rhino 2e24a40d68 Stand: SMTP-Test, Admin-Mail-Tab, Notifiable-Fix, Lazy-Quill
- Fix: Notifiable-Trait zum User-Model hinzugefuegt (behebt notify()-500er)
- Installer: SMTP-Verbindungstest mit EsmtpTransport + Ueberspringen-Link
- Admin: Neuer E-Mail-Tab mit SMTP-Konfiguration + Verbindungstest
- Admin: Lazy Quill-Initialisierung (nur sichtbare Locale wird geladen)
- Uebersetzungen: 17 neue Mail-Keys in allen 6 Sprachen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 07:30:37 +01:00

58 lines
1.9 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers;
use App\Enums\CateringStatus;
use App\Enums\EventStatus;
use App\Models\ActivityLog;
use App\Models\Event;
use App\Models\EventCatering;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
class CateringController extends Controller
{
public function update(Request $request, Event $event): RedirectResponse
{
$user = auth()->user();
if ($event->status === EventStatus::Cancelled) {
abort(403);
}
if (!$event->type->hasCatering()) {
abort(403);
}
if (!$user->canAccessAdminPanel()) {
if ($event->status === EventStatus::Draft) {
abort(403);
}
if (!$user->accessibleTeamIds()->contains($event->team_id)) {
abort(403);
}
}
$request->validate([
'status' => 'required|in:yes,no,unknown',
'note' => 'nullable|string|max:255',
]);
$existing = EventCatering::where('event_id', $event->id)->where('user_id', auth()->id())->first();
$oldStatus = $existing?->status?->value ?? 'unknown';
$catering = EventCatering::where('event_id', $event->id)->where('user_id', auth()->id())->first();
if (!$catering) {
$catering = new EventCatering(['event_id' => $event->id]);
$catering->user_id = auth()->id();
}
$catering->status = CateringStatus::from($request->status);
$catering->note = $request->note;
$catering->save();
ActivityLog::logWithChanges('status_changed', __('admin.log_catering_changed', ['event' => $event->title, 'status' => $request->status]), 'Event', $event->id, ['status' => $oldStatus, 'user_id' => auth()->id(), 'source' => 'catering'], ['status' => $request->status, 'user_id' => auth()->id(), 'source' => 'catering']);
return redirect(route('events.show', $event) . '#catering');
}
}