From 749c3a75c842f2c9f8d3fc7680aaab7ca16771ca Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 14 Jun 2019 08:29:52 +0000 Subject: [PATCH] Add customer battery search to menu and acl. Add WarrantyController. Add twig file for customer battery search. #223 --- config/acl.yaml | 2 + config/menu.yaml | 4 ++ config/routes/warranty.yaml | 10 ++++ src/Controller/WarrantyController.php | 61 ++++++++++++++++++++ templates/warranty-search/form.html.twig | 73 ++++++++++++++++++++++++ 5 files changed, 150 insertions(+) create mode 100644 config/routes/warranty.yaml create mode 100644 src/Controller/WarrantyController.php create mode 100644 templates/warranty-search/form.html.twig diff --git a/config/acl.yaml b/config/acl.yaml index 0cd66ef5..7bb0a9b2 100644 --- a/config/acl.yaml +++ b/config/acl.yaml @@ -250,6 +250,8 @@ access_keys: label: Menu - id: general.search label: Search + - id: warranty.search + label: Customer Battery Search - id: ticket label: Ticket Access acls: diff --git a/config/menu.yaml b/config/menu.yaml index 3cfb83e5..1d5b0bcd 100644 --- a/config/menu.yaml +++ b/config/menu.yaml @@ -139,3 +139,7 @@ main_menu: acl: general.search label: Search parent: support + - id: warranty_search + acl: warranty.search + label: Customer Battery Search + parent: support diff --git a/config/routes/warranty.yaml b/config/routes/warranty.yaml new file mode 100644 index 00000000..8e4156e2 --- /dev/null +++ b/config/routes/warranty.yaml @@ -0,0 +1,10 @@ +# warranty + +warranty_search: + path: /warranty_search + controller: App\Controller\WarrantyController::index + +search_warranty: + path: /warranty_search/warranty + controller: App\Controller\WarrantyController::search + methods: [GET] diff --git a/src/Controller/WarrantyController.php b/src/Controller/WarrantyController.php new file mode 100644 index 00000000..2923de92 --- /dev/null +++ b/src/Controller/WarrantyController.php @@ -0,0 +1,61 @@ +denyaccessUnlessGranted('warranty.search', null, 'No access.'); + $params["mode"] = "form"; + + // response + return $this->render('warranty-search/form.html.twig', $params); + } + + /** + * @Menu(selected="warranty_search") + */ + public function search(Request $req) + { + $this->denyAccessUnlessGranted('warranty.search', null, 'No access.'); + + $serial = $req->query->get('battery_serial'); + $name = $req->query->get('owner_name'); + $plate_num = $req->query->get('plate_num'); + + // find the warranty + $qb = $this->getDoctrine() + ->getRepository(Warranty::class) + ->createQueryBuilder('q'); + + $query = $qb->select('w') + ->where('w.serial = :serial') + ->andWhere('w.plate_number = :platenum') + ->setParameter('serial', $serial) + ->setParameter('plate_num', $plate_num); + $results = $query->getQuery()->execute(); + + $params['data'] = $results; + $params['battery_serial'] = $battery_serial; + $params['owner_name'] = $name; + $params['plate_num'] = $plate_num; + $params['mode'] = "results"; + + // response + return $this->render('warranty-search/form.html.twig', $params); + } +} diff --git a/templates/warranty-search/form.html.twig b/templates/warranty-search/form.html.twig new file mode 100644 index 00000000..f72c8ecc --- /dev/null +++ b/templates/warranty-search/form.html.twig @@ -0,0 +1,73 @@ +{% extends 'base.html.twig' %} + +{% block body %} + +
+
+
+

+ {% if mode == 'form' %} + Search + {% else %} + Search results" + {% endif %} +

+
+
+
+ +
+ +
+
+
+
+
+
+ + + +

+ Customer Battery Status Search +

+
+
+
+
+
+
+

+ Please fill up at least two (2) of the fields below to view battery's warranty status. +

+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ + {% if mode == 'results' %} + {% endif %} +
+{% endblock %}