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');
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
|
@ -1254,7 +1295,6 @@ class ReportController extends Controller
|
|||
->setParameter('end', $date_end->format('Y-m-d') . ' 23:59:59')
|
||||
->getQuery();
|
||||
|
||||
|
||||
// run query
|
||||
$jos = $query->getResult();
|
||||
|
||||
|
|
@ -1306,7 +1346,6 @@ class ReportController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// get invoice date create and item sku if any
|
||||
$datetime_create_invoice = '';
|
||||
$sku = '';
|
||||
|
|
@ -1375,4 +1414,55 @@ class ReportController extends Controller
|
|||
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