diff --git a/src/Controller/ReportController.php b/src/Controller/ReportController.php index cb76a793..f24e2f6c 100644 --- a/src/Controller/ReportController.php +++ b/src/Controller/ReportController.php @@ -1371,8 +1371,8 @@ class ReportController extends Controller // right now, this gets the last time hub was assigned. foreach ($hub_assign_events as $hub_assign_event) { - $datetime_hub_assign_jo = $hub_assign_event->getDateHappen()->format('m-d-Y H:i'); - $date_hub_assign_jo = $hub_assign_event->getDateHappen()->format('m-d-Y'); + $datetime_hub_assign_jo = $hub_assign_event->getDateHappen()->format('d-M-Y H:i'); + $date_hub_assign_jo = $hub_assign_event->getDateHappen()->format('d-M-Y'); $time_hub_assign_jo = $hub_assign_event->getDateHappen()->format('H:i'); } } @@ -1390,8 +1390,8 @@ class ReportController extends Controller { // TODO: what happens if JO was reassigned a rider multiple times? // right now, this gets the last time rider was assigned. - $datetime_rider_assign_jo = $rider_assign_event->getDateHappen()->format('m-d-Y H:i'); - $date_rider_assign_jo = $rider_assign_event->getDateHappen()->format('m-d-Y'); + $datetime_rider_assign_jo = $rider_assign_event->getDateHappen()->format('d-M-Y H:i'); + $date_rider_assign_jo = $rider_assign_event->getDateHappen()->format('d-M-Y'); $time_rider_assign_jo = $rider_assign_event->getDateHappen()->format('H:i'); } } */ @@ -1401,24 +1401,28 @@ class ReportController extends Controller $date_rider_arrive_jo = ''; $time_rider_arrive_jo = ''; $rider_arrive_event_type = JOEventType::RIDER_ARRIVE; + $dt_rider_arrive = null; $rider_arrive_events = $em->getRepository(JOEvent::class)->findBy(['job_order' => $jo, 'type_id'=> $rider_arrive_event_type], ['date_happen' => 'DESC']); if ($rider_arrive_events != null) { foreach ($rider_arrive_events as $rider_arrive_event) { - $datetime_rider_arrive_jo = $rider_arrive_event->getDateHappen()->format('m-d-Y H:i'); - $date_rider_arrive_jo = $rider_arrive_event->getDateHappen()->format('m-d-Y'); + $dt_rider_arrive = $rider_arrive_event->getDateHappen(); + $datetime_rider_arrive_jo = $rider_arrive_event->getDateHappen()->format('d-M-Y H:i'); + $date_rider_arrive_jo = $rider_arrive_event->getDateHappen()->format('d-M-Y'); $time_rider_arrive_jo = $rider_arrive_event->getDateHappen()->format('H:i'); } } // compute time difference between jo creation and rider arrival - if (!empty($datetime_rider_arrive_jo)) + $time_diff_create_arrive = ''; + if ($dt_rider_arrive != null) { - $rider_arrive_time = DateTime::createFromFormat('m-d-Y H:i', $datetime_rider_arrive_jo); $jo_create_time = $jo->getDateCreate(); - // TODO + // get time difference + $interval = $dt_rider_arrive->diff($jo_create_time); + $time_diff_create_arrive = $interval->format('%h:%i'); } // get invoice date create and item sku and serial if any @@ -1429,7 +1433,7 @@ class ReportController extends Controller if ($invoice != null) { $invoice_create = $invoice->getDateCreate(); - $datetime_create_invoice = $invoice_create->format('m-d-Y H:i'); + $datetime_create_invoice = $invoice_create->format('d-M-Y H:i'); // get item sku $invoice_items = $invoice->getItems(); @@ -1450,15 +1454,15 @@ class ReportController extends Controller $time_create_jo = ''; $jo_create = $jo->getDateCreate(); - $datetime_create_jo = $jo_create->format('m-d-Y H:i'); - $date_create_jo = $jo_create->format('m-d-Y'); + $datetime_create_jo = $jo_create->format('d-M-Y H:i'); + $date_create_jo = $jo_create->format('d-M-Y'); $time_create_jo = $jo_create->format('H:i'); // get jo date schedule if any $datetime_sked_jo = ''; $date_sked_jo = ''; $time_sked_jo = ''; - $jo_date_scheduled = $jo->getDateScheduled(); + $jo_date_scheduled = $jo->getDateSchedule(); if (empty($jo_date_scheduled)) { // set to same date and time as date create of JO @@ -1468,13 +1472,13 @@ class ReportController extends Controller } else { - $datetime_sked_jo = $jo_date_scheduled->format('m-d-Y H:i'); - $date_sked_jo = $jo_date_scheduled->format('m-d-Y'); + $datetime_sked_jo = $jo_date_scheduled->format('d-M-Y H:i'); + $date_sked_jo = $jo_date_scheduled->format('d-M-Y'); $time_sked_jo = $jo_date_scheduled->format('H:i'); } // get month from date_create - $month = $jo_create->format('m'); + $month = $jo_create->format('M'); // get rider if any $rider_name = ''; @@ -1483,12 +1487,81 @@ class ReportController extends Controller $rider_name = $rider->getFullName(); // get customer information + $cust_name = ''; + $cust_mobile_number = ''; + $plate_number = ''; + $dpa = 'No'; + $existing_batt = ''; + $customer = $jo->getCustomer(); + if ($customer != null) + { + $cust_name = $customer->getNameDisplay(); + if ($customer->isDpaConsent()) + $dpa = 'Yes'; + + // get mobile number from mobile session + // find latest generated mobile session for customer + $mobile_sessions = $em->getRepository(MobileSession::class)->findBy(['customer' => $customer], ['date_generated' => 'DESC']); + if ($mobile_sessions != null) + { + foreach($mobile_sessions as $mobile_session) + { + $cust_mobile_number = $mobile_session->getPhoneNumber(); + } + } + } // get customer vehicle $cust_vehicle = $jo->getCustomerVehicle(); + if ($cust_vehicle != null) + { + $plate_number = $cust_vehicle->getPlateNumber(); + $curr_batt = $cust_vehicle->getCurrentBattery(); + if ($curr_batt != null) + $existing_batt = $curr_batt->getModel()->getName() . ' ' . $curr_batt->getSize()->getName(); + } $result[] = [ + $month, + $datetime_sked_jo, + $date_sked_jo, + $time_sked_jo, + $hub_name, + $fac_hub_name, + $jo->getID(), + $jo->getServiceType(), + $cust_name, + $cust_mobile_number, + $plate_number, + $sku, + $serial, + $jo->getORName(), + $existing_batt, + $rider_name, + $dpa, + $datetime_create_jo, + $date_create_jo, + $time_create_jo, + $datetime_hub_assign_jo, + $date_hub_assign_jo, + $time_hub_assign_jo, + $datetime_rider_arrive_jo, + $date_rider_arrive_jo, + $time_rider_arrive_jo, + $time_diff_create_arrive, + $coord_lat, + $coord_long, + $hub_coord_lat, + $hub_coord_long, + $fac_hub_coord_lat, + $fac_hub_coord_long, + $dispatcher_name, + $agent_name, + $datetime_create_invoice, + $jo->getSource(), + $jo->getStatus(), + $jo->isAdvanceOrder() ? 'Yes' : 'No' ]; }