From 34c22b01e296d27c1de6b33507b2aace9eaa1f6c Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Tue, 12 Mar 2019 05:30:10 -0400 Subject: [PATCH] Add getters and setters for LegacyJobOrder. Create service that searches for plate number, name, and phone numbers in the legacy job orders, current job orders, and warranty. Create test command to test the search service. #182 --- src/Command/TestGeneralSearchCommand.php | 70 +++++ src/Entity/LegacyJobOrder.php | 341 +++++++++++++++++++++++ src/Service/GeneralSearch.php | 63 +++++ 3 files changed, 474 insertions(+) create mode 100644 src/Command/TestGeneralSearchCommand.php create mode 100644 src/Service/GeneralSearch.php diff --git a/src/Command/TestGeneralSearchCommand.php b/src/Command/TestGeneralSearchCommand.php new file mode 100644 index 00000000..0696fb86 --- /dev/null +++ b/src/Command/TestGeneralSearchCommand.php @@ -0,0 +1,70 @@ +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"; + } + } +} diff --git a/src/Entity/LegacyJobOrder.php b/src/Entity/LegacyJobOrder.php index 345fc724..fde4d7ff 100644 --- a/src/Entity/LegacyJobOrder.php +++ b/src/Entity/LegacyJobOrder.php @@ -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; + } } diff --git a/src/Service/GeneralSearch.php b/src/Service/GeneralSearch.php new file mode 100644 index 00000000..a6da2685 --- /dev/null +++ b/src/Service/GeneralSearch.php @@ -0,0 +1,63 @@ +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; + } +}