Added RML Import & subcd
This commit is contained in:
@@ -171,7 +171,7 @@
|
||||
<?php foreach($addresses as $address): ?>
|
||||
<tr>
|
||||
<td><?=$address->netzgebiet->name?></td>
|
||||
<td><?=$address->adrcd?></td>
|
||||
<td><?=$address->adrcd?><?=($address->subcd) ? "-".$address->subcd : ""?></td>
|
||||
<td><?=$address->oaid?></td>
|
||||
<td><?=$address->extref?></td>
|
||||
<td><?=$address->plz->plz?></td>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<td class="text-monospace text-pink"><?=$address->oaid?></td>
|
||||
</tr><tr>
|
||||
<th>ADRCD</th>
|
||||
<td class="text-monospace"><?=$address->adrcd?></td>
|
||||
<td class="text-monospace"><?=$address->adrcd?><?=($address->subcd) ? "-".$address->subcd : ""?></td>
|
||||
</tr><tr>
|
||||
<th>Extref</th>
|
||||
<td><?=$address->extref?></td>
|
||||
@@ -76,6 +76,9 @@
|
||||
</tr><tr>
|
||||
<th>Straße / Hausnummer</th>
|
||||
<td><?=$address->strasse->name?> <?=$address->hausnummer?></td>
|
||||
</tr><tr>
|
||||
<th>Adresszusatz</th>
|
||||
<td><?=$address->zusatz?></td>
|
||||
</tr><tr>
|
||||
<th>PLZ / Ort</th>
|
||||
<td><?=$address->plz->plz?> <?=$address->ortschaft->name?></td>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
class ADBHausnummer extends mfBaseModel {
|
||||
protected $forcestr = ["oaid","adrcd","subcd","extref","hausnummer","zusatz","grund_nr","gdaeigenschaft","meridian","rollout_info","rimo_fcp_name"];
|
||||
protected $forcestr = ["oaid","adrcd","extref","hausnummer","zusatz","grund_nr","gdaeigenschaft","meridian","rollout_info","rimo_fcp_name"];
|
||||
private $netzgebiet;
|
||||
private $ortschaft;
|
||||
private $strasse;
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
class ADBHausnummerModel {
|
||||
public $oaid;
|
||||
public $adrcd;
|
||||
public $subcd;
|
||||
public $netzgebiet_id;
|
||||
public $extref;
|
||||
public $ortschaft_id;
|
||||
@@ -179,6 +180,15 @@ class ADBHausnummerModel {
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("subcd", $filter)) {
|
||||
$subcd = FronkDB::singleton()->escape($filter['subcd']);
|
||||
if($subcd === false || $subcd === null) {
|
||||
$where .= " AND (Hausnummer.`subcd` IS NULL OR Hausnummer.`subcd` = 0)";
|
||||
}
|
||||
if($subcd) {
|
||||
$where .= " AND Hausnummer.`subcd` = $subcd";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("oaid", $filter)) {
|
||||
$oaid = FronkDB::singleton()->escape($filter['oaid']);
|
||||
|
||||
@@ -23,6 +23,7 @@ class AddressDB {
|
||||
`Hausnummer`.`id` AS `hausnummer_id`,
|
||||
`Hausnummer`.`oaid` AS `oaid`,
|
||||
`Hausnummer`.`adrcd` AS `adrcd`,
|
||||
`Hausnummer`.`subcd` AS `subcd`,
|
||||
`Hausnummer`.`oaid` AS `hausnummer_oaid`,
|
||||
`Hausnummer`.`hausnummer` AS `hausnummer`,
|
||||
`Hausnummer`.`extref` AS `hausnummer_extref`,
|
||||
@@ -230,6 +231,20 @@ class AddressDB {
|
||||
$me = new User();
|
||||
$me->loadMe();
|
||||
|
||||
$adrcd = null;
|
||||
$subcd = null;
|
||||
|
||||
if(array_key_exists("adrcd", $data) && $data["adrcd"]) {
|
||||
$adr = trim($data["adrcd"]);
|
||||
$adr_parts = explode("-", $adr);
|
||||
if(count($adr_parts)) {
|
||||
$adrcd = $adr_parts[0];
|
||||
if(array_key_exists(1, $adr_parts)) {
|
||||
$subcd = $adr_parts[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// build hausnummer data
|
||||
//$hausnummer_data['oaid'] = (array_key_exists("oaid", $data) && $data['oaid']) ? $data['oaid'] : null;
|
||||
$hausnummer_data['adrcd'] = ($data['adrcd']) ? $data['adrcd'] : null;
|
||||
|
||||
34
db/migrations/20240202152709_hausnummer_add_subcd.php
Normal file
34
db/migrations/20240202152709_hausnummer_add_subcd.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Phinx\Migration\AbstractMigration;
|
||||
|
||||
final class HausnummerAddSubcd extends AbstractMigration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
if($this->getEnvironment() == "thetool") {
|
||||
|
||||
}
|
||||
|
||||
if($this->getEnvironment() == "addressdb") {
|
||||
$table = $this->table("Hausnummer");
|
||||
$table->addColumn("subcd", "integer", ["null" => true, "default" => null, "after" => "adrcd"]);
|
||||
$table->addIndex(["adrcd", "subcd"]);
|
||||
$table->update();
|
||||
}
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
if($this->getEnvironment() == "thetool") {
|
||||
|
||||
}
|
||||
|
||||
if($this->getEnvironment() == "addressdb") {
|
||||
$table = $this->table("Hausnummer");
|
||||
$table->removeIndex(["adrcd", "subcd"]);
|
||||
$table("Hausnummer")->removeColumn("subcd");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ class Network_60670_1 {
|
||||
*/
|
||||
|
||||
// dererence input array keys into copies
|
||||
foreach(["strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
foreach(["name", "strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$$var = $data[$var];
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ class Network_60670_1 {
|
||||
|
||||
|
||||
// put new values back into original pointer
|
||||
foreach(["strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
foreach(["name", "strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$data[$var] = $$var;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace ADBRimoImport\ADBAddressHelper\Network;
|
||||
|
||||
/*
|
||||
* Netzgebiet
|
||||
* Premstätten Süd
|
||||
*/
|
||||
class Network_60670_2 {
|
||||
|
||||
public function checkAddress($data) {
|
||||
/*
|
||||
* array keys are a reference their original variables and must be manipulated directly
|
||||
*/
|
||||
|
||||
// dererence input array keys into copies
|
||||
foreach(["name", "strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$$var = $data[$var];
|
||||
}
|
||||
|
||||
if($name == "25158424") $name = "25010770";
|
||||
if($name == "25013230") return false; // ziegelstraße 32 doppelt
|
||||
if($name == "25012523") return false; // Hauptstrasse 134 doppelt
|
||||
|
||||
//if($strasse_name == "Schweizerweg") continue;
|
||||
if($strasse_name == "Am Seegrund Parz.") return false;
|
||||
if($strasse_name == "Seering Parz.") {
|
||||
$strasse_name = "Seering";
|
||||
$hausnummer_name = "Parz. $hausnummer_name";
|
||||
}
|
||||
|
||||
if($strasse_name == "Dr.Karl-Renner-Weg") $strasse_name = "Dr.-Karl-Renner-Weg";
|
||||
if($strasse_name == "Doktor-Karl-Renner-Weg") $strasse_name = "Dr.-Karl-Renner-Weg";
|
||||
if($strasse_name == "Bierbaumer Strasse") $strasse_name = "Bierbaumerstrasse";
|
||||
|
||||
if($ort_name == "Oberpremstaetten") $ort_name = "Oberpremstätten";
|
||||
|
||||
// put new values back into original pointer
|
||||
foreach(["name", "strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$data[$var] = $$var;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@ class Network_61105 {
|
||||
*/
|
||||
|
||||
// dererence input array keys into copies
|
||||
foreach(["strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
foreach(["name", "strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$$var = $data[$var];
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ class Network_61105 {
|
||||
|
||||
|
||||
// put new values back into original pointer
|
||||
foreach(["strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
foreach(["name", "strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$data[$var] = $$var;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ class Network_C03070 {
|
||||
*/
|
||||
|
||||
// dererence input array keys into copies - makes variables available in scope
|
||||
foreach(["strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
foreach(["name", "strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$$var = $data[$var];
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ class Network_C03070 {
|
||||
|
||||
|
||||
// put new values back into original pointer
|
||||
foreach(["strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
foreach(["name", "strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$data[$var] = $$var;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace ADBRimoImport\ADBAddressHelper\Network;
|
||||
|
||||
/*
|
||||
* Netzgebiet
|
||||
* Premstätten Süd
|
||||
*/
|
||||
class Network_P_J5B3Q {
|
||||
|
||||
public function checkAddress($data) {
|
||||
/*
|
||||
* array keys are a reference their original variables and must be manipulated directly
|
||||
*/
|
||||
|
||||
// dereference input array keys into copies
|
||||
foreach(["name", "strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$$var = $data[$var];
|
||||
}
|
||||
|
||||
|
||||
// put new values back into original pointer
|
||||
foreach(["name", "strasse_name", "hausnummer_name", "addresszusatz", "gem_kz", "gem_name", "ort_name", "plz_name"] as $var) {
|
||||
$data[$var] = $$var;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -48,7 +48,15 @@ class AddressHelper {
|
||||
$addresszusatz = "";
|
||||
|
||||
$m = [];
|
||||
if(preg_match('/^(\D+)\s+(\d+[a-z0-9\/&#._-]*)(?:\s+((?:gesch(?:ae|ä)ft|werkstatt|betrieb und wohnungen|stg|paketlogistik|cafe|pavillon|pfarrheim|[^ ]*haus|[^ ]*geb(?:ae|ä)ude|[^ ]*halle|[^ ]*schule|Öhlmühle)(?:\s+[a-z0-9]+)?))?/i', $strasse_hausnummer, $m)) {
|
||||
// Lantschern GST 1/5
|
||||
|
||||
if(preg_match('/^(.+)\s+((?:GNR|GST)\s+\.?\d+[a-z0-9\/&#._-]*)(.+)?/i', $strasse_hausnummer, $m)) {
|
||||
$strasse_name = trim($m[1]);
|
||||
$hausnummer_name = trim($m[2]);
|
||||
if(array_key_exists(3, $m)) {
|
||||
$addresszusatz = trim($m[3]);
|
||||
}
|
||||
} elseif(preg_match('/^(\D+)\s+(\d+[a-z0-9\/&#._-]*)(?:\s+((?:gesch(?:ae|ä)ft|werkstatt|betrieb und wohnungen|stg|paketlogistik|cafe|pavillon|pfarrheim|[^ ]*haus|[^ ]*geb(?:ae|ä)ude|[^ ]*halle|[^ ]*schule|Öhlmühle)(?:\s+[a-z0-9]+)?))?/i', $strasse_hausnummer, $m)) {
|
||||
$strasse_name = trim($m[1]);
|
||||
$hausnummer_name = trim($m[2]);
|
||||
if(array_key_exists(3, $m)) {
|
||||
@@ -60,11 +68,13 @@ class AddressHelper {
|
||||
if(array_key_exists(3, $m)) {
|
||||
$addresszusatz = trim($m[3]);
|
||||
}
|
||||
} elseif(preg_match('/^(.+)/i', $strasse_hausnummer, $m)) {
|
||||
} else {
|
||||
return false;
|
||||
} /* elseif(preg_match('/^(.+)/i', $strasse_hausnummer, $m)) {
|
||||
// ignore GST objects
|
||||
return false;
|
||||
$strasse_name = trim($m[1]);
|
||||
}
|
||||
}*/
|
||||
|
||||
return [$strasse_name, $hausnummer_name, $addresszusatz];
|
||||
}
|
||||
@@ -81,12 +91,17 @@ class AddressHelper {
|
||||
}
|
||||
|
||||
$name = trim($building->name);
|
||||
|
||||
$strasse_hausnummer = trim($building->address->name);
|
||||
[$strasse_name, $hausnummer_name, $addresszusatz] = $this->splitStreetHausnummer($strasse_hausnummer);
|
||||
$strasse_name = $this->db->escape($strasse_name);
|
||||
$hausnummer_name = $this->db->escape($hausnummer_name);
|
||||
$addresszusatz = $this->db->escape($addresszusatz);
|
||||
$split_result = $this->splitStreetHausnummer($strasse_hausnummer);
|
||||
|
||||
if(!$split_result) {
|
||||
echo "[EE] Hausnummer nicht gefunden in '$strasse_hausnummer' ($rimo_id)\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
$strasse_name = $this->db->escape($split_result[0]);
|
||||
$hausnummer_name = $this->db->escape( $split_result[1]);
|
||||
$addresszusatz = $this->db->escape($split_result[2]);
|
||||
|
||||
$gem_kz = $this->db->escape(trim($building->municipality->name));
|
||||
$gem_name = $this->db->escape(trim($building->municipality->userLabel));
|
||||
@@ -100,14 +115,27 @@ class AddressHelper {
|
||||
$lot_num = $building->address->lotNumber;
|
||||
$fcp_name = false;
|
||||
|
||||
$adrcd = false;
|
||||
$subcd = false;
|
||||
$adr = trim($building->foreignId2);
|
||||
$adr_parts = explode("-", $adr);
|
||||
if(count($adr_parts)) {
|
||||
$adrcd = $adr_parts[0];
|
||||
if(array_key_exists(1, $adr_parts)) {
|
||||
$subcd = $adr_parts[1];
|
||||
}
|
||||
}
|
||||
|
||||
$addr_dbg_str = "strasse_hausnummer: $strasse_hausnummer | zusatz: $addresszusatz | gemkz: $gem_kz | gem_name: $gem_name | ort_name: $ort_name | plz_name: $plz_name | adrcd: $adr | $rimo_id";
|
||||
|
||||
if(!$hausnummer_name || !$gem_name || !$plz_name || !$ort_name || !$strasse_name) {
|
||||
echo "[WW] Adressbestandteil fehlt ($addr_dbg_str)\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
$addr_dbg_str = "strasse: $strasse_name | hausnummer: $hausnummer_name | zusatz: $addresszusatz | gemkz: $gem_kz | gem_name: $gem_name | ort_name: $ort_name | plz_name: $plz_name | $rimo_id";
|
||||
|
||||
// pass variables by ref, so they can be manipulated directly
|
||||
$continue = $this->NetworkHelper->checkAddress([
|
||||
"name" => &$name,
|
||||
"strasse_name" => &$strasse_name,
|
||||
"hausnummer_name" => &$hausnummer_name,
|
||||
"addresszusatz" => &$addresszusatz,
|
||||
@@ -118,25 +146,20 @@ class AddressHelper {
|
||||
]);
|
||||
|
||||
if(!$continue) {
|
||||
echo "[WW] ($addr_dbg_str) Wurde aussortiert\n";
|
||||
echo "[II] ($addr_dbg_str) Wurde aussortiert\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$gemeinde = \ADBGemeindeModel::getFirst(["kennziffer" => $gem_kz]);
|
||||
if(!$gemeinde) {
|
||||
$this->log->warning("[EE] ($addr_dbg_str) Gemeinde nicht gefunden (name: $gem_name, Kennzahl: $gem_kz");
|
||||
echo "[EE] ($addr_dbg_str) Gemeinde $gem_name $gem_kz nicht gefunden\n";
|
||||
//$this->log->warning("[EE] Gemeinde $gem_name $gem_kz nicht gefunden ($addr_dbg_str)");
|
||||
echo "[EE] Gemeinde '$gem_name' / '$gem_kz' nicht gefunden ($addr_dbg_str)\n";
|
||||
return false;
|
||||
}
|
||||
$gemeinde_id = $gemeinde->id;
|
||||
|
||||
$adrcd = false;
|
||||
$adr = trim($building->foreignId2);
|
||||
$adr_parts = explode("-", $adr);
|
||||
if(count($adr_parts)) {
|
||||
$adrcd = $adr_parts[0];
|
||||
}
|
||||
|
||||
|
||||
$hausnummer = \ADBHausnummerModel::getFirst(["rimo_id" => $rimo_id]);
|
||||
|
||||
@@ -146,7 +169,14 @@ class AddressHelper {
|
||||
|
||||
if($adrcd && !$hausnummer) {
|
||||
// get Hausnummer to update
|
||||
$hausnummer = \ADBHausnummerModel::getFirst(['adrcd' => $adrcd]);
|
||||
if($subcd > 1) {
|
||||
$hausnummer = \ADBHausnummerModel::getFirst(['adrcd' => $adrcd, "subcd" => $subcd]);
|
||||
} else {
|
||||
$hausnummer = \ADBHausnummerModel::getFirst(['adrcd' => $adrcd, "subcd" => "1"]);
|
||||
if(!$hausnummer) {
|
||||
$hausnummer = \ADBHausnummerModel::getFirst(['adrcd' => $adrcd, "subcd" => null]);
|
||||
}
|
||||
}
|
||||
/*if(!$hausnummer) {
|
||||
//echo "Hausnummer adrcd $adrcd not found\n";
|
||||
} else {
|
||||
@@ -160,31 +190,61 @@ class AddressHelper {
|
||||
if(!$hausnummer) {
|
||||
// hausnummer anlegen
|
||||
|
||||
$strasse = \ADBStrasseModel::getFirst(["gemeinde_id" => $gemeinde_id, "name" => $strasse_name]);
|
||||
//if(!$strasse) die("Strasse $strasse_name (gemeinde_id $gemeinde_id; gem_kz $gem_kz) nicht gefunden\n");
|
||||
if(!$strasse) {
|
||||
$strasse = $this->createStreet($gemeinde_id, $strasse_name);
|
||||
if(!$strasse) {
|
||||
echo "[EE] ($addr_dbg_str) Konnte Strasse $strasse_name in Gemeinde $gemeinde_id nicht anlegen\n";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$plz = \ADBPlzModel::getFirst(["gemeinde_id" => $gemeinde_id, "plz" => $plz_name]);
|
||||
if(!$plz) {
|
||||
echo "[EE] ($addr_dbg_str) PLZ $plz_name nicht gefunden\n";
|
||||
echo "[EE] PLZ '$plz_name' nicht gefunden ($addr_dbg_str)\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
$ortschaft = \ADBOrtschaftModel::getFirst(["gemeinde_id" => $gemeinde_id, "name" => $ort_name]);
|
||||
if(!$ortschaft) {
|
||||
echo "[EE] ($addr_dbg_str) Ortschaft $ort_name nicht gefunden\n";
|
||||
echo "[EE] Ortschaft '$ort_name' nicht gefunden ($addr_dbg_str) \n";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$strasse = \ADBStrasseModel::getFirst(["gemeinde_id" => $gemeinde_id, "name" => $strasse_name]);
|
||||
if(!$strasse) {
|
||||
// try finding strasse with ortschaft prefix
|
||||
$prefix = ($ortschaft->name) ? $ortschaft->name : $gemeinde->name;
|
||||
|
||||
/*if(!$prefix) {
|
||||
echo "[EE] ----------- Kein Prefix\n"; // should not happen
|
||||
return false;
|
||||
}*/
|
||||
|
||||
if($prefix && strpos($strasse_name, "$prefix ") === 0) {
|
||||
$strasse_name_sansprefix = substr($strasse_name, strlen($prefix)+1);
|
||||
if(!$strasse_name_sansprefix) {
|
||||
echo "[EE] Fehler beim prefix entfernen von strasse_name $strasse_name\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
$strasse = \ADBStrasseModel::getFirst(["gemeinde_id" => $gemeinde_id, "name" => "$strasse_name_sansprefix"]);
|
||||
/*if($strasse) {
|
||||
echo "Found strasse '$strasse_name' without prefix '$prefix' (gemeinde_id => $gemeinde_id, name => $strasse_name_sansprefix) ($rimo_id)\n";
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
if(!$strasse) {
|
||||
echo "[EE] Straße '$strasse_name' nicht gefunden ($addr_dbg_str)\n";
|
||||
return false;
|
||||
|
||||
echo "[II] Erstelle Strasse '$strasse_name' ($addr_dbg_str)\n";
|
||||
$strasse = $this->createStreet($gemeinde_id, $strasse_name);
|
||||
if(!$strasse) {
|
||||
echo "[EE] Konnte Strasse '$strasse_name' in Gemeinde '$gemeinde_id' nicht anlegen ($addr_dbg_str)\n";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
$hausnummer_data = [
|
||||
"netzgebiet_id" => $this->netzgebiet->id,
|
||||
"adrcd" => ($adrcd) ? $adrcd : null,
|
||||
"subcd" => ($subcd) ? $subcd : null,
|
||||
"extref" => $name,
|
||||
"ortschaft_id" => $ortschaft->id,
|
||||
"plz_id" => $plz->id,
|
||||
@@ -195,7 +255,7 @@ class AddressHelper {
|
||||
"gps_lat" => $lat,
|
||||
"gps_long" => $long,
|
||||
"unit_count" => ($unit_count) ? $unit_count : 1,
|
||||
"freigabe" => $this->netzgebiet->default_freigabe,
|
||||
"freigabe" => $this->netzgebiet->freigabe,
|
||||
"rimo_id" => $rimo_id,
|
||||
"rimo_fcp_name" => ($fcp_name) ? $fcp_name : null
|
||||
];
|
||||
@@ -204,26 +264,37 @@ class AddressHelper {
|
||||
//echo "----------------------\ncreating hausnummer:\n";
|
||||
//print_r($hausnummer);
|
||||
$hausnummer->save();
|
||||
echo "[CC] Neues Gebäude erstellt ($addr_dbg_str)\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// update hausnummer
|
||||
if($hausnummer->netzgebiet_id != $this->netzgebiet->id) {
|
||||
$hausnummer->netzgebiet_id = $this->netzgebiet->id;
|
||||
//$hausnummer->save();
|
||||
$hausnummer->save();
|
||||
}
|
||||
if($hausnummer->extref != $name) {
|
||||
$hausnummer->extref = $name;
|
||||
//$hausnummer->save();
|
||||
$hausnummer->save();
|
||||
}
|
||||
if($lat && $long) {
|
||||
$hausnummer->gps_lat = (float)$lat;
|
||||
$hausnummer->gps_long = (float)$long;
|
||||
$hausnummer->save();
|
||||
}
|
||||
if($hausnummer->rimo_id != $rimo_id) {
|
||||
$hausnummer->rimo_id = $rimo_id;
|
||||
$hausnummer->save();
|
||||
}
|
||||
|
||||
if($hausnummer->rimo_fcp_name != $fcp_name) {
|
||||
$hausnummer->rimo_fcp_name = $fcp_name;
|
||||
$hausnummer->save();
|
||||
}
|
||||
if($rimo_id) $hausnummer->rimo_id = $rimo_id;
|
||||
if($fcp_name) $hausnummer->rimo_fcp_name = $fcp_name;
|
||||
//$hausnummer->freigabe = $this->netzgebiet->default_freigabe;
|
||||
$hausnummer->save();
|
||||
|
||||
//echo ">>>>>>>>>>>>>>>>>>>\nupdating hausnummer:";
|
||||
//print_r($hausnummer);exit;
|
||||
return $hausnummer;
|
||||
@@ -266,6 +337,7 @@ class AddressHelper {
|
||||
// get Hausnummer to update
|
||||
//echo "Hausnummer per Suche gefunden\n";
|
||||
$data = $this->db->fetch_object($res);
|
||||
//echo "found by strasse/hausnummer/gemeinde\n";
|
||||
return new \ADBHausnummer($data->hausnummer_id);
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -24,137 +24,157 @@ $mainlog = \mfLoghandler::singleton();
|
||||
$log = new \mfLog_File();
|
||||
$log->init(BASEDIR."/var/log/rimo-import.log");
|
||||
|
||||
$apiOwner = "estmk";
|
||||
$apiEdition = "prod";
|
||||
$apiData = TT_RIMO_API_CREDS[$apiOwner][$apiEdition];
|
||||
$usage = "Usage: ".$argv[0]." [argument]\n\nAvailable arguments:\n\t--list-rimo-clusters\tLists Clusters returned by Rimo API, then exits\n\t--help\t\t\tLists available arguments\n\nRuns import when no argument is given\n\n";
|
||||
$command = false;
|
||||
|
||||
$apiUrl = $apiData["url"];
|
||||
$apiToken = $apiData["key"];
|
||||
|
||||
$epGetClusters = $apiUrl.RIMO_API_JSON_EP_GET_CLUSTERS;
|
||||
$epGetBuildings = $apiUrl.RIMO_API_JSON_EP_GET_BUILDINGS;
|
||||
$epGetWorkorders = $apiUrl.RIMO_API_JSON_EP_QUERY_WORKORDERS;
|
||||
$epGetService = $apiUrl.RIMO_API_JSON_EP_QUERY_SERVICE;
|
||||
|
||||
/*
|
||||
if(!defined("RIMO_API_JSON_APIKEY_PROD")) {
|
||||
die("rimo api token not defined!");
|
||||
}*/
|
||||
|
||||
$import_count = 0;
|
||||
|
||||
$baseParams = ['apiKey' => $apiToken];
|
||||
|
||||
$ctxOptsPost = [
|
||||
'http' => [
|
||||
'method' => 'POST',
|
||||
'header' => 'accept: application/json'
|
||||
]
|
||||
];
|
||||
|
||||
$ctxOptsGet = [
|
||||
'http' => [
|
||||
'method' => 'GET',
|
||||
'header' => 'accept: application/json'
|
||||
]
|
||||
];
|
||||
|
||||
$adb = \FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||
|
||||
|
||||
/*
|
||||
* Get RIMO Sales Clusters
|
||||
*/
|
||||
|
||||
$params = $baseParams;
|
||||
$qs = http_build_query($params);
|
||||
|
||||
$req_url = $epGetClusters."?".$qs;
|
||||
$req_ctx = stream_context_create($ctxOptsGet);
|
||||
|
||||
//echo $req_url."\n";
|
||||
$responseText = file_get_contents($req_url, false, $req_ctx);
|
||||
if($responseText === false) {
|
||||
echo "Error fetching clusters\n";
|
||||
exit;
|
||||
if($argc > 1) {
|
||||
if($argv[1] == "--list-rimo-clusters") {
|
||||
$command = "list-rimo-clusters";
|
||||
} elseif($argv[1] == "--help") {
|
||||
echo $usage;
|
||||
exit(0);
|
||||
} else {
|
||||
die("Invalid argument.\n\n$usage");
|
||||
}
|
||||
}
|
||||
|
||||
$clustersResponse = json_decode($responseText);
|
||||
//var_dump($clustersResponse);
|
||||
//exit;
|
||||
if(!is_object($clustersResponse) || !property_exists($clustersResponse, "item") || !is_array($clustersResponse->item) || !count($clustersResponse->item)) {
|
||||
die("Invalid GetClusters Response\n");
|
||||
}
|
||||
|
||||
foreach($clustersResponse->item as $cluster) {
|
||||
$cluster_rimo_id = $cluster->id;
|
||||
//echo "##################################################\n";
|
||||
//echo "$cluster_rimo_id | name: ".$cluster->name."; label: ".$cluster->userLabel."\n";
|
||||
//continue;
|
||||
$adb_netzgebiet = \ADBNetzgebietModel::getFirst(['rimo_id' => $cluster_rimo_id]);
|
||||
if(!$adb_netzgebiet) {
|
||||
//echo "Kein Netzgebiet für Salescluster $cluster_rimo_id (".$cluster->name.")\n";
|
||||
continue;
|
||||
foreach(["estmk", "rml"] as $apiOwner) {
|
||||
$apiEdition = "prod";
|
||||
$apiData = TT_RIMO_API_CREDS[$apiOwner][$apiEdition];
|
||||
|
||||
$apiUrl = $apiData["url"];
|
||||
$apiToken = $apiData["key"];
|
||||
|
||||
if(!$apiUrl || !$apiToken) {
|
||||
echo "Api Daten für $apiOwner unvollständig\n";
|
||||
}
|
||||
|
||||
$epGetClusters = $apiUrl.RIMO_API_JSON_EP_GET_CLUSTERS;
|
||||
$epGetBuildings = $apiUrl.RIMO_API_JSON_EP_GET_BUILDINGS;
|
||||
$epGetWorkorders = $apiUrl.RIMO_API_JSON_EP_QUERY_WORKORDERS;
|
||||
$epGetService = $apiUrl.RIMO_API_JSON_EP_QUERY_SERVICE;
|
||||
|
||||
if($cluster_rimo_id != "SDISalesCluster_40295863041_1679040094") {
|
||||
// st. stefan ob stainz
|
||||
continue;
|
||||
}
|
||||
$import_count = 0;
|
||||
|
||||
$baseParams = ['apiKey' => $apiToken];
|
||||
$ctxOptsPost = [
|
||||
'http' => [
|
||||
'method' => 'POST',
|
||||
'header' => 'accept: application/json'
|
||||
]
|
||||
];
|
||||
$ctxOptsGet = [
|
||||
'http' => [
|
||||
'method' => 'GET',
|
||||
'header' => 'accept: application/json'
|
||||
]
|
||||
];
|
||||
|
||||
$adb = \FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME);
|
||||
|
||||
$AddressHelper = new ADBAddressHelper\AddressHelper(["log" => $log, "db" => $adb, "netzgebiet" => $adb_netzgebiet]);
|
||||
|
||||
/*
|
||||
* Get Buildings per SalesCluster
|
||||
* Get RIMO Sales Clusters
|
||||
*/
|
||||
|
||||
$params = $baseParams;
|
||||
$params["clusterId"] = $cluster_rimo_id;
|
||||
$qs = http_build_query($params);
|
||||
|
||||
$req_url = $epGetBuildings."?".$qs;
|
||||
|
||||
$req_url = $epGetClusters."?".$qs;
|
||||
$req_ctx = stream_context_create($ctxOptsGet);
|
||||
|
||||
|
||||
//echo $req_url."\n";
|
||||
$responseText = file_get_contents($req_url, false, $req_ctx);
|
||||
|
||||
if($responseText === false) {
|
||||
echo "Error fetching Buildings in cluster $cluster_rimo_id (".$cluster->name.")\n";
|
||||
echo "($apiOwner) Error fetching clusters\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$buildingsResponse = json_decode($responseText);
|
||||
|
||||
$hausnummer_count = 0;
|
||||
$hausnummer_found_count = 0;
|
||||
$homes_count = 0;
|
||||
$clustersResponse = json_decode($responseText);
|
||||
//var_dump($clustersResponse);
|
||||
//exit;
|
||||
if(!is_object($clustersResponse) || !property_exists($clustersResponse, "item") || !is_array($clustersResponse->item) || !count($clustersResponse->item)) {
|
||||
die("($apiOwner) Invalid GetClusters Response\n");
|
||||
}
|
||||
|
||||
if(is_object($buildingsResponse) && property_exists($buildingsResponse, "item") && is_array($buildingsResponse->item) && count($buildingsResponse->item)) {
|
||||
foreach($buildingsResponse->item as $building) {
|
||||
//var_dump($building);
|
||||
if($building->buildingType && $building->buildingType->userLabel != "Greenfield") {
|
||||
foreach($clustersResponse->item as $cluster) {
|
||||
$cluster_rimo_id = $cluster->id;
|
||||
$cluster_name = $cluster->name;
|
||||
//echo "##################################################\n";
|
||||
|
||||
if($command == "list-rimo-clusters") {
|
||||
echo "($apiOwner) $cluster_rimo_id | name: ".$cluster->name."; label: ".$cluster->userLabel."\n";
|
||||
continue;
|
||||
}
|
||||
$adb_netzgebiet = \ADBNetzgebietModel::getFirst(['rimo_id' => $cluster_rimo_id]);
|
||||
if(!$adb_netzgebiet) {
|
||||
//echo "Kein Netzgebiet für Salescluster $cluster_rimo_id (".$cluster->name.")\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
/*if($cluster_rimo_id != "SDISalesCluster_234854956801_1688569233") {
|
||||
// rml irdning/donnersbachtal
|
||||
continue;
|
||||
}*/
|
||||
|
||||
$AddressHelper = new ADBAddressHelper\AddressHelper(["log" => $log, "db" => $adb, "netzgebiet" => $adb_netzgebiet]);
|
||||
|
||||
/*
|
||||
* Get Buildings per SalesCluster
|
||||
*/
|
||||
$params = $baseParams;
|
||||
$params["clusterId"] = $cluster_rimo_id;
|
||||
$qs = http_build_query($params);
|
||||
|
||||
$req_url = $epGetBuildings."?".$qs;
|
||||
$req_ctx = stream_context_create($ctxOptsGet);
|
||||
|
||||
//echo $req_url."\n";
|
||||
$responseText = file_get_contents($req_url, false, $req_ctx);
|
||||
|
||||
if($responseText === false) {
|
||||
echo "Error fetching Buildings in cluster $cluster_rimo_id (".$cluster->name.")\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$buildingsResponse = json_decode($responseText);
|
||||
|
||||
$hausnummer_count = 0;
|
||||
$hausnummer_found_count = 0;
|
||||
$homes_count = 0;
|
||||
|
||||
if(is_object($buildingsResponse) && property_exists($buildingsResponse, "item") && is_array($buildingsResponse->item) && count($buildingsResponse->item)) {
|
||||
foreach($buildingsResponse->item as $building) {
|
||||
//var_dump($building);
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
$hausnummer_count++;
|
||||
// ignore buildings without units
|
||||
if(!$building->plannedTU) {
|
||||
continue;
|
||||
}
|
||||
if($building->buildingType && $building->buildingType->userLabel != "Greenfield" && $building->homesCount > 0 && property_exists($building->homes, "item") && is_array($building->homes->item) && count($building->homes->item)) {
|
||||
//print_r($building);exit;
|
||||
if($building->buildingType && $building->buildingType->userLabel == "Greenfield") {
|
||||
//echo $building->id.": ignoring Greenfield\n";
|
||||
continue;
|
||||
}
|
||||
$hausnummer_count++;
|
||||
|
||||
/*
|
||||
// ignore buildings without units
|
||||
if(!$building->plannedTU) {
|
||||
echo $building->id.": no planned TUs\n";
|
||||
continue;
|
||||
}*/
|
||||
|
||||
|
||||
$rimo_building_id = $building->id;
|
||||
$hausnummer = $AddressHelper->findUpdateAddressFromRimoBuilding($building);
|
||||
if(!$hausnummer) {
|
||||
echo "Adresse nicht gefunden: $rimo_building_id\n";
|
||||
//echo "Adresse nicht gefunden: $rimo_building_id\n";
|
||||
continue;
|
||||
}
|
||||
$hausnummer_found_count++;
|
||||
|
||||
if(!property_exists($building->homes, "item") || !is_array($building->homes->item) | !count($building->homes->item)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$rimo_home_count = count($building->homes->item);
|
||||
|
||||
|
||||
$last_unit_num = 0;
|
||||
$existing_units = [];
|
||||
foreach(\ADBWohneinheitModel::search(["hausnummer_id" => $hausnummer->id]) as $unit) {
|
||||
@@ -163,15 +183,15 @@ foreach($clustersResponse->item as $cluster) {
|
||||
$last_unit_num++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
foreach($building->homes->item as $home) {
|
||||
//print_r($home);//exit;
|
||||
$homes_count++;
|
||||
$home_rimo_id = $home->id;
|
||||
$home_name = $home->name;
|
||||
|
||||
|
||||
//echo "$home_rimo_id\n";
|
||||
|
||||
|
||||
if(array_key_exists($home_rimo_id, $existing_units)) {
|
||||
$unit = $existing_units[$home_rimo_id];
|
||||
} else {
|
||||
@@ -179,7 +199,7 @@ foreach($clustersResponse->item as $cluster) {
|
||||
$unit = \ADBWohneinheitModel::getFirst(["hausnummer_id" => $hausnummer->id, "extref" => null]);
|
||||
//echo "-- Using free unit\n";
|
||||
}
|
||||
|
||||
|
||||
if(!$unit) {
|
||||
// create unit
|
||||
$unit = \ADBWohneinheitModel::create([
|
||||
@@ -191,30 +211,30 @@ foreach($clustersResponse->item as $cluster) {
|
||||
die("Error saving new unit\n".print_r($home, true));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($unit->extref != $home_rimo_id) {
|
||||
$unit->extref = $home_rimo_id;
|
||||
if(!$unit->save()) {
|
||||
die("Error saving new extref on unit\n".print_r($home, true));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* TODO: Status based on execution-/operational-state
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* update FTU data
|
||||
*/
|
||||
$unit_extdata = new \StdClass();
|
||||
if($unit->external_data) {
|
||||
$extdata = json_decode($unit->external_data);
|
||||
|
||||
|
||||
if(is_object($extdata)) {
|
||||
$unit_extdata = $extdata;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(is_array($home->ftus->item) && $home->ftus->item[0]) {
|
||||
//echo "in ftu update\n";
|
||||
$ftu_data = new \StdClass();
|
||||
@@ -224,13 +244,13 @@ foreach($clustersResponse->item as $cluster) {
|
||||
if(!isset($unit_extdata->rimo)) {
|
||||
$unit_extdata->rimo = new \StdClass();
|
||||
}
|
||||
|
||||
|
||||
$unit_extdata->rimo->ftu = $ftu_data;
|
||||
$unit->external_data = json_encode($unit_extdata);
|
||||
if(!$unit->save()) {
|
||||
die("!!! Error saving unit extdata\n".print_f($unit));
|
||||
}
|
||||
|
||||
|
||||
// check OAID
|
||||
if(property_exists($home->ftus->item[0], "oaidObject") && is_object($home->ftus->item[0]->oaidObject) && $home->ftus->item[0]->oaidObject->name) {
|
||||
if($home->ftus->item[0]->oaidObject->name != $unit->oaid) {
|
||||
@@ -242,7 +262,7 @@ foreach($clustersResponse->item as $cluster) {
|
||||
echo "!!! Home hat fremde OAID: $rimo_oaid (Home ".$unit->id."\n";
|
||||
} else {
|
||||
$unit->oaid = $rimo_oaid;
|
||||
|
||||
|
||||
$oaid->assigned = date("U");
|
||||
$oaid->adb_wohneinheit_id = $unit->id;
|
||||
$oaid->termination_id = null;
|
||||
@@ -251,7 +271,7 @@ foreach($clustersResponse->item as $cluster) {
|
||||
if(!$oaid->exported) {
|
||||
$oaid->exported = date("U");
|
||||
}
|
||||
|
||||
|
||||
if($oaid->export_data) {
|
||||
$exp_data = json_decode($oaid->export_data);
|
||||
} else {
|
||||
@@ -265,14 +285,14 @@ foreach($clustersResponse->item as $cluster) {
|
||||
$exp_data->rimo->ftu_id = $ftu_data->id;
|
||||
$exp_data->rimo->ftu_name = $ftu_data->name;
|
||||
$exp_data->rimo->ftu_assigned_date = date("U");
|
||||
|
||||
|
||||
$oaid->exported_to = "rmio";
|
||||
$oaid->export_data = json_encode($exp_data);
|
||||
|
||||
|
||||
$oaid->save();
|
||||
$unit->save();
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
//
|
||||
}
|
||||
@@ -280,46 +300,46 @@ foreach($clustersResponse->item as $cluster) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// get ports from service
|
||||
$params = $baseParams;
|
||||
$params["homeId"] = $home_rimo_id;
|
||||
$qs = http_build_query($params);
|
||||
|
||||
|
||||
$req_url = $epGetService."?".$qs;
|
||||
$req_ctx = stream_context_create($ctxOptsGet);
|
||||
|
||||
|
||||
//echo $req_url."\n";
|
||||
$responseText = file_get_contents($req_url, false, $req_ctx);
|
||||
|
||||
|
||||
if($responseText === false) {
|
||||
//echo "Error fetching Service for Home $home_rimo_id\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$serviceResponse = json_decode($responseText);
|
||||
|
||||
|
||||
if(is_object($serviceResponse) && property_exists($serviceResponse, "item") && is_array($serviceResponse->item) && count($serviceResponse->item)) {
|
||||
foreach($serviceResponse->item as $service) {
|
||||
if($service->masterItem->name != "FTTx Service (red)") continue;
|
||||
if(!is_object($service->portA) || !$service->portA) continue;
|
||||
|
||||
|
||||
$fixedDN = $service->portA->fixEndDN;
|
||||
|
||||
if($fixedDN) {
|
||||
//echo "fixedDn found: $fixedDN\n";
|
||||
$dn = getServiceDnValues($fixedDN);
|
||||
if(array_key_exists("Shelf", $dn) && array_key_exists("PatchPanel", $dn) && array_key_exists("Port", $dn)) {
|
||||
$cluster = null;
|
||||
$sdicluster = null;
|
||||
if(array_key_exists("SDICluster", $dn)) {
|
||||
$cluster = $dn['SDICluster'];
|
||||
$sdicluster = $dn['SDICluster'];
|
||||
}
|
||||
$shelf = $dn['Shelf'];
|
||||
$patchpanel = $dn['PatchPanel'];
|
||||
$port = $dn['Port'];
|
||||
|
||||
if($cluster) {
|
||||
$unit->patch_cluster = $cluster;
|
||||
if($sdicluster) {
|
||||
$unit->patch_cluster = $sdicluster;
|
||||
$unit->save();
|
||||
}
|
||||
if($shelf) {
|
||||
@@ -338,53 +358,53 @@ foreach($clustersResponse->item as $cluster) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// get workorders
|
||||
$params = $baseParams;
|
||||
$params["buildingId"] = $rimo_building_id;
|
||||
$qs = http_build_query($params);
|
||||
|
||||
|
||||
$req_url = $epGetWorkorders."?".$qs;
|
||||
$req_ctx = stream_context_create($ctxOptsGet);
|
||||
|
||||
|
||||
//echo $req_url."\n";
|
||||
$responseText = file_get_contents($req_url, false, $req_ctx);
|
||||
|
||||
|
||||
if($responseText === false) {
|
||||
//echo "Error fetching Workorders for building $rimo_building_id\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
$workordersResponse = json_decode($responseText);
|
||||
|
||||
|
||||
//print_r($workordersResponse);exit;
|
||||
|
||||
|
||||
if(is_object($workordersResponse) && property_exists($workordersResponse, "item") && is_array($workordersResponse->item) && count($workordersResponse->item)) {
|
||||
foreach($workordersResponse->item as $workorder) {
|
||||
$rimo_workorder_id = $workorder->id;
|
||||
$rimo_workorder_name = $workorder->name;
|
||||
$workorder_status = $workorder->state->userLabel;
|
||||
$workorder_home_id = $workorder->home->id;
|
||||
|
||||
|
||||
$wo = \RimoWorkorderModel::getFirst(["rimo_id" => $rimo_workorder_id]);
|
||||
|
||||
|
||||
if($wo && $workorder_status != $wo->rimo_status) {
|
||||
//echo "Updating Workorder $rimo_workorder_id ($workorder_home_id)\n";
|
||||
$wo->rimo_status = $workorder_status;
|
||||
$wo->save();
|
||||
}
|
||||
|
||||
|
||||
if(!$wo) {
|
||||
$wo_home = \ADBWohneinheitModel::getFirst(["extref" => $workorder_home_id]);
|
||||
|
||||
|
||||
if(!$wo_home) {
|
||||
//echo "Home zu Workorder $rimo_workorder_id ($workorder_home_id) nicht gefunden\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
//echo "Creating Workorder $rimo_workorder_id ($workorder_home_id)\n";
|
||||
$wo = \RimoWorkorderModel::create([
|
||||
"adb_wohneinheit_id" => $wo_home->id,
|
||||
@@ -398,13 +418,10 @@ foreach($clustersResponse->item as $cluster) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//exit;
|
||||
|
||||
}
|
||||
|
||||
echo "Cluster $cluster_rimo_id ($cluster_name): $hausnummer_count Buildings; $hausnummer_found_count Buildings verarbeitet; $homes_count Homes verarbeitet.\n";
|
||||
}
|
||||
echo "Cluster $cluster->name: $hausnummer_count Buildings; $hausnummer_found_count Buildings verarbeitet; $homes_count Homes verarbeitet.\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -414,7 +431,7 @@ echo "\n";
|
||||
function getServiceDnValues($dn) {
|
||||
$dn = explode(":", $dn);
|
||||
$fields = [];
|
||||
|
||||
|
||||
foreach($dn as $d) {
|
||||
$m = [];
|
||||
if(preg_match('/^([^{]+)\{([^}]+)\}$/',$d, $m)) {
|
||||
@@ -423,7 +440,7 @@ function getServiceDnValues($dn) {
|
||||
}
|
||||
$value = $m[1];
|
||||
$key = $m[2];
|
||||
|
||||
|
||||
if(array_key_exists($key, $fields)) {
|
||||
if(is_array($fields[$key])) {
|
||||
$fields[$key][] = $value;
|
||||
@@ -438,12 +455,12 @@ function getServiceDnValues($dn) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(array_key_exists("Shelf", $fields) && is_array($fields['Shelf'])) {
|
||||
$shelf = implode(" ", $fields['Shelf']);
|
||||
$fields['Shelf'] = $shelf;
|
||||
}
|
||||
|
||||
|
||||
if(!array_key_exists("PatchPanel", $fields) && array_key_exists("Shelf", $fields)) {
|
||||
$m = [];
|
||||
if(preg_match('/^([MB]\d[^ ]*)\s+([MB]\d[^ ]*)/i', $fields['Shelf'], $m)) {
|
||||
@@ -460,6 +477,6 @@ function getServiceDnValues($dn) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $fields;
|
||||
}
|
||||
@@ -17,19 +17,34 @@ define("INTERNAL_USER_USERNAME", $me->username);
|
||||
|
||||
$ignore_preorders = [];
|
||||
|
||||
$campaign_prem_nord = 5;
|
||||
$campaign_prem_sued = 6;
|
||||
$campaign_gross_st_florian = 7;
|
||||
$campaign_kalwang = 41;
|
||||
$cmapaign_st_stefan_stainz = 36;
|
||||
$campaign_ids = [];
|
||||
$campaign_ids["premnord"] = 5;
|
||||
$campaign_ids["premsued"] = 6;
|
||||
$campaign_ids["gsf"] = 7;
|
||||
$campaign_ids["kalwang"] = 41;
|
||||
$campaign_ids["st_stefan_stainz"] = 36;
|
||||
|
||||
$selected_campaign = $cmapaign_st_stefan_stainz;
|
||||
if(!array_key_exists(1,$argv)) {
|
||||
|
||||
echo "Bitte eines der folgenden Netzgebiete angeben:\n\n";
|
||||
echo implode("\n", array_keys($campaign_ids));
|
||||
echo "\n\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(!array_key_exists($argv[1], $campaign_ids)) {
|
||||
die("Ungültige Kampagne\n");
|
||||
}
|
||||
|
||||
$selected_campaign = $campaign_ids[$argv[1]];
|
||||
|
||||
if(!$selected_campaign) {
|
||||
echo "Keine Kampagne ausgewählt.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
echo "selected campaign: $selected_campaign - ".$argv[1]."\n";
|
||||
|
||||
$same_unit_count = 0;
|
||||
$missing_units = [];
|
||||
$missing_doors = [];
|
||||
|
||||
@@ -17,19 +17,34 @@ define("INTERNAL_USER_USERNAME", $me->username);
|
||||
|
||||
$ignore_preorders = [];
|
||||
|
||||
$campaign_prem_nord = 5;
|
||||
$campaign_prem_sued = 6;
|
||||
$campaign_gross_st_florian = 7;
|
||||
$campaign_kalwang = 41;
|
||||
$cmapaign_st_stefan_stainz = 36;
|
||||
$campaign_ids = [];
|
||||
$campaign_ids["premnord"] = 5;
|
||||
$campaign_ids["premsued"] = 6;
|
||||
$campaign_ids["gsf"] = 7;
|
||||
$campaign_ids["kalwang"] = 41;
|
||||
$campaign_ids["st_stefan_stainz"] = 36;
|
||||
|
||||
$selected_campaign = $cmapaign_st_stefan_stainz;
|
||||
if(!array_key_exists(1,$argv)) {
|
||||
|
||||
echo "Bitte eines der folgenden Netzgebiete angeben:\n\n";
|
||||
echo implode("\n", array_keys($campaign_ids));
|
||||
echo "\n\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if(!array_key_exists($argv[1], $campaign_ids)) {
|
||||
die("Ungültige Kampagne\n");
|
||||
}
|
||||
|
||||
$selected_campaign = $campaign_ids[$argv[1]];
|
||||
|
||||
if(!$selected_campaign) {
|
||||
echo "Keine Kampagne ausgewählt.\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
echo "selected campaign: $selected_campaign - ".$argv[1]."\n";
|
||||
|
||||
$same_unit_count = 0;
|
||||
|
||||
$i = 0;
|
||||
|
||||
Reference in New Issue
Block a user