Add jo events report. #379
This commit is contained in:
parent
3caf23b57d
commit
88a45034f9
1 changed files with 92 additions and 2 deletions
|
|
@ -795,6 +795,47 @@ class ReportController extends Controller
|
||||||
return $this->render('report/jo-events/form.html.twig');
|
return $this->render('report/jo-events/form.html.twig');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function jobOrderEventsSubmit(Request $req, EntityManagerInterface $em)
|
||||||
|
{
|
||||||
|
$hub_events = $this->getJobOrderEvents($req, JOEventType::HUB_ASSIGN);
|
||||||
|
$arrive_events = $this->getJobOrderEvents($req, JOEventType::RIDER_ARRIVE);
|
||||||
|
$accept_events = $this->getJobOrderEvents($req, JOEventType::RIDER_ACCEPT);
|
||||||
|
|
||||||
|
$blanks = [];
|
||||||
|
array_push($blanks, array("\t","\t","\t","\t"));
|
||||||
|
|
||||||
|
$data = array_merge($hub_events, $blanks, $arrive_events, $blanks, $accept_events);
|
||||||
|
|
||||||
|
$resp = new StreamedResponse();
|
||||||
|
$resp->setCallback(function() use ($data) {
|
||||||
|
// csv output
|
||||||
|
$csv_handle = fopen('php://output', 'w+');
|
||||||
|
fputcsv($csv_handle, [
|
||||||
|
'Job Order ID',
|
||||||
|
'Date and Time Created for JO',
|
||||||
|
'Date Created for JO',
|
||||||
|
'Time Created for JO',
|
||||||
|
'Service Type',
|
||||||
|
'Type ID',
|
||||||
|
|
||||||
|
]);
|
||||||
|
// write hub events
|
||||||
|
foreach ($data as $row)
|
||||||
|
{
|
||||||
|
fputcsv($csv_handle, $row);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose($csv_handle);
|
||||||
|
});
|
||||||
|
|
||||||
|
$filename = 'job_order_events_report' . '.csv';
|
||||||
|
|
||||||
|
$resp->setStatusCode(200);
|
||||||
|
$resp->headers->set('Content-Type', 'text/csv; charset=utf-8');
|
||||||
|
$resp->headers->set('Content-Disposition', 'attachment; filename="' . $filename . '"');
|
||||||
|
|
||||||
|
return $resp;
|
||||||
|
}
|
||||||
|
|
||||||
protected function processPopappFile(UploadedFile $csv_file, EntityManagerInterface $em)
|
protected function processPopappFile(UploadedFile $csv_file, EntityManagerInterface $em)
|
||||||
{
|
{
|
||||||
|
|
@ -1254,7 +1295,6 @@ class ReportController extends Controller
|
||||||
->setParameter('end', $date_end->format('Y-m-d') . ' 23:59:59')
|
->setParameter('end', $date_end->format('Y-m-d') . ' 23:59:59')
|
||||||
->getQuery();
|
->getQuery();
|
||||||
|
|
||||||
|
|
||||||
// run query
|
// run query
|
||||||
$jos = $query->getResult();
|
$jos = $query->getResult();
|
||||||
|
|
||||||
|
|
@ -1306,7 +1346,6 @@ class ReportController extends Controller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// get invoice date create and item sku if any
|
// get invoice date create and item sku if any
|
||||||
$datetime_create_invoice = '';
|
$datetime_create_invoice = '';
|
||||||
$sku = '';
|
$sku = '';
|
||||||
|
|
@ -1375,4 +1414,55 @@ class ReportController extends Controller
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function getJobOrderEvents(Request $req, $event_type)
|
||||||
|
{
|
||||||
|
// get query builder
|
||||||
|
$qb = $this->getDoctrine()
|
||||||
|
->getRepository(JOEvent::class)
|
||||||
|
->createQueryBuilder('r');
|
||||||
|
|
||||||
|
// get dates
|
||||||
|
$raw_date_start = $req->request->get('date_start');
|
||||||
|
$raw_date_end = $req->request->get('date_end');
|
||||||
|
|
||||||
|
$date_start = DateTime::createFromFormat('m/d/Y', $raw_date_start);
|
||||||
|
$date_end = DateTime::createFromFormat('m/d/Y', $raw_date_end);
|
||||||
|
|
||||||
|
// build query
|
||||||
|
$query = $qb->where('r.date_create >= :start')
|
||||||
|
->andWhere('r.date_create <= :end')
|
||||||
|
->andWhere('r.type_id = :event_type')
|
||||||
|
->setParameter('start', $date_start->format('Y-m-d') . ' 00:00:00')
|
||||||
|
->setParameter('end', $date_end->format('Y-m-d') . ' 23:59:59')
|
||||||
|
->setParameter('event_type', $event_type)
|
||||||
|
->getQuery();
|
||||||
|
|
||||||
|
// run query
|
||||||
|
$jo_events = $query->getResult();
|
||||||
|
|
||||||
|
$result = [];
|
||||||
|
foreach ($jo_events as $jo_event)
|
||||||
|
{
|
||||||
|
$datetime_jo_create = '';
|
||||||
|
$date_jo_create = '';
|
||||||
|
$time_jo_create = '';
|
||||||
|
|
||||||
|
$jo = $jo_event->getJobOrder();
|
||||||
|
$jo_date_create = $jo->getDateCreate();
|
||||||
|
$datetime_jo_create = $jo_date_create->format('m-d-Y H:i');
|
||||||
|
$date_jo_create = $jo_date_create->format('m-d-Y');
|
||||||
|
$time_jo_create = $jo_date_create->format('H:i');
|
||||||
|
|
||||||
|
$result[] = [
|
||||||
|
$jo->getID(),
|
||||||
|
$datetime_jo_create,
|
||||||
|
$date_jo_create,
|
||||||
|
$time_jo_create,
|
||||||
|
$jo->getServiceType(),
|
||||||
|
$jo_event->getTypeID(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue