diff --git a/application/ADBWohneinheit/ADBWohneinheitModel.php b/application/ADBWohneinheit/ADBWohneinheitModel.php index 80befdc11..131b21ee9 100644 --- a/application/ADBWohneinheit/ADBWohneinheitModel.php +++ b/application/ADBWohneinheit/ADBWohneinheitModel.php @@ -22,7 +22,7 @@ class ADBWohneinheitModel { public $patch_module; public $patch_port; public $external_data; - + public $note; public $create_by = null; public $edit_by = null; @@ -31,13 +31,13 @@ class ADBWohneinheitModel { public static function create(Array $data) { $model = new ADBWohneinheit(); - + foreach($data as $field => $value) { if(property_exists(get_called_class(), $field)) { $model ->$field = $value; } } - + $me = mfValuecache::singleton()->get("me"); if(!$me) { $me = new User(); @@ -51,13 +51,13 @@ class ADBWohneinheitModel { if($model->edit_by === null) { $model->edit_by = $me->id; }*/ - + return $model; } - + public static function getFirst($filter) { $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); - + $where = self::getSqlFilter($filter); $sql = "SELECT Wohneinheit.* FROM Wohneinheit LEFT JOIN Hausnummer ON (Hausnummer.id = Wohneinheit.hausnummer_id) @@ -65,7 +65,7 @@ class ADBWohneinheitModel { GROUP BY Wohneinheit.id ORDER BY hausnummer_id,block,stiege,LENGTH(stock),stock,LENGTH(tuer),tuer,num LIMIT 1"; - + //mfLoghandler::singleton()->debug($sql); $res = $db->query($sql); if($db->num_rows($res)) { @@ -79,12 +79,12 @@ class ADBWohneinheitModel { } return null; } - + public static function getAll() { $items = []; - + $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); - + $res = $db->select("Wohneinheit", "*", "1=1 ORDER BY hausnummer_id,block,stiege,LENGTH(stock),stock,LENGTH(tuer),tuer,num"); if($db->num_rows($res)) { while($data = $db->fetch_object($res)) { @@ -92,22 +92,22 @@ class ADBWohneinheitModel { } } return $items; - + } - - + + public static function count($filter) { $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); - + $where = self::getSqlFilter($filter); - $sql = "SELECT COUNT(*) as cnt FROM + $sql = "SELECT COUNT(*) as cnt FROM (SELECT Wohneinheit.* FROM Wohneinheit LEFT JOIN Hausnummer ON (Hausnummer.id = Wohneinheit.hausnummer_id) WHERE $where GROUP BY Wohneinheit.id ) as tbl "; - + //mfLoghandler::singleton()->debug($sql); $res = $db->query($sql); if($db->num_rows($res)) { @@ -116,18 +116,18 @@ class ADBWohneinheitModel { } return 0; } - + public static function search($filter, $limit = false) { $items = []; $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); - + $where = self::getSqlFilter($filter); $sql = "SELECT Wohneinheit.* FROM Wohneinheit LEFT JOIN Hausnummer ON (Hausnummer.id = Wohneinheit.hausnummer_id) WHERE $where GROUP BY Wohneinheit.id ORDER BY hausnummer_id,block,stiege,LENGTH(stock),stock,LENGTH(tuer),tuer,num"; - + //mfLoghandler::singleton()->debug($sql); if(is_array($limit) && count($limit)) { if(is_numeric($limit['start']) && is_numeric($limit['count'])) { @@ -136,7 +136,7 @@ class ADBWohneinheitModel { $sql .= " LIMIT ".$limit['count']; } } - + $res = $db->query($sql); if($db->num_rows($res)) { while($data = $db->fetch_object($res)) { @@ -145,10 +145,10 @@ class ADBWohneinheitModel { } return $items; } - + private static function getSqlFilter($filter) { $where = "1=1 "; - + if(array_key_exists("extref", $filter)) { if($filter['extref'] === null || $filter['extref'] === false) { $where .= " AND (Wohneinheit.`extref` IS NULL OR Wohneinheit.`extref` = '')"; @@ -168,7 +168,7 @@ class ADBWohneinheitModel { $where .= " AND Wohneinheit.`rimo_deleted` = 0"; } } - + if(array_key_exists("netzgebiet_id", $filter)) { $netzgebiet_id = $filter['netzgebiet_id']; if(is_numeric($netzgebiet_id)) { @@ -177,7 +177,7 @@ class ADBWohneinheitModel { $where .= " AND Hausnummer.netzgebiet_id IN (". implode(",", $netzgebiet_id).")"; } } - + if(array_key_exists("hausnummer_id", $filter)) { $hausnummer_id = $filter['hausnummer_id']; if(is_numeric($hausnummer_id)) { @@ -186,7 +186,7 @@ class ADBWohneinheitModel { $where .= " AND Wohneinheit.hausnummer_id IN (". implode(",", $hausnummer_id).")"; } } - + if(array_key_exists("oaid", $filter)) { $oaid = FronkDB::singleton()->escape($filter['oaid']); if(strlen($oaid)) { @@ -195,7 +195,7 @@ class ADBWohneinheitModel { $where .= " AND (Wohneinheit.`oaid` IS NULL OR Wohneinheit.`oaid` = '')"; } } - + if(array_key_exists("num", $filter)) { $num = $filter['num']; if($num === false || $num === null) { @@ -206,7 +206,7 @@ class ADBWohneinheitModel { $where .= " AND Wohneinheit.num IN (". implode(",", $num).")"; } } - + if(array_key_exists("block", $filter)) { $block = FronkDB::singleton()->escape($filter['block']); if(strlen($block)) { @@ -256,7 +256,7 @@ class ADBWohneinheitModel { $where .= " AND (Wohneinheit.`nutzung` IS NULL OR Wohneinheit.`nutzung` = '')"; } } - + if(array_key_exists("block%", $filter)) { $block = FronkDB::singleton()->escape($filter['block']); if($block) { @@ -287,7 +287,7 @@ class ADBWohneinheitModel { $where .= " AND Wohneinheit.`zusatz` like '%$zusatz%'"; } } - + //var_dump($filter, $where);exit; return $where; } @@ -495,11 +495,11 @@ class ADBWohneinheitModel { } $detailSql = " - SELECT - W.*, - Owner.company AS company, - H.rimo_id AS hausnummer_extref, - NG.id AS netzgebiet_id, + SELECT + W.*, + Owner.company AS company, + H.rimo_id AS hausnummer_extref, + NG.id AS netzgebiet_id, Owner.company as netzgebiet_owner FROM ". ADDRESSDB_DBNAME .".Wohneinheit W JOIN ". ADDRESSDB_DBNAME .".Hausnummer H ON H.id = W.hausnummer_id @@ -508,11 +508,11 @@ class ADBWohneinheitModel { LEFT JOIN ". ADDRESSDB_DBNAME .".Netzgebiet NG ON NG.id = H.netzgebiet_id LEFT JOIN ". FRONKDB_DBNAME .".Network Network ON Network.adb_netzgebiet_id = NG.id LEFT JOIN ". FRONKDB_DBNAME .".Address Owner ON Network.owner_id = Owner.id - WHERE $where + WHERE $where AND H.rimo_type = 'greenfield' AND PS.code < 899 AND P.deleted = 0 - GROUP BY W.id -- Ensure each Wohneinheit appears only once + GROUP BY W.id, Owner.company, H.rimo_id, NG.id ORDER BY W.oaid"; $detailRes = $db->query($detailSql);