116 lines
3.0 KiB
PHP
116 lines
3.0 KiB
PHP
<?php
|
|
|
|
class IvtCustomerTelephoneNrModel {
|
|
|
|
|
|
public static function getAll($order = false) {
|
|
$items = [];
|
|
|
|
$db = FronkDB::singleton(IVT_DBHOST, IVT_DBUSER, IVT_DBPASS, IVT_DBNAME);
|
|
|
|
if(!$order) {
|
|
$order = "cid,number";
|
|
}
|
|
|
|
$res = $db->select("customer_telephone_nr", "*", "1=1 ORDER BY $order");
|
|
if($db->num_rows($res)) {
|
|
while($data = $db->fetch_object($res)) {
|
|
$items[] = new IvtCustomerTelephoneNr($data);
|
|
}
|
|
}
|
|
return $items;
|
|
}
|
|
|
|
public static function getFirst($filter = []) {
|
|
$db = FronkDB::singleton(IVT_DBHOST, IVT_DBUSER, IVT_DBPASS, IVT_DBNAME);
|
|
|
|
$where = self::getSqlFilter($filter);
|
|
$res = $db->select("customer_telephone_nr", "*", "$where ORDER BY cid,number LIMIT 1");
|
|
if($db->num_rows($res)) {
|
|
$data = $db->fetch_object($res);
|
|
$item = new IvtCustomerTelephoneNr($data);
|
|
if($item->id) {
|
|
return $item;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public static function count($filter) {
|
|
$db = FronkDB::singleton(IVT_DBHOST, IVT_DBUSER, IVT_DBPASS, IVT_DBNAME);
|
|
|
|
$where = self::getSqlFilter($filter);
|
|
$sql = "SELECT COUNT(*) cnt FROM customer_telephone_nr WHERE $where";
|
|
|
|
$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) {
|
|
$items = [];
|
|
$db = FronkDB::singleton(IVT_DBHOST, IVT_DBUSER, IVT_DBPASS, IVT_DBNAME);
|
|
|
|
$where = self::getSqlFilter($filter);
|
|
$sql = "SELECT * FROM customer_telephone_nr WHERE $where ORDER by cid,number";
|
|
|
|
mfLoghandler::singleton()->debug($sql);
|
|
if(is_array($limit) && count($limit)) {
|
|
if(is_numeric($limit['start']) && is_numeric($limit['count'])) {
|
|
$sql .= " LIMIT ".$limit['start'].", ".$limit['count'];
|
|
} elseif(is_numeric($limit['count'])) {
|
|
$sql .= " LIMIT ".$limit['count'];
|
|
}
|
|
}
|
|
|
|
$res = $db->query($sql);
|
|
if($db->num_rows($res)) {
|
|
while($data = $db->fetch_object($res)) {
|
|
$items[] = new IvtCustomerTelephoneNr($data);
|
|
}
|
|
}
|
|
return $items;
|
|
}
|
|
|
|
private static function getSqlFilter($filter) {
|
|
$where = "1=1 ";
|
|
|
|
if(array_key_exists("cid", $filter)) {
|
|
$cid = $filter['cid'];
|
|
if(is_numeric($cid)) {
|
|
$where .= " AND cid=$cid";
|
|
}
|
|
}
|
|
|
|
if(array_key_exists("pid", $filter)) {
|
|
$pid = $filter['pid'];
|
|
if(is_numeric($pid)) {
|
|
$where .= " AND pid=$pid";
|
|
}
|
|
}
|
|
|
|
if(array_key_exists("number", $filter)) {
|
|
$number = (string)FronkDB::singleton()->escape($filter['number']);
|
|
if($number) {
|
|
$where .= " AND number='$number'";
|
|
}
|
|
}
|
|
|
|
if(array_key_exists("number%", $filter)) {
|
|
$number = (string)FronkDB::singleton()->escape($filter['number']);
|
|
if($number) {
|
|
$where .= " AND number LIKE '%$number%'";
|
|
}
|
|
}
|
|
|
|
//var_dump($filter, $where);exit;
|
|
return $where;
|
|
}
|
|
|
|
}
|