Add service to filter warranty raffle entries. #720

This commit is contained in:
Korina Cordero 2022-11-21 07:37:27 +00:00
parent 5b6b090257
commit 907bee0d70
3 changed files with 30 additions and 4 deletions

View file

@ -282,6 +282,9 @@ services:
arguments: arguments:
$em: "@doctrine.orm.entity_manager" $em: "@doctrine.orm.entity_manager"
# warranty raffle filter
App\Service\WarrantyRaffleFilter: ~
# promo logger # promo logger
App\Service\PromoLogger: App\Service\PromoLogger:
arguments: arguments:

View file

@ -22,6 +22,8 @@ use App\Entity\BatterySize;
use App\Entity\SMSMessage; use App\Entity\SMSMessage;
use App\Entity\HubFilterLog; use App\Entity\HubFilterLog;
use App\Service\WarrantyRaffleFilter;
use Doctrine\ORM\Query; use Doctrine\ORM\Query;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -1242,7 +1244,7 @@ class ReportController extends Controller
return $this->render('report/jo-raffle/form.html.twig'); 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 // get dates
$raw_date_start = $req->request->get('date_start'); $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_start = DateTime::createFromFormat('m/d/Y', $raw_date_start);
$date_end = DateTime::createFromFormat('m/d/Y', $raw_date_end); $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 = new StreamedResponse();
$resp->setCallback(function() use ($data) { $resp->setCallback(function() use ($filtered_data) {
// csv output // csv output
$csv_handle = fopen('php://output', 'w+'); $csv_handle = fopen('php://output', 'w+');
fputcsv($csv_handle, [ fputcsv($csv_handle, [
@ -1275,7 +1285,7 @@ class ReportController extends Controller
'Action Taken', 'Action Taken',
]); ]);
foreach ($data as $row) foreach ($filtered_data as $row)
{ {
fputcsv($csv_handle, $row); fputcsv($csv_handle, $row);
} }

View file

@ -0,0 +1,13 @@
<?php
namespace App\Service;
class WarrantyRaffleFilter
{
public function isValidRaffleEntry($entry)
{
// entry is an associative array
// error_log('entry ' . $entry['first_name']);
return true;
}
}