From b17a95e35a2f628014dbff0c70c7bd98f9d2c100 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 7 Dec 2020 09:05:00 +0000 Subject: [PATCH] Add container size to SAP battery form. #527 --- src/Controller/SAPBatteryController.php | 31 ++++++++++++++++++++++--- templates/sap-battery/form.html.twig | 12 ++++++++++ templates/sap-battery/list.html.twig | 5 ++++ 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/src/Controller/SAPBatteryController.php b/src/Controller/SAPBatteryController.php index 389f3eb1..099c1998 100644 --- a/src/Controller/SAPBatteryController.php +++ b/src/Controller/SAPBatteryController.php @@ -5,6 +5,7 @@ namespace App\Controller; use App\Entity\SAPBattery; use App\Entity\SAPBatteryBrand; use App\Entity\SAPBatterySize; +use App\Entity\SAPBatteryContainerSize; use Doctrine\ORM\Query; use Symfony\Component\HttpFoundation\Request; @@ -42,6 +43,7 @@ class SAPBatteryController extends Controller $tquery = $qb->select('COUNT(q)') ->join('q.brand', 'brand') ->join('q.size', 'size'); + //->join('q.container_size', 'container_size'); // add filters to count query $this->setQueryFilters($datatable, $tquery); @@ -68,7 +70,8 @@ class SAPBatteryController extends Controller // build query $query = $qb->select('q') ->addSelect('brand.name as brand_name') - ->addSelect('size.name as size_name');; + ->addSelect('size.name as size_name'); + //->addSelect('container_size.name as container_size_name'); // add filters to query $this->setQueryFilters($datatable, $query); @@ -83,7 +86,8 @@ class SAPBatteryController extends Controller if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) { $prefix = ''; - if (!in_array($datatable['sort']['field'], ['brand_name', 'size_name'])) + //if (!in_array($datatable['sort']['field'], ['brand_name', 'size_name', 'container_size_name' ])) + if (!in_array($datatable['sort']['field'], ['brand_name', 'size_name' ])) $prefix = 'q.'; $order = $datatable['sort']['sort'] ?? 'asc'; @@ -105,6 +109,7 @@ class SAPBatteryController extends Controller $row['id'] = $orow[0]->getID(); $row['brand_name'] = $orow['brand_name']; $row['size_name'] = $orow['size_name']; + //$row['container_size_name'] = $orow['container_size_name']; $row['flag_new'] = $orow[0]->isNew(); // add row metadata @@ -144,6 +149,7 @@ class SAPBatteryController extends Controller // get parent associations $params['brands'] = $em->getRepository(SAPBatteryBrand::class)->findAll(); $params['sizes'] = $em->getRepository(SAPBatterySize::class)->findAll(); + $params['container_sizes'] = $em->getRepository(SAPBatteryContainerSize::class)->findAll(); // response return $this->render('sap-battery/form.html.twig', $params); @@ -187,6 +193,15 @@ class SAPBatteryController extends Controller else $row->setSize($size); + // custom validation for container size + $container_size = $em->getRepository(SAPBatteryContainerSize::class) + ->find($req->request->get('container_size')); + + if (empty($container_size)) + $error_array['container_size'] = 'Invalid container size selected.'; + else + $row->setContainerSize($container_size); + // validate $errors = $validator->validate($row); @@ -234,7 +249,7 @@ class SAPBatteryController extends Controller // get parent associations $params['brands'] = $em->getRepository(SAPBatteryBrand::class)->findAll(); $params['sizes'] = $em->getRepository(SAPBatterySize::class)->findAll(); - + $params['container_sizes'] = $em->getRepository(SAPBatteryContainerSize::class)->findAll(); $params['obj'] = $row; @@ -284,6 +299,15 @@ class SAPBatteryController extends Controller else $row->setSize($size); + // custom validation for container size + $container_size = $em->getRepository(SAPBatteryContainerSize::class) + ->find($req->request->get('container_size')); + + if (empty($container_size)) + $error_array['container_size'] = 'Invalid container size selected.'; + else + $row->setContainerSize($container_size); + // validate $errors = $validator->validate($row); @@ -338,6 +362,7 @@ class SAPBatteryController extends Controller $query->where('q.id LIKE :filter') ->orWhere('brand.name LIKE :filter') ->orWhere('size.name LIKE :filter') + //->orWhere('container_size.name LIKE :filter') ->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%'); } } diff --git a/templates/sap-battery/form.html.twig b/templates/sap-battery/form.html.twig index 2cf2ac95..84e12d85 100644 --- a/templates/sap-battery/form.html.twig +++ b/templates/sap-battery/form.html.twig @@ -74,6 +74,18 @@
+
+ + + +