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; + } +}