diff --git a/src/Controller/ReportController.php b/src/Controller/ReportController.php index ba0cbc4d..51a874de 100644 --- a/src/Controller/ReportController.php +++ b/src/Controller/ReportController.php @@ -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', @@ -1793,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 = ''; @@ -1809,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 = ''; @@ -1829,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) @@ -1961,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,