Add rider_available events. #619
This commit is contained in:
parent
82a49aa7ca
commit
070c88760a
4 changed files with 54 additions and 1 deletions
|
|
@ -733,9 +733,14 @@ class RiderAppController extends APIController
|
|||
|
||||
$em->persist($timestamp_event);
|
||||
|
||||
// NOTE: need to discuss at what point do we set rider to available
|
||||
// is it when rider arrives at home hub? Or only when rider
|
||||
// clicks Available on app?
|
||||
// tag rider as available
|
||||
$rider->setAvailable(true);
|
||||
|
||||
// NOTE: we set current job order to null when rider becomes
|
||||
// available
|
||||
// set rider's current job order to null
|
||||
$rider->setCurrentJobOrder();
|
||||
|
||||
|
|
@ -976,6 +981,26 @@ class RiderAppController extends APIController
|
|||
|
||||
$rider->setAvailable(true);
|
||||
|
||||
// create timestamp event when rider set to available via app
|
||||
$event = new JOEvent();
|
||||
$event->setDateHappen(new DateTime())
|
||||
->setTypeID(JOEventType::RIDER_AVAILABLE)
|
||||
->setRider($rider);
|
||||
|
||||
// get rider's current job order
|
||||
$jo = $rider->getCurrentJobOrder();
|
||||
|
||||
// check if jo is null
|
||||
if ($jo != null)
|
||||
{
|
||||
// set delivery status
|
||||
$jo->setDeliveryStatus(DeliveryStatus::RIDER_AVAILABLE);
|
||||
|
||||
// set event's jo
|
||||
$event->setJobOrder($jo);
|
||||
}
|
||||
|
||||
$em->persist($event);
|
||||
$em->flush();
|
||||
|
||||
$data = [];
|
||||
|
|
|
|||
|
|
@ -854,6 +854,9 @@ class ReportController extends Controller
|
|||
'Date and Time Rider Arrived Hub',
|
||||
'Date Rider Arrived Hub',
|
||||
'Time Rider Arrived Hub',
|
||||
'Date and Time Rider is Available',
|
||||
'Date Rider is Available',
|
||||
'Time Rider is Available',
|
||||
'Created vs Arrival',
|
||||
'Customer Latitude',
|
||||
'Customer Longitude',
|
||||
|
|
@ -915,7 +918,8 @@ class ReportController extends Controller
|
|||
|
||||
$data = array_merge($hub_events, $blanks, $assign_events, $blanks, $accept_events, $blanks, $depart_hub_events, $blanks,
|
||||
$arrive_hub_prejo_events, $blanks, $depart_hub_prejo_events, $blanks, $arrive_events, $blanks, $start_events, $blanks,
|
||||
$end_events, $blanks, $arrive_hub_postjo_events, $blanks, $depart_hub_postjo_events, $blanks, $arrive_hub_events);
|
||||
$end_events, $blanks, $arrive_hub_postjo_events, $blanks, $depart_hub_postjo_events, $blanks, $arrive_hub_events,
|
||||
$blanks, $available_events);
|
||||
|
||||
$resp = new StreamedResponse();
|
||||
$resp->setCallback(function() use ($data) {
|
||||
|
|
@ -2004,6 +2008,23 @@ class ReportController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
// find date and time when rider is available
|
||||
$datetime_rider_available = '';
|
||||
$date_rider_available = '';
|
||||
$time_rider_available = '';
|
||||
$rider_available_event_type = JOEventType::RIDER_AVAILABLE;
|
||||
$rider_available_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_available_event_type], ['date_happen' => 'DESC']);
|
||||
if ($rider_available_events != null)
|
||||
{
|
||||
foreach ($rider_available_events as $rider_available_event)
|
||||
{
|
||||
$datetime_rider_available = $rider_available_event->getDateHappen()->format('d-M-Y H:i');
|
||||
$date_rider_available = $rider_available_event->getDateHappen()->format('d-M-Y');
|
||||
$time_rider_available = $rider_available_event->getDateHappen()->format('H:i');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// compute time difference between jo creation and rider arrival
|
||||
$time_diff_create_arrive = '';
|
||||
if ($dt_rider_arrive != null)
|
||||
|
|
@ -2169,6 +2190,9 @@ class ReportController extends Controller
|
|||
$datetime_rider_arrive_hub,
|
||||
$date_rider_arrive_hub,
|
||||
$time_rider_arrive_hub,
|
||||
$datetime_rider_available,
|
||||
$date_rider_available,
|
||||
$time_rider_available,
|
||||
$time_diff_create_arrive,
|
||||
$coord_lat,
|
||||
$coord_long,
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ class DeliveryStatus extends NameValue
|
|||
const RIDER_ARRIVE_HUB = 'rider_arrive_hub';
|
||||
const CANCELLED = 'cancelled';
|
||||
const FULFILLED = 'fulfilled';
|
||||
const RIDER_AVAILABLE = 'rider_available';
|
||||
|
||||
const COLLECTION = [
|
||||
'rider_assign' => 'Assigned Rider',
|
||||
|
|
@ -36,6 +37,7 @@ class DeliveryStatus extends NameValue
|
|||
'rider_arrive_hub' => 'Rider Arrive Hub',
|
||||
'cancelled' => 'Cancelled',
|
||||
'fulfilled' => 'Fulfilled',
|
||||
'rider_available' => 'Rider Available',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ class JOEventType extends NameValue
|
|||
const RIDER_ARRIVE_HUB_POST_JO = 'rider_arrive_hub_post_jo';
|
||||
const RIDER_DEPART_HUB_POST_JO = 'rider_depart_hub_post_jo';
|
||||
const RIDER_ARRIVE_HUB = 'rider_arrive_hub';
|
||||
const RIDER_AVAILABLE = 'rider_available';
|
||||
|
||||
const COLLECTION = [
|
||||
'create' => 'Created',
|
||||
|
|
@ -42,5 +43,6 @@ class JOEventType extends NameValue
|
|||
'rider_arrive_hub_post_jo' => 'Rider Arrive Hub Post JO',
|
||||
'rider_depart_hub_post_jo' => 'Rider Depart Hub Post JO',
|
||||
'rider_arrive_hub' => 'Rider Arrive Hub',
|
||||
'rider_available' => 'Rider Available',
|
||||
];
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue