some changes to AddressDB

This commit is contained in:
Frank Schubert
2022-09-01 14:39:37 +02:00
parent 976ab357a5
commit e900b305a8
7 changed files with 40 additions and 55 deletions

View File

@@ -1,7 +1,7 @@
<?php
class ADBGemeinde extends mfBaseModel {
public $plz = [];
public $plzs = [];
protected function init() {
@@ -39,10 +39,10 @@ class ADBGemeinde extends mfBaseModel {
}
public function afterLoad() {
$this->loadPlz();
//$this->loadPlz();
}
public function loadPlz() {
/*public function loadPlz() {
if(!$this->id) {
return false;
}
@@ -57,12 +57,12 @@ class ADBGemeinde extends mfBaseModel {
}
return true;
}
}*/
public function getPlzList() {
$list = [];
foreach($this->plz as $plz) {
$list[$plz->id] = $plz->plz;
foreach($this->plzs as $plz) {
$list[$plz->id] = $plz->plzs;
}
return $list;
}

View File

@@ -2,6 +2,7 @@
class ADBHausnummer extends mfBaseModel {
public $strasse;
public $plz;
public $status;
public $providers = [];
public $providerlist = [];
@@ -13,33 +14,7 @@ class ADBHausnummer extends mfBaseModel {
public function afterLoad() {
$this->strasse = new ADBStrasse($this->strasse_id);
//$this->loadStatus();
//$this->loadProvider();
$this->plz = new ADBPlz($this->plz_id);
}
/*
public function loadStatus() {
if(!$this->id) {
return false;
}
$status = HausnummerStatus::singleton();
$this->status = $status->getObject($this->status_id);
}
public function loadProvider() {
if(!$this->id) {
return false;
}
$res = $this->db->select("HausnummerProvider", "*", "hausnummer_id=".$this->id);
if($this->db->num_rows($res)) {
while($data = $this->db->fetch_object($res)) {
$provider = new Provider($data->provider_id);
$this->providerlist[$provider->id] = $provider->name;
$this->providers[] = $provider;
}
}
return true;
}*/
}

View File

@@ -1,10 +1,11 @@
<?php
class ADBHausnummerModel {
public $gemeinde_id;
public $plz_id;
public $strasse_id;
public $kennziffer;
public $name;
public $plz;
public $create_by = null;
public $edit_by = null;
@@ -116,6 +117,14 @@ class ADBHausnummerModel {
private static function getSqlFilter($filter) {
$where = "1=1 ";
if(array_key_exists("plz_id", $filter)) {
$plz_id = $filter['plz_id'];
if(is_numeric($plz_id)) {
$where .= " AND Hausnummer.plz_id=$plz_id";
} elseif(is_array($plz_id) && count($plz_id)) {
$where .= " AND Hausnummer.plz_id IN (". implode(",", $plz_id).")";
}
}
if(array_key_exists("strasse_id", $filter)) {
$strasse_id = $filter['strasse_id'];

View File

@@ -25,4 +25,5 @@ class ADBOrtschaft extends mfBaseModel {
return $results;
}
}

View File

@@ -1,7 +1,6 @@
<?php
class ADBPlzModel {
public $gemeinde_id;
public $plz;
public $plzstring;
@@ -40,7 +39,7 @@ class ADBPlzModel {
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
$where = self::getSqlFilter($filter);
$res = $db->select("Plz", "*", "$where ORDER BY gemeinde_id,plz LIMIT 1");
$res = $db->select("Plz", "*", "$where ORDER BY plz LIMIT 1");
if($db->num_rows($res)) {
$data = $db->fetch_object($res);
$item = new ADBPlz($data);
@@ -58,7 +57,7 @@ class ADBPlzModel {
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
$res = $db->select("Plz", "*", "1=1 ORDER BY gemeinde_id,plz");
$res = $db->select("Plz", "*", "1=1 ORDER BY plz");
if($db->num_rows($res)) {
while($data = $db->fetch_object($res)) {
$items[] = new ADBPlz($data);
@@ -92,7 +91,7 @@ class ADBPlzModel {
$where = self::getSqlFilter($filter);
$sql = "SELECT Plz.* FROM Plz
WHERE $where
ORDER BY gemeinde_id,plz";
ORDER BY plz";
//mfLoghandler::singleton()->debug($sql);
if(is_array($limit) && count($limit)) {
@@ -116,13 +115,12 @@ class ADBPlzModel {
$where = "1=1 ";
if(array_key_exists("gemeinde_id", $filter)) {
$gemeinde_id = $filter['gemeinde_id'];
if(is_numeric($gemeinde_id)) {
$where .= " AND Plz.gemeinde_id=$gemeinde_id";
} elseif(is_array($gemeinde_id) && count($gemeinde_id)) {
$where .= " AND Plz.gemeinde_id IN (". implode(",", $gemeinde_id).")";
if(array_key_exists("hausnummer_id", $filter)) {
$hausnummer_id = $filter['hausnummer_id'];
if(is_numeric($hausnummer_id)) {
$where .= " AND Plz.hausnummer_id=$hausnummer_id";
} elseif(is_array($hausnummer_id) && count($hausnummer_id)) {
$where .= " AND Plz.hausnummer_id IN (". implode(",", $hausnummer_id).")";
}
}

View File

@@ -121,11 +121,11 @@ class AddressDB {
die("Error creating Ortschaft $ort_kz $ort_name!\n");
}
}
$plz = ADBPlzModel::getFirst(['gemeinde_id' => $gemeinde->id, 'plz' => $plz_name]);
$plz = ADBPlzModel::getFirst(['plz' => $plz_name]);
if(!$plz) {
$plz = new ADBPlz();
$plz->gemeinde_id = $gemeinde->id;
$plz->plz = $plz_name;
$plz->plzstring = $plz_name;
$plz_id = $plz->save();
@@ -133,8 +133,8 @@ class AddressDB {
die("Error creating Plz $plz_name!\n");
}
}
//var_dump($plz);exit;
$strasse = ADBStrasseModel::getFirst(['gemeinde_id' => $gemeinde->id, 'ortschaft_id' => $ort->id, 'name' => $strasse_name]);
if(!$strasse) {
@@ -147,12 +147,13 @@ class AddressDB {
die("error creating Strasse $strasse_name (gemeinde ".$gemeinde->id.", ort ".$ort->id.")");
}
}
//var_dump($strasse);exit;
$hausnummer = ADBHausnummerModel::getFirst(['strasse_id' => $strasse->id, 'hausnummer' => $hausnummer_name]);
if(!$hausnummer) {
$hausnummer = new ADBHausnummer();
$hausnummer->plz_id = $plz->id;
$hausnummer->strasse_id = $strasse->id;
$hausnummer->hausnummer = $hausnummer_name;
$hausnummer_id = $hausnummer->save();
@@ -161,6 +162,7 @@ class AddressDB {
}
}
//var_dump($hausnummer);exit;
$we_search = [
'hausnummer_id' => $hausnummer->id,

View File

@@ -17,7 +17,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
return mfResponse::BadRequest(['message' => "Searchstring cannot be empty!"]);
}
$results = ADBOrtschaftModel::search(['name%' => $search], ['count' => 20]);
$results = ADBOrtschaftModel::search(['name%' => $search]);
$cities = [];
@@ -35,7 +35,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
return mfResponse::BadRequest(['message' => "Searchstring cannot be empty!"]);
}
$results = ADBPlzModel::search(['plzstring%' => $search], ['count' => 20]);
$results = ADBPlzModel::search(['plzstring%' => $search]);
$zips = [];
@@ -53,7 +53,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
return mfResponse::BadRequest(['message' => "Searchstring cannot be empty!"]);
}
$results = ADBStrasseModel::search(['name%' => $search], ['count' => 20]);
$results = ADBStrasseModel::search(['name%' => $search]);
$streets = [];
@@ -94,7 +94,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
}
//$res = $this->db()->select("view_wohneinheit_plz", "*", $where);
$sql = "SELECT * FROM view_wohneinheit WHERE $where ORDER BY plz, ortschaft, strasse, LENGTH(hausnummer), hausnummer, block, stiege, stock, LENGTH(tuer), tuer LIMIT 20";
$sql = "SELECT * FROM view_wohneinheit WHERE $where ORDER BY plz, ortschaft, strasse, LENGTH(hausnummer), hausnummer, block, stiege, stock, LENGTH(tuer), tuer";
//echo $sql;exit;
$res = $this->db()->query($sql);