From 032489d7364c3f4cc2b13f52d200f6a8773d80c1 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 10 Feb 2021 07:05:00 +0000 Subject: [PATCH 1/3] Fix dashboard issues. #535 --- public/assets/js/dashboard_map.js | 8 ++++++-- public/assets/js/map_mqtt.js | 1 + src/Controller/RiderController.php | 5 +++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/public/assets/js/dashboard_map.js b/public/assets/js/dashboard_map.js index 3f02d1f4..ce32461f 100644 --- a/public/assets/js/dashboard_map.js +++ b/public/assets/js/dashboard_map.js @@ -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); diff --git a/public/assets/js/map_mqtt.js b/public/assets/js/map_mqtt.js index d277013c..2452646b 100644 --- a/public/assets/js/map_mqtt.js +++ b/public/assets/js/map_mqtt.js @@ -145,6 +145,7 @@ class MapEventHandler { break; } }); + break; } break; } diff --git a/src/Controller/RiderController.php b/src/Controller/RiderController.php index 247123d5..afcd9287 100644 --- a/src/Controller/RiderController.php +++ b/src/Controller/RiderController.php @@ -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'; From f5f321b5064008b03c5bebab657079c2c4e4257a Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 10 Feb 2021 07:59:32 +0000 Subject: [PATCH 2/3] Add checking if date schedule is more than 24 hours before adding to cache. Add advance orders to cache when refreshing. #535 --- .../RefreshLatestActiveJobOrderCacheCommand.php | 14 ++++++++++---- src/EventListener/JobOrderActiveCacheListener.php | 11 ++++++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/Command/RefreshLatestActiveJobOrderCacheCommand.php b/src/Command/RefreshLatestActiveJobOrderCacheCommand.php index c712eaa2..c2284843 100644 --- a/src/Command/RefreshLatestActiveJobOrderCacheCommand.php +++ b/src/Command/RefreshLatestActiveJobOrderCacheCommand.php @@ -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(); diff --git a/src/EventListener/JobOrderActiveCacheListener.php b/src/EventListener/JobOrderActiveCacheListener.php index d02bbd09..6c5fa588 100644 --- a/src/EventListener/JobOrderActiveCacheListener.php +++ b/src/EventListener/JobOrderActiveCacheListener.php @@ -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(); From cdcb7d0b46dc59e3dcae2fe74eb350ee65af5ada Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 10 Feb 2021 08:13:03 +0000 Subject: [PATCH 3/3] Remove a few console logs. #535 --- public/assets/js/map_mqtt.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/assets/js/map_mqtt.js b/public/assets/js/map_mqtt.js index 2452646b..453dd080 100644 --- a/public/assets/js/map_mqtt.js +++ b/public/assets/js/map_mqtt.js @@ -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;