From 749c3a75c842f2c9f8d3fc7680aaab7ca16771ca Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 14 Jun 2019 08:29:52 +0000 Subject: [PATCH 1/2] 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 %} From 63e751528deab160fa3928692ce35f1dcda557bf Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 14 Jun 2019 10:23:25 +0000 Subject: [PATCH 2/2] Fix query for warranty. Display result of query. #223 --- src/Controller/WarrantyController.php | 17 +++--- templates/warranty-search/form.html.twig | 69 +++++++++++++++++++++++- 2 files changed, 77 insertions(+), 9 deletions(-) diff --git a/src/Controller/WarrantyController.php b/src/Controller/WarrantyController.php index 2923de92..c3e6f284 100644 --- a/src/Controller/WarrantyController.php +++ b/src/Controller/WarrantyController.php @@ -40,17 +40,20 @@ class WarrantyController extends Controller // find the warranty $qb = $this->getDoctrine() ->getRepository(Warranty::class) - ->createQueryBuilder('q'); + ->createQueryBuilder('w'); - $query = $qb->select('w') - ->where('w.serial = :serial') + $query = $qb->where('w.serial = :serial') ->andWhere('w.plate_number = :platenum') ->setParameter('serial', $serial) - ->setParameter('plate_num', $plate_num); - $results = $query->getQuery()->execute(); + ->setParameter('platenum', $plate_num); + $results = $query->getQuery()->getResult(); - $params['data'] = $results; - $params['battery_serial'] = $battery_serial; + $res = []; + foreach ($results as $result) { + $res[] = $result; + } + $params['data'] = $res; + $params['battery_serial'] = $serial; $params['owner_name'] = $name; $params['plate_num'] = $plate_num; $params['mode'] = "results"; diff --git a/templates/warranty-search/form.html.twig b/templates/warranty-search/form.html.twig index f72c8ecc..371ee1ea 100644 --- a/templates/warranty-search/form.html.twig +++ b/templates/warranty-search/form.html.twig @@ -36,9 +36,9 @@
-

+

+
@@ -68,6 +68,71 @@
{% if mode == 'results' %} +
+
+
+
+
+
+

+ Warranty Information +

+
+
+
+
+ {% if data is empty %} + + {% else %} + + + + + + + + + {% for key, result in data %} + + + + + + + + + + + + + + + + + + + + + + + + + {% endfor %} + +
Battery Serial Number{{ result.getSerial|default("") }}
Owner Name{{ result.getFirstName|default("") ~ ' ' ~ result.getLastName|default("") }}
Vehicle Plate Number{{ result.getPlateNumber|default("") }}
Purchase Date{{ result.getDatePurchase|date("d M Y") }}
Battery{{ result.getBatteryModel.getName|default("") ~ ' - ' ~ result.getBatterySize.getName|default("") }}
End of Warranty{{ result.getDateExpire|date("d M Y") }}
+ {% endif %} +
+
+
+
{% endif %}
{% endblock %}