From 907bee0d709e03b9445753fb82d79f11256d4da1 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 21 Nov 2022 07:37:27 +0000 Subject: [PATCH] Add service to filter warranty raffle entries. #720 --- config/services.yaml | 3 +++ src/Controller/ReportController.php | 18 ++++++++++++++---- src/Service/WarrantyRaffleFilter.php | 13 +++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 src/Service/WarrantyRaffleFilter.php diff --git a/config/services.yaml b/config/services.yaml index 961ac7b1..a5d7d05f 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -282,6 +282,9 @@ services: arguments: $em: "@doctrine.orm.entity_manager" + # warranty raffle filter + App\Service\WarrantyRaffleFilter: ~ + # promo logger App\Service\PromoLogger: arguments: diff --git a/src/Controller/ReportController.php b/src/Controller/ReportController.php index d16d7eb1..340f167d 100644 --- a/src/Controller/ReportController.php +++ b/src/Controller/ReportController.php @@ -22,6 +22,8 @@ use App\Entity\BatterySize; use App\Entity\SMSMessage; use App\Entity\HubFilterLog; +use App\Service\WarrantyRaffleFilter; + use Doctrine\ORM\Query; use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\EntityManagerInterface; @@ -1242,7 +1244,7 @@ class ReportController extends Controller return $this->render('report/jo-raffle/form.html.twig'); } - public function warrantyRaffleSubmit(Request $req, EntityManagerInterface $em) + public function warrantyRaffleSubmit(Request $req, EntityManagerInterface $em, WarrantyRaffleFilter $wr_filter) { // get dates $raw_date_start = $req->request->get('date_start'); @@ -1251,10 +1253,18 @@ class ReportController extends Controller $date_start = DateTime::createFromFormat('m/d/Y', $raw_date_start); $date_end = DateTime::createFromFormat('m/d/Y', $raw_date_end); - $data = $this->getWarrantyRaffleData($req, $em, $raw_date_start, $raw_date_end); + $wr_data = $this->getWarrantyRaffleData($req, $em, $raw_date_start, $raw_date_end); + + // filter the retrieved warranty raffle data + $filtered_data = []; + foreach ($wr_data as $wr_entry) + { + $valid = $wr_filter->isValidRaffleEntry($wr_entry); + $filtered_data[] = $wr_entry; + } $resp = new StreamedResponse(); - $resp->setCallback(function() use ($data) { + $resp->setCallback(function() use ($filtered_data) { // csv output $csv_handle = fopen('php://output', 'w+'); fputcsv($csv_handle, [ @@ -1275,7 +1285,7 @@ class ReportController extends Controller 'Action Taken', ]); - foreach ($data as $row) + foreach ($filtered_data as $row) { fputcsv($csv_handle, $row); } diff --git a/src/Service/WarrantyRaffleFilter.php b/src/Service/WarrantyRaffleFilter.php new file mode 100644 index 00000000..d9edbb9e --- /dev/null +++ b/src/Service/WarrantyRaffleFilter.php @@ -0,0 +1,13 @@ +