Resolve "History search" #1038
3 changed files with 474 additions and 0 deletions
70
src/Command/TestGeneralSearchCommand.php
Normal file
70
src/Command/TestGeneralSearchCommand.php
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
<?php
|
||||
|
||||
namespace App\Command;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
use App\Service\GeneralSearch;
|
||||
|
||||
class TestGeneralSearchCommand extends Command
|
||||
{
|
||||
protected function configure()
|
||||
{
|
||||
$this->setName('test:generalsearch')
|
||||
->setDescription('Test general search service.')
|
||||
->setHelp('Test the general search service.')
|
||||
->addArgument('search_term', InputArgument::REQUIRED, 'Search Terms');
|
||||
}
|
||||
|
||||
public function __construct(GeneralSearch $search)
|
||||
{
|
||||
$this->search = $search;
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$search_term = $input->getArgument('search_term');
|
||||
|
||||
$results = $this->search->search($search_term);
|
||||
|
||||
echo "legacy job order results: " . count($results['legacy_job_orders']) . "\n";
|
||||
|
||||
foreach($results['legacy_job_orders'] as $legacy_job_order)
|
||||
{
|
||||
echo "Plate Number: " . $legacy_job_order->getPlateNumber() . "\n";
|
||||
echo "Mobile Number: " . $legacy_job_order->getCustMobile() . "\n";
|
||||
echo "Landline: " . $legacy_job_order->getCustLandline() . "\n";
|
||||
echo "Name: " . $legacy_job_order->getCustName() . "\n";
|
||||
echo "Last Name: " . $legacy_job_order->getCustLastName() . "\n";
|
||||
echo "First Name: " . $legacy_job_order->getCustFirstName() . "\n";
|
||||
echo "Middle Name: " . $legacy_job_order->getCustMiddleName() . "\n";
|
||||
}
|
||||
|
||||
echo "job order results: " . count($results['job_orders']) . "\n";
|
||||
foreach($results['job_orders'] as $job_order)
|
||||
{
|
||||
echo "Plate Number: " . $job_order->getCustomerVehicle()->getPlateNumber() . "\n";
|
||||
echo "Mobile Number: " . $job_order->getCustomer()->getPhoneMobile() . "\n";
|
||||
echo "Landline: " . $job_order->getCustomer()->getPhoneLandline() . "\n";
|
||||
echo "Office: " . $job_order->getCustomer()->getPhoneOffice() . "\n";
|
||||
echo "Fax: " . $job_order->getCustomer()->getPhoneFax() . "\n";
|
||||
echo "Last Name: " . $job_order->getCustomer()->getLastName() . "\n";
|
||||
echo "First Name: " . $job_order->getCustomer()->getFirstName() . "\n";
|
||||
}
|
||||
|
||||
echo "warranties results: " . count($results['warranties']) . "\n";
|
||||
|
||||
foreach($results['warranties'] as $warranty)
|
||||
{
|
||||
echo "Plate Number: " . $warranty->getPlateNumber() . "\n";
|
||||
echo "Mobile Number: " . $warranty->getMobileNumber() . "\n";
|
||||
echo "Last Name: " . $warranty->getLastName() . "\n";
|
||||
echo "First Name: " . $warranty->getFirstName() . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -355,4 +355,345 @@ class LegacyJobOrder
|
|||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setTransDate($trans_date)
|
||||
{
|
||||
$this->id = $trans_date;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getTransDate()
|
||||
{
|
||||
return $this->trans_date;
|
||||
}
|
||||
|
||||
public function setTransType($trans_type)
|
||||
{
|
||||
$this->trans_type = $trans_type;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getTransType()
|
||||
{
|
||||
return $this->trans_type;
|
||||
}
|
||||
|
||||
public function setOrigin($origin)
|
||||
{
|
||||
$this->origin = $origin;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getOrigin()
|
||||
{
|
||||
return $this->origin;
|
||||
}
|
||||
|
||||
public function setCarBrand($car_brand)
|
||||
{
|
||||
$this->car_brand = $car_brand;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCarBrand()
|
||||
{
|
||||
return $this->car_brand;
|
||||
}
|
||||
|
||||
public function setCarMake($car_make)
|
||||
{
|
||||
$this->car_make = $car_make;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCarMake()
|
||||
{
|
||||
return $this->car_make;
|
||||
}
|
||||
|
||||
public function setCarModel($car_model)
|
||||
{
|
||||
$this->car_model = $car_model;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCarModel()
|
||||
{
|
||||
return $this->car_model;
|
||||
}
|
||||
|
||||
public function setCarColor($car_color)
|
||||
{
|
||||
$this->car_color = $car_color;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCarColor()
|
||||
{
|
||||
return $this->car_color;
|
||||
}
|
||||
|
||||
public function setCustName($cust_name)
|
||||
{
|
||||
$this->cust_name = $cust_name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCustName()
|
||||
{
|
||||
return $this->cust_name;
|
||||
}
|
||||
|
||||
public function setCustFirstName($cust_first_name)
|
||||
{
|
||||
$this->cust_first_name = $cust_first_name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCustFirstName()
|
||||
{
|
||||
return $this->cust_first_name;
|
||||
}
|
||||
|
||||
public function setCustMiddleName($cust_middle_name)
|
||||
{
|
||||
$this->cust_middle_name = $cust_middle_name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCustMiddleName()
|
||||
{
|
||||
return $this->cust_middle_name;
|
||||
}
|
||||
|
||||
public function setCustLastName($cust_last_name)
|
||||
{
|
||||
$this->cust_last_name = $cust_last_name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCustLastName()
|
||||
{
|
||||
return $this->cust_last_name;
|
||||
}
|
||||
|
||||
public function setCustContact($cust_contact)
|
||||
{
|
||||
$this->cust_contact = $cust_contact;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCustContact()
|
||||
{
|
||||
return $this->cust_contact;
|
||||
}
|
||||
|
||||
public function setCustMobile($cust_mobile)
|
||||
{
|
||||
$this->cust_mobile = $cust_mobile;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCustMobile()
|
||||
{
|
||||
return $this->cust_mobile;
|
||||
}
|
||||
|
||||
public function setCustLandline($cust_landline)
|
||||
{
|
||||
$this->cust_landline = $cust_landline;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCustLandline()
|
||||
{
|
||||
return $this->cust_landline;
|
||||
}
|
||||
|
||||
public function setDeliveryInstructions($delivery_instructions)
|
||||
{
|
||||
$this->delivery_instructions = $delivery_instructions;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDeliveryInstructions()
|
||||
{
|
||||
return $this->delivery_instructions;
|
||||
}
|
||||
|
||||
public function setAgentNotes1($agent_notes_1)
|
||||
{
|
||||
$this->agent_notes_1 = $agent_notes_1;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAgentNotes1()
|
||||
{
|
||||
return $this->agent_notes_1;
|
||||
}
|
||||
|
||||
public function setDeliveryDate($delivery_date)
|
||||
{
|
||||
$this->delivery_date = $delivery_date;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDeliveryDate()
|
||||
{
|
||||
return $this->delivery_date;
|
||||
}
|
||||
|
||||
public function setDeliveryTime($delivery_time)
|
||||
{
|
||||
$this->delivery_time = $delivery_time;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDeliveryTime()
|
||||
{
|
||||
return $this->delivery_time;
|
||||
}
|
||||
|
||||
public function setAdvanceOrder($advance_order)
|
||||
{
|
||||
$this->advance_order = $advance_order;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAdvanceOrder()
|
||||
{
|
||||
return $this->advance_order;
|
||||
}
|
||||
|
||||
public function setStage($stage)
|
||||
{
|
||||
$this->stage = $stage;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getStage()
|
||||
{
|
||||
return $this->stage;
|
||||
}
|
||||
|
||||
public function setCancelReason($cancel_reason)
|
||||
{
|
||||
$this->cancel_reason = $cancel_reason;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCancelReason()
|
||||
{
|
||||
return $this->cancel_reason;
|
||||
}
|
||||
|
||||
public function setCancelReasonSpecify($cancel_reason_specify)
|
||||
{
|
||||
$this->cancel_reason_specify = $cancel_reason_specify;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCancelReasonSpecify()
|
||||
{
|
||||
return $this->cancel_reason_specify;
|
||||
}
|
||||
|
||||
public function setPaymentMethod($payment_method)
|
||||
{
|
||||
$this->payment_method = $payment_method;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPaymentMethod()
|
||||
{
|
||||
return $this->payment_method;
|
||||
}
|
||||
|
||||
public function setPreparedBy($prepared_by)
|
||||
{
|
||||
$this->prepared_by = $prepared_by;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPreparedBy()
|
||||
{
|
||||
return $this->prepared_by;
|
||||
}
|
||||
|
||||
public function setDispatchTime($dispatch_time)
|
||||
{
|
||||
$this->dispatch_time = $dispatch_time;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDispatchTime()
|
||||
{
|
||||
return $this->dispatch_time;
|
||||
}
|
||||
|
||||
public function setDispatchDate($dispatch_date)
|
||||
{
|
||||
$this->dispatch_date = $dispatch_date;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDispatchDate()
|
||||
{
|
||||
return $this->dispatch_date;
|
||||
}
|
||||
|
||||
public function setDispatchBy($dispatch_by)
|
||||
{
|
||||
$this->dispatch_by = $dispatch_by;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDispatchBy()
|
||||
{
|
||||
return $this->dispatch_by;
|
||||
}
|
||||
|
||||
public function setAddress($address)
|
||||
{
|
||||
$this->address = $address;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAddress()
|
||||
{
|
||||
return $this->address;
|
||||
}
|
||||
|
||||
public function setLandmark($landmark)
|
||||
{
|
||||
$this->landmark = $landmark;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getLandmark()
|
||||
{
|
||||
return $this->landmark;
|
||||
}
|
||||
|
||||
public function setDatePurchase($date_purchase)
|
||||
{
|
||||
$this->date_purchase = $date_purchase;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getDatePurchase()
|
||||
{
|
||||
return $this->date_purchase;
|
||||
}
|
||||
|
||||
public function setPlateNumber($plate_number)
|
||||
{
|
||||
$this->plate_number = $plate_number;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getPlateNumber()
|
||||
{
|
||||
return $this->plate_number;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
63
src/Service/GeneralSearch.php
Normal file
63
src/Service/GeneralSearch.php
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<?php
|
||||
|
||||
namespace App\Service;
|
||||
|
||||
use App\Entity\LegacyJobOrder;
|
||||
use App\Entity\JobOrder;
|
||||
use App\Entity\Warranty;
|
||||
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
|
||||
class GeneralSearch
|
||||
{
|
||||
protected $em;
|
||||
|
||||
public function __construct(EntityManagerInterface $em)
|
||||
{
|
||||
$this->em = $em;
|
||||
}
|
||||
|
||||
public function search($search_term)
|
||||
{
|
||||
// query legacy job orders for plate number, name (first, middle, last), phone number(mobile, landline)
|
||||
$legacy_job_orders = $this->em->createQuery('SELECT l FROM App\Entity\LegacyJobOrder l
|
||||
WHERE l.plate_number LIKE :search_term
|
||||
OR l.cust_mobile LIKE :search_term
|
||||
OR l.cust_landline LIKE :search_term
|
||||
OR l.cust_name LIKE :search_term
|
||||
OR l.cust_last_name LIKE :search_term
|
||||
OR l.cust_middle_name LIKE :search_term
|
||||
OR l.cust_first_name LIKE :search_term
|
||||
OR l.cust_contact LIKE :search_term')
|
||||
->setParameter('search_term', "%" . $search_term . "%")
|
||||
->getResult();
|
||||
|
||||
// query current job orders for plate number, name(first, last), phone number(mobile, landline, office, fax)
|
||||
// join with customervehicle for plate number. join with customer for name and number
|
||||
$job_orders = $this->em->createQuery('SELECT jo FROM App\Entity\JobOrder jo
|
||||
JOIN jo.cus_vehicle cv
|
||||
JOIN jo.customer c
|
||||
WHERE cv.plate_number LIKE :search_term
|
||||
OR c.first_name LIKE :search_term
|
||||
OR c.last_name LIKE :search_term
|
||||
OR c.phone_mobile LIKE :search_term
|
||||
OR c.phone_landline LIKE :search_term
|
||||
OR c.phone_office LIKE :search_term
|
||||
OR c.phone_fax LIKE :search_term')
|
||||
->setParameter('search_term', "%" . $search_term . "%")
|
||||
->getResult();
|
||||
|
||||
// query warranty for plate number, name(first, last), phone number(mobile)
|
||||
$warranties = $this->em->createQuery('SELECT w FROM App\Entity\Warranty w
|
||||
WHERE w.plate_number LIKE :search_term
|
||||
OR w.first_name LIKE :search_term
|
||||
OR w.last_name LIKE :search_term
|
||||
OR w.mobile_number LIKE :search_term')
|
||||
->setParameter('search_term', "%" . $search_term . "%")
|
||||
->getResult();
|
||||
|
||||
$results = array('legacy_job_orders'=>$legacy_job_orders, 'job_orders'=>$job_orders, 'warranties'=>$warranties);
|
||||
|
||||
return $results;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue