Add rider status to rider assignment table. #735

This commit is contained in:
Korina Cordero 2023-02-06 07:35:06 +00:00
parent 935dc15101
commit 63b02a7c21
2 changed files with 107 additions and 41 deletions

View file

@ -2553,6 +2553,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
$this->fillDropdownParameters($params); $this->fillDropdownParameters($params);
$this->fillFormTags($params); $this->fillFormTags($params);
// get the rider data to display for table
$rider_data = $this->getRiderDataForAssignment($obj);
$params['rider_data'] = $rider_data;
// get template to display // get template to display
$params['template'] = $this->getTwigTemplate('jo_assigning_form'); $params['template'] = $this->getTwigTemplate('jo_assigning_form');
$params['obj'] = $obj; $params['obj'] = $obj;
@ -2818,6 +2822,10 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
$this->fillDropdownParameters($params); $this->fillDropdownParameters($params);
$this->fillFormTags($params); $this->fillFormTags($params);
// get the rider data to display for table
$rider_data = $this->getRiderDataForAssignment($obj);
$params['rider_data'] = $rider_data;
$params['obj'] = $obj; $params['obj'] = $obj;
$params['status_cancelled'] = JOStatus::CANCELLED; $params['status_cancelled'] = JOStatus::CANCELLED;
// get template to display // get template to display
@ -3495,6 +3503,48 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface
]; ];
} }
protected function getRiderDataForAssignment($obj)
{
$hub = $obj->getHub();
$rider_data = [];
// get all active riders of hub
$active_riders = $hub->getActiveRiders();
// need to get first name, last name, contact number, plate number, status, image file
// status: Online (rider is logged in app), Offline (rider is not logged in app), In transit
foreach ($active_riders as $rider)
{
// in transit - flag_available = 0 AND current_job_order is not null
// online - flag_available = 1
// offline - flag_available = 0 AND current_job_order is null
$rider_status = '';
if ($rider->isAvailable() == true)
$rider_status = 'Online';
if (($rider->isAvailable() == false) &&
($rider->getCurrentJobOrder() == null))
$rider_status = 'Offline';
if (($rider->isAvailable() == false) &&
($rider->getCurrentJobOrder() != null))
$rider_status = 'In transit';
$rider_data[$rider->getID()] = [
'first_name' => $rider->getFirstName(),
'last_name' => $rider->getLastName(),
'contact_number' => $rider->getContactNumber(),
'plate_number' => $rider->getPlateNumber(),
'image_file' => $rider->getImageFile(),
'status' => $rider_status,
];
}
return $rider_data;
}
// TODO: re-enable search, figure out how to group the orWhere filters into one, so can execute that plus the pending filter // TODO: re-enable search, figure out how to group the orWhere filters into one, so can execute that plus the pending filter
// check if datatable filter is present and append to query // check if datatable filter is present and append to query
protected function setQueryFilters($datatable, &$query, $qb, $hubs, $tier, $status) protected function setQueryFilters($datatable, &$query, $qb, $hubs, $tier, $status)

View file

@ -898,6 +898,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<!--
{% set avail_riders = obj.getHub.getAvailableRiders|default([]) %} {% set avail_riders = obj.getHub.getAvailableRiders|default([]) %}
<tr class="placeholder-row{{ obj.getHub and avail_riders|length > 0 ? ' hide' }}"> <tr class="placeholder-row{{ obj.getHub and avail_riders|length > 0 ? ' hide' }}">
<td colspan="6"> <td colspan="6">
@ -919,6 +920,21 @@
</tr> </tr>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
-->
{% if obj.getHub %}
{% for key, data in rider_data %}
<tr data-id="{{ key }}" {{ obj.getRider and obj.getRider.getID == key ? ' class="m-table__row--primary"' }}>
<td>
<div class="user-portrait-sm" style="background-image: url('{{ data['image_file'] ? "/uploads/" ~ data['image_file'] : "/assets/images/user.gif" }}');"></div>
</td>
<td> {{ data['first_name'] }} </td>
<td> {{ data['last_name'] }} </td>
<td> {{ data['contact_number'] }} </td>
<td> {{ data['plate_number'] }} </td>
<td> {{ data['status'] }} </td>
</tr>
{% endfor %}
{% endif %}
</tbody> </tbody>
</table> </table>
</div> </div>