detail trip

This commit is contained in:
Pringgosutono
2025-09-11 10:11:42 +07:00
parent 64235d08f5
commit 5d585a6e26
3 changed files with 154 additions and 5434 deletions

View File

@ -17,6 +17,7 @@ use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithStyles;
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use Carbon\Carbon;
class ReportsController extends Controller
{
@ -107,7 +108,8 @@ class ReportsController extends Controller
tvd.pool_code, tvd.dc_code
FROM agg agg
join t_vehicles_detail tvd on tvd.vid = agg.id
ORDER BY agg.id, trip_id ";
ORDER BY agg.id, trip_id
";
$d = [$from_date, $to_date, $vid, $vid];
$list = DB::select($q, $d);
@ -193,7 +195,88 @@ class ReportsController extends Controller
}
public function view_report_trip_detail(Request $req)
{
return view('menu_v1.reports._trip_detail');
$vid = $req->vid;
$tgl0 = $req->tgl0;
$tgl1 = $req->tgl1;
$nopol1 = $req->nopol1;
$q = "
select
t.crt_s , t.latitude, t.longitude, t.speed,
tgta.fulladdress,
t.pre_milleage, t.vhc_milleage
FROM
t_gps_tracks t
join t_gps_tracks_address tgta on tgta.master_id = t.id
WHERE
t.vhc_id = ?
and t.latitude IS NOT NULL
AND t.longitude IS NOT NULL
AND t.action = 'location'
AND t.crt_s BETWEEN ? AND ?
ORDER BY t.crt_s asc
";
$d = [$vid, $tgl0, $tgl1];
$list = DB::select($q, $d);
$start = [
'time' => date('d-m-Y H:i:s', $list[0]->crt_s),
'fulladdress' => urldecode($list[0]->fulladdress),
'mileage' => $list[0]->vhc_milleage,
];
$finish = [
'time' => date('d-m-Y H:i:s', $list[count($list) - 1]->crt_s),
'fulladdress' => urldecode($list[count($list) - 1]->fulladdress),
'mileage' => $list[count($list) - 1]->vhc_milleage,
];
$t0 = Carbon::createFromTimestamp($list[0]->crt_s);
$t1 = Carbon::createFromTimestamp($list[count($list) - 1]->crt_s);
$diff = $t1->diff($t0);
$hours = $diff->h + ($diff->days * 24); // include days converted to hours
$minutes = $diff->i;
$duration = "{$hours} hour" . ($hours > 1 ? 's' : '') . " {$minutes} minute" . ($minutes > 1 ? 's' : '');
$distance = $list[count($list) - 1]->vhc_milleage - $list[0]->vhc_milleage;
$polyline = [];
foreach ($list as $item) {
$polyline[] = [$item->latitude, $item->longitude];
}
// $q0 = "
// select
// t.crt_s , t.latitude, t.longitude, t.speed,
// tgta.fulladdress,
// t.pre_milleage, t.vhc_milleage
// FROM
// t_gps_tracks t
// join t_gps_tracks_address tgta on tgta.master_id = t.id
// WHERE
// t.vhc_id = ?
// and t.latitude IS NOT NULL
// AND t.longitude IS NOT NULL
// AND t.action = 'location'
// AND t.crt_s BETWEEN ? AND ?
// ORDER BY t.crt_s asc
// ";
// $d = [$vid, $tgl0, $tgl1];
$data = [
'nopol1' => $nopol1,
'vid' => $vid,
'tgl0' => $tgl0,
'tgl1' => $tgl1,
'list' => $list,
'start' => $start,
'finish' => $finish,
'duration' => $duration,
'distance' => $distance,
'polyline' => json_encode($polyline),
];
// dd($list);
return view('menu_v1.reports._trip_detail', $data);
}
public function view_report_abnormalities(Request $req)