resq/src/Controller/ReportController.php

81 lines
2.3 KiB
PHP

<?php
namespace App\Controller;
use App\Ramcar\BaseController;
use App\Ramcar\JORejectionReason;
use App\Entity\JORejection;
use Doctrine\ORM\Query;
use Doctrine\ORM\QueryBuilder;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use CrEOF\Spatial\PHP\Types\Geometry\Point;
use DateTime;
class ReportController extends BaseController
{
public function rejectForm()
{
$this->denyAccessUnlessGranted('report.reject', null, 'No access.');
$params = $this->initParameters('outlet_list');
return $this->render('report/rejection/form.html.twig', $params);
}
public function rejectSubmit(Request $req)
{
$this->denyAccessUnlessGranted('report.reject', null, 'No access.');
// get query builder
$qb = $this->getDoctrine()
->getRepository(JORejection::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')
->setParameter('start', $date_start->format('Y-m-d') . ' 00:00:00')
->setParameter('end', $date_end->format('Y-m-d') . ' 23:59:59')
->getQuery();
$jors = $query->getResult();
// get results
$res = [];
foreach ($jors as $jor)
{
$jo = $jor->getJobOrder();
$hub = $jor->getHub();
$res[] = [
'jo_id' => $jo->getID(),
'jo_date_time' => $jo->getDateSchedule(),
'jor_date_create' => $jo->getDateCreate(),
'hub' => $hub->getName() . ' - ' . $hub->getBranch(),
'reason' => JORejectionReason::getName($jor->getReason()),
'contact' => $jor->getContactPerson(),
'remarks' => $jor->getRemarks(),
];
}
// response
return $this->json([
'result' => $res,
]);
}
}