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:
commit
c69e212e26
5 changed files with 32 additions and 11 deletions
|
|
@ -3,6 +3,7 @@ class DashboardMap {
|
||||||
this.options = options;
|
this.options = options;
|
||||||
this.rider_markers = rider_markers;
|
this.rider_markers = rider_markers;
|
||||||
this.cust_markers = cust_markers;
|
this.cust_markers = cust_markers;
|
||||||
|
this.rider_availability = {};
|
||||||
|
|
||||||
// layer groups
|
// layer groups
|
||||||
this.layer_groups = {
|
this.layer_groups = {
|
||||||
|
|
@ -253,10 +254,13 @@ class DashboardMap {
|
||||||
var lat = data.latitude;
|
var lat = data.latitude;
|
||||||
var lng = data.longitude;
|
var lng = data.longitude;
|
||||||
|
|
||||||
if (data.has_jo)
|
if (data.has_jo) {
|
||||||
|
my.rider_availability[id] = false;
|
||||||
my.putRiderActiveJOMarker(id, lat, lng);
|
my.putRiderActiveJOMarker(id, lat, lng);
|
||||||
else
|
} else {
|
||||||
|
my.rider_availability[id] = true;
|
||||||
my.putRiderAvailableMarker(id, lat, lng);
|
my.putRiderAvailableMarker(id, lat, lng);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// console.log(rider_markers);
|
// console.log(rider_markers);
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ class MapEventHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
handleRider(chan_split, payload) {
|
handleRider(chan_split, payload) {
|
||||||
console.log("rider message");
|
//console.log("rider message");
|
||||||
switch (chan_split[2]) {
|
switch (chan_split[2]) {
|
||||||
case "location":
|
case "location":
|
||||||
console.log("got location for rider " + chan_split[1] + " - " + payload);
|
console.log("got location for rider " + chan_split[1] + " - " + payload);
|
||||||
|
|
@ -115,7 +115,7 @@ class MapEventHandler {
|
||||||
var obj = JSON.parse(payload);
|
var obj = JSON.parse(payload);
|
||||||
|
|
||||||
var status = obj.status;
|
var status = obj.status;
|
||||||
console.log("status " + status);
|
// console.log("status " + status);
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 'rider_offline':
|
case 'rider_offline':
|
||||||
this.dashmap.rider_availability[chan_split[1]] = false;
|
this.dashmap.rider_availability[chan_split[1]] = false;
|
||||||
|
|
@ -145,6 +145,7 @@ class MapEventHandler {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,8 +48,12 @@ class RefreshLatestActiveJobOrderCacheCommand extends Command
|
||||||
|
|
||||||
fwrite($tmp_cache_log, 'Cleared latest active jo cache...' . "\n");
|
fwrite($tmp_cache_log, 'Cleared latest active jo cache...' . "\n");
|
||||||
|
|
||||||
$date = new DateTime();
|
// get JOs -5 and +22 hours from current datetime
|
||||||
$date->modify('-5 hour');
|
$start_date = new DateTime();
|
||||||
|
$start_date->modify('-5 hour');
|
||||||
|
|
||||||
|
$end_date = new DateTime();
|
||||||
|
$end_date->modify('+22 hour');
|
||||||
|
|
||||||
$status_list = [
|
$status_list = [
|
||||||
JOStatus::PENDING,
|
JOStatus::PENDING,
|
||||||
|
|
@ -63,9 +67,11 @@ class RefreshLatestActiveJobOrderCacheCommand extends Command
|
||||||
->createQueryBuilder('jo');
|
->createQueryBuilder('jo');
|
||||||
$res = $qb->select('jo')
|
$res = $qb->select('jo')
|
||||||
->where('jo.status IN (:statuses)')
|
->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('statuses', $status_list, Connection::PARAM_STR_ARRAY)
|
||||||
->setParameter('date', $date)
|
->setParameter('start_date', $start_date)
|
||||||
|
->setParameter('end_date', $end_date)
|
||||||
->getQuery()
|
->getQuery()
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -602,8 +602,9 @@ class RiderController extends Controller
|
||||||
*/
|
*/
|
||||||
public function ajaxAvailable(EntityManagerInterface $em, Rider $rider)
|
public function ajaxAvailable(EntityManagerInterface $em, Rider $rider)
|
||||||
{
|
{
|
||||||
$jo = $rider->getRiderActiveJobOrder();
|
//$jo = $rider->getRiderActiveJobOrder();
|
||||||
if ($jo == null || $jo->isClosed())
|
$jo_results = $rider->getActiveJobOrder();
|
||||||
|
if (empty($jo_results))
|
||||||
$avail = 'available';
|
$avail = 'available';
|
||||||
else
|
else
|
||||||
$avail = 'unavailable';
|
$avail = 'unavailable';
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@ use App\Service\JobOrderCache;
|
||||||
use App\Ramcar\JOStatus;
|
use App\Ramcar\JOStatus;
|
||||||
use App\Entity\JobOrder;
|
use App\Entity\JobOrder;
|
||||||
|
|
||||||
|
use DateTime;
|
||||||
|
use DateInterval;
|
||||||
|
|
||||||
class JobOrderActiveCacheListener
|
class JobOrderActiveCacheListener
|
||||||
{
|
{
|
||||||
protected $key;
|
protected $key;
|
||||||
|
|
@ -82,7 +85,13 @@ class JobOrderActiveCacheListener
|
||||||
$this->jo_cache->addActiveJobOrder($jo);
|
$this->jo_cache->addActiveJobOrder($jo);
|
||||||
|
|
||||||
// save in latest JO cache
|
// 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
|
// publish to mqtt
|
||||||
$coords = $jo->getCoordinates();
|
$coords = $jo->getCoordinates();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue