diff --git a/src/Controller/ReportController.php b/src/Controller/ReportController.php index 3ddd65d4..352dadf0 100644 --- a/src/Controller/ReportController.php +++ b/src/Controller/ReportController.php @@ -5,8 +5,11 @@ namespace App\Controller; use App\Ramcar\BaseController; use App\Ramcar\JORejectionReason; use App\Ramcar\ServiceType; +use App\Ramcar\JOStatus; use App\Entity\JORejection; +use App\Entity\Battery; +use App\Entity\JobOrder; use Doctrine\ORM\Query; use Doctrine\ORM\QueryBuilder; @@ -265,8 +268,75 @@ class ReportController extends BaseController { $this->denyAccessUnlessGranted('report.battery.conflict', null, 'No access.'); - $params = $this->initParameters(); + $params = $this->initParameters('outlet_list'); + + return $this->render('report/battery/batt_conflict_form.html.twig', $params); + } + + public function batteryConflictSubmit(Request $req) + { + $this->denyAccessUnlessGranted('report.battery.conflict', null, 'No access.'); + + // get battery query builder + $batt_qb = $this->getDoctrine() + ->getRepository(Battery::class) + ->createQueryBuilder('batt'); + + // get job order query builder + $job_qb = $this->getDoctrine() + ->getRepository(JobOrder::class) + ->createQueryBuilder('jo'); + + // 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 for battery + $batt_query = $batt_qb->getQuery(); + + // build query for job order + $jo_query = $job_qb->where('jo.date_create >= :start') + ->andWhere('jo.date_create <= :end') + ->andWhere('jo.status != :status') + ->setParameter('start', $date_start->format('Y-m-d') . ' 00:00:00') + ->setParameter('end', $date_end->format('Y-m-d') . ' 23:59:59') + ->setParameter('status', JOStatus::CANCELLED) + ->getQuery(); + + // run queries + $batts = $batt_query->getResult(); + $jos = $jo_query->getResult(); + + $battcomp = []; + // get battery results and store in array + foreach ($batts as $batt) + { + $batt_id = $batt->getID(); + + $comp_vehicles = $batt->getVehicles(); + // go through compatible vehicle list and add to array + foreach ($comp_vehicles as $vehicle) + { + $battcomp[$batt_id] = [ + 'manufacturer' => $vehicle->getManufacturer(), + 'make' => $vehicle->getMake(), + ]; + } + } + + // get results + foreach ($jos as $jo) + { + $vehicle = $jo->getCustomerVehicle()->getVehicle(); + $vmanufacturer = $vehicle->getManufacturer(); + $vmake = $vehicle->getMake(); + + $invoice_items = $jo->getInvoice()->getItems(); + + } - return $this->render('', $params); } } diff --git a/templates/base.html.twig b/templates/base.html.twig index b6464785..e61acf78 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -128,6 +128,16 @@ +