From 40753b639461080598cb4732bc6c3a2d5c9de499 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 17 May 2022 19:20:49 +0200 Subject: [PATCH] tweaked address search in Order form --- application/Address/AddressController.php | 12 +++++++++++- application/Address/AddressModel.php | 8 ++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/application/Address/AddressController.php b/application/Address/AddressController.php index b9b11a0bc..605f48447 100644 --- a/application/Address/AddressController.php +++ b/application/Address/AddressController.php @@ -258,7 +258,7 @@ class AddressController extends mfBaseController { } private function findAddressApi() { - $search = $this->request->q; + $search = trim($this->request->q); $autocomplete = $this->request->autocomplete; $po = 1; @@ -270,6 +270,16 @@ class AddressController extends mfBaseController { } $addresses = []; + + if(is_numeric($search)) { + $cnumbers = AddressModel::search(["parents_only" => $po, "addresstype" => [$role], "customer_number" => $search]); + if($cnumbers) { + $addresses = array_merge($addresses, $cnumbers); + } + } + + + $addresses = array_merge($addresses, AddressModel::search(["parents_only" => $po, "addresstype" => [$role], "mergedName" => $search])); $addresses = array_merge($addresses, AddressModel::search(["parents_only" => $po, "addresstype" => [$role], "company" => $search])); $addresses = array_merge($addresses, AddressModel::search(["parents_only" => $po, "addresstype" => [$role], "firstname" => $search])); $addresses = array_merge($addresses, AddressModel::search(["parents_only" => $po, "addresstype" => [$role], "lastname" => $search])); diff --git a/application/Address/AddressModel.php b/application/Address/AddressModel.php index 28e0fab42..60fd32f74 100644 --- a/application/Address/AddressModel.php +++ b/application/Address/AddressModel.php @@ -168,6 +168,7 @@ class AddressModel { return 0; } + public static function search($filter, $limit = false) { //var_dump($filter);exit; $items = []; @@ -259,6 +260,13 @@ class AddressModel { } } + if(array_key_exists("mergedName", $filter)) { + $name = FronkDB::singleton()->escape($filter["mergedName"]); + if($name) { + $where .= " AND (CONCAT(firstname, ' ', lastname) like '%$name%' OR CONCAT(lastname, ' ', firstname) like '%$name%' )"; + } + } + if(array_key_exists("street", $filter)) { $street = FronkDB::singleton()->escape($filter["street"]); if($street) {