improve search
This commit is contained in:
@@ -240,15 +240,28 @@ class OrderModel {
|
||||
$where .= " AND `Order`.owner_id=$ownerid";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("owner", $filter)) {
|
||||
$owner = FronkDB::singleton()->escape($filter['owner']);
|
||||
if($owner) {
|
||||
$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%')";
|
||||
|
||||
if (!empty($filter['owner'])) {
|
||||
$db = FronkDB::singleton();
|
||||
$fields = [
|
||||
'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']);
|
||||
if($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