Merge branch '746-resq-2-0-final' into 768-add-timer-in-jo-list-to-show-real-time-dispatch-time

# Conflicts:
#	templates/job-order/list.all.html.twig
This commit is contained in:
Ramon Gutierrez 2023-11-09 06:16:24 +08:00
commit e070d6df18
2 changed files with 86 additions and 78 deletions

View file

@ -243,12 +243,20 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
else else
$row['assignor'] = $orow->getAssignedBy()->getFullName(); $row['assignor'] = $orow->getAssignedBy()->getFullName();
// not removing this since this might be used by other pages since getRows is also used by other pages
$hub_facilitated = $orow->getFacilitatedBy(); $hub_facilitated = $orow->getFacilitatedBy();
if ($hub_facilitated == null) if ($hub_facilitated == null)
$row['hub_facilitated'] = ''; $row['hub_facilitated'] = '';
else else
$row['hub_facilitated'] = $orow->getFacilitatedBy()->getName(); $row['hub_facilitated'] = $orow->getFacilitatedBy()->getName();
// get the assigned hub, if any
$assigned_hub = $orow->getHub();
if ($assigned_hub == null)
$row['assigned_hub'] = '';
else
$row['assigned_hub'] = $orow->getHub()->getName();
$rows[] = $row; $rows[] = $row;
} }

View file

@ -113,91 +113,91 @@
}, },
}, },
columns: [ columns: [
{ {
field: 'id', field: 'id',
title: 'JO Number' title: 'JO Number'
}, },
{ {
field: 'plate_number', field: 'plate_number',
title: 'Plate #' title: 'Plate #'
}, },
{ {
field: 'customer_name', field: 'customer_name',
title: 'Customer' title: 'Customer'
}, },
{ {
field: 'delivery_address', field: 'delivery_address',
title: 'Customer Area' title: 'Customer Area'
}, },
{ {
field: 'hub_facilitated', field: 'assigned_hub',
title: 'Battery Facilitated By' title: 'Assigned Hub'
}, },
{ {
field: 'type', field: 'service_type',
title: 'Schedule' title: 'Transaction Type'
}, },
{ {
field: 'date_schedule', field: 'date_schedule',
title: 'Scheduled Date' title: 'Scheduled Date'
}, },
{ {
field: 'status', field: 'status',
title: 'Status' title: 'Status'
}, },
{ {
field: 'processor', field: 'processor',
title: 'Dispatcher' title: 'Dispatcher'
}, },
{ {
field: '', field: '',
title: 'Dispatch Time', title: 'Dispatch Time',
sortable: false, sortable: false,
searchable: false, searchable: false,
textAlign: 'right', textAlign: 'right',
template: function (row, index, datatable) { template: function (row, index, datatable) {
let dateAssign; let dateAssign;
let dateEnd; let dateEnd;
let incrementing = false; let incrementing = false;
// only display timer for these statuses // only display timer for these statuses
const statusesWithTimer = [ const statusesWithTimer = [
'Assigned', 'Assigned',
'In Transit', 'In Transit',
'In Progress', 'In Progress',
'Completed', // NOTE: completed would be based off the fulfillment time 'Completed', // NOTE: completed would be based off the fulfillment time
]; ];
if (row.date_assign && statusesWithTimer.includes(row.status)) { if (row.date_assign && statusesWithTimer.includes(row.status)) {
dateAssign = new moment(row.date_assign, moment.ISO_8601); dateAssign = new moment(row.date_assign, moment.ISO_8601);
// on completed jos, use date_fulfill as end date and do not increment // on completed jos, use date_fulfill as end date and do not increment
if (row.status == 'Completed') { if (row.status == 'Completed') {
if (row.date_fulfill) { if (row.date_fulfill) {
dateEnd = new moment(row.date_fulfill, moment.ISO_8601); dateEnd = new moment(row.date_fulfill, moment.ISO_8601);
}
} else {
dateEnd = moment();
incrementing = true;
} }
} else {
dateEnd = moment();
incrementing = true;
} }
return dateEnd ? '<span class="m-badge m-badge--wide m--font-boldest ' + (incrementing ? 'm-badge--warning" data-incrementing="1"' : 'm-badge--success"') + '>' + timeDiff(dateAssign, dateEnd) + '</span>' : '-';
} }
},
{
field: 'Actions',
width: 110,
title: 'Actions',
sortable: false,
overflow: 'visible',
template: function (row, index, datatable) {
var actions = '<a href="' + row.meta.update_url + '" class="m-portlet__nav-link btn m-btn m-btn--hover-accent m-btn--icon m-btn--icon-only m-btn--pill btn-edit" title="View"><i class="la la-edit"></i></a>';
actions += '<a href="' + row.meta.pdf_url + '" class="m-portlet__nav-link btn m-btn m-btn--hover-accent m-btn--icon m-btn--icon-only m-btn--pill btn-edit" title="PDF" target="_blank"><i class="la la-file-o"></i></a>';
return actions; return dateEnd ? '<span class="m-badge m-badge--wide m--font-boldest ' + (incrementing ? 'm-badge--warning" data-incrementing="1"' : 'm-badge--success"') + '>' + timeDiff(dateAssign, dateEnd) + '</span>' : '-';
}, },
} },
{
field: 'Actions',
width: 110,
title: 'Actions',
sortable: false,
overflow: 'visible',
template: function (row, index, datatable) {
var actions = '<a href="' + row.meta.update_url + '" class="m-portlet__nav-link btn m-btn m-btn--hover-accent m-btn--icon m-btn--icon-only m-btn--pill btn-edit" title="View"><i class="la la-edit"></i></a>';
actions += '<a href="' + row.meta.pdf_url + '" class="m-portlet__nav-link btn m-btn m-btn--hover-accent m-btn--icon m-btn--icon-only m-btn--pill btn-edit" title="PDF" target="_blank"><i class="la la-file-o"></i></a>';
return actions;
},
},
], ],
search: { search: {
onEnter: false, onEnter: false,