Modify the JO Details Report. #385

This commit is contained in:
Korina Cordero 2020-04-22 07:52:08 +00:00
parent 031e2aa380
commit 920400076d

View file

@ -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,
];
}