From eb1d5c4187cb95b89e88318089192ba202b00119 Mon Sep 17 00:00:00 2001 From: wayanrivan Date: Wed, 1 Jul 2026 14:50:17 +0700 Subject: [PATCH] update --- app/Http/Controllers/ReportsController.php | 152 ++++++-- .../menu_v1/reports/abnormalities.blade.php | 344 +++++++++--------- .../menu_v1/reports/vehicle_trips.blade.php | 176 ++++----- 3 files changed, 383 insertions(+), 289 deletions(-) diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index 2536d47..499ef23 100644 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -145,28 +145,65 @@ class ReportsController extends Controller // ORDER BY agg.id, trip_id // ", [$from_date, $to_date, $vid, $vid]); - $list = DB::select("WITH TotalMileage AS ( - SELECT id, SUM(mileage) AS total_mileage, count(*) total_trip - FROM trips - WHERE start BETWEEN ? AND ? - GROUP BY id - ) - SELECT - t.*, - tm.total_mileage, total_trip, - vt.name as type_name, - ROW_NUMBER() OVER (PARTITION BY t.id ORDER BY t.start) AS trip_id - FROM trips t - JOIN TotalMileage tm ON t.id = tm.id - LEFT JOIN t_vehicles tvt ON tvt.id = t.vhc_id - LEFT JOIN t_vehicles_cats vt ON vt.id = tvt.cat_id - WHERE - t.start BETWEEN ? AND ? - and if(? , t.id = ? , 1=1) - and if(? , vt.id = ? , 1=1) - and if(? , t.pool_code = ? , 1=1) - ", [$from_date, $to_date, $from_date, $to_date, $vid, $vid, $vt, $vt, $poolcode, $poolcode]); + // $list = DB::select("WITH TotalMileage AS ( + // SELECT id, SUM(mileage) AS total_mileage, count(*) total_trip + // FROM trips + // WHERE start BETWEEN ? AND ? + // GROUP BY id + // ) + // SELECT + // t.*, + // tm.total_mileage, total_trip, + // vt.name as type_name, + // ROW_NUMBER() OVER (PARTITION BY t.id ORDER BY t.start) AS trip_id + // FROM trips t + // JOIN TotalMileage tm ON t.id = tm.id + // LEFT JOIN t_vehicles tvt ON tvt.id = t.vhc_id + // LEFT JOIN t_vehicles_cats vt ON vt.id = tvt.cat_id + // WHERE + // t.start BETWEEN ? AND ? + // and if(? , t.id = ? , 1=1) + // and if(? , vt.id = ? , 1=1) + // and if(? , t.pool_code = ? , 1=1) + // ", [$from_date, $to_date, $from_date, $to_date, $vid, $vid, $vt, $vt, $poolcode, $poolcode]); + $sql = "WITH TotalMileage AS ( + SELECT id, SUM(mileage) AS total_mileage, count(*) total_trip + FROM trips + WHERE start BETWEEN ? AND ? + GROUP BY id + ) + SELECT + t.*, + tm.total_mileage, total_trip, + vt.name as type_name, + ROW_NUMBER() OVER (PARTITION BY t.id ORDER BY t.start) AS trip_id + FROM trips t + JOIN TotalMileage tm ON t.id = tm.id + LEFT JOIN t_vehicles tvt ON tvt.id = t.vhc_id + LEFT JOIN t_vehicles_cats vt ON vt.id = tvt.cat_id + WHERE + t.start BETWEEN ? AND ? + and (? IS NULL or t.id = ?) + and (? IS NULL or vt.id = ?) + and (? IS NULL or t.pool_code = ?) + "; + $vid = $vid ?: null; + $vt = $vt ?: null; + $poolcode = $poolcode ?: null; + + $list = DB::select($sql, [ + $from_date, + $to_date, + $from_date, + $to_date, + $vid, + $vid, + $vt, + $vt, + $poolcode, + $poolcode, + ]); // // RETURN 1 - LIST // if($req->type != 'report'){ $apiResp = Responses::success("success list vehicles report"); @@ -311,9 +348,11 @@ class ReportsController extends Controller { $q = "select id, nopol1 from t_vehicles WHERE dlt is null order by nopol1"; $listNopol = DB::select($q); + $listpool = DB::table('t_conf_pool')->where('dlt', null)->get(); $data = [ 'listNopol' => $listNopol, + 'listpool' => $listpool ]; $log = [ @@ -342,6 +381,7 @@ class ReportsController extends Controller $from_date = $req->input('from_date') - Helper::TIMEFIX; $to_date = $req->input('to_date') - Helper::TIMEFIX; $vid = $req->input('vid'); + $poolcode = $req->input('poolcode'); // Create a period between the two timestamps $period = CarbonPeriod::create( @@ -363,25 +403,57 @@ class ReportsController extends Controller $qString = "(" . implode(' UNION ALL ', $subQueryParts) . ")"; // dd("qString", $qString); try { - $list = DB::select("SELECT - tv.name, - tv.nopol1, - t.crt_d, - t.speed, - tgta.fulladdress, - tvd.speed_limit, - tvd.pool_code, - tvd.dc_code - FROM - $qString t - INNER JOIN t_vehicles tv ON tv.id = t.vhc_id - INNER JOIN t_vehicles_detail tvd ON tvd.vid = tv.id - LEFT JOIN t_gps_tracks_address tgta ON tgta.master_id = t.id - WHERE - if(? , tv.id = ? , 1=1) - AND t.speed > tvd.speed_limit - ORDER BY t.crt_d; - ", [$vid, $vid]); + // $list = DB::select("SELECT + // tv.name, + // tv.nopol1, + // t.crt_d, + // t.speed, + // tgta.fulladdress, + // tvd.speed_limit, + // tvd.pool_code, + // tvd.dc_code + // FROM + // $qString t + // INNER JOIN t_vehicles tv ON tv.id = t.vhc_id + // INNER JOIN t_vehicles_detail tvd ON tvd.vid = tv.id + // LEFT JOIN t_gps_tracks_address tgta ON tgta.master_id = t.id + // WHERE + // if(? , tv.id = ? , 1=1) + // AND t.speed > tvd.speed_limit + // AND if(? , tvd.pool_code = ? , 1=1) + // ORDER BY t.crt_d; + // ", [$vid, $vid, $poolcode, $poolcode]); + + $vid = $vid ?: null; + $poolcode = $poolcode ?: null; + + $sql = "SELECT + tv.name, + tv.nopol1, + t.crt_d, + t.speed, + tgta.fulladdress, + tvd.speed_limit, + tvd.pool_code, + tvd.dc_code + FROM + $qString t + INNER JOIN t_vehicles tv ON tv.id = t.vhc_id + INNER JOIN t_vehicles_detail tvd ON tvd.vid = tv.id + LEFT JOIN t_gps_tracks_address tgta ON tgta.master_id = t.id + WHERE + (? IS NULL OR tv.id = ?) + AND t.speed > tvd.speed_limit + AND (? IS NULL OR tvd.pool_code = ?) + ORDER BY t.crt_d + "; + + $list = DB::select($sql, [ + $vid, + $vid, + $poolcode, + $poolcode, + ]); // // RETURN 1 - LIST // if($req->type != 'report'){ diff --git a/resources/views/menu_v1/reports/abnormalities.blade.php b/resources/views/menu_v1/reports/abnormalities.blade.php index 6fa2643..82d918c 100644 --- a/resources/views/menu_v1/reports/abnormalities.blade.php +++ b/resources/views/menu_v1/reports/abnormalities.blade.php @@ -23,8 +23,8 @@ @if ($user_role == \App\Models\Users::ROLE_VENDOR || $user_role == \App\Models\Users::ROLE_ADMIN) @can('vehicle.create') + + --> @endcan {{--
@@ -37,73 +37,90 @@
- -
-
-
- - - - -
-
-
-
- - -
-
-
-
- - -
-
-
- -
-
- -
-
-
-
- - - - - - - - - - - - - - -
License Plate NumberDist. Cat.PoolTimeSpeed (kph)Location
+ +
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+ + +
+
+
+ + + + + + + + + + + + + + +
License Plate NumberDist. Cat.PoolTimeSpeed (kph)Location
+
+ - + @endsection @section('customjs') - - - - - + + +