From 4c3b895702cc7c5869d176e3f531789cc7a4760a Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Thu, 17 Jun 2021 04:01:21 +0000 Subject: [PATCH] Add date range for warranty details report. Fix query to include all warranties. #587 --- config/routes/report.yaml | 4 +- src/Controller/ReportController.php | 27 +++++++-- .../report/warranty-details/form.html.twig | 55 +++++++++++++++---- 3 files changed, 68 insertions(+), 18 deletions(-) diff --git a/config/routes/report.yaml b/config/routes/report.yaml index f9d780ef..02f12f41 100644 --- a/config/routes/report.yaml +++ b/config/routes/report.yaml @@ -73,9 +73,9 @@ rep_warranty_details_form: controller: App\Controller\ReportController::warrantyDetailsForm methods: [GET] -rep_warranty_details_export_csv: +rep_warranty_details_submit: path: /report/warranty_details_report - controller: App\Controller\ReportController::warrantyDetailsExportCSV + controller: App\Controller\ReportController::warrantyDetailsSubmit methods: [POST] rep_jo_details_form: diff --git a/src/Controller/ReportController.php b/src/Controller/ReportController.php index b4e4ce3b..f259619a 100644 --- a/src/Controller/ReportController.php +++ b/src/Controller/ReportController.php @@ -683,9 +683,9 @@ class ReportController extends Controller /** * @Menu(selected="outlet_list") */ - public function warrantyDetailsExportCSV(Request $resq, EntityManagerInterface $em) + public function warrantyDetailsSubmit(Request $req, EntityManagerInterface $em) { - $data = $this->getWarrantyDetailsData($em); + $data = $this->getWarrantyDetailsData($req, $em); $resp = new StreamedResponse(); $resp->setCallback(function() use ($data) { @@ -1468,11 +1468,24 @@ class ReportController extends Controller return $results; } - protected function getWarrantyDetailsData(EntityManagerInterface $em) + protected function getWarrantyDetailsData(Request $req, EntityManagerInterface $em) { $bm_hash = $this->loadBatteryModels($em); $bs_hash = $this->loadBatterySizes($em); + // 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); + $date_start->setTime(0,0); + $date_end->setTime(23,59); + + // convert to string in the correct format so we can plug it in the query + $str_date_start = $date_start->format('Y-m-d H:i:s'); + $str_date_end = $date_end->format('Y-m-d H:i:s'); + $results = []; $conn = $em->getConnection(); @@ -1495,11 +1508,13 @@ class ReportController extends Controller c.flag_research_sms, c.flag_research_email, c.create_source AS c_create_source, v.id AS v_id, v.manufacturer_id, v.make, v.model_year_from, v.model_year_to, v.flag_mobile - FROM warranty w JOIN customer c ON w.customer_id = c.id - JOIN vehicle v ON w.vehicle_id = v.id'; + FROM warranty w LEFT JOIN customer c ON w.customer_id = c.id + LEFT JOIN vehicle v ON w.vehicle_id = v.id + WHERE w.date_create >= :start_date + AND w.date_create <= :end_date'; $stmt = $conn->prepare($sql); - $stmt->execute(); + $stmt->execute(['start_date' => $str_date_start, 'end_date' => $str_date_end]); $query_results = $stmt->fetchAll(); diff --git a/templates/report/warranty-details/form.html.twig b/templates/report/warranty-details/form.html.twig index c329785a..03229bbb 100644 --- a/templates/report/warranty-details/form.html.twig +++ b/templates/report/warranty-details/form.html.twig @@ -21,30 +21,65 @@
- +

- Generate Warranty Details CSV File + Select a date range

-
-
-
-
-
-
- -
+ +
+
+
+ +
+ +
+ +
+
+
+
+
+
+
+
+
{% endblock %} +{% block scripts %} + +{% endblock %}