Merge branch '535-display-open-jos-in-the-last-24-hours' into 'master'

Resolve "Display open JOs in the last 24 hours"

Closes #535

See merge request jankstudio/resq!625
This commit is contained in:
Kendrick Chan 2021-02-10 09:26:13 +00:00
commit c69e212e26
5 changed files with 32 additions and 11 deletions

View file

@ -3,6 +3,7 @@ class DashboardMap {
this.options = options;
this.rider_markers = rider_markers;
this.cust_markers = cust_markers;
this.rider_availability = {};
// layer groups
this.layer_groups = {
@ -253,10 +254,13 @@ class DashboardMap {
var lat = data.latitude;
var lng = data.longitude;
if (data.has_jo)
if (data.has_jo) {
my.rider_availability[id] = false;
my.putRiderActiveJOMarker(id, lat, lng);
else
} else {
my.rider_availability[id] = true;
my.putRiderAvailableMarker(id, lat, lng);
}
});
// console.log(rider_markers);

View file

@ -78,7 +78,7 @@ class MapEventHandler {
}
handleRider(chan_split, payload) {
console.log("rider message");
//console.log("rider message");
switch (chan_split[2]) {
case "location":
console.log("got location for rider " + chan_split[1] + " - " + payload);
@ -115,7 +115,7 @@ class MapEventHandler {
var obj = JSON.parse(payload);
var status = obj.status;
console.log("status " + status);
// console.log("status " + status);
switch (status) {
case 'rider_offline':
this.dashmap.rider_availability[chan_split[1]] = false;
@ -145,6 +145,7 @@ class MapEventHandler {
break;
}
});
break;
}
break;
}

View file

@ -48,8 +48,12 @@ class RefreshLatestActiveJobOrderCacheCommand extends Command
fwrite($tmp_cache_log, 'Cleared latest active jo cache...' . "\n");
$date = new DateTime();
$date->modify('-5 hour');
// get JOs -5 and +22 hours from current datetime
$start_date = new DateTime();
$start_date->modify('-5 hour');
$end_date = new DateTime();
$end_date->modify('+22 hour');
$status_list = [
JOStatus::PENDING,
@ -63,9 +67,11 @@ class RefreshLatestActiveJobOrderCacheCommand extends Command
->createQueryBuilder('jo');
$res = $qb->select('jo')
->where('jo.status IN (:statuses)')
->andWhere('jo.date_schedule >= :date')
->andWhere('jo.date_schedule >= :start_date')
->andWhere('jo.date_schedule <= :end_date')
->setParameter('statuses', $status_list, Connection::PARAM_STR_ARRAY)
->setParameter('date', $date)
->setParameter('start_date', $start_date)
->setParameter('end_date', $end_date)
->getQuery()
->execute();

View file

@ -602,8 +602,9 @@ class RiderController extends Controller
*/
public function ajaxAvailable(EntityManagerInterface $em, Rider $rider)
{
$jo = $rider->getRiderActiveJobOrder();
if ($jo == null || $jo->isClosed())
//$jo = $rider->getRiderActiveJobOrder();
$jo_results = $rider->getActiveJobOrder();
if (empty($jo_results))
$avail = 'available';
else
$avail = 'unavailable';

View file

@ -8,6 +8,9 @@ use App\Service\JobOrderCache;
use App\Ramcar\JOStatus;
use App\Entity\JobOrder;
use DateTime;
use DateInterval;
class JobOrderActiveCacheListener
{
protected $key;
@ -82,7 +85,13 @@ class JobOrderActiveCacheListener
$this->jo_cache->addActiveJobOrder($jo);
// save in latest JO cache
$this->jo_cache->addLatestActiveJoborder($jo);
// check if date_schedule is more than 24 hours
$date = new DateTime();
$interval = new DateInterval('P1D');
$date->sub($interval);
if ($jo->getDateSchedule() >= $date)
$this->jo_cache->addLatestActiveJoborder($jo);
// publish to mqtt
$coords = $jo->getCoordinates();