improve search
This commit is contained in:
@@ -240,15 +240,28 @@ class OrderModel {
|
|||||||
$where .= " AND `Order`.owner_id=$ownerid";
|
$where .= " AND `Order`.owner_id=$ownerid";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(array_key_exists("owner", $filter)) {
|
if (!empty($filter['owner'])) {
|
||||||
$owner = FronkDB::singleton()->escape($filter['owner']);
|
$db = FronkDB::singleton();
|
||||||
if($owner) {
|
$fields = [
|
||||||
$where .= " AND (Address.customer_number like '$owner' OR Address.company like '%$owner%' OR Address.firstname like '%$owner%' OR Address.lastname like '%$owner%' OR Address.customer_number like '%$owner%')";
|
'Address.customer_number',
|
||||||
|
'Address.company',
|
||||||
|
'Address.firstname',
|
||||||
|
'Address.lastname',
|
||||||
|
'Order.partner_number'
|
||||||
|
];
|
||||||
|
|
||||||
|
$searchTerms = preg_split('/\s+/', $filter['owner'], -1, PREG_SPLIT_NO_EMPTY);
|
||||||
|
|
||||||
|
foreach ($searchTerms as $term) {
|
||||||
|
if ($escapedTerm = $db->escape($term)) {
|
||||||
|
$likes = array_map(fn($field) => "$field LIKE '%$escapedTerm%'", $fields);
|
||||||
|
$where .= " AND (" . implode(' OR ', $likes) . ")";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
if(array_key_exists("owner_address", $filter)) {
|
||||||
if(array_key_exists("owner_address", $filter)) {
|
|
||||||
$owner_address = FronkDB::singleton()->escape($filter['owner_address']);
|
$owner_address = FronkDB::singleton()->escape($filter['owner_address']);
|
||||||
if($owner_address) {
|
if($owner_address) {
|
||||||
$where .= " AND (Address.street like '%$owner_address%' OR Address.zip like '%$owner_address%' OR Address.city like '%$owner_address%')";
|
$where .= " AND (Address.street like '%$owner_address%' OR Address.zip like '%$owner_address%' OR Address.city like '%$owner_address%')";
|
||||||
|
|||||||
Reference in New Issue
Block a user