diff --git a/application/ADBHausnummer/ADBHausnummer.php b/application/ADBHausnummer/ADBHausnummer.php index 9f8683f65..bb2f9a829 100644 --- a/application/ADBHausnummer/ADBHausnummer.php +++ b/application/ADBHausnummer/ADBHausnummer.php @@ -3,17 +3,13 @@ class ADBHausnummer extends mfBaseModel { private $strasse; private $plz; - private $freigabe = []; + private $freigaben = []; protected function init() { $this->db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); $this->table = "Hausnummer"; } - public function afterLoad() { - //$this->strasse = new ADBStrasse($this->strasse_id); - //$this->plz = new ADBPlz($this->plz_id); - } /* public static function parseAddresszusatz($text) { $zusatz = ""; @@ -43,11 +39,9 @@ class ADBHausnummer extends mfBaseModel { public function getProperty($name) { if($this->$name == null) { - if($name == "freigabe") { - foreach(ADBHausnummerFreigabeModel::search(['hausnummer_id' => $this->id]) as $hf) { - $this->freigabe[] = $hf->freigabe; - } - return $this->freigabe; + if($name == "freigaben") { + $this->freigaben = explode(",", $this->freigabe); + return $this->freigaben; } if($name == "strasse") { diff --git a/application/ADBHausnummer/ADBHausnummerModel.php b/application/ADBHausnummer/ADBHausnummerModel.php index 846543cad..eb9abfee0 100644 --- a/application/ADBHausnummer/ADBHausnummerModel.php +++ b/application/ADBHausnummer/ADBHausnummerModel.php @@ -10,6 +10,7 @@ class ADBHausnummerModel { public $zusatz; public $gps_lat; public $gps_long; + public $rollout; public $create_by = null; public $edit_by = null; diff --git a/application/ADBHausnummerFreigabe/ADBHausnummerFreigabe.php b/application/ADBHausnummerFreigabe/ADBHausnummerFreigabe.php deleted file mode 100644 index 8ea403155..000000000 --- a/application/ADBHausnummerFreigabe/ADBHausnummerFreigabe.php +++ /dev/null @@ -1,10 +0,0 @@ -db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); - $this->table = "HausnummerFreigabe"; - } - -} diff --git a/application/ADBHausnummerFreigabe/ADBHausnummerFreigabeModel.php b/application/ADBHausnummerFreigabe/ADBHausnummerFreigabeModel.php deleted file mode 100644 index a73da0f50..000000000 --- a/application/ADBHausnummerFreigabe/ADBHausnummerFreigabeModel.php +++ /dev/null @@ -1,145 +0,0 @@ - $value) { - if(property_exists(get_called_class(), $field)) { - $model ->$field = $value; - } - } - - $me = mfValuecache::singleton()->get("me"); - if(!$me) { - $me = new User(); - $me->loadMe(); - mfValuecache::singleton()->set("me", $me); - } - /* - if($model->create_by === null) { - $model->create_by = $me->id; - } - 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); - mfLoghandler::singleton()->debug($where); - $res = $db->select("HausnummerFreigabe", "*", "$where ORDER BY hausnummer_id,freigabe LIMIT 1"); - if($db->num_rows($res)) { - $data = $db->fetch_object($res); - $item = new ADBHausnummerFreigabe($data); - if($item->id) { - return $item; - } else { - return null; - } - } - return null; - } - - public static function getAll() { - $items = []; - - $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); - - $res = $db->select("HausnummerFreigabe", "*", "1=1 ORDER BY hausnummer_id,freigabe"); - if($db->num_rows($res)) { - while($data = $db->fetch_object($res)) { - $items[] = new ADBHausnummerFreigabe($data); - } - } - 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 HausnummerFreigabe - 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(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); - - $where = self::getSqlFilter($filter); - $sql = "SELECT HausnummerFreigabe.* FROM HausnummerFreigabe - WHERE $where - ORDER BY hausnummer_id,freigabe"; - - 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 ADBHausnummerFreigabe($data); - } - } - return $items; - } - - private static function getSqlFilter($filter) { - $where = "1=1 "; - - if(array_key_exists("extref", $filter)) { - $extref = FronkDB::singleton()->escape($filter['extref']); - if($extref) { - $where .= " AND HausnummerFreigabe.`extref` = '$extref'"; - } - } - - if(array_key_exists("hausnummer_id", $filter)) { - $hausnummer_id = $filter['hausnummer_id']; - if(is_numeric($hausnummer_id)) { - $where .= " AND HausnummerFreigabe.hausnummer_id=$hausnummer_id"; - } elseif(is_array($hausnummer_id) && count($hausnummer_id)) { - $where .= " AND HausnummerFreigabe.hausnummer_id IN (". implode(",", $hausnummer_id).")"; - } - } - - - if(array_key_exists("freigabe", $filter)) { - $freigabe = FronkDB::singleton()->escape($filter['freigabe']); - if($freigabe) { - $where .= " AND HausnummerFreigabe.`freigabe` = '$freigabe'"; - } - } - - - //var_dump($filter, $where);exit; - return $where; - } - -} diff --git a/application/Api/v1/AddressdbApicontroller.php b/application/Api/v1/AddressdbApicontroller.php index 91b570069..09d4536fd 100644 --- a/application/Api/v1/AddressdbApicontroller.php +++ b/application/Api/v1/AddressdbApicontroller.php @@ -210,22 +210,19 @@ class AddressdbApicontroller extends mfBaseApicontroller { $sql = "SELECT * FROM view_wohneinheit WHERE $where ORDER BY plz, gemeinde, ortschaft, strasse, LENGTH(hausnummer), hausnummer, block, stiege, stock, LENGTH(tuer), tuer"; $res = $this->db()->query($sql); - $hausnummer_cache = []; - if($this->db()->num_rows($res)) { while($data = $this->db()->fetch_object($res)) { - if(array_key_exists($data->hausnummer_id,$hausnummer_cache)) { - $hausnummer = $hausnummer_cache[$data->hausnummer_id]; - } else { - $hausnummer = new ADBHausnummer($data->hausnummer_id); - $hausnummer_cache[$data->hausnummer_id] = $hausnummer; - } - if(!$hausnummer->id) continue; + // get allowed preorderTypes $ptypes = []; - foreach($hausnummer->freigabe as $freigabe) { - if(in_array($freigabe, $this->allowed_preordertypes)) { - $ptypes[] = $freigabe; + if($data->freigabe) { + $freigaben = json_decode($data->freigabe); + if(is_array($freigaben) && count($freigaben)) { + foreach($freigaben as $freigabe) { + if(in_array($freigabe, $this->allowed_preordertypes)) { + $ptypes[] = $freigabe; + } + } } }