Merge branch '618-add-new-events-to-jo-details-and-jo-events-reports' into 'master-fix'

Resolve "Add new events to JO Details and JO Events Reports"

See merge request jankstudio/resq!731
This commit is contained in:
Kendrick Chan 2021-08-24 09:56:34 +00:00
commit 82a49aa7ca

View file

@ -821,9 +821,39 @@ class ReportController extends Controller
'Date and Time Dispatched',
'Date Dispatched',
'Time Dispatched',
'Date and Time Assigned',
'Date Assigned',
'Time Assigned',
'Date and Time Accepted',
'Date Accepted',
'Time Accepted',
'Date and Time Rider Left Hub',
'Date Rider Left Hub',
'Time Rider Left Hub',
'Date and Time Rider Arrived Hub Pre-JO',
'Date Rider Arrived Hub Pre-JO',
'Time Rider Arrived Hub Pre-JO',
'Date and Time Rider Left Hub Pre-JO',
'Date Rider Left Hub Pre-JO',
'Time Rider Left Hub Pre-JO',
'Date and Time Arrived',
'Date Arrived',
'Time Arrived',
'Date and Time Rider Started Sales/Service',
'Date Rider Started Sales/Service',
'Time Rider Started Sales/Service',
'Date and Time Rider Ended Sales/Service',
'Date Rider Ended Sales/Service',
'Time Rider Ended Sales/Service',
'Date and Time Rider Arrived Hub Post-JO',
'Date Rider Arrived Hub Post-JO',
'Time Rider Arrived Hub Post-JO',
'Date and Time Rider Left Hub Post-JO',
'Date Rider Left Hub Post-JO',
'Time Rider Left Hub Post-JO',
'Date and Time Rider Arrived Hub',
'Date Rider Arrived Hub',
'Time Rider Arrived Hub',
'Created vs Arrival',
'Customer Latitude',
'Customer Longitude',
@ -870,11 +900,22 @@ class ReportController extends Controller
$hub_events = $this->getJobOrderEvents($req, JOEventType::HUB_ASSIGN);
$arrive_events = $this->getJobOrderEvents($req, JOEventType::RIDER_ARRIVE);
$accept_events = $this->getJobOrderEvents($req, JOEventType::RIDER_ACCEPT);
$assign_events = $this->getJobOrderEvents($req, JOEventType::RIDER_ASSIGN);
$depart_hub_events = $this->getJobOrderEvents($req, JOEventType::RIDER_DEPART_HUB);
$arrive_hub_prejo_events = $this->getJobOrderEvents($req, JOEventType::RIDER_ARRIVE_HUB_PRE_JO);
$depart_hub_prejo_events = $this->getJobOrderEvents($req, JOEventType::RIDER_DEPART_HUB_PRE_JO);
$start_events = $this->getJobOrderEvents($req, JOEventType::RIDER_START);
$end_events = $this->getJobOrderEvents($req, JOEventType::RIDER_END);
$arrive_hub_postjo_events = $this->getJobOrderEvents($req, JOEventType::RIDER_ARRIVE_HUB_POST_JO);
$depart_hub_postjo_events = $this->getJobOrderEvents($req, JOEventType::RIDER_DEPART_HUB_POST_JO);
$arrive_hub_events = $this->getJobOrderEvents($req, JOEventType::RIDER_ARRIVE_HUB);
$blanks = [];
array_push($blanks, array("\t","\t","\t","\t"));
$data = array_merge($hub_events, $blanks, $arrive_events, $blanks, $accept_events);
$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);
$resp = new StreamedResponse();
$resp->setCallback(function() use ($data) {
@ -1782,7 +1823,6 @@ class ReportController extends Controller
}
// find date and time when JO was assigned a rider
/*
$datetime_rider_assign_jo = '';
$date_rider_assign_jo = '';
$time_rider_assign_jo = '';
@ -1798,7 +1838,73 @@ class ReportController extends Controller
$date_rider_assign_jo = $rider_assign_event->getDateHappen()->format('d-M-Y');
$time_rider_assign_jo = $rider_assign_event->getDateHappen()->format('H:i');
}
} */
}
// find date and time when rider accepted the JO
$datetime_rider_accept_jo = '';
$date_rider_accept_jo = '';
$time_rider_accept_jo = '';
$rider_accept_event_type = JOEventType::RIDER_ACCEPT;
$rider_accept_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_accept_event_type], ['date_happen' => 'DESC']);
if ($rider_accept_events != null)
{
foreach ($rider_accept_events as $rider_accept_event)
{
// TODO: what happens if JO was accepted by riders multiple times?
// right now, this gets the last time rider was accepted.
$datetime_rider_accept_jo = $rider_accept_event->getDateHappen()->format('d-M-Y H:i');
$date_rider_accept_jo = $rider_accept_event->getDateHappen()->format('d-M-Y');
$time_rider_accept_jo = $rider_accept_event->getDateHappen()->format('H:i');
}
}
// find date and time when rider leaves hub
$datetime_rider_depart_hub = '';
$date_rider_depart_hub = '';
$time_rider_depart_hub = '';
$rider_depart_hub_event_type = JOEventType::RIDER_DEPART_HUB;
$rider_depart_hub_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_depart_hub_event_type], ['date_happen' => 'DESC']);
if ($rider_depart_hub_events != null)
{
foreach ($rider_depart_hub_events as $rider_depart_hub_event)
{
$datetime_rider_depart_hub = $rider_depart_hub_event->getDateHappen()->format('d-M-Y H:i');
$date_rider_depart_hub = $rider_depart_hub_event->getDateHappen()->format('d-M-Y');
$time_rider_depart_hub = $rider_depart_hub_event->getDateHappen()->format('H:i');
}
}
// find date and time when rider arrives at hub pre-jo
$datetime_rider_arrive_hub_pre_jo = '';
$date_rider_arrive_hub_pre_jo = '';
$time_rider_arrive_hub_pre_jo = '';
$rider_arrive_hub_pre_jo_event_type = JOEventType::RIDER_ARRIVE_HUB_PRE_JO;
$rider_arrive_hub_pre_jo_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_arrive_hub_pre_jo_event_type], ['date_happen' => 'DESC']);
if ($rider_arrive_hub_pre_jo_events != null)
{
foreach ($rider_arrive_hub_pre_jo_events as $rider_arrive_hub_pre_jo_event)
{
$datetime_rider_arrive_hub_pre_jo = $rider_arrive_hub_pre_jo_event->getDateHappen()->format('d-M-Y H:i');
$date_rider_arrive_hub_pre_jo = $rider_arrive_hub_pre_jo_event->getDateHappen()->format('d-M-Y');
$time_rider_arrive_hub_pre_jo = $rider_arrive_hub_pre_jo_event->getDateHappen()->format('H:i');
}
}
// find date and time when rider leaves hub pre-jo
$datetime_rider_leave_hub_pre_jo = '';
$date_rider_leave_hub_pre_jo = '';
$time_rider_leave_hub_pre_jo = '';
$rider_leave_hub_pre_jo_event_type = JOEventType::RIDER_DEPART_HUB_PRE_JO;
$rider_leave_hub_pre_jo_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_leave_hub_pre_jo_event_type], ['date_happen' => 'DESC']);
if ($rider_leave_hub_pre_jo_events != null)
{
foreach ($rider_leave_hub_pre_jo_events as $rider_leave_hub_pre_jo_event)
{
$datetime_rider_leave_hub_pre_jo = $rider_leave_hub_pre_jo_event->getDateHappen()->format('d-M-Y H:i');
$date_rider_leave_hub_pre_jo = $rider_leave_hub_pre_jo_event->getDateHappen()->format('d-M-Y');
$time_rider_leave_hub_pre_jo = $rider_leave_hub_pre_jo_event->getDateHappen()->format('H:i');
}
}
// find date and time when rider arrived at customer
$datetime_rider_arrive_jo = '';
@ -1818,6 +1924,86 @@ class ReportController extends Controller
}
}
// find date and time when rider started the job
$datetime_rider_start_jo = '';
$date_rider_start_jo = '';
$time_rider_start_jo = '';
$rider_start_event_type = JOEventType::RIDER_START;
$rider_start_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_start_event_type], ['date_happen' => 'DESC']);
if ($rider_start_events != null)
{
foreach ($rider_start_events as $rider_start_event)
{
$datetime_rider_start_jo = $rider_start_event->getDateHappen()->format('d-M-Y H:i');
$date_rider_start_jo = $rider_start_event->getDateHappen()->format('d-M-Y');
$time_rider_start_jo = $rider_start_event->getDateHappen()->format('H:i');
}
}
// find date and time when rider finished the job
$datetime_rider_end_jo = '';
$date_rider_end_jo = '';
$time_rider_end_jo = '';
$rider_end_event_type = JOEventType::RIDER_END;
$rider_end_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_end_event_type], ['date_happen' => 'DESC']);
if ($rider_end_events != null)
{
foreach ($rider_end_events as $rider_end_event)
{
$datetime_rider_end_jo = $rider_end_event->getDateHappen()->format('d-M-Y H:i');
$date_rider_end_jo = $rider_end_event->getDateHappen()->format('d-M-Y');
$time_rider_end_jo = $rider_end_event->getDateHappen()->format('H:i');
}
}
// find date and time when rider arrives at hub post-jo
$datetime_rider_arrive_hub_post_jo = '';
$date_rider_arrive_hub_post_jo = '';
$time_rider_arrive_hub_post_jo = '';
$rider_arrive_hub_post_jo_event_type = JOEventType::RIDER_ARRIVE_HUB_POST_JO;
$rider_arrive_hub_post_jo_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_arrive_hub_post_jo_event_type], ['date_happen' => 'DESC']);
if ($rider_arrive_hub_post_jo_events != null)
{
foreach ($rider_arrive_hub_post_jo_events as $rider_arrive_hub_post_jo_event)
{
$datetime_rider_arrive_hub_post_jo = $rider_arrive_hub_post_jo_event->getDateHappen()->format('d-M-Y H:i');
$date_rider_arrive_hub_post_jo = $rider_arrive_hub_post_jo_event->getDateHappen()->format('d-M-Y');
$time_rider_arrive_hub_post_jo = $rider_arrive_hub_post_jo_event->getDateHappen()->format('H:i');
}
}
// find date and time when rider leaves hub post-jo
$datetime_rider_leave_hub_post_jo = '';
$date_rider_leave_hub_post_jo = '';
$time_rider_leave_hub_post_jo = '';
$rider_leave_hub_post_jo_event_type = JOEventType::RIDER_DEPART_HUB_POST_JO;
$rider_leave_hub_post_jo_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_leave_hub_post_jo_event_type], ['date_happen' => 'DESC']);
if ($rider_leave_hub_post_jo_events != null)
{
foreach ($rider_leave_hub_post_jo_events as $rider_leave_hub_post_jo_event)
{
$datetime_rider_leave_hub_post_jo = $rider_leave_hub_post_jo_event->getDateHappen()->format('d-M-Y H:i');
$date_rider_leave_hub_post_jo = $rider_leave_hub_post_jo_event->getDateHappen()->format('d-M-Y');
$time_rider_leave_hub_post_jo = $rider_leave_hub_post_jo_event->getDateHappen()->format('H:i');
}
}
// find date and time when rider arrives at hub
$datetime_rider_arrive_hub = '';
$date_rider_arrive_hub = '';
$time_rider_arrive_hub = '';
$rider_arrive_hub_event_type = JOEventType::RIDER_ARRIVE_HUB;
$rider_arrive_hub_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_arrive_hub_event_type], ['date_happen' => 'DESC']);
if ($rider_arrive_hub_events != null)
{
foreach ($rider_arrive_hub_events as $rider_arrive_hub_event)
{
$datetime_rider_arrive_hub = $rider_arrive_hub_event->getDateHappen()->format('d-M-Y H:i');
$date_rider_arrive_hub = $rider_arrive_hub_event->getDateHappen()->format('d-M-Y');
$time_rider_arrive_hub = $rider_arrive_hub_event->getDateHappen()->format('H:i');
}
}
// compute time difference between jo creation and rider arrival
$time_diff_create_arrive = '';
if ($dt_rider_arrive != null)
@ -1950,9 +2136,39 @@ class ReportController extends Controller
$datetime_hub_assign_jo,
$date_hub_assign_jo,
$time_hub_assign_jo,
$datetime_rider_assign_jo,
$date_rider_assign_jo,
$time_rider_assign_jo,
$datetime_rider_accept_jo,
$date_rider_accept_jo,
$time_rider_accept_jo,
$datetime_rider_depart_hub,
$date_rider_depart_hub,
$time_rider_depart_hub,
$datetime_rider_arrive_hub_pre_jo,
$date_rider_arrive_hub_pre_jo,
$time_rider_arrive_hub_pre_jo,
$datetime_rider_leave_hub_pre_jo,
$date_rider_leave_hub_pre_jo,
$time_rider_leave_hub_pre_jo,
$datetime_rider_arrive_jo,
$date_rider_arrive_jo,
$time_rider_arrive_jo,
$datetime_rider_start_jo,
$date_rider_start_jo,
$time_rider_start_jo,
$datetime_rider_end_jo,
$date_rider_end_jo,
$time_rider_end_jo,
$datetime_rider_arrive_hub_post_jo,
$date_rider_arrive_hub_post_jo,
$time_rider_arrive_hub_post_jo,
$datetime_rider_leave_hub_post_jo,
$date_rider_leave_hub_post_jo,
$time_rider_leave_hub_post_jo,
$datetime_rider_arrive_hub,
$date_rider_arrive_hub,
$time_rider_arrive_hub,
$time_diff_create_arrive,
$coord_lat,
$coord_long,