update vehicle trips report to include trip duration and distance
This commit is contained in:
@ -177,13 +177,13 @@ class ReportsController extends Controller
|
||||
tm.total_mileage, total_trip,
|
||||
vt.name as type_name,
|
||||
ROW_NUMBER() OVER (PARTITION BY t.id ORDER BY t.start) AS trip_id,
|
||||
tgt.latitude,
|
||||
tgt.longitude
|
||||
-- tgt.latitude,
|
||||
-- tgt.longitude
|
||||
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
|
||||
LEFT JOIN t_gps_tracks tgt ON t.vhc_id = tgt.vhc_id
|
||||
-- LEFT JOIN t_gps_tracks tgt ON t.vhc_id = tgt.vhc_id
|
||||
WHERE
|
||||
t.start BETWEEN ? AND ?
|
||||
and (? IS NULL or t.id = ?)
|
||||
|
||||
@ -483,31 +483,11 @@
|
||||
`;
|
||||
}
|
||||
},
|
||||
// {
|
||||
// data: 'finish',
|
||||
// render: (data, type, row, meta) => {
|
||||
// // saat export, hanya tampilkan lokasi tanpa tanggal/jam
|
||||
// if (type === 'export') {
|
||||
// return Helper.shortenText(decodeURIComponent(row.finishLoc ||
|
||||
// 'address'), 255) || "-";
|
||||
// }
|
||||
// return `
|
||||
// ${moment.unix(data + AppState.TIMEFIX).format('DD MMM YYYY HH:mm:ss')}<br>
|
||||
// ${Helper.shortenText(decodeURIComponent(row.finishLoc || 'address'), 255) || "-"}
|
||||
// `;
|
||||
// }
|
||||
// },
|
||||
{
|
||||
data: 'finish',
|
||||
render: (data, type, row, meta) => {
|
||||
// saat export, cek apakah koordinat finish berdekatan dengan site referensi
|
||||
// saat export, hanya tampilkan lokasi tanpa tanggal/jam
|
||||
if (type === 'export') {
|
||||
const nearestSite = findNearestSite(row.finishLat, row
|
||||
.finishLng); // sesuaikan nama field lat/lng
|
||||
if (nearestSite) {
|
||||
return formatSiteLabel(nearestSite);
|
||||
}
|
||||
// default: tetap pakai alamat dari database
|
||||
return Helper.shortenText(decodeURIComponent(row.finishLoc ||
|
||||
'address'), 255) || "-";
|
||||
}
|
||||
@ -517,6 +497,26 @@
|
||||
`;
|
||||
}
|
||||
},
|
||||
// {
|
||||
// data: 'finish',
|
||||
// render: (data, type, row, meta) => {
|
||||
// // saat export, cek apakah koordinat finish berdekatan dengan site referensi
|
||||
// if (type === 'export') {
|
||||
// const nearestSite = findNearestSite(row.finishLat, row
|
||||
// .finishLng); // sesuaikan nama field lat/lng
|
||||
// if (nearestSite) {
|
||||
// return formatSiteLabel(nearestSite);
|
||||
// }
|
||||
// // default: tetap pakai alamat dari database
|
||||
// return Helper.shortenText(decodeURIComponent(row.finishLoc ||
|
||||
// 'address'), 255) || "-";
|
||||
// }
|
||||
// return `
|
||||
// ${moment.unix(data + AppState.TIMEFIX).format('DD MMM YYYY HH:mm:ss')}<br>
|
||||
// ${Helper.shortenText(decodeURIComponent(row.finishLoc || 'address'), 255) || "-"}
|
||||
// `;
|
||||
// }
|
||||
// },
|
||||
{
|
||||
className: 'text-start',
|
||||
render: function(data, type, row, meta) {
|
||||
|
||||
Reference in New Issue
Block a user