add new column in trips export data
This commit is contained in:
@ -114,6 +114,9 @@
|
|||||||
<th class="">Number of Trip</th>
|
<th class="">Number of Trip</th>
|
||||||
<th class="">Total Mileage (km)</th>
|
<th class="">Total Mileage (km)</th>
|
||||||
<th class="">Trip #</th>
|
<th class="">Trip #</th>
|
||||||
|
<th class="hidden">Date</th>
|
||||||
|
<th class="hidden">Hour Start</th>
|
||||||
|
<th class="hidden">Hour Finish</th>
|
||||||
<th class="">Start</th>
|
<th class="">Start</th>
|
||||||
<th class="">Finish</th>
|
<th class="">Finish</th>
|
||||||
<th class="">Duration</th>
|
<th class="">Duration</th>
|
||||||
@ -377,10 +380,37 @@
|
|||||||
data: "trip_id",
|
data: "trip_id",
|
||||||
className: 'text-end'
|
className: 'text-end'
|
||||||
},
|
},
|
||||||
|
// ==== KOLOM BARU: hanya untuk export, tidak tampil di layar ====
|
||||||
|
{
|
||||||
|
data: 'start',
|
||||||
|
visible: false,
|
||||||
|
render: (data, type, row, meta) => {
|
||||||
|
return moment.unix(data + AppState.TIMEFIX).format('DD MMM YYYY');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'start',
|
||||||
|
visible: false,
|
||||||
|
render: (data, type, row, meta) => {
|
||||||
|
return moment.unix(data + AppState.TIMEFIX).format('HH:mm:ss');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'finish',
|
||||||
|
visible: false,
|
||||||
|
render: (data, type, row, meta) => {
|
||||||
|
return moment.unix(data + AppState.TIMEFIX).format('HH:mm:ss');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// ==== END KOLOM BARU ====
|
||||||
{
|
{
|
||||||
data: 'start',
|
data: 'start',
|
||||||
render: (data, type, row, meta) => {
|
render: (data, type, row, meta) => {
|
||||||
// let addr = row
|
// saat export, hanya tampilkan lokasi tanpa tanggal/jam
|
||||||
|
if (type === 'export') {
|
||||||
|
return Helper.shortenText(decodeURIComponent(row.startLoc ||
|
||||||
|
'address'), 255) || "-";
|
||||||
|
}
|
||||||
return `
|
return `
|
||||||
${moment.unix(data + AppState.TIMEFIX).format('DD MMM YYYY HH:mm:ss')}<br>
|
${moment.unix(data + AppState.TIMEFIX).format('DD MMM YYYY HH:mm:ss')}<br>
|
||||||
${Helper.shortenText(decodeURIComponent(row.startLoc || 'address'), 255) || "-"}
|
${Helper.shortenText(decodeURIComponent(row.startLoc || 'address'), 255) || "-"}
|
||||||
@ -390,7 +420,11 @@
|
|||||||
{
|
{
|
||||||
data: 'finish',
|
data: 'finish',
|
||||||
render: (data, type, row, meta) => {
|
render: (data, type, row, meta) => {
|
||||||
// let addr = row
|
// saat export, hanya tampilkan lokasi tanpa tanggal/jam
|
||||||
|
if (type === 'export') {
|
||||||
|
return Helper.shortenText(decodeURIComponent(row.finishLoc ||
|
||||||
|
'address'), 255) || "-";
|
||||||
|
}
|
||||||
return `
|
return `
|
||||||
${moment.unix(data + AppState.TIMEFIX).format('DD MMM YYYY HH:mm:ss')}<br>
|
${moment.unix(data + AppState.TIMEFIX).format('DD MMM YYYY HH:mm:ss')}<br>
|
||||||
${Helper.shortenText(decodeURIComponent(row.finishLoc || 'address'), 255) || "-"}
|
${Helper.shortenText(decodeURIComponent(row.finishLoc || 'address'), 255) || "-"}
|
||||||
@ -403,7 +437,6 @@
|
|||||||
const start = moment.unix(row.start);
|
const start = moment.unix(row.start);
|
||||||
const finish = moment.unix(row.finish);
|
const finish = moment.unix(row.finish);
|
||||||
|
|
||||||
// calculate duration
|
|
||||||
const diff = moment.duration(finish.diff(start));
|
const diff = moment.duration(finish.diff(start));
|
||||||
const hours = Math.floor(diff.asHours());
|
const hours = Math.floor(diff.asHours());
|
||||||
const minutes = diff.minutes();
|
const minutes = diff.minutes();
|
||||||
@ -429,7 +462,6 @@
|
|||||||
data: 'mileage',
|
data: 'mileage',
|
||||||
className: 'text-end',
|
className: 'text-end',
|
||||||
render: function(data, type, row, meta) {
|
render: function(data, type, row, meta) {
|
||||||
// const mileage = (row.finishMileage !== null && row.startMileage !== null) ? (row.finishMileage - row.startMileage) : row.mileage;
|
|
||||||
return (parseFloat(data).toFixed(2));
|
return (parseFloat(data).toFixed(2));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -437,7 +469,6 @@
|
|||||||
data: 'fuel_consume',
|
data: 'fuel_consume',
|
||||||
className: 'text-end',
|
className: 'text-end',
|
||||||
render: function(data, type, row, meta) {
|
render: function(data, type, row, meta) {
|
||||||
// const mileage = (row.finishMileage !== null && row.startMileage !== null) ? (row.finishMileage - row.startMileage) : row.mileage;
|
|
||||||
return (parseFloat(data / 10).toFixed(1));
|
return (parseFloat(data / 10).toFixed(1));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -446,7 +477,6 @@
|
|||||||
className: 'text-start'
|
className: 'text-start'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// visible: false,
|
|
||||||
data: 'vhc_id',
|
data: 'vhc_id',
|
||||||
className: 'text-center',
|
className: 'text-center',
|
||||||
render: function(data, type, row, meta) {
|
render: function(data, type, row, meta) {
|
||||||
@ -474,7 +504,6 @@
|
|||||||
.data()
|
.data()
|
||||||
.each(function(group, i) {
|
.each(function(group, i) {
|
||||||
if (last !== group) {
|
if (last !== group) {
|
||||||
// count how many rows this vhc_id spans
|
|
||||||
const rowspanCount = api
|
const rowspanCount = api
|
||||||
.column(0, {
|
.column(0, {
|
||||||
page: 'current'
|
page: 'current'
|
||||||
@ -484,24 +513,19 @@
|
|||||||
return d === group;
|
return d === group;
|
||||||
}).length;
|
}).length;
|
||||||
|
|
||||||
// merge vhc_id
|
|
||||||
$(rows).eq(i).find('td:eq(0)').attr('rowspan', rowspanCount);
|
$(rows).eq(i).find('td:eq(0)').attr('rowspan', rowspanCount);
|
||||||
$(rows).eq(i).find('td:eq(1)').attr('rowspan', rowspanCount);
|
$(rows).eq(i).find('td:eq(1)').attr('rowspan', rowspanCount);
|
||||||
$(rows).eq(i).find('td:eq(2)').attr('rowspan', rowspanCount);
|
$(rows).eq(i).find('td:eq(2)').attr('rowspan', rowspanCount);
|
||||||
$(rows).eq(i).find('td:eq(3)').attr('rowspan', rowspanCount);
|
$(rows).eq(i).find('td:eq(3)').attr('rowspan', rowspanCount);
|
||||||
$(rows).eq(i).find('td:eq(4)').attr('rowspan', rowspanCount);
|
$(rows).eq(i).find('td:eq(4)').attr('rowspan', rowspanCount);
|
||||||
|
|
||||||
// $(rows).eq(i).find('td:eq(3)').attr('rowspan', rowspanCount);
|
|
||||||
|
|
||||||
last = group;
|
last = group;
|
||||||
} else {
|
} else {
|
||||||
// remove duplicate cells
|
|
||||||
$(rows).eq(i).find('td:eq(0)').remove();
|
$(rows).eq(i).find('td:eq(0)').remove();
|
||||||
$(rows).eq(i).find('td:eq(0)').remove();
|
$(rows).eq(i).find('td:eq(0)').remove();
|
||||||
$(rows).eq(i).find('td:eq(0)').remove();
|
$(rows).eq(i).find('td:eq(0)').remove();
|
||||||
$(rows).eq(i).find('td:eq(0)').remove();
|
$(rows).eq(i).find('td:eq(0)').remove();
|
||||||
$(rows).eq(i).find('td:eq(0)').remove();
|
$(rows).eq(i).find('td:eq(0)').remove();
|
||||||
// $(rows).eq(i).find('td:eq(0)').remove();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -516,7 +540,10 @@
|
|||||||
},
|
},
|
||||||
className: 'd-none', // hide default button
|
className: 'd-none', // hide default button
|
||||||
exportOptions: {
|
exportOptions: {
|
||||||
columns: ':visible:not(:last-child)' //
|
// index kolom baru (7,8,9 = Date, Hour Start, Hour Finish) sudah dimasukkan manual
|
||||||
|
// karena kolom tsb visible:false sehingga tidak tercover selector ':visible'
|
||||||
|
columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17],
|
||||||
|
orthogonal: 'export'
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user