41 lines
1.1 KiB
PHP
41 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\ReportOverride;
|
|
use Illuminate\Http\Request;
|
|
use Carbon\Carbon;
|
|
|
|
class ReportOverrideController extends Controller
|
|
{
|
|
public function store(Request $request)
|
|
{
|
|
// Todo : Add middleware or policy checks for management
|
|
|
|
$request->validate([
|
|
'user_id' => 'required|exists:staff_members,id',
|
|
'report_date' => 'required|date',
|
|
'hours_valid' => 'nullable|integer|min:1|max:72',
|
|
]);
|
|
|
|
$hoursValid = (int) ($request->input('hours_valid') ?? 24);
|
|
|
|
ReportOverride::updateOrCreate(
|
|
[
|
|
'user_id' => $request->user_id,
|
|
'report_date' => $request->report_date,
|
|
],
|
|
[
|
|
'granted_by' => auth()->id(),
|
|
'expires_at' => now()->addHours($hoursValid),
|
|
// 'expires_at' => now()->addHours($request->hours_valid ?? 24),
|
|
|
|
]
|
|
);
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
'message' => 'Late submission override granted successfully.'
|
|
]);
|
|
}
|
|
} |