From 920400076ddf3f504cb3056a8155c11398069ee4 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Wed, 22 Apr 2020 07:52:08 +0000 Subject: [PATCH] Modify the JO Details Report. #385 --- src/Controller/ReportController.php | 169 ++++++++++++++++++++-------- 1 file changed, 125 insertions(+), 44 deletions(-) diff --git a/src/Controller/ReportController.php b/src/Controller/ReportController.php index 94cede5f..cb76a793 100644 --- a/src/Controller/ReportController.php +++ b/src/Controller/ReportController.php @@ -746,27 +746,45 @@ class ReportController extends Controller // csv output $csv_handle = fopen('php://output', 'w+'); fputcsv($csv_handle, [ - 'Job Order ID', - 'Dispatcher', - 'Coordinate Latitude', - 'Coordinate Longitude', - 'Date and Time Hub Assigned for JO', - 'Date Hub Assigned for JO', - 'Time Hub Assigned for JO', - 'Date and Time Rider Assigned for JO', - 'Date Rider Assigned for JO', - 'Time Rider Assigned for JO', - 'Date and Time Created for Invoice', - 'Date and Time Created for JO', - 'Date Created for JO', - 'Time Created for JO', - 'Outlet Name', - 'Rider Name', + 'Month', + 'Scheduled Date and Time', + 'Scheduled Date', + 'Scheduled Time', + 'Distributor', // hub + 'Battery Facilitated By', // facilitated_hub + 'Job Order Number', 'Service Type', + 'Customer Name', + 'Customer Mobile Number', + 'Plate Number', + 'SKU', + 'Serial Number', + 'Invoice/DR No.', + 'Existing Battery', + 'Rider Name', + 'DPA', + 'Created Date and Time', + 'Date Created', + 'Time Created', + 'Date and Time Dispatched', + 'Date Dispatched', + 'Time Dispatched', + 'Date and Time Arrived', + 'Date Arrived', + 'Time Arrived', + 'Created vs Arrival', + 'Customer Latitude', + 'Customer Longitude', + 'Hub Latitude', + 'Hub Longitude', + 'Facilitated Hub Latitude', + 'Facilitated Hub Longitude', + 'Dispatcher', + 'Agent (Created)', + 'Date Create (Invoice)', 'Source', 'Status', - 'SKU', - + 'Flag Advance', ]); foreach ($data as $row) { @@ -1307,9 +1325,40 @@ class ReportController extends Controller if ($dispatcher != null) $dispatcher_name = $dispatcher->getFullName(); + // get agent if any + $agent_name = ''; + $agent = $jo->getCreatedBy(); + if ($agent != null) + $agent_name = $agent->getFullName(); + + // get customer coordinates $coord_long = $jo->getCoordinates()->getLongitude(); $coord_lat = $jo->getCoordinates()->getLatitude(); + // get hub and hub coordinates, if any + $hub_name = ''; + $hub_coord_long = ''; + $hub_coord_lat = ''; + $hub = $jo->getHub(); + if ($hub != null) + { + $hub_name = $hub->getName(); + $hub_coord_long = $hub->getCoordinates()->getLongitude(); + $hub_coord_lat = $hub->getCoordinates()->getLatitude(); + } + + // get facilitated hub coordinates if any + $fac_hub_name = ''; + $fac_hub_coord_long = ''; + $fac_hub_coord_lat = ''; + $fac_hub = $jo->getFacilitatedBy(); + if ($fac_hub != null) + { + $fac_hub_name = $fac_hub->getName(); + $fac_hub_coord_long = $fac_hub->getCoordinates()->getLongitude(); + $fac_hub_coord_lat = $fac_hub->getCoordinates()->getLatitude(); + } + // find date and time when JO was assigned a hub $datetime_hub_assign_jo = ''; $date_hub_assign_jo = ''; @@ -1329,6 +1378,7 @@ 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 = ''; @@ -1344,11 +1394,37 @@ class ReportController extends Controller $date_rider_assign_jo = $rider_assign_event->getDateHappen()->format('m-d-Y'); $time_rider_assign_jo = $rider_assign_event->getDateHappen()->format('H:i'); } + } */ + + // find date and time when rider arrived at customer + $datetime_rider_arrive_jo = ''; + $date_rider_arrive_jo = ''; + $time_rider_arrive_jo = ''; + $rider_arrive_event_type = JOEventType::RIDER_ARRIVE; + $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'); + $time_rider_arrive_jo = $rider_arrive_event->getDateHappen()->format('H:i'); + } } - // get invoice date create and item sku if any + // compute time difference between jo creation and rider arrival + if (!empty($datetime_rider_arrive_jo)) + { + $rider_arrive_time = DateTime::createFromFormat('m-d-Y H:i', $datetime_rider_arrive_jo); + $jo_create_time = $jo->getDateCreate(); + + // TODO + } + + // get invoice date create and item sku and serial if any $datetime_create_invoice = ''; $sku = ''; + $serial = ''; $invoice = $jo->getInvoice(); if ($invoice != null) { @@ -1361,7 +1437,10 @@ class ReportController extends Controller { $battery = $item->getBattery(); if ($battery != null) + { $sku = $battery->getModel()->getName() . ' ' . $battery->getSize()->getName(); + $serial = $battery->getSAPCode(); + } } } @@ -1375,11 +1454,27 @@ class ReportController extends Controller $date_create_jo = $jo_create->format('m-d-Y'); $time_create_jo = $jo_create->format('H:i'); - // get hub if any - $hub_name = ''; - $hub = $jo->getHub(); - if ($hub != null) - $hub_name = $hub->getName(); + // get jo date schedule if any + $datetime_sked_jo = ''; + $date_sked_jo = ''; + $time_sked_jo = ''; + $jo_date_scheduled = $jo->getDateScheduled(); + if (empty($jo_date_scheduled)) + { + // set to same date and time as date create of JO + $datetime_sked_jo = $datetime_create_jo; + $date_sked_jo = $date_create_jo; + $time_sked_jo = $time_create_jo; + } + else + { + $datetime_sked_jo = $jo_date_scheduled->format('m-d-Y H:i'); + $date_sked_jo = $jo_date_scheduled->format('m-d-Y'); + $time_sked_jo = $jo_date_scheduled->format('H:i'); + } + + // get month from date_create + $month = $jo_create->format('m'); // get rider if any $rider_name = ''; @@ -1387,27 +1482,13 @@ class ReportController extends Controller if ($rider != null) $rider_name = $rider->getFullName(); + // get customer information + $customer = $jo->getCustomer(); + + // get customer vehicle + $cust_vehicle = $jo->getCustomerVehicle(); + $result[] = [ - $jo->getID(), - $dispatcher_name, - $coord_lat, - $coord_long, - $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_create_invoice, - $datetime_create_jo, - $date_create_jo, - $time_create_jo, - $hub_name, - $rider_name, - $jo->getServiceType(), - $jo->getSource(), - $jo->getStatus(), - $sku, ]; }