added filter to Address
This commit is contained in:
@@ -119,25 +119,63 @@ class AddressModel {
|
||||
return $addresses;
|
||||
}
|
||||
|
||||
public static function search($filter) {
|
||||
public static function count($filter) {
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
$sql = "SELECT COUNT(*) as cnt FROM (
|
||||
SELECT Address.id as address_id
|
||||
FROM Address
|
||||
LEFT JOIN Addresstype ON (Addresstype.address_id = Address.id)
|
||||
WHERE $where
|
||||
GROUP BY Address.id
|
||||
) as tbl";
|
||||
mfLoghandler::singleton()->debug($sql);
|
||||
|
||||
$res = $db->query($sql);
|
||||
if($db->num_rows($res)) {
|
||||
$data = $db->fetch_object($res);
|
||||
return $data->cnt;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static function search($filter, $limit = false) {
|
||||
//var_dump($filter);exit;
|
||||
$items = [];
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
$have = [];
|
||||
$sql = "SELECT Address.* FROM Address, Addresstype
|
||||
/*$sql = "SELECT Address.* FROM Address, Addresstype
|
||||
WHERE Addresstype.address_id = Address.id
|
||||
AND $where
|
||||
GROUP BY Addresstype.address_id
|
||||
ORDER BY Address.id";
|
||||
ORDER BY Address.id";*/
|
||||
$sql = "SELECT Address.* FROM Address
|
||||
LEFT JOIN Addresstype ON (Addresstype.address_id = Address.id)
|
||||
WHERE $where
|
||||
GROUP BY Address.id
|
||||
ORDER BY company, lastname, firstname, zip, city, Address.id";
|
||||
|
||||
if(is_array($limit) && count($limit)) {
|
||||
if(is_numeric($limit['start']) && is_numeric($limit['count'])) {
|
||||
$sql .= " LIMIT ".$limit['start'].", ".$limit['count'];
|
||||
} elseif(is_numeric($count)) {
|
||||
$sql .= " LIMIT ".$limit['count'];
|
||||
}
|
||||
}
|
||||
|
||||
mfLoghandler::singleton()->debug($sql);
|
||||
|
||||
$res = $db->query($sql);
|
||||
if($db->num_rows($res)) {
|
||||
while($data = $db->fetch_object($res)) {
|
||||
$items[] = new Address($data);
|
||||
$have[] = $data->id;
|
||||
//$have[] = $data->id;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if(!array_key_exists("addresstype", $filter)) {
|
||||
if($have) {
|
||||
$res = $db->select("Address", "*", "$where AND id NOT IN (".implode(",", $have).")");
|
||||
@@ -149,7 +187,7 @@ class AddressModel {
|
||||
$items[] = new Address($data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
return $items;
|
||||
}
|
||||
@@ -157,7 +195,7 @@ class AddressModel {
|
||||
private function getSqlFilter($filter) {
|
||||
$where = "1=1 ";
|
||||
|
||||
|
||||
//var_dump($filter);exit;
|
||||
if(array_key_exists("customer_number", $filter)) {
|
||||
$cn = $filter["customer_number"];
|
||||
if(is_numeric($cn)) {
|
||||
@@ -171,6 +209,70 @@ class AddressModel {
|
||||
$where .= " AND spin='$spin'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("company", $filter)) {
|
||||
$company = FronkDB::singleton()->escape($filter["company"]);
|
||||
if($company) {
|
||||
$where .= " AND company like '%$company%'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("firstname", $filter)) {
|
||||
$firstname = FronkDB::singleton()->escape($filter["firstname"]);
|
||||
if($firstname) {
|
||||
$where .= " AND firstname like '%$firstname%'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("lastname", $filter)) {
|
||||
$lastname = FronkDB::singleton()->escape($filter["lastname"]);
|
||||
if($lastname) {
|
||||
$where .= " AND lastname like '%$lastname%'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("street", $filter)) {
|
||||
$street = FronkDB::singleton()->escape($filter["street"]);
|
||||
if($street) {
|
||||
$where .= " AND street like '%$street%'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("zip", $filter)) {
|
||||
$zip = FronkDB::singleton()->escape($filter["zip"]);
|
||||
if($zip) {
|
||||
$where .= " AND zip like '%$zip%'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("city", $filter)) {
|
||||
$city = FronkDB::singleton()->escape($filter["city"]);
|
||||
if($city) {
|
||||
$where .= " AND city like '%$city%'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("country", $filter)) {
|
||||
$country = FronkDB::singleton()->escape($filter["country"]);
|
||||
if($country) {
|
||||
$where .= " AND country like '%$country%'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("email", $filter)) {
|
||||
$email = FronkDB::singleton()->escape($filter["email"]);
|
||||
if($email) {
|
||||
$where .= " AND email like '%$email%'";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("pfm", $filter)) {
|
||||
$pfm = FronkDB::singleton()->escape($filter["pfm"]);
|
||||
if($pfm) {
|
||||
$where .= " AND (phone like '%$pfm%' OR fax like '%$pfm%' OR mobile like '%$pfm%' )";
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Address Type
|
||||
*/
|
||||
@@ -211,7 +313,7 @@ class AddressModel {
|
||||
|
||||
if(array_key_exists("parents_only", $filter)) {
|
||||
$po = $filter['parents_only'];
|
||||
if($po == 1) {
|
||||
if($po) {
|
||||
$where .= " AND parent_id IS NULL";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user