Files
backend/app/Http/Controllers/V3/Dashboard/RoadObservationController.php

57 lines
2.0 KiB
PHP

<?php
namespace App\Http\Controllers\V3\Dashboard;
use App\Exports\V3\RoadObservation\SupervisorCartableReport;
use App\Facades\DataTable\DataTableFacade;
use App\Http\Controllers\Controller;
use App\Models\RoadObserved;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use App\Services\Cartables\RoadObservationTableservice;
use Illuminate\Support\Facades\Auth;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Support\Facades\Gate;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class RoadObservationController extends Controller
{
public function supervisorIndex (Request $request,RoadObservationTableservice $roadObservationTableservice ): JsonResponse
{
$data = $roadObservationTableservice-> supervisorCartableIndex($request);
foreach ($data['data'] as &$roadItem) {
$roadItem['can_supervise'] = Gate::allows('gate-supervise-road-item', $roadItem) ? 1 : 0;
}
return response()->json($data);
}
public function verifyBySupervisor(VerifyBySupervisorRequest $request, RoadObserved $roadObserved): JsonResponse
{
$statusFa = $request->verify == 1 ? 'تایید شده' : 'عدم تایید';
$roadObserved->update([
'status' => $request->verify,
'status_fa' => $statusFa,
'supervisor_id' => Auth::id(),
'supervisor_name' => Auth::user()->name,
'supervisor_description' => $request->description,
'supervising_time' => now(),
]);
Auth::user()->addActivityComplete(1138);
return response()->json(['status' => 'succeed']);
}
public function supervisorCartableReport (Request $request, RoadObservationTableService $roadObservationTableService): BinaryFileResponse
{
$name = 'گزارش از کارتابل ارزیابی واکنش سریع '. verta()->now()->format('Y-m-d') . '.xlsx';
$data = $roadObservationTableService->supervisorCartableIndex($request, true);
return Excel::download(new SupervisorCartableReport($data['data']), $name);
}
}