34 lines
1.4 KiB
PHP
34 lines
1.4 KiB
PHP
<?php
|
|
namespace App\Http\Controllers\Admin;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\RewardRedemption;
|
|
use Illuminate\Http\Request;
|
|
class RedemptionController extends Controller {
|
|
public function index() {
|
|
$pending = RewardRedemption::with(['user','reward'])->where('status','pending')->latest()->get();
|
|
$resolved = RewardRedemption::with(['user','reward','resolver'])->whereIn('status',['approved','rejected'])->latest()->take(50)->get();
|
|
return view('admin.redemptions.index', compact('pending','resolved'));
|
|
}
|
|
public function approve(RewardRedemption $redemption) {
|
|
if ($redemption->status !== 'pending') abort(422);
|
|
$redemption->update([
|
|
'status' => 'approved',
|
|
'resolved_at' => now(),
|
|
'resolved_by' => auth()->id(),
|
|
]);
|
|
return back()->with('success','Freigegeben!');
|
|
}
|
|
public function reject(Request $r, RewardRedemption $redemption) {
|
|
if ($redemption->status !== 'pending') abort(422);
|
|
$redemption->update([
|
|
'status' => 'rejected',
|
|
'note' => $r->note,
|
|
'resolved_at' => now(),
|
|
'resolved_by' => auth()->id(),
|
|
]);
|
|
// Punkte zurückgeben
|
|
$redemption->user->increment('points', $redemption->points_spent);
|
|
return back()->with('success','Abgelehnt, Punkte zurückgebucht.');
|
|
}
|
|
}
|