refactor the queries
This commit is contained in:
@@ -152,18 +152,19 @@ class RoadItemsReportController extends Controller
|
||||
$cityId = $request->city_id;
|
||||
$subId = $request->sub_id;
|
||||
$item = $request->item;
|
||||
$status = $request->status;
|
||||
$dateFrom = $request->date_from ? $request->date_from . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
$dateTo = $request->date_to ? $request->date_to . ' 23:59:59' : now()->addDay()->startOfDay()->toDateTimeString();
|
||||
|
||||
$data = RoadItemsProject::query()
|
||||
->where('is_new', '=', 1)
|
||||
->when($provinceId, fn($query) => $query->where('province_id', '=', $provinceId))
|
||||
->when($cityId, fn($query) => $query->where('city_id', '=', $cityId))
|
||||
->when($subId, fn($query) => $query->where('sub_items', 'like', '%' . $subId . '%'))
|
||||
->when($item, fn($query) => $query->where('item', '=', $item))
|
||||
->when(!is_null($request->status), fn($query) => $query->where('status', '=', $request->status))
|
||||
->whereBetween('activity_date', [$dateFrom, $dateTo])
|
||||
->when($provinceId, fn($query, $provinceId) => $query->where('road_items_projects.province_id', '=', $provinceId))
|
||||
->when($cityId, fn($query, $cityId) => $query->where('road_items_projects.city_id', '=', $cityId))
|
||||
->when($subId, fn($query, $subId) => $query->where('sub_items', 'like', '%' . $subId . '%'))
|
||||
->when($item, fn($query, $item) => $query->where('item', '=', $item))
|
||||
->when(!is_null($status), fn($query, $status) => $query->where('status', '=', $status))
|
||||
->leftJoin('users', 'users.id', '=', 'road_items_projects.user_id')
|
||||
->whereBetween('road_items_projects.activity_date', [$dateFrom, $dateTo])
|
||||
->select('road_items_projects.id as i', 'start_lat as l', 'start_lng as g', 'status')
|
||||
->get();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user