Changes for ADBOrtschaft in preorder api
This commit is contained in:
@@ -70,10 +70,10 @@
|
||||
<div class="card">
|
||||
<div class="card-body mb-3">
|
||||
<div class="float-left">
|
||||
<h4 class="header-title">Liste aller aktiver Produkte</h4>
|
||||
<h4 class="header-title">Liste aller aktiven Produkte</h4>
|
||||
</div>
|
||||
<div class="float-right">
|
||||
<a class="btn btn-primary mb-2" href="<?=self::getUrl("Contract", "add")?>"><i class="fas fa-plus"></i> Neue Produkt anlegen</a>
|
||||
<a class="btn btn-primary mb-2" href="<?=self::getUrl("Contract", "add")?>"><i class="fas fa-plus"></i> Neues Produkt anlegen</a>
|
||||
</div>
|
||||
|
||||
<?php include(realpath(dirname(__FILE__)."/../")."/tpl/pagination.php"); ?>
|
||||
|
||||
@@ -120,22 +120,40 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
||||
return mfResponse::BadRequest(['message' => "No search parameters"]);
|
||||
}
|
||||
|
||||
$where = "1=1";
|
||||
|
||||
if($district) {
|
||||
$city_search = ['ortschaft%' => $district];
|
||||
$where .= " AND ortschaft like '$district%'";
|
||||
}
|
||||
if($city) {
|
||||
$city_search = ['name%' => $city];
|
||||
$where .= " AND gemeinde like '$city%'";
|
||||
}
|
||||
if($zip) {
|
||||
$city_search['plz%'] = $zip;
|
||||
$where .= " AND plz like '$zip%'";
|
||||
}
|
||||
|
||||
if(count($this->filter_salescluster_ids)) {
|
||||
$city_search['netzgebiet_id'] = $this->filter_salescluster_ids;
|
||||
$where .= " AND netzgebiet_id IN (".join(", ", $this->filter_salescluster_ids).")";
|
||||
}
|
||||
|
||||
$cities = [];
|
||||
foreach(ADBGemeindeModel::search($city_search) as $gem) {
|
||||
|
||||
$sql = "SELECT gemeinde, ortschaft FROM view_hausnummer WHERE $where GROUP BY gemeinde,ortschaft_id";
|
||||
$res = $this->db()->query($sql);
|
||||
if($this->db()->num_rows($res)) {
|
||||
while($data = $this->db()->fetch_object($res)) {
|
||||
if(!array_key_exists($data->gemeinde, $cities)) {
|
||||
$cities[$data->gemeinde] = [];
|
||||
}
|
||||
$cities[$data->gemeinde][] = $data->ortschaft;
|
||||
}
|
||||
}
|
||||
|
||||
/*foreach(ADBGemeindeModel::search($city_search) as $gem) {
|
||||
$districts = [];
|
||||
|
||||
if($district) {
|
||||
@@ -149,7 +167,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
||||
}
|
||||
|
||||
$cities[$gem->name] = $districts;
|
||||
}
|
||||
}*/
|
||||
|
||||
return mfResponse::Ok(['cities' => $cities]);
|
||||
}
|
||||
@@ -171,11 +189,11 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
||||
}
|
||||
|
||||
$zip_search = ['plzstring%' => $zip];
|
||||
|
||||
//var_dump($this->filter_salescluster_ids);exit;
|
||||
if(count($this->filter_salescluster_ids)) {
|
||||
$zip_search['netzgebiet_id'] = $this->filter_salescluster_ids;
|
||||
}
|
||||
|
||||
//var_dump($zip_search);exit;
|
||||
$results = ADBPlzModel::search($zip_search);
|
||||
|
||||
|
||||
@@ -196,6 +214,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
||||
$search = trim($get['search']);
|
||||
$street = trim($get['street']);
|
||||
$city = trim($get['city']);
|
||||
$district = trim($get['district']);
|
||||
$zip = trim($get['zip']);
|
||||
|
||||
if(!$search && !$street && !$city && !$zip) {
|
||||
@@ -206,25 +225,42 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
||||
$street = $search;
|
||||
}
|
||||
|
||||
$where = "1=1";
|
||||
$street_search = ["name%" => $street];
|
||||
if($city) {
|
||||
$street_search['gemeinde%'] = $city;
|
||||
$city = $this->db()->escape($city);
|
||||
$where .= " AND gemeinde like '$city%'";
|
||||
}
|
||||
if($zip) {
|
||||
$street_search['plz%'] = $zip;
|
||||
$zip = $this->db()->escape($zip);
|
||||
$where .= " AND plz like '$zip%'";
|
||||
}
|
||||
|
||||
if(count($this->filter_salescluster_ids)) {
|
||||
$street_search['netzgebiet_id'] = $this->filter_salescluster_ids;
|
||||
$where .= " AND netzgebiet_id IN (".join(", ", $this->filter_salescluster_ids).")";
|
||||
}
|
||||
|
||||
$results = ADBStrasseModel::search($street_search);
|
||||
|
||||
|
||||
$streets = [];
|
||||
|
||||
$sql = "SELECT strasse FROM view_hausnummer WHERE $where GROUP BY strasse ORDER BY strasse";
|
||||
//echo "$sql";exit;
|
||||
$res = $this->db()->query($sql);
|
||||
if($this->db()->num_rows($res)) {
|
||||
while($data = $this->db()->fetch_object($res)) {
|
||||
$streets[] = $data->strasse;
|
||||
}
|
||||
|
||||
}
|
||||
/*$results = ADBStrasseModel::search($street_search);
|
||||
|
||||
|
||||
|
||||
foreach($results as $result) {
|
||||
$streets[] = $result->name;
|
||||
}
|
||||
}*/
|
||||
|
||||
$streets = array_unique($streets);
|
||||
sort($streets);
|
||||
@@ -251,21 +287,26 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
||||
$where = "1=1";
|
||||
|
||||
if($search_zip) {
|
||||
$where .= " AND plz like '%$search_zip%'";
|
||||
$where .= " AND plz like '$search_zip%'";
|
||||
}
|
||||
if($search_district) {
|
||||
$where .= " AND ortschaft like '%$search_district%'";
|
||||
$where .= " AND ortschaft like '$search_district%'";
|
||||
}
|
||||
if($search_city) {
|
||||
$where .= " AND gemeinde like '%$search_city%'";
|
||||
$where .= " AND gemeinde like '$search_city%'";
|
||||
}
|
||||
if($search_street) {
|
||||
$where .= " AND strasse like '%$search_street%'";
|
||||
$where .= " AND strasse like '$search_street%'";
|
||||
}
|
||||
if($search_housenumber) {
|
||||
$where .= " AND hausnummer like '%$search_housenumber%'";
|
||||
$where .= " AND hausnummer like '$search_housenumber%'";
|
||||
}
|
||||
|
||||
|
||||
if(count($this->filter_salescluster_ids)) {
|
||||
$where .= " AND netzgebiet_id IN (".implode(",", $this->filter_salescluster_ids).")";
|
||||
}
|
||||
//echo $where;
|
||||
//var_dump($this->filter_salescluster_ids);exit;
|
||||
$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);
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ class PreorderApicontroller extends mfBaseApicontroller {
|
||||
}
|
||||
|
||||
$address_search = [];
|
||||
foreach(['street' => 'strasse','housenumber' => "hausnummer",'zip' => "plz",'city' => "gemeinde"] as $key => $field_name) {
|
||||
foreach(['street' => 'strasse','housenumber' => "hausnummer",'zip' => "plz",'city' => "gemeinde", 'district' => "ortschaft"] as $key => $field_name) {
|
||||
if(property_exists($this->post['address'], $key)) {
|
||||
$address_search[$field_name] = $this->db()->escape(trim($this->post['address']->$key));
|
||||
}
|
||||
|
||||
@@ -18,15 +18,8 @@ class DashboardController extends mfBaseController {
|
||||
|
||||
|
||||
protected function testAction() {
|
||||
$sql = "SELECT tt_preorder.* FROM `thetool_live`.Preorder tt_preorder
|
||||
LEFT JOIN `thetool_addressdb`.view_hausnummer as adb_hausnummer ON (tt_preorder.adb_hausnummer_id = adb_hausnummer.hausnummer_id)
|
||||
WHERE 1=1 AND deleted=0 AND preordercampaign_id=1 AND (adb_hausnummer.gemeinde like '%stift%' OR adb_hausnummer.plz like '%stift%' OR adb_hausnummer.strasse like '%stift%')
|
||||
ORDER By lastname, firstname";
|
||||
$res = $this->db()->query($sql);
|
||||
if($this->db()->num_rows($res)) {
|
||||
$data = $this->db()->fetch_object($res);
|
||||
var_dump($data);exit;
|
||||
}
|
||||
var_dump(ADBHausnummerModel::search(["hausnummer" => 1]));
|
||||
exit;
|
||||
}
|
||||
|
||||
protected function colorAction() {
|
||||
|
||||
@@ -22,8 +22,6 @@ $folder = BASEDIR."/scripts/addressdb/import/bev";
|
||||
$db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||
$log = mfLoghandler::singleton();
|
||||
|
||||
$db->query("SET autocommit=0");
|
||||
|
||||
/*
|
||||
* Import Gemeinden
|
||||
*/
|
||||
@@ -31,6 +29,7 @@ $db->query("SET autocommit=0");
|
||||
$filename = "$folder/GEMEINDE.csv";
|
||||
$input = fopen($filename, "r");
|
||||
|
||||
$db->query("SET autocommit=0");
|
||||
$i = 0;
|
||||
while($csv = fgetcsv($input, 0, ";")) {
|
||||
$i++;
|
||||
@@ -59,7 +58,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$db->query("COMMIT");
|
||||
echo ($i-1)." Gemeinden importiert\n";
|
||||
|
||||
/*
|
||||
@@ -69,6 +68,7 @@ echo ($i-1)." Gemeinden importiert\n";
|
||||
$filename = "$folder/ORTSCHAFT.csv";
|
||||
$input = fopen($filename, "r");
|
||||
|
||||
$db->query("SET autocommit=0");
|
||||
$i = 0;
|
||||
while($csv = fgetcsv($input, 0, ";")) {
|
||||
$i++;
|
||||
@@ -101,7 +101,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$db->query("COMMIT");
|
||||
echo ($i-1)." Ortschaften importiert\n";
|
||||
|
||||
/*
|
||||
@@ -111,6 +111,7 @@ echo ($i-1)." Ortschaften importiert\n";
|
||||
$filename = "$folder/STRASSE.csv";
|
||||
$input = fopen($filename, "r");
|
||||
|
||||
$db->query("SET autocommit=0");
|
||||
$i = 0;
|
||||
while($csv = fgetcsv($input, 0, ";")) {
|
||||
$i++;
|
||||
@@ -226,13 +227,15 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$db->query("COMMIT");
|
||||
echo "\n".($i-1)." Straßen importiert\n";
|
||||
|
||||
|
||||
$filename = "$folder/ADRESSE.csv";
|
||||
$input = fopen($filename, "r");
|
||||
|
||||
$db->query("SET autocommit=0");
|
||||
|
||||
$current_skz = false;
|
||||
$current_gkz = false;
|
||||
$sdata = [];
|
||||
@@ -260,7 +263,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
$okz = trim($csv[2]);
|
||||
$plz_string = trim($csv[3]);
|
||||
$skz = trim($csv[4]);
|
||||
|
||||
|
||||
$hnz1 = trim($csv[7]);
|
||||
$hnb1 = trim($csv[8]);
|
||||
$hnv = trim($csv[9]);
|
||||
@@ -282,18 +285,16 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
"skz" => $skz,
|
||||
"hausnummer" => $hausnummer_string
|
||||
];
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if($current_skz) {
|
||||
//var_dump($sdata);exit;
|
||||
$gemeinde = getGemeinde($current_gkz);
|
||||
if(!$gemeinde) {
|
||||
die("Kann Adresse nicht importieren: Gemeinde nicht gefunden ($gkz)\n");
|
||||
}
|
||||
|
||||
|
||||
$strasse = getStrasse($current_skz);
|
||||
if(!$strasse) {
|
||||
die("Kann Adresse nicht importieren: Strasse nicht gefunden ($okz)\n");
|
||||
@@ -301,11 +302,10 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
|
||||
// do database work for all sdata
|
||||
$hausnummern_filter = [];
|
||||
|
||||
|
||||
foreach($sdata as $s) {
|
||||
$plz = getPlz($s["plz"], $gemeinde->id);
|
||||
if(!$plz) {
|
||||
//echo "Creating PLZ ".$s["plz"]."\n";
|
||||
$plz = ADBPlzModel::create([
|
||||
"gemeinde_id" => $gemeinde->id,
|
||||
"plz" => $s["plz"],
|
||||
@@ -325,8 +325,11 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
|
||||
foreach($sdata as $shausnummer => $s) {
|
||||
$found = false;
|
||||
$ort = getOrtschaft($s['okz']);
|
||||
if(!$ort->id) die("Ortschaft nicht gefunden ".$s['okz']);
|
||||
|
||||
foreach($hausnummern as $h) {
|
||||
if($h->hausnummer == $shausnummer) {
|
||||
if($h->hausnummer == $shausnummer && $h->ortschaft_id = $ort->id) {
|
||||
//exists already
|
||||
$found = true;
|
||||
|
||||
@@ -344,6 +347,9 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
$new_hausnummern[$shausnummer] = $s;
|
||||
}
|
||||
}
|
||||
$new_hausnummern = $sdata;
|
||||
|
||||
|
||||
|
||||
if(count($new_hausnummern)) {
|
||||
$insert = "INSERT INTO `Hausnummer` (`netzgebiet_id`, `adrcd`, `ortschaft_id`, `plz_id`, `strasse_id`, `hausnummer`, `create`, `edit`) VALUES ";
|
||||
@@ -351,7 +357,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
//var_dump($h_string, $s);exit;
|
||||
//$h_string = $h->hausnummer;
|
||||
//$s = $sdata[$h_string];
|
||||
$adrcd = $s["adrcd"];
|
||||
$acode = $s["adrcd"];
|
||||
$strasse_id = $strasse->id;
|
||||
$plz = getPlz($s['plz'],$gemeinde->id);
|
||||
if(!$plz) {
|
||||
@@ -364,7 +370,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
}
|
||||
$ortschaft_id = $ortschaft->id;
|
||||
// add to INSERT statement
|
||||
$insert .= "(0, '$adrcd', $ortschaft_id, $plz_id, $strasse_id,'$h_string', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),";
|
||||
$insert .= "(0, '$acode', $ortschaft_id, $plz_id, $strasse_id,'$h_string', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),";
|
||||
|
||||
}
|
||||
$insert = preg_replace('/,$/', "", $insert);
|
||||
@@ -373,44 +379,7 @@ while($csv = fgetcsv($input, 0, ";")) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
$hausnummer = ADBHausnummerModel::getFirst([
|
||||
'ortschaft_id' => $ortschaft->id,
|
||||
//'plz_id' => $plz->id,
|
||||
'strasse_id' => $strasse->id,
|
||||
'hausnummer' => $hausnummer_string
|
||||
]);
|
||||
|
||||
if($hausnummer) {
|
||||
// update plz if necessary
|
||||
//var_dump($hausnummer->plz);exit;
|
||||
if($hausnummer->plz->plz != $plz->plz ) {
|
||||
echo "Updating PLZ from ".$hausnummer->plz->plz." to ".$plz->plz."\n";
|
||||
$hausnummer->plz_id = $plz->id;
|
||||
$hausnummer->save();
|
||||
}
|
||||
|
||||
} else {
|
||||
// create new Hausnummer
|
||||
$hausnummer = ADBHausnummerModel::create([
|
||||
"netzgebiet_id" => 0,
|
||||
"ortschaft_id" => $ortschaft->id,
|
||||
"plz_id" => $plz->id,
|
||||
"strasse_id" => $strasse->id,
|
||||
"hausnummer" => $hausnummer_string
|
||||
]);
|
||||
if(!$hausnummer->save()) {
|
||||
die("Error creating Hausnummer: ".print_r($hausnummer, true));
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
$current_skz = $skz;
|
||||
@@ -502,14 +471,14 @@ function getStrasse($kz) {
|
||||
function getPlz($plz_search, $gemeinde_id) {
|
||||
global $plz_cache;
|
||||
|
||||
if(array_key_exists("$plz_search.$gemeinde_id", $plz_cache)) {
|
||||
return $plz_cache["$plz_search.$gemeinde_id"];
|
||||
if(array_key_exists("$plz_search-$gemeinde_id", $plz_cache)) {
|
||||
return $plz_cache["$plz_search-$gemeinde_id"];
|
||||
}
|
||||
|
||||
$plz = ADBPlzModel::getFirst(['plz' => $plz_search, "gemeinde_id" => $gemeinde_id]);
|
||||
if(!$plz) {
|
||||
return false;
|
||||
}
|
||||
$plz_cache[$plz_search] = $plz;
|
||||
$plz_cache["$plz_search-$gemeinde_id"] = $plz;
|
||||
return $plz;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user