Files
backend/app/Http/Controllers/V3/RoadPatrole/DetailController.php

84 lines
2.8 KiB
PHP

<?php
namespace App\Http\Controllers\V3\RoadPatrole;
use App\Enums\MissionStates;
use App\Facades\Sms\Sms;
use App\Http\Controllers\Controller;
use App\Http\Requests\V3\RoadPatrol\DeleteRequest;
use App\Http\Requests\V3\RoadPatrol\StoreRequest;
use App\Http\Traits\ApiResponse;
use App\Models\EdarateShahri;
use App\Models\InfoItem;
use App\Models\Mission;
use App\Models\RoadItemsProject;
use App\Models\RoadObserved;
use App\Models\RoadPatrol;
use App\Services\NominatimService;
use Carbon\Carbon;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
use Illuminate\Validation\ValidationException;
class DetailController extends Controller
{
use ApiResponse;
public function map(Request $request): JsonResponse
{
$province = $request->province_id;
$edare_shahri = $request->edare_shahri_id;
$status = $request->status;
$rms_status = $request->rms_status;
if ($request->from_date && $request->date_to) {
$date_from = $request->from_date.' 00:00:00';
$date_to = $request->date_to.' 23:59:59';
} else {
$date_from = Date('Y-m-d');
$date_to = new \DateTime('tomorrow');
$date_to = $date_to->format('Y-m-d');
}
$projects = RoadObserved::query()->select(['id', 'lng', 'lat','status'])
->whereBetween('created_at', [$date_from, $date_to])
->when($province, function ($query) use ($province) {
return $query->where('province_id', '=', $province);
})
->when($rms_status, function ($query) use ($rms_status) {
if ($rms_status == 2) {
return $query->where('rms_status', '<>', 0);
} else {
return $query->where('rms_status', '=', 0);
}
})
->when($edare_shahri, function ($query) use ($edare_shahri) {
return $query->where('edarate_shahri_id', '=', $edare_shahri);
})
->when($status, function ($query) use ($status) {
return $query->where('status', '=', $status);
})
->get();
return $this->successResponse($projects);
}
public function show(RoadPatrol $roadPatrol): JsonResponse
{
return $this->successResponse($roadPatrol);
}
public function roadPatrolMachine(RoadPatrol $roadPatrol): JsonResponse
{
return $this->successResponse($roadPatrol->cmmsMachines()->get(['cmms_machines.id', 'cmms_machines.machine_code', 'cmms_machines.car_name', 'cmms_machines.plak_number']));
}
public function roadPatrolRahdar(RoadPatrol $roadPatrol): JsonResponse
{
return $this->successResponse($roadPatrol->rahdaran()->get(['rahdaran.id', 'rahdaran.name', 'rahdaran.code']));
}
}