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..c3e6f284 --- /dev/null +++ b/src/Controller/WarrantyController.php @@ -0,0 +1,64 @@ +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('w'); + + $query = $qb->where('w.serial = :serial') + ->andWhere('w.plate_number = :platenum') + ->setParameter('serial', $serial) + ->setParameter('platenum', $plate_num); + $results = $query->getQuery()->getResult(); + + $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"; + + // 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..371ee1ea --- /dev/null +++ b/templates/warranty-search/form.html.twig @@ -0,0 +1,138 @@ +{% extends 'base.html.twig' %} + +{% block body %} + +
| + | + |
|---|---|
| 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") }} | +